update ext client model

This commit is contained in:
Abhishek Kondur 2023-01-31 13:33:15 +04:00
parent 35c8fb3b41
commit 62e7cc366e
2 changed files with 22 additions and 12 deletions

View file

@ -394,8 +394,11 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
}
peerConfig.AllowedIPs = allowedips
extClientPeerMap[peerHost.PublicKey.String()] = models.PeerExtInfo{
PeerConfig: peerConfig,
Allow: true,
PeerAddr: net.IPNet{
IP: net.ParseIP(peer.PrimaryAddress()),
Mask: net.CIDRMask(32, 32),
},
Allow: true,
}
if _, ok := hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()]; !ok {
hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()] = make(map[string]models.IDandAddr)
@ -424,12 +427,6 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
extPeers, extPeerIDAndAddrs, err := getExtPeers(&node)
if err == nil {
hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, extPeers...)
for _, extPeer := range extPeers {
hostPeerUpdate.IngressInfo.ExtPeers[extPeer.PublicKey.String()] = models.ExtClientInfo{
ExtPeer: extPeer,
Peers: extClientPeerMap,
}
}
for _, extPeerIdAndAddr := range extPeerIDAndAddrs {
hostPeerUpdate.PeerIDs[extPeerIdAndAddr.ID] = make(map[string]models.IDandAddr)
hostPeerUpdate.PeerIDs[extPeerIdAndAddr.ID][extPeerIdAndAddr.ID] = models.IDandAddr{
@ -438,6 +435,14 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
Name: extPeerIdAndAddr.Name,
Network: node.Network,
}
hostPeerUpdate.IngressInfo.ExtPeers[extPeerIdAndAddr.ID] = models.ExtClientInfo{
Masquerade: true,
ExtPeerAddr: net.IPNet{
IP: net.ParseIP(extPeerIdAndAddr.Address),
Mask: net.CIDRMask(32, 32),
},
Peers: extClientPeerMap,
}
}
} else if !database.IsEmptyRecord(err) {

View file

@ -1,6 +1,8 @@
package models
import (
"net"
proxy_models "github.com/gravitl/netclient/nmproxy/models"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
)
@ -34,13 +36,16 @@ type IngressInfo struct {
}
type PeerExtInfo struct {
PeerConfig wgtypes.PeerConfig
Allow bool
PeerAddr net.IPNet
PeerKey wgtypes.Key
Allow bool
}
type ExtClientInfo struct {
ExtPeer wgtypes.PeerConfig
Peers map[string]PeerExtInfo
Masquerade bool
ExtPeerAddr net.IPNet
ExtPeerKey wgtypes.Key
Peers map[string]PeerExtInfo
}
// NetworkInfo - struct for network info