Browse Source

reworked dns to propogate all entries regardless

0xdcarns 3 years ago
parent
commit
d1101ffe3a
1 changed files with 19 additions and 24 deletions
  1. 19 24
      logic/peers.go

+ 19 - 24
logic/peers.go

@@ -178,25 +178,15 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
 	if err != nil {
 	if err != nil {
 		return models.PeerUpdate{}, err
 		return models.PeerUpdate{}, err
 	}
 	}
-	// begin translating netclient logic
-	/*
 
 
-
-		Go through netclient code and put below
-
-
-
-	*/
 	// #1 Set Keepalive values: set_keepalive
 	// #1 Set Keepalive values: set_keepalive
 	// #2 Set local address: set_local - could be a LOT BETTER and fix some bugs with additional logic
 	// #2 Set local address: set_local - could be a LOT BETTER and fix some bugs with additional logic
 	// #3 Set allowedips: set_allowedips
 	// #3 Set allowedips: set_allowedips
-	var dns string
 	for _, peer := range currentPeers {
 	for _, peer := range currentPeers {
 		if peer.ID == node.ID {
 		if peer.ID == node.ID {
 			//skip yourself
 			//skip yourself
 			continue
 			continue
 		}
 		}
-		dns = dns + fmt.Sprintf("%s %s.%s\n", peer.Address, peer.Name, peer.Network)
 		pubkey, err := wgtypes.ParseKey(peer.PublicKey)
 		pubkey, err := wgtypes.ParseKey(peer.PublicKey)
 		if err != nil {
 		if err != nil {
 			return models.PeerUpdate{}, err
 			return models.PeerUpdate{}, err
@@ -245,23 +235,11 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
 			log.Println("ERROR RETRIEVING EXTERNAL PEERS", err)
 			log.Println("ERROR RETRIEVING EXTERNAL PEERS", err)
 		}
 		}
 	}
 	}
+
 	peerUpdate.Network = node.Network
 	peerUpdate.Network = node.Network
 	peerUpdate.Peers = peers
 	peerUpdate.Peers = peers
 	peerUpdate.ServerAddrs = serverNodeAddresses
 	peerUpdate.ServerAddrs = serverNodeAddresses
-	/*
-
-
-		End translation of netclient code
-
-
-	*/
-	if customDNSEntries, err := GetCustomDNS(peerUpdate.Network); err == nil {
-		for _, entry := range customDNSEntries {
-			// TODO - filter entries based on ACLs / given peers vs nodes in network
-			dns = dns + fmt.Sprintf("%s %s.%s\n", entry.Address, entry.Name, entry.Network)
-		}
-	}
-	peerUpdate.DNS = dns
+	peerUpdate.DNS = getPeerDNS(node.Network)
 	return peerUpdate, nil
 	return peerUpdate, nil
 }
 }
 
 
@@ -387,3 +365,20 @@ func GetAllowedIPs(node, peer *models.Node) []net.IPNet {
 	}
 	}
 	return allowedips
 	return allowedips
 }
 }
+
+func getPeerDNS(network string) string {
+	var dns string
+	if nodes, err := GetNetworkNodes(network); err == nil {
+		for i := range nodes {
+			dns = dns + fmt.Sprintf("%s %s.%s\n", nodes[i].Address, nodes[i].Name, nodes[i].Network)
+		}
+	}
+
+	if customDNSEntries, err := GetCustomDNS(network); err == nil {
+		for _, entry := range customDNSEntries {
+			// TODO - filter entries based on ACLs / given peers vs nodes in network
+			dns = dns + fmt.Sprintf("%s %s.%s\n", entry.Address, entry.Name, entry.Network)
+		}
+	}
+	return dns
+}