mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-11 15:44:52 +08:00
update ext client model
This commit is contained in:
parent
35c8fb3b41
commit
62e7cc366e
2 changed files with 22 additions and 12 deletions
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue