diff --git a/service/OneService.cpp b/service/OneService.cpp index dd03814d8..5ba0eb4b4 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -745,6 +745,7 @@ public: // Time we last received a packet from a global address uint64_t _lastDirectReceiveFromGlobal; #ifdef ZT_TCP_FALLBACK_RELAY + InetAddress _fallbackRelayAddress; uint64_t _lastSendToGlobalV4; #endif @@ -808,6 +809,7 @@ public: ,_udpPortPickerCounter(0) ,_lastDirectReceiveFromGlobal(0) #ifdef ZT_TCP_FALLBACK_RELAY + , _fallbackRelayAddress(ZT_TCP_FALLBACK_RELAY) ,_lastSendToGlobalV4(0) #endif ,_lastRestart(0) @@ -2131,6 +2133,9 @@ div.icon {\ // bondingPolicy cannot be used with allowTcpFallbackRelay _allowTcpFallbackRelay = OSUtils::jsonBool(settings["allowTcpFallbackRelay"],true) && !(_node->bondController()->inUse()); +#ifdef ZT_TCP_FALLBACK_RELAY + _fallbackRelayAddress = InetAddress(OSUtils::jsonString("tcpFallbackRelay", ZT_TCP_FALLBACK_RELAY).c_str()); +#endif _primaryPort = (unsigned int)OSUtils::jsonInt(settings["primaryPort"],(uint64_t)_primaryPort) & 0xffff; _allowSecondaryPort = OSUtils::jsonBool(settings["allowSecondaryPort"],true); _secondaryPort = (unsigned int)OSUtils::jsonInt(settings["secondaryPort"],0); @@ -3142,7 +3147,7 @@ div.icon {\ phyOnTcpWritable(_tcpFallbackTunnel->sock,&tmpptr); } } else if (((now - _lastSendToGlobalV4) < ZT_TCP_FALLBACK_AFTER)&&((now - _lastSendToGlobalV4) > (ZT_PING_CHECK_INVERVAL / 2))) { - const InetAddress addr(ZT_TCP_FALLBACK_RELAY); + const InetAddress addr(_fallbackRelayAddress); TcpConnection *tc = new TcpConnection(); { Mutex::Lock _l(_tcpConnections_m);