From 3bab218a2b8a3bad54aa7c74f032ad4f4949e582 Mon Sep 17 00:00:00 2001 From: Abhishek Kondur Date: Fri, 5 Dec 2025 18:10:09 +0400 Subject: [PATCH] NM-175: add ipv4/ipv6 to peer info (#3763) * add ipv4 and ipv6 addr to peer info * NM-175: add extclient addr4 and addr6 * add user info to peerinfo --- logic/extpeers.go | 10 ++++++++-- logic/peers.go | 2 ++ models/metrics.go | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/logic/extpeers.go b/logic/extpeers.go index 039741b3..9679c0d4 100644 --- a/logic/extpeers.go +++ b/logic/extpeers.go @@ -634,12 +634,18 @@ func GetExtPeers(node, peer *models.Node) ([]wgtypes.PeerConfig, []models.IDandA AllowedIPs: allowedips, } peers = append(peers, peer) - idsAndAddr = append(idsAndAddr, models.IDandAddr{ + peerInfo := models.IDandAddr{ ID: peer.PublicKey.String(), Name: extPeer.ClientID, Address: primaryAddr, + Address4: extPeer.Address, + Address6: extPeer.Address6, IsExtClient: true, - }) + } + if extPeer.DeviceID != "" || extPeer.RemoteAccessClientID != "" { + peerInfo.UserName = extPeer.OwnerID + } + idsAndAddr = append(idsAndAddr, peerInfo) } return peers, idsAndAddr, egressRoutes, nil diff --git a/logic/peers.go b/logic/peers.go index 7f6311b9..cb78123a 100644 --- a/logic/peers.go +++ b/logic/peers.go @@ -116,6 +116,8 @@ func GetHostPeerInfo(host *models.Host) (models.HostPeerInfo, error) { ID: peer.ID.String(), HostID: peerHost.ID.String(), Address: peer.PrimaryAddress(), + Address4: peer.Address.IP.String(), + Address6: peer.Address6.IP.String(), Name: peerHost.Name, Network: peer.Network, ListenPort: peerHost.ListenPort, diff --git a/models/metrics.go b/models/metrics.go index 5f0c5660..71db7d06 100644 --- a/models/metrics.go +++ b/models/metrics.go @@ -33,11 +33,14 @@ type IDandAddr struct { ID string `json:"id" bson:"id" yaml:"id"` HostID string `json:"host_id"` Address string `json:"address" bson:"address" yaml:"address"` + Address4 string `json:"address4"` + Address6 string `json:"address6"` 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"` ListenPort int `json:"listen_port" yaml:"listen_port"` IsExtClient bool `json:"is_extclient"` + UserName string `json:"username"` } // HostInfoMap - map of host public keys to host networking info