From 5e9798bb056773e4d501274591eaeff87640edab Mon Sep 17 00:00:00 2001 From: Abhishek Kondur Date: Wed, 1 Feb 2023 10:28:11 +0400 Subject: [PATCH] add peer keys --- logic/peers.go | 19 ++++++++++++------- models/mqtt.go | 8 ++++---- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/logic/peers.go b/logic/peers.go index 7ec822a2..15c2efa2 100644 --- a/logic/peers.go +++ b/logic/peers.go @@ -393,13 +393,17 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) { allowedips = append(allowedips, getEgressIPs(&node, &peer)...) } peerConfig.AllowedIPs = allowedips - extClientPeerMap[peerHost.PublicKey.String()] = models.PeerExtInfo{ - PeerAddr: net.IPNet{ - IP: net.ParseIP(peer.PrimaryAddress()), - Mask: net.CIDRMask(32, 32), - }, - Allow: true, + if node.IsIngressGateway { + extClientPeerMap[peerHost.PublicKey.String()] = models.PeerExtInfo{ + PeerAddr: net.IPNet{ + IP: net.ParseIP(peer.PrimaryAddress()), + Mask: net.CIDRMask(32, 32), + }, + PeerKey: peerHost.PublicKey.String(), + Allow: true, + } } + if _, ok := hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()]; !ok { hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()] = make(map[string]models.IDandAddr) hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, peerConfig) @@ -441,7 +445,8 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) { IP: net.ParseIP(extPeerIdAndAddr.Address), Mask: net.CIDRMask(32, 32), }, - Peers: extClientPeerMap, + ExtPeerKey: extPeerIdAndAddr.ID, + Peers: extClientPeerMap, } } diff --git a/models/mqtt.go b/models/mqtt.go index c8966c5b..dfc2a541 100644 --- a/models/mqtt.go +++ b/models/mqtt.go @@ -36,15 +36,15 @@ type IngressInfo struct { } type PeerExtInfo struct { - PeerAddr net.IPNet `json:"peer_addr" yaml:"peer_addr"` - PeerKey wgtypes.Key `json:"peer_key" yaml:"peer_key"` - Allow bool `json:"allow" yaml:"allow"` + PeerAddr net.IPNet `json:"peer_addr" yaml:"peer_addr"` + PeerKey string `json:"peer_key" yaml:"peer_key"` + Allow bool `json:"allow" yaml:"allow"` } type ExtClientInfo struct { Masquerade bool `json:"masquerade" yaml:"masquerade"` ExtPeerAddr net.IPNet `json:"ext_peer_addr" yaml:"ext_peer_addr"` - ExtPeerKey wgtypes.Key `json:"ext_peer_key" yaml:"ext_peer_key"` + ExtPeerKey string `json:"ext_peer_key" yaml:"ext_peer_key"` Peers map[string]PeerExtInfo `json:"peers" yaml:"peers"` }