added length checks as temp solution

This commit is contained in:
0xdcarns
2022-05-10 15:18:29 -04:00
parent 390156a48a
commit e7f9310b3d
3 changed files with 35 additions and 23 deletions

View File

@@ -202,9 +202,11 @@ func StringSliceContains(slice []string, item string) bool {
// sets the network server peers of a given node // sets the network server peers of a given node
func setNetworkServerPeers(serverNode *models.Node) { func setNetworkServerPeers(serverNode *models.Node) {
if currentPeersList, err := getSystemPeers(serverNode); err == nil { if currentPeersList, err := getSystemPeers(serverNode); err == nil {
if len(currentPeersList) > 0 {
if database.SetPeers(currentPeersList, serverNode.Network) { if database.SetPeers(currentPeersList, serverNode.Network) {
logger.Log(1, "set new peers on network", serverNode.Network) logger.Log(1, "set new peers on network", serverNode.Network)
} }
}
} else { } else {
logger.Log(1, "could not set peers on network", serverNode.Network, ":", err.Error()) logger.Log(1, "could not set peers on network", serverNode.Network, ":", err.Error())
} }

View File

@@ -114,11 +114,13 @@ func getSystemPeers(node *models.Node) (map[string]string, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if len(device.Peers) > 0 {
for _, peer := range device.Peers { for _, peer := range device.Peers {
if IsBase64(peer.PublicKey.String()) && peer.Endpoint != nil && CheckEndpoint(peer.Endpoint.String()) { if IsBase64(peer.PublicKey.String()) && peer.Endpoint != nil && CheckEndpoint(peer.Endpoint.String()) {
peers[peer.PublicKey.String()] = peer.Endpoint.String() peers[peer.PublicKey.String()] = peer.Endpoint.String()
} }
} }
}
return peers, nil return peers, nil
} }

View File

@@ -58,7 +58,9 @@ func SetPeers(iface string, node *models.Node, peers []wgtypes.PeerConfig) error
iparr = append(iparr, ipaddr.String()) iparr = append(iparr, ipaddr.String())
} }
} }
if iparr != nil && len(iparr) > 0 {
allowedips = strings.Join(iparr, ",") allowedips = strings.Join(iparr, ",")
}
keepAliveString := strconv.Itoa(int(keepalive)) keepAliveString := strconv.Itoa(int(keepalive))
if keepAliveString == "0" { if keepAliveString == "0" {
keepAliveString = "15" keepAliveString = "15"
@@ -78,8 +80,10 @@ func SetPeers(iface string, node *models.Node, peers []wgtypes.PeerConfig) error
} }
} }
if len(devicePeers) > 0 {
for _, currentPeer := range devicePeers { for _, currentPeer := range devicePeers {
shouldDelete := true shouldDelete := true
if len(peers) > 0 {
for _, peer := range peers { for _, peer := range peers {
if peer.AllowedIPs[0].String() == currentPeer.AllowedIPs[0].String() { if peer.AllowedIPs[0].String() == currentPeer.AllowedIPs[0].String() {
shouldDelete = false shouldDelete = false
@@ -97,12 +101,16 @@ func SetPeers(iface string, node *models.Node, peers []wgtypes.PeerConfig) error
} }
oldPeerAllowedIps[currentPeer.PublicKey.String()] = currentPeer.AllowedIPs oldPeerAllowedIps[currentPeer.PublicKey.String()] = currentPeer.AllowedIPs
} }
}
}
if ncutils.IsMac() { if ncutils.IsMac() {
err = SetMacPeerRoutes(iface) err = SetMacPeerRoutes(iface)
return err return err
} else if ncutils.IsLinux() { } else if ncutils.IsLinux() {
if len(peers) > 0 {
local.SetPeerRoutes(iface, oldPeerAllowedIps, peers) local.SetPeerRoutes(iface, oldPeerAllowedIps, peers)
} }
}
return nil return nil
} }