Răsfoiți Sursa

add node addrs to peer update

Abhishek Kondur 2 ani în urmă
părinte
comite
16f1015f3f
3 a modificat fișierele cu 16 adăugiri și 6 ștergeri
  1. 1 0
      logic/peers.go
  2. 7 6
      models/mqtt.go
  3. 8 0
      models/node.go

+ 1 - 0
logic/peers.go

@@ -136,6 +136,7 @@ func GetPeerUpdateForHost(ctx context.Context, network string, host *models.Host
 			continue
 		}
 		if host.OS == models.OS_Types.IoT {
+			hostPeerUpdate.NodeAddrs = append(hostPeerUpdate.NodeAddrs, node.PrimaryAddressIPNet())
 			if node.IsRelayed {
 				relayNode, err := GetNodeByID(node.RelayedBy)
 				if err != nil {

+ 7 - 6
models/mqtt.go

@@ -8,12 +8,13 @@ import (
 
 // HostPeerUpdate - struct for host peer updates
 type HostPeerUpdate struct {
-	Host            Host                 `json:"host" bson:"host" yaml:"host"`
-	Server          string               `json:"server" bson:"server" yaml:"server"`
-	ServerVersion   string               `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
-	ServerAddrs     []ServerAddr         `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
-	NodePeers       []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
-	Peers           []wgtypes.PeerConfig
+	Host            Host                  `json:"host" bson:"host" yaml:"host"`
+	NodeAddrs       []net.IPNet           `json:"nodes_addrs" yaml:"nodes_addrs"`
+	Server          string                `json:"server" bson:"server" yaml:"server"`
+	ServerVersion   string                `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
+	ServerAddrs     []ServerAddr          `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
+	NodePeers       []wgtypes.PeerConfig  `json:"node_peers" bson:"node_peers" yaml:"node_peers"`
+	Peers           []wgtypes.PeerConfig  `json:"peers" bson:"peers" yaml:"peers"`
 	HostPeerIDs     HostPeerMap           `json:"hostpeerids" bson:"hostpeerids" yaml:"hostpeerids"`
 	ProxyUpdate     ProxyManagerPayload   `json:"proxy_update" bson:"proxy_update" yaml:"proxy_update"`
 	EgressInfo      map[string]EgressInfo `json:"egress_info" bson:"egress_info" yaml:"egress_info"` // map key is node ID

+ 8 - 0
models/node.go

@@ -181,6 +181,14 @@ func isLess(ipA string, ipB string) bool {
 	return bytes.Compare(ipNetA, ipNetB) < 0
 }
 
+// Node.PrimaryAddress - return ipv4 address if present, else return ipv6
+func (node *Node) PrimaryAddressIPNet() net.IPNet {
+	if node.Address.IP != nil {
+		return node.Address
+	}
+	return node.Address6
+}
+
 // Node.PrimaryAddress - return ipv4 address if present, else return ipv6
 func (node *Node) PrimaryAddress() string {
 	if node.Address.IP != nil {