diff --git a/peer/remote.go b/peer/remote.go index ad9f9ee..4cec36c 100644 --- a/peer/remote.go +++ b/peer/remote.go @@ -163,24 +163,16 @@ func (r *Remote) sendControl(conf remoteConfig, data []byte) { return } + // Direct: + if conf.Direct { - r.sendControlDirect(conf, data) - } else { - r.sendControlRelayed(conf, data) + enc := r.encryptControl(conf, data) + r.sendUDP(enc, conf.DirectAddr) + return } -} -func (r *Remote) sendControlToAddr(buf []byte, addr netip.AddrPort) { - enc := r.encryptControl(r.conf(), buf) - r.sendUDP(enc, addr) -} + // Relayed: -func (r *Remote) sendControlDirect(conf remoteConfig, data []byte) { - enc := r.encryptControl(conf, data) - r.sendUDP(enc, conf.DirectAddr) -} - -func (r *Remote) sendControlRelayed(conf remoteConfig, data []byte) { relay := r.RelayHandler.Load() if relay == nil { @@ -191,6 +183,11 @@ func (r *Remote) sendControlRelayed(conf remoteConfig, data []byte) { relay.relayData(conf.Peer.PeerIP, r.encryptControl(conf, data)) } +func (r *Remote) sendControlToAddr(buf []byte, addr netip.AddrPort) { + enc := r.encryptControl(r.conf(), buf) + r.sendUDP(enc, addr) +} + func (r *Remote) forwardPacket(data []byte) { conf := r.conf() if !conf.Up || !conf.Direct {