fix first connection

This commit is contained in:
AJ ONeal 2020-07-09 09:03:04 +00:00
parent 10778eaab1
commit d3f8b90e32
6 changed files with 16 additions and 4 deletions

View File

@ -178,6 +178,9 @@ func upgradeWebsocket(w http.ResponseWriter, r *http.Request) {
MultiEncoder: telebit.NewEncoder(context.TODO(), wsTun),
MultiDecoder: telebit.NewDecoder(wsTun),
}
// TODO should this happen at NewEncoder()?
// (or is it even necessary anymore?)
_ = server.MultiEncoder.Start()
go func() {
// (this listener is also a telebit.Router)
@ -187,6 +190,7 @@ func upgradeWebsocket(w http.ResponseWriter, r *http.Request) {
// there's an encoder with a callback between the websocket
// and the multiplexer, so it doesn't know to stop listening otherwise
_ = wsTun.Close()
// TODO close all clients
fmt.Printf("a subscriber stream is done: %q\n", err)
}()

View File

@ -359,7 +359,7 @@ func routeSubscribersAndClients(client net.Conn) error {
// Match full servername "sub.domain.example.com"
if tryToServeName(servername, wconn) {
// TODO better non-error
return io.EOF
return nil
}
// Match wild names

View File

@ -229,6 +229,9 @@ func upgradeWebsocket(w http.ResponseWriter, r *http.Request) {
MultiEncoder: telebit.NewEncoder(context.TODO(), wsTun),
MultiDecoder: telebit.NewDecoder(wsTun),
}
// TODO should this happen at NewEncoder()?
// (or is it even necessary anymore?)
_ = server.MultiEncoder.Start()
go func() {
// (this listener is also a telebit.Router)

View File

@ -16,7 +16,7 @@ ACME_EMAIL="${ACME_EMAIL:-}"
./telebit --acme-agree=true \
--admin-hostname $ADMIN_HOSTNAME \
--auth-url $AUTH_URL/api \
--auth-url $AUTH_URL \
--acme-email "$ACME_EMAIL" \
--secret "$SECRET" \
--listen 3020,3030

View File

@ -54,6 +54,11 @@ func (enc *Encoder) Run() error {
}
}
func (enc *Encoder) Start() error {
go enc.Run()
return nil
}
// Encode adds MPLEXY headers to raw net traffic, and is intended to be used on each client connection
func (enc *Encoder) Encode(rin io.Reader, src, dst Addr) error {
rx := make(chan []byte)

View File

@ -124,8 +124,8 @@ func (s *SubscriberConn) Serve(client net.Conn) error {
id := client.RemoteAddr().String()
s.Clients.Store(id, client)
fmt.Println("[debug] cancel all the clients")
_ = client.Close()
//fmt.Println("[debug] immediately cancel client to simplify testing / debugging")
//_ = client.Close()
// TODO
// - Encode each client to the tunnel