34 lines
653 B
Go
34 lines
653 B
Go
package peer
|
|
|
|
import "net/netip"
|
|
|
|
type stateDisconnected struct {
|
|
*peerData
|
|
}
|
|
|
|
func enterStateDisconnected(data *peerData) peerState {
|
|
data.staged.Up = false
|
|
data.staged.Relay = false
|
|
data.staged.Direct = false
|
|
data.staged.DirectAddr = netip.AddrPort{}
|
|
data.staged.PubSignKey = nil
|
|
data.staged.ControlCipher = nil
|
|
data.staged.DataCipher = nil
|
|
|
|
data.publish(data.staged)
|
|
|
|
data.pingTimer.Stop()
|
|
|
|
return &stateDisconnected{data}
|
|
}
|
|
|
|
func (s *stateDisconnected) OnMsg(raw any) peerState {
|
|
switch msg := raw.(type) {
|
|
case peerUpdateMsg:
|
|
return initPeerState(s.peerData, msg.Peer)
|
|
default:
|
|
s.logf("Ignoring message: %v", raw)
|
|
return s
|
|
}
|
|
}
|