From 4ff135e196663e8b5cd360643d4448496d6fca0d Mon Sep 17 00:00:00 2001 From: afeiszli Date: Wed, 1 Mar 2023 17:10:36 -0500 Subject: [PATCH] adding StunList --- compose/docker-compose-emqx.yml | 1 + compose/docker-compose.ee.yml | 1 + compose/docker-compose.yml | 3 +- config/config.go | 84 ++++++++++++++++----------------- models/structs.go | 2 +- servercfg/serverconf.go | 18 +++---- 6 files changed, 55 insertions(+), 54 deletions(-) diff --git a/compose/docker-compose-emqx.yml b/compose/docker-compose-emqx.yml index b599b009..a99c8266 100644 --- a/compose/docker-compose-emqx.yml +++ b/compose/docker-compose-emqx.yml @@ -14,6 +14,7 @@ services: EMQX_REST_ENDPOINT: "http://mq:18083" SERVER_NAME: "NETMAKER_BASE_DOMAIN" STUN_DOMAIN: "stun.NETMAKER_BASE_DOMAIN" + STUN_LIST: "stun.NETMAKER_BASE_DOMAIN:3478,stun1.netmaker.io:3478,stun2.netmaker.io:3478,stun1.l.google.com:19302,stun2.l.google.com:19302" SERVER_HOST: "SERVER_PUBLIC_IP" SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443" COREDNS_ADDR: "SERVER_PUBLIC_IP" diff --git a/compose/docker-compose.ee.yml b/compose/docker-compose.ee.yml index d5567772..3949702b 100644 --- a/compose/docker-compose.ee.yml +++ b/compose/docker-compose.ee.yml @@ -14,6 +14,7 @@ services: EMQX_REST_ENDPOINT: "http://mq:18083" SERVER_NAME: "NETMAKER_BASE_DOMAIN" STUN_DOMAIN: "stun.NETMAKER_BASE_DOMAIN" + STUN_LIST: "stun.NETMAKER_BASE_DOMAIN:3478,stun1.netmaker.io:3478,stun2.netmaker.io:3478,stun1.l.google.com:19302,stun2.l.google.com:19302" SERVER_HOST: "SERVER_PUBLIC_IP" SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443" COREDNS_ADDR: "SERVER_PUBLIC_IP" diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index a9937df6..a6b803eb 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -11,7 +11,7 @@ services: environment: BROKER_ENDPOINT: "wss://broker.NETMAKER_BASE_DOMAIN" SERVER_NAME: "NETMAKER_BASE_DOMAIN" - STUN_DOMAIN: "stun.NETMAKER_BASE_DOMAIN" + STUN_LIST: "stun.NETMAKER_BASE_DOMAIN:3478,stun1.netmaker.io:3478,stun2.netmaker.io:3478,stun1.l.google.com:19302,stun2.l.google.com:19302" SERVER_HOST: "SERVER_PUBLIC_IP" SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443" COREDNS_ADDR: "SERVER_PUBLIC_IP" @@ -24,7 +24,6 @@ services: DATABASE: "sqlite" NODE_ID: "netmaker-server-1" SERVER_BROKER_ENDPOINT: "ws://mq:1883" - STUN_PORT: "3478" VERBOSITY: "1" MQ_PASSWORD: "REPLACE_MQ_PASSWORD" MQ_USERNAME: "REPLACE_MQ_USERNAME" diff --git a/config/config.go b/config/config.go index e2c148d6..da3c52ca 100644 --- a/config/config.go +++ b/config/config.go @@ -32,48 +32,48 @@ type EnvironmentConfig struct { // ServerConfig - server conf struct type ServerConfig struct { - CoreDNSAddr string `yaml:"corednsaddr"` - APIConnString string `yaml:"apiconn"` - APIHost string `yaml:"apihost"` - APIPort string `yaml:"apiport"` - Broker string `yam:"broker"` - ServerBrokerEndpoint string `yaml:"serverbrokerendpoint"` - BrokerType string `yaml:"brokertype"` - EmqxRestEndpoint string `yaml:"emqxrestendpoint"` - MasterKey string `yaml:"masterkey"` - DNSKey string `yaml:"dnskey"` - AllowedOrigin string `yaml:"allowedorigin"` - NodeID string `yaml:"nodeid"` - RestBackend string `yaml:"restbackend"` - MessageQueueBackend string `yaml:"messagequeuebackend"` - DNSMode string `yaml:"dnsmode"` - DisableRemoteIPCheck string `yaml:"disableremoteipcheck"` - Version string `yaml:"version"` - SQLConn string `yaml:"sqlconn"` - Platform string `yaml:"platform"` - Database string `yaml:"database"` - Verbosity int32 `yaml:"verbosity"` - AuthProvider string `yaml:"authprovider"` - OIDCIssuer string `yaml:"oidcissuer"` - ClientID string `yaml:"clientid"` - ClientSecret string `yaml:"clientsecret"` - FrontendURL string `yaml:"frontendurl"` - DisplayKeys string `yaml:"displaykeys"` - AzureTenant string `yaml:"azuretenant"` - Telemetry string `yaml:"telemetry"` - HostNetwork string `yaml:"hostnetwork"` - Server string `yaml:"server"` - PublicIPService string `yaml:"publicipservice"` - MQPassword string `yaml:"mqpassword"` - MQUserName string `yaml:"mqusername"` - MetricsExporter string `yaml:"metrics_exporter"` - BasicAuth string `yaml:"basic_auth"` - LicenseValue string `yaml:"license_value"` - NetmakerAccountID string `yaml:"netmaker_account_id"` - IsEE string `yaml:"is_ee"` - StunPort int `yaml:"stun_port"` - StunHost string `yaml:"stun_host"` - Proxy string `yaml:"proxy"` + CoreDNSAddr string `yaml:"corednsaddr"` + APIConnString string `yaml:"apiconn"` + APIHost string `yaml:"apihost"` + APIPort string `yaml:"apiport"` + Broker string `yam:"broker"` + ServerBrokerEndpoint string `yaml:"serverbrokerendpoint"` + BrokerType string `yaml:"brokertype"` + EmqxRestEndpoint string `yaml:"emqxrestendpoint"` + MasterKey string `yaml:"masterkey"` + DNSKey string `yaml:"dnskey"` + AllowedOrigin string `yaml:"allowedorigin"` + NodeID string `yaml:"nodeid"` + RestBackend string `yaml:"restbackend"` + MessageQueueBackend string `yaml:"messagequeuebackend"` + DNSMode string `yaml:"dnsmode"` + DisableRemoteIPCheck string `yaml:"disableremoteipcheck"` + Version string `yaml:"version"` + SQLConn string `yaml:"sqlconn"` + Platform string `yaml:"platform"` + Database string `yaml:"database"` + Verbosity int32 `yaml:"verbosity"` + AuthProvider string `yaml:"authprovider"` + OIDCIssuer string `yaml:"oidcissuer"` + ClientID string `yaml:"clientid"` + ClientSecret string `yaml:"clientsecret"` + FrontendURL string `yaml:"frontendurl"` + DisplayKeys string `yaml:"displaykeys"` + AzureTenant string `yaml:"azuretenant"` + Telemetry string `yaml:"telemetry"` + HostNetwork string `yaml:"hostnetwork"` + Server string `yaml:"server"` + PublicIPService string `yaml:"publicipservice"` + MQPassword string `yaml:"mqpassword"` + MQUserName string `yaml:"mqusername"` + MetricsExporter string `yaml:"metrics_exporter"` + BasicAuth string `yaml:"basic_auth"` + LicenseValue string `yaml:"license_value"` + NetmakerAccountID string `yaml:"netmaker_account_id"` + IsEE string `yaml:"is_ee"` + StunPort int `yaml:"stun_port"` + StunList string `yaml:"stun_list"` + Proxy string `yaml:"proxy"` } // SQLConfig - Generic SQL Config diff --git a/models/structs.go b/models/structs.go index d3594171..e4194eaa 100644 --- a/models/structs.go +++ b/models/structs.go @@ -235,7 +235,7 @@ type ServerConfig struct { Broker string `yaml:"broker"` Is_EE bool `yaml:"isee"` StunPort int `yaml:"stun_port"` - StunHost string `yaml:"stun_host"` + StunList string `yaml:"stun_list"` TrafficKey []byte `yaml:"traffickey"` } diff --git a/servercfg/serverconf.go b/servercfg/serverconf.go index 3685af87..6c7459d5 100644 --- a/servercfg/serverconf.go +++ b/servercfg/serverconf.go @@ -43,8 +43,8 @@ func GetServerConfig() config.ServerConfig { cfg.AllowedOrigin = GetAllowedOrigin() cfg.RestBackend = "off" cfg.NodeID = GetNodeID() - cfg.StunHost = GetStunAddr() cfg.StunPort = GetStunPort() + cfg.StunList = GetStunList() cfg.BrokerType = GetBrokerType() cfg.EmqxRestEndpoint = GetEmqxRestEndpoint() if IsRestBackend() { @@ -99,8 +99,8 @@ func GetServerInfo() models.ServerConfig { } cfg.Version = GetVersion() cfg.Is_EE = Is_EE - cfg.StunHost = GetStunAddr() cfg.StunPort = GetStunPort() + cfg.StunList = GetStunList() return cfg } @@ -178,14 +178,14 @@ func GetAPIPort() string { } // GetStunAddr - gets the stun host address -func GetStunAddr() string { - stunAddr := "" - if os.Getenv("STUN_DOMAIN") != "" { - stunAddr = os.Getenv("STUN_DOMAIN") - } else if config.Config.Server.StunHost != "" { - stunAddr = config.Config.Server.StunHost +func GetStunList() string { + stunList := "stun1.netmaker.io:3478,stun2.netmaker.io:3478" + if os.Getenv("STUN_LIST") != "" { + stunList = os.Getenv("STUN_LIST") + } else if config.Config.Server.StunList != "" { + stunList = config.Config.Server.StunList } - return stunAddr + return stunList } // GetCoreDNSAddr - gets the core dns address