diff --git a/agent/agent.go b/agent/agent.go index cbf45f1..2e465e0 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -151,7 +151,13 @@ func New(logger *logrus.Logger, version string) *Agent { natsProxyPort = "443" } - natsServer := fmt.Sprintf("wss://%s:%s", ac.APIURL, natsProxyPort) + // check if using nats standard tcp, otherwise use nats websockets by default + var natsServer string + if ac.NatsStandardPort != "" { + natsServer = fmt.Sprintf("tls://%s:%s", ac.APIURL, ac.NatsStandardPort) + } else { + natsServer = fmt.Sprintf("wss://%s:%s", ac.APIURL, natsProxyPort) + } return &Agent{ Hostname: info.Hostname, diff --git a/agent/agent_unix.go b/agent/agent_unix.go index 55c9d97..037b112 100644 --- a/agent/agent_unix.go +++ b/agent/agent_unix.go @@ -146,17 +146,18 @@ func NewAgentConfig() *rmm.AgentConfig { pk, _ := strconv.Atoi(agentpk) ret := &rmm.AgentConfig{ - BaseURL: viper.GetString("baseurl"), - AgentID: viper.GetString("agentid"), - APIURL: viper.GetString("apiurl"), - Token: viper.GetString("token"), - AgentPK: agentpk, - PK: pk, - Cert: viper.GetString("cert"), - Proxy: viper.GetString("proxy"), - CustomMeshDir: viper.GetString("meshdir"), - NatsProxyPath: viper.GetString("natsproxypath"), - NatsProxyPort: viper.GetString("natsproxyport"), + BaseURL: viper.GetString("baseurl"), + AgentID: viper.GetString("agentid"), + APIURL: viper.GetString("apiurl"), + Token: viper.GetString("token"), + AgentPK: agentpk, + PK: pk, + Cert: viper.GetString("cert"), + Proxy: viper.GetString("proxy"), + CustomMeshDir: viper.GetString("meshdir"), + NatsProxyPath: viper.GetString("natsproxypath"), + NatsProxyPort: viper.GetString("natsproxyport"), + NatsStandardPort: viper.GetString("natsstandardport"), } return ret } diff --git a/agent/agent_windows.go b/agent/agent_windows.go index 5b83535..70367c7 100644 --- a/agent/agent_windows.go +++ b/agent/agent_windows.go @@ -63,19 +63,21 @@ func NewAgentConfig() *rmm.AgentConfig { customMeshDir, _, _ := k.GetStringValue("MeshDir") natsProxyPath, _, _ := k.GetStringValue("NatsProxyPath") natsProxyPort, _, _ := k.GetStringValue("NatsProxyPort") + natsStandardPort, _, _ := k.GetStringValue("NatsStandardPort") return &rmm.AgentConfig{ - BaseURL: baseurl, - AgentID: agentid, - APIURL: apiurl, - Token: token, - AgentPK: agentpk, - PK: pk, - Cert: cert, - Proxy: proxy, - CustomMeshDir: customMeshDir, - NatsProxyPath: natsProxyPath, - NatsProxyPort: natsProxyPort, + BaseURL: baseurl, + AgentID: agentid, + APIURL: apiurl, + Token: token, + AgentPK: agentpk, + PK: pk, + Cert: cert, + Proxy: proxy, + CustomMeshDir: customMeshDir, + NatsProxyPath: natsProxyPath, + NatsProxyPort: natsProxyPort, + NatsStandardPort: natsStandardPort, } } diff --git a/shared/types.go b/shared/types.go index 683b85b..2038f5e 100644 --- a/shared/types.go +++ b/shared/types.go @@ -33,17 +33,18 @@ type ProcessMsg struct { } type AgentConfig struct { - BaseURL string - AgentID string - APIURL string - Token string - AgentPK string - PK int - Cert string - Proxy string - CustomMeshDir string - NatsProxyPath string - NatsProxyPort string + BaseURL string + AgentID string + APIURL string + Token string + AgentPK string + PK int + Cert string + Proxy string + CustomMeshDir string + NatsProxyPath string + NatsProxyPort string + NatsStandardPort string } type RunScriptResp struct {