|
@@ -10,7 +10,6 @@ import (
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
- proxy_models "github.com/gravitl/netclient/nmproxy/models"
|
|
|
|
"github.com/gravitl/netmaker/database"
|
|
"github.com/gravitl/netmaker/database"
|
|
"github.com/gravitl/netmaker/logger"
|
|
"github.com/gravitl/netmaker/logger"
|
|
"github.com/gravitl/netmaker/logic/acls/nodeacls"
|
|
"github.com/gravitl/netmaker/logic/acls/nodeacls"
|
|
@@ -28,10 +27,10 @@ import (
|
|
// TODO ==========================
|
|
// TODO ==========================
|
|
// TODO ==========================
|
|
// TODO ==========================
|
|
// revisit this logic with new host/node models.
|
|
// revisit this logic with new host/node models.
|
|
-func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyManagerPayload, error) {
|
|
|
|
- proxyPayload := proxy_models.ProxyManagerPayload{}
|
|
|
|
|
|
+func GetPeersForProxy(node *models.Node, onlyPeers bool) (models.ProxyManagerPayload, error) {
|
|
|
|
+ proxyPayload := models.ProxyManagerPayload{}
|
|
var peers []wgtypes.PeerConfig
|
|
var peers []wgtypes.PeerConfig
|
|
- peerConfMap := make(map[string]proxy_models.PeerConf)
|
|
|
|
|
|
+ peerConfMap := make(map[string]models.PeerConf)
|
|
var err error
|
|
var err error
|
|
currentPeers, err := GetNetworkNodes(node.Network)
|
|
currentPeers, err := GetNetworkNodes(node.Network)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -70,7 +69,7 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
|
|
logger.Log(1, "failed to relayed nodes: ", node.ID.String(), err.Error())
|
|
logger.Log(1, "failed to relayed nodes: ", node.ID.String(), err.Error())
|
|
proxyPayload.IsRelay = false
|
|
proxyPayload.IsRelay = false
|
|
} else {
|
|
} else {
|
|
- relayPeersMap := make(map[string]proxy_models.RelayedConf)
|
|
|
|
|
|
+ relayPeersMap := make(map[string]models.RelayedConf)
|
|
for _, relayedNode := range relayedNodes {
|
|
for _, relayedNode := range relayedNodes {
|
|
relayedNode := relayedNode
|
|
relayedNode := relayedNode
|
|
payload, err := GetPeersForProxy(&relayedNode, true)
|
|
payload, err := GetPeersForProxy(&relayedNode, true)
|
|
@@ -81,7 +80,7 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
|
|
}
|
|
}
|
|
relayedEndpoint, udpErr := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", relayedHost.EndpointIP, host.ListenPort))
|
|
relayedEndpoint, udpErr := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", relayedHost.EndpointIP, host.ListenPort))
|
|
if udpErr == nil {
|
|
if udpErr == nil {
|
|
- relayPeersMap[host.PublicKey.String()] = proxy_models.RelayedConf{
|
|
|
|
|
|
+ relayPeersMap[host.PublicKey.String()] = models.RelayedConf{
|
|
RelayedPeerEndpoint: relayedEndpoint,
|
|
RelayedPeerEndpoint: relayedEndpoint,
|
|
RelayedPeerPubKey: relayedHost.PublicKey.String(),
|
|
RelayedPeerPubKey: relayedHost.PublicKey.String(),
|
|
Peers: payload.Peers,
|
|
Peers: payload.Peers,
|
|
@@ -111,7 +110,7 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
|
|
if proxyStatus {
|
|
if proxyStatus {
|
|
listenPort = host.ProxyListenPort
|
|
listenPort = host.ProxyListenPort
|
|
if listenPort == 0 {
|
|
if listenPort == 0 {
|
|
- listenPort = proxy_models.NmProxyPort
|
|
|
|
|
|
+ listenPort = models.NmProxyPort
|
|
}
|
|
}
|
|
} else if listenPort == 0 {
|
|
} else if listenPort == 0 {
|
|
listenPort = host.ListenPort
|
|
listenPort = host.ListenPort
|
|
@@ -136,7 +135,7 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
|
|
PersistentKeepaliveInterval: &keepalive,
|
|
PersistentKeepaliveInterval: &keepalive,
|
|
ReplaceAllowedIPs: true,
|
|
ReplaceAllowedIPs: true,
|
|
})
|
|
})
|
|
- peerConfMap[host.PublicKey.String()] = proxy_models.PeerConf{
|
|
|
|
|
|
+ peerConfMap[host.PublicKey.String()] = models.PeerConf{
|
|
Address: net.ParseIP(peer.PrimaryAddress()),
|
|
Address: net.ParseIP(peer.PrimaryAddress()),
|
|
Proxy: proxyStatus,
|
|
Proxy: proxyStatus,
|
|
PublicListenPort: int32(listenPort),
|
|
PublicListenPort: int32(listenPort),
|
|
@@ -152,7 +151,7 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
|
|
}
|
|
}
|
|
relayTo, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", relayHost.EndpointIP, relayHost.ListenPort))
|
|
relayTo, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", relayHost.EndpointIP, relayHost.ListenPort))
|
|
if err == nil {
|
|
if err == nil {
|
|
- peerConfMap[host.PublicKey.String()] = proxy_models.PeerConf{
|
|
|
|
|
|
+ peerConfMap[host.PublicKey.String()] = models.PeerConf{
|
|
|
|
|
|
IsRelayed: true,
|
|
IsRelayed: true,
|
|
RelayedTo: relayTo,
|
|
RelayedTo: relayTo,
|
|
@@ -193,11 +192,11 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (proxy_models.ProxyMana
|
|
}
|
|
}
|
|
|
|
|
|
// GetProxyUpdateForHost - gets the proxy update for host
|
|
// GetProxyUpdateForHost - gets the proxy update for host
|
|
-func GetProxyUpdateForHost(host *models.Host) (proxy_models.ProxyManagerPayload, error) {
|
|
|
|
- proxyPayload := proxy_models.ProxyManagerPayload{
|
|
|
|
- Action: proxy_models.ProxyUpdate,
|
|
|
|
|
|
+func GetProxyUpdateForHost(host *models.Host) (models.ProxyManagerPayload, error) {
|
|
|
|
+ proxyPayload := models.ProxyManagerPayload{
|
|
|
|
+ Action: models.ProxyUpdate,
|
|
}
|
|
}
|
|
- peerConfMap := make(map[string]proxy_models.PeerConf)
|
|
|
|
|
|
+ peerConfMap := make(map[string]models.PeerConf)
|
|
if host.IsRelayed {
|
|
if host.IsRelayed {
|
|
relayHost, err := GetHost(host.RelayedBy)
|
|
relayHost, err := GetHost(host.RelayedBy)
|
|
if err == nil {
|
|
if err == nil {
|
|
@@ -214,14 +213,14 @@ func GetProxyUpdateForHost(host *models.Host) (proxy_models.ProxyManagerPayload,
|
|
}
|
|
}
|
|
if host.IsRelay {
|
|
if host.IsRelay {
|
|
relayedHosts := GetRelayedHosts(host)
|
|
relayedHosts := GetRelayedHosts(host)
|
|
- relayPeersMap := make(map[string]proxy_models.RelayedConf)
|
|
|
|
|
|
+ relayPeersMap := make(map[string]models.RelayedConf)
|
|
for _, relayedHost := range relayedHosts {
|
|
for _, relayedHost := range relayedHosts {
|
|
relayedHost := relayedHost
|
|
relayedHost := relayedHost
|
|
payload, err := GetPeerUpdateForHost(&relayedHost)
|
|
payload, err := GetPeerUpdateForHost(&relayedHost)
|
|
if err == nil {
|
|
if err == nil {
|
|
relayedEndpoint, udpErr := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", relayedHost.EndpointIP, getPeerListenPort(&relayedHost)))
|
|
relayedEndpoint, udpErr := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", relayedHost.EndpointIP, getPeerListenPort(&relayedHost)))
|
|
if udpErr == nil {
|
|
if udpErr == nil {
|
|
- relayPeersMap[relayedHost.PublicKey.String()] = proxy_models.RelayedConf{
|
|
|
|
|
|
+ relayPeersMap[relayedHost.PublicKey.String()] = models.RelayedConf{
|
|
RelayedPeerEndpoint: relayedEndpoint,
|
|
RelayedPeerEndpoint: relayedEndpoint,
|
|
RelayedPeerPubKey: relayedHost.PublicKey.String(),
|
|
RelayedPeerPubKey: relayedHost.PublicKey.String(),
|
|
Peers: payload.Peers,
|
|
Peers: payload.Peers,
|
|
@@ -254,10 +253,10 @@ func GetProxyUpdateForHost(host *models.Host) (proxy_models.ProxyManagerPayload,
|
|
if err != nil {
|
|
if err != nil {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- var currPeerConf proxy_models.PeerConf
|
|
|
|
|
|
+ var currPeerConf models.PeerConf
|
|
var found bool
|
|
var found bool
|
|
if currPeerConf, found = peerConfMap[peerHost.PublicKey.String()]; !found {
|
|
if currPeerConf, found = peerConfMap[peerHost.PublicKey.String()]; !found {
|
|
- currPeerConf = proxy_models.PeerConf{
|
|
|
|
|
|
+ currPeerConf = models.PeerConf{
|
|
Proxy: peerHost.ProxyEnabled,
|
|
Proxy: peerHost.ProxyEnabled,
|
|
PublicListenPort: int32(getPeerListenPort(peerHost)),
|
|
PublicListenPort: int32(getPeerListenPort(peerHost)),
|
|
}
|
|
}
|
|
@@ -788,7 +787,7 @@ func getExtPeers(node *models.Node) ([]wgtypes.PeerConfig, []models.IDandAddr, e
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-func getExtPeersForProxy(node *models.Node, proxyPeerConf map[string]proxy_models.PeerConf) ([]wgtypes.PeerConfig, map[string]proxy_models.PeerConf, error) {
|
|
|
|
|
|
+func getExtPeersForProxy(node *models.Node, proxyPeerConf map[string]models.PeerConf) ([]wgtypes.PeerConfig, map[string]models.PeerConf, error) {
|
|
var peers []wgtypes.PeerConfig
|
|
var peers []wgtypes.PeerConfig
|
|
host, err := GetHost(node.HostID.String())
|
|
host, err := GetHost(node.HostID.String())
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -838,7 +837,7 @@ func getExtPeersForProxy(node *models.Node, proxyPeerConf map[string]proxy_model
|
|
ReplaceAllowedIPs: true,
|
|
ReplaceAllowedIPs: true,
|
|
AllowedIPs: allowedips,
|
|
AllowedIPs: allowedips,
|
|
}
|
|
}
|
|
- extConf := proxy_models.PeerConf{
|
|
|
|
|
|
+ extConf := models.PeerConf{
|
|
IsExtClient: true,
|
|
IsExtClient: true,
|
|
Address: net.ParseIP(extPeer.Address),
|
|
Address: net.ParseIP(extPeer.Address),
|
|
}
|
|
}
|