mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-24 12:46:15 +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,7 +394,10 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
|
||||||
}
|
}
|
||||||
peerConfig.AllowedIPs = allowedips
|
peerConfig.AllowedIPs = allowedips
|
||||||
extClientPeerMap[peerHost.PublicKey.String()] = models.PeerExtInfo{
|
extClientPeerMap[peerHost.PublicKey.String()] = models.PeerExtInfo{
|
||||||
PeerConfig: peerConfig,
|
PeerAddr: net.IPNet{
|
||||||
|
IP: net.ParseIP(peer.PrimaryAddress()),
|
||||||
|
Mask: net.CIDRMask(32, 32),
|
||||||
|
},
|
||||||
Allow: true,
|
Allow: true,
|
||||||
}
|
}
|
||||||
if _, ok := hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()]; !ok {
|
if _, ok := hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()]; !ok {
|
||||||
|
|
@ -424,12 +427,6 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
|
||||||
extPeers, extPeerIDAndAddrs, err := getExtPeers(&node)
|
extPeers, extPeerIDAndAddrs, err := getExtPeers(&node)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, extPeers...)
|
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 {
|
for _, extPeerIdAndAddr := range extPeerIDAndAddrs {
|
||||||
hostPeerUpdate.PeerIDs[extPeerIdAndAddr.ID] = make(map[string]models.IDandAddr)
|
hostPeerUpdate.PeerIDs[extPeerIdAndAddr.ID] = make(map[string]models.IDandAddr)
|
||||||
hostPeerUpdate.PeerIDs[extPeerIdAndAddr.ID][extPeerIdAndAddr.ID] = 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,
|
Name: extPeerIdAndAddr.Name,
|
||||||
Network: node.Network,
|
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) {
|
} else if !database.IsEmptyRecord(err) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"net"
|
||||||
|
|
||||||
proxy_models "github.com/gravitl/netclient/nmproxy/models"
|
proxy_models "github.com/gravitl/netclient/nmproxy/models"
|
||||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||||
)
|
)
|
||||||
|
|
@ -34,12 +36,15 @@ type IngressInfo struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type PeerExtInfo struct {
|
type PeerExtInfo struct {
|
||||||
PeerConfig wgtypes.PeerConfig
|
PeerAddr net.IPNet
|
||||||
|
PeerKey wgtypes.Key
|
||||||
Allow bool
|
Allow bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type ExtClientInfo struct {
|
type ExtClientInfo struct {
|
||||||
ExtPeer wgtypes.PeerConfig
|
Masquerade bool
|
||||||
|
ExtPeerAddr net.IPNet
|
||||||
|
ExtPeerKey wgtypes.Key
|
||||||
Peers map[string]PeerExtInfo
|
Peers map[string]PeerExtInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue