|
@@ -315,6 +315,7 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
|
|
if !node.Connected || node.Action == models.NODE_DELETE || node.PendingDelete {
|
|
if !node.Connected || node.Action == models.NODE_DELETE || node.PendingDelete {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
|
|
+
|
|
hostPeerUpdate.Network[node.Network] = models.NetworkInfo{
|
|
hostPeerUpdate.Network[node.Network] = models.NetworkInfo{
|
|
DNS: getPeerDNS(node.Network),
|
|
DNS: getPeerDNS(node.Network),
|
|
}
|
|
}
|
|
@@ -323,6 +324,18 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
|
|
log.Println("no network nodes")
|
|
log.Println("no network nodes")
|
|
return models.HostPeerUpdate{}, err
|
|
return models.HostPeerUpdate{}, err
|
|
}
|
|
}
|
|
|
|
+ var ingressInfo models.IngressInfo
|
|
|
|
+ if node.IsIngressGateway {
|
|
|
|
+ ingressInfo = models.IngressInfo{
|
|
|
|
+ Network: node.Network,
|
|
|
|
+ IngressGwAddr: net.IPNet{
|
|
|
|
+ IP: net.ParseIP(node.PrimaryAddress()),
|
|
|
|
+ Mask: net.CIDRMask(32, 32),
|
|
|
|
+ },
|
|
|
|
+ ExtPeers: make(map[string]wgtypes.PeerConfig),
|
|
|
|
+ Peers: make(map[string]wgtypes.PeerConfig),
|
|
|
|
+ }
|
|
|
|
+ }
|
|
for _, peer := range currentPeers {
|
|
for _, peer := range currentPeers {
|
|
if peer.ID == node.ID {
|
|
if peer.ID == node.ID {
|
|
logger.Log(2, "peer update, skipping self")
|
|
logger.Log(2, "peer update, skipping self")
|
|
@@ -384,7 +397,9 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
|
|
allowedips = append(allowedips, getEgressIPs(&node, &peer)...)
|
|
allowedips = append(allowedips, getEgressIPs(&node, &peer)...)
|
|
}
|
|
}
|
|
peerConfig.AllowedIPs = allowedips
|
|
peerConfig.AllowedIPs = allowedips
|
|
-
|
|
|
|
|
|
+ if node.IsIngressGateway {
|
|
|
|
+ ingressInfo.Peers[peerConfig.PublicKey.String()] = peerConfig
|
|
|
|
+ }
|
|
if _, ok := hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()]; !ok {
|
|
if _, ok := hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()]; !ok {
|
|
hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()] = make(map[string]models.IDandAddr)
|
|
hostPeerUpdate.PeerIDs[peerHost.PublicKey.String()] = make(map[string]models.IDandAddr)
|
|
hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, peerConfig)
|
|
hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, peerConfig)
|
|
@@ -412,7 +427,10 @@ 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...)
|
|
- hostPeerUpdate.ExtPeers = extPeers
|
|
|
|
|
|
+ for _, extPeer := range extPeers {
|
|
|
|
+ ingressInfo.ExtPeers[extPeer.PublicKey.String()] = extPeer
|
|
|
|
+ }
|
|
|
|
+ hostPeerUpdate.IngressInfo = append(hostPeerUpdate.IngressInfo, ingressInfo)
|
|
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{
|