diff --git a/network/default.go b/network/default.go index b9dfe13f..92ba4a84 100644 --- a/network/default.go +++ b/network/default.go @@ -1060,6 +1060,8 @@ func (n *network) Connect() error { // send the connect message n.sendConnect() + // most importantly + break } }() diff --git a/tunnel/session.go b/tunnel/session.go index 4b8721aa..b5b724b0 100644 --- a/tunnel/session.go +++ b/tunnel/session.go @@ -354,14 +354,14 @@ func (s *session) Send(m *transport.Message) error { // Recv is used to receive a message func (s *session) Recv(m *transport.Message) error { + var msg *message + select { case <-s.closed: return errors.New("session is closed") - default: - // no op - } // recv from backlog - msg := <-s.recv + case msg = <-s.recv: + } // check the error if one exists select {