}
hs.Zero()
terminator = make(chan struct{})
- go func() {
- heartbeat := time.NewTicker(peer.Timeout)
- var data []byte
- Processor:
- for {
- select {
- case <-heartbeat.C:
- peer.EthProcess(nil)
- case <-terminator:
- break Processor
- case data = <-tap.Sink:
- peer.EthProcess(data)
- }
- }
- heartbeat.Stop()
- peer.Zero()
- }()
+ go govpn.PeerTapProcessor(peer, tap, terminator)
break HandshakeCycle
}
if hs != nil {
return
}
- nonceExpectation := make([]byte, govpn.NonceSize)
- peer.NonceExpectation(nonceExpectation)
prev = 0
var i int
TransportCycle:
if prev < govpn.MinPktLength {
continue
}
- i = bytes.Index(buf[:prev], nonceExpectation)
+ i = bytes.Index(buf[:prev], peer.NonceExpect)
if i == -1 {
continue
}
rehandshaking <- struct{}{}
break TransportCycle
}
- peer.NonceExpectation(nonceExpectation)
copy(buf, buf[i+govpn.NonceSize:prev])
prev = prev - i - govpn.NonceSize
goto CheckMore