Browse Source

append host interfaces to hostPeerUpdate

Anish Mukherjee 2 years ago
parent
commit
ea6623ba3e
3 changed files with 23 additions and 26 deletions
  1. 17 20
      logic/peers.go
  2. 5 6
      models/metrics.go
  3. 1 0
      models/mqtt.go

+ 17 - 20
logic/peers.go

@@ -156,6 +156,7 @@ func GetPeerUpdateForHost(ctx context.Context, network string, host *models.Host
 		PeerIDs:    make(models.PeerMap, 0),
 		Peers:      []wgtypes.PeerConfig{},
 		NodePeers:  []wgtypes.PeerConfig{},
+		Interfaces: host.Interfaces,
 	}
 
 	logger.Log(1, "peer update for host", host.ID.String())
@@ -274,11 +275,10 @@ func GetPeerUpdateForHost(ctx context.Context, network string, host *models.Host
 					hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, peerConfig)
 					peerIndexMap[peerHost.PublicKey.String()] = len(hostPeerUpdate.Peers) - 1
 					hostPeerUpdate.HostPeerIDs[peerHost.PublicKey.String()][peer.ID.String()] = models.IDandAddr{
-						ID:           peer.ID.String(),
-						Address:      peer.PrimaryAddress(),
-						LocalAddress: peer.LocalAddress.String(),
-						Name:         peerHost.Name,
-						Network:      peer.Network,
+						ID:      peer.ID.String(),
+						Address: peer.PrimaryAddress(),
+						Name:    peerHost.Name,
+						Network: peer.Network,
 					}
 					nodePeer = peerConfig
 				} else {
@@ -286,22 +286,20 @@ func GetPeerUpdateForHost(ctx context.Context, network string, host *models.Host
 					peerAllowedIPs = append(peerAllowedIPs, allowedips...)
 					hostPeerUpdate.Peers[peerIndexMap[peerHost.PublicKey.String()]].AllowedIPs = peerAllowedIPs
 					hostPeerUpdate.HostPeerIDs[peerHost.PublicKey.String()][peer.ID.String()] = models.IDandAddr{
-						ID:           peer.ID.String(),
-						Address:      peer.PrimaryAddress(),
-						LocalAddress: peer.LocalAddress.String(),
-						Name:         peerHost.Name,
-						Network:      peer.Network,
+						ID:      peer.ID.String(),
+						Address: peer.PrimaryAddress(),
+						Name:    peerHost.Name,
+						Network: peer.Network,
 					}
 					nodePeer = hostPeerUpdate.Peers[peerIndexMap[peerHost.PublicKey.String()]]
 				}
 
 				if node.Network == network { // add to peers map for metrics
 					hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()] = models.IDandAddr{
-						ID:           peer.ID.String(),
-						Address:      peer.PrimaryAddress(),
-						LocalAddress: peer.LocalAddress.String(),
-						Name:         peerHost.Name,
-						Network:      peer.Network,
+						ID:      peer.ID.String(),
+						Address: peer.PrimaryAddress(),
+						Name:    peerHost.Name,
+						Network: peer.Network,
 					}
 					hostPeerUpdate.NodePeers = append(hostPeerUpdate.NodePeers, nodePeer)
 				}
@@ -327,11 +325,10 @@ func GetPeerUpdateForHost(ctx context.Context, network string, host *models.Host
 						extPeerIdAndAddr := extPeerIdAndAddr
 						hostPeerUpdate.HostPeerIDs[extPeerIdAndAddr.ID] = make(map[string]models.IDandAddr)
 						hostPeerUpdate.HostPeerIDs[extPeerIdAndAddr.ID][extPeerIdAndAddr.ID] = models.IDandAddr{
-							ID:           extPeerIdAndAddr.ID,
-							Address:      extPeerIdAndAddr.Address,
-							LocalAddress: extPeerIdAndAddr.LocalAddress,
-							Name:         extPeerIdAndAddr.Name,
-							Network:      node.Network,
+							ID:      extPeerIdAndAddr.ID,
+							Address: extPeerIdAndAddr.Address,
+							Name:    extPeerIdAndAddr.Name,
+							Network: node.Network,
 						}
 						hostPeerUpdate.IngressInfo.ExtPeers[extPeerIdAndAddr.ID] = models.ExtClientInfo{
 							Masquerade: true,

+ 5 - 6
models/metrics.go

@@ -28,12 +28,11 @@ type Metric struct {
 
 // IDandAddr - struct to hold ID and primary Address
 type IDandAddr struct {
-	ID           string `json:"id" bson:"id" yaml:"id"`
-	Address      string `json:"address" bson:"address" yaml:"address"`
-	LocalAddress string `json:"localaddress" bson:"localaddress" yaml:"localaddress"`
-	Name         string `json:"name" bson:"name" yaml:"name"`
-	IsServer     string `json:"isserver" bson:"isserver" yaml:"isserver" validate:"checkyesorno"`
-	Network      string `json:"network" bson:"network" yaml:"network" validate:"network"`
+	ID       string `json:"id" bson:"id" yaml:"id"`
+	Address  string `json:"address" bson:"address" yaml:"address"`
+	Name     string `json:"name" bson:"name" yaml:"name"`
+	IsServer string `json:"isserver" bson:"isserver" yaml:"isserver" validate:"checkyesorno"`
+	Network  string `json:"network" bson:"network" yaml:"network" validate:"network"`
 }
 
 // PeerMap - peer map for ids and addresses in metrics

+ 1 - 0
models/mqtt.go

@@ -19,6 +19,7 @@ type HostPeerUpdate struct {
 	EgressInfo    map[string]EgressInfo `json:"egress_info" bson:"egress_info" yaml:"egress_info"` // map key is node ID
 	IngressInfo   IngressInfo           `json:"ingress_info" bson:"ext_peers" yaml:"ext_peers"`
 	PeerIDs       PeerMap               `json:"peerids" bson:"peerids" yaml:"peerids"`
+	Interfaces    []Iface               `json:"interfaces" yaml:"interfaces"`
 }
 
 // IngressInfo - struct for ingress info