We need the message back to set the link
This commit is contained in:
parent
3831199600
commit
c170189efb
@ -107,7 +107,7 @@ func (s *session) newMessage(typ string) *message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// waitFor waits for the message type required until the timeout specified
|
// waitFor waits for the message type required until the timeout specified
|
||||||
func (s *session) waitFor(msgType string, timeout time.Duration) error {
|
func (s *session) waitFor(msgType string, timeout time.Duration) (*message, error) {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
||||||
after := func() time.Duration {
|
after := func() time.Duration {
|
||||||
@ -123,7 +123,6 @@ func (s *session) waitFor(msgType string, timeout time.Duration) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wait for the message type
|
// wait for the message type
|
||||||
loop:
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case msg := <-s.recv:
|
case msg := <-s.recv:
|
||||||
@ -132,17 +131,14 @@ loop:
|
|||||||
log.Debugf("Tunnel received non %s message in waiting for %s", msg.typ, msgType)
|
log.Debugf("Tunnel received non %s message in waiting for %s", msg.typ, msgType)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// got the message
|
// got the message
|
||||||
break loop
|
return msg, nil
|
||||||
case <-time.After(after()):
|
case <-time.After(after()):
|
||||||
return ErrDialTimeout
|
return nil, ErrDialTimeout
|
||||||
case <-s.closed:
|
case <-s.closed:
|
||||||
return io.EOF
|
return nil, io.EOF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Discover attempts to discover the link for a specific channel
|
// Discover attempts to discover the link for a specific channel
|
||||||
@ -191,7 +187,8 @@ func (s *session) Discover() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wait for announce
|
// wait for announce
|
||||||
if err := s.waitFor("announce", dialTimeout); err != nil {
|
_, err = s.waitFor("announce", dialTimeout)
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,7 +234,8 @@ func (s *session) Open() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// now wait for the accept
|
// now wait for the accept
|
||||||
if err := s.waitFor("accept", s.timeout); err != nil {
|
msg, err := s.waitFor("accept", s.timeout)
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user