Configurable relay address with env variable

This commit is contained in:
Zoltán Papp
2024-06-14 15:43:18 +02:00
parent 64f949abbb
commit a7760bf0a7
2 changed files with 23 additions and 6 deletions

View File

@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"net"
"os"
"runtime"
"runtime/debug"
"strings"
@@ -245,10 +246,13 @@ func (c *ConnectClient) run(
c.statusRecorder.MarkSignalConnected()
relayManager := relayClient.NewManager(engineCtx, loginResp.GetWiretrusteeConfig().GetRelayAddress(), myPrivateKey.PublicKey().String())
if err = relayManager.Serve(); err != nil {
log.Error(err)
return wrapErr(err)
relayAddress := relayAddress(loginResp)
relayManager := relayClient.NewManager(engineCtx, relayAddress, myPrivateKey.PublicKey().String())
if relayAddress != "" {
if err = relayManager.Serve(); err != nil {
log.Error(err)
return wrapErr(err)
}
}
peerConfig := loginResp.GetPeerConfig()
@@ -304,6 +308,17 @@ func (c *ConnectClient) run(
return nil
}
func relayAddress(resp *mgmProto.LoginResponse) string {
if envRelay := os.Getenv("NB_RELAY_ADDRESS"); envRelay != "" {
return envRelay
}
if resp.GetWiretrusteeConfig().GetRelayAddress() != "" {
return resp.GetWiretrusteeConfig().GetRelayAddress()
}
return ""
}
func (c *ConnectClient) Engine() *Engine {
var e *Engine
c.engineMutex.Lock()