Audit changes.
This commit is contained in:
35
peer/init.go
35
peer/init.go
@@ -115,13 +115,34 @@ func initFromHub(hubURL, apiKey string, privKey wgtypes.Key) (LocalState, error)
|
||||
vpnIP := netip.AddrFrom4(octets)
|
||||
vpnNet := netip.PrefixFrom(netAddr, 24)
|
||||
|
||||
var isRelay, isPublic bool
|
||||
var wgPort uint16
|
||||
if self := r.NetworkState.Peers[r.PeerIP]; self != nil {
|
||||
isRelay = self.Relay
|
||||
isPublic = len(self.Addr4) > 0 || len(self.Addr6) > 0
|
||||
wgPort = self.Port
|
||||
var self *m.Peer
|
||||
for i := range r.NetworkState.Peers {
|
||||
if r.NetworkState.Peers[i].PeerIP == r.PeerIP {
|
||||
self = &r.NetworkState.Peers[i]
|
||||
break
|
||||
}
|
||||
}
|
||||
if self == nil {
|
||||
return LocalState{}, fmt.Errorf("hub init: no peer for own IP: %d", r.PeerIP)
|
||||
}
|
||||
|
||||
var isRelay, public bool
|
||||
var wgPort uint16
|
||||
|
||||
var ep4, ep6 netip.AddrPort
|
||||
if len(self.Addr4) > 0 {
|
||||
if addr, ok := netip.AddrFromSlice(self.Addr4); ok {
|
||||
ep4 = netip.AddrPortFrom(addr.Unmap(), self.Port)
|
||||
}
|
||||
}
|
||||
if len(self.Addr6) > 0 {
|
||||
if addr, ok := netip.AddrFromSlice(self.Addr6); ok {
|
||||
ep6 = netip.AddrPortFrom(addr.Unmap(), self.Port)
|
||||
}
|
||||
}
|
||||
public = ep4.IsValid() || ep6.IsValid()
|
||||
isRelay = self.Relay && public
|
||||
wgPort = self.Port
|
||||
|
||||
return LocalState{
|
||||
PrivKey: privKey,
|
||||
@@ -130,7 +151,7 @@ func initFromHub(hubURL, apiKey string, privKey wgtypes.Key) (LocalState, error)
|
||||
VPNNet: vpnNet,
|
||||
WGPort: wgPort,
|
||||
IsRelay: isRelay,
|
||||
IsPublic: isPublic,
|
||||
IsPublic: public,
|
||||
LocalDomain: r.LocalDomain,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user