Browse Source

fix stun port format,use proxy listen port from node model

Abhishek Kondur 2 years ago
parent
commit
8fc09fd5cd
5 changed files with 16 additions and 16 deletions
  1. 2 2
      controllers/ext_client.go
  2. 10 13
      logic/peers.go
  3. 1 0
      models/node.go
  4. 2 0
      servercfg/serverconf.go
  5. 1 1
      stun-server/stun-server.go

+ 2 - 2
controllers/ext_client.go

@@ -331,9 +331,9 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
 		return
 		return
 	}
 	}
-	listenPort := node.ListenPort
+	listenPort := node.LocalListenPort
 	if node.Proxy {
 	if node.Proxy {
-		listenPort = 51722
+		listenPort = node.ProxyListenPort
 	}
 	}
 	extclient.IngressGatewayEndpoint = node.Endpoint + ":" + strconv.FormatInt(int64(listenPort), 10)
 	extclient.IngressGatewayEndpoint = node.Endpoint + ":" + strconv.FormatInt(int64(listenPort), 10)
 
 

+ 10 - 13
logic/peers.go

@@ -30,16 +30,6 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (manager.ProxyManagerPa
 	if err != nil {
 	if err != nil {
 		return proxyPayload, err
 		return proxyPayload, err
 	}
 	}
-	var metrics *models.Metrics
-	if servercfg.Is_EE {
-		metrics, _ = GetMetrics(node.ID)
-	}
-	if metrics == nil {
-		metrics = &models.Metrics{}
-	}
-	if metrics.FailoverPeers == nil {
-		metrics.FailoverPeers = make(map[string]string)
-	}
 	if !onlyPeers {
 	if !onlyPeers {
 		if node.IsRelayed == "yes" {
 		if node.IsRelayed == "yes" {
 			relayNode := FindRelay(node)
 			relayNode := FindRelay(node)
@@ -94,22 +84,29 @@ func GetPeersForProxy(node *models.Node, onlyPeers bool) (manager.ProxyManagerPa
 			logger.Log(1, "failed to parse node pub key: ", peer.ID)
 			logger.Log(1, "failed to parse node pub key: ", peer.ID)
 			continue
 			continue
 		}
 		}
-		listenPort := peer.LocalListenPort
+		proxyStatus := peer.Proxy
+		var listenPort int32
+		if proxyStatus {
+			listenPort = peer.ProxyListenPort
+		} else {
+			listenPort = peer.LocalListenPort
+		}
 		if listenPort == 0 {
 		if listenPort == 0 {
 			listenPort = peer.ListenPort
 			listenPort = peer.ListenPort
 		}
 		}
+
 		endpoint, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", peer.Endpoint, listenPort))
 		endpoint, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", peer.Endpoint, listenPort))
 		if err != nil {
 		if err != nil {
 			logger.Log(1, "failed to resolve udp addr for node: ", peer.ID, peer.Endpoint, err.Error())
 			logger.Log(1, "failed to resolve udp addr for node: ", peer.ID, peer.Endpoint, err.Error())
 			continue
 			continue
 		}
 		}
-		allowedips := GetAllowedIPs(node, &peer, metrics, false)
+		allowedips := GetAllowedIPs(node, &peer, nil, false)
 		var keepalive time.Duration
 		var keepalive time.Duration
 		if node.PersistentKeepalive != 0 {
 		if node.PersistentKeepalive != 0 {
 			// set_keepalive
 			// set_keepalive
 			keepalive, _ = time.ParseDuration(strconv.FormatInt(int64(node.PersistentKeepalive), 10) + "s")
 			keepalive, _ = time.ParseDuration(strconv.FormatInt(int64(node.PersistentKeepalive), 10) + "s")
 		}
 		}
-		proxyStatus := peer.Proxy
+
 		if peer.IsServer == "yes" {
 		if peer.IsServer == "yes" {
 			proxyStatus = servercfg.IsProxyEnabled()
 			proxyStatus = servercfg.IsProxyEnabled()
 		}
 		}

+ 1 - 0
models/node.go

@@ -64,6 +64,7 @@ type Node struct {
 	NetworkSettings         Network              `json:"networksettings" bson:"networksettings" yaml:"networksettings" validate:"-"`
 	NetworkSettings         Network              `json:"networksettings" bson:"networksettings" yaml:"networksettings" validate:"-"`
 	ListenPort              int32                `json:"listenport" bson:"listenport" yaml:"listenport" validate:"omitempty,numeric,min=1024,max=65535"`
 	ListenPort              int32                `json:"listenport" bson:"listenport" yaml:"listenport" validate:"omitempty,numeric,min=1024,max=65535"`
 	LocalListenPort         int32                `json:"locallistenport" bson:"locallistenport" yaml:"locallistenport" validate:"numeric,min=0,max=65535"`
 	LocalListenPort         int32                `json:"locallistenport" bson:"locallistenport" yaml:"locallistenport" validate:"numeric,min=0,max=65535"`
+	ProxyListenPort         int32                `json:"proxy_listen_port" bson:"proxy_listen_port" yaml:"proxy_listen_port" validate:"numeric,min=0,max=65535"`
 	PublicKey               string               `json:"publickey" bson:"publickey" yaml:"publickey" validate:"required,base64"`
 	PublicKey               string               `json:"publickey" bson:"publickey" yaml:"publickey" validate:"required,base64"`
 	Endpoint                string               `json:"endpoint" bson:"endpoint" yaml:"endpoint" validate:"required,ip"`
 	Endpoint                string               `json:"endpoint" bson:"endpoint" yaml:"endpoint" validate:"required,ip"`
 	PostUp                  string               `json:"postup" bson:"postup" yaml:"postup"`
 	PostUp                  string               `json:"postup" bson:"postup" yaml:"postup"`

+ 2 - 0
servercfg/serverconf.go

@@ -41,6 +41,8 @@ func GetServerConfig() config.ServerConfig {
 	cfg.AllowedOrigin = GetAllowedOrigin()
 	cfg.AllowedOrigin = GetAllowedOrigin()
 	cfg.RestBackend = "off"
 	cfg.RestBackend = "off"
 	cfg.NodeID = GetNodeID()
 	cfg.NodeID = GetNodeID()
+	cfg.StunHost = GetStunAddr()
+	cfg.StunPort = GetStunPort()
 	if IsRestBackend() {
 	if IsRestBackend() {
 		cfg.RestBackend = "on"
 		cfg.RestBackend = "on"
 	}
 	}

+ 1 - 1
stun-server/stun-server.go

@@ -153,7 +153,7 @@ func Start(wg *sync.WaitGroup) {
 		<-quit
 		<-quit
 		cancel()
 		cancel()
 	}()
 	}()
-	normalized := normalize(fmt.Sprintf("0.0.0.0:%s", servercfg.GetStunPort()))
+	normalized := normalize(fmt.Sprintf("0.0.0.0:%d", servercfg.GetStunPort()))
 	logger.Log(0, "netmaker-stun listening on", normalized, "via udp")
 	logger.Log(0, "netmaker-stun listening on", normalized, "via udp")
 	err := listenUDPAndServe(ctx, "udp", normalized)
 	err := listenUDPAndServe(ctx, "udp", normalized)
 	if err != nil {
 	if err != nil {