Rip out resolver and use anycast address instead. In the long term existing TCP proxy dies anyway. Fixes static build problem for old Linux versions.
This commit is contained in:
parent
9e488ce322
commit
ec0e8a9a43
5 changed files with 5 additions and 290 deletions
|
@ -43,7 +43,6 @@
|
|||
#include "../osdep/Thread.hpp"
|
||||
#include "../osdep/OSUtils.hpp"
|
||||
#include "../osdep/Http.hpp"
|
||||
#include "../osdep/BackgroundResolver.hpp"
|
||||
#include "../osdep/PortMapper.hpp"
|
||||
#include "../osdep/Binder.hpp"
|
||||
#include "../osdep/ManagedRoute.hpp"
|
||||
|
@ -136,9 +135,8 @@ namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
|
|||
// Path under ZT1 home for controller database if controller is enabled
|
||||
#define ZT_CONTROLLER_DB_PATH "controller.d"
|
||||
|
||||
// TCP fallback relay host -- geo-distributed using Amazon Route53 geo-aware DNS
|
||||
#define ZT_TCP_FALLBACK_RELAY "tcp-fallback.zerotier.com"
|
||||
#define ZT_TCP_FALLBACK_RELAY_PORT 443
|
||||
// TCP fallback relay (run by ZeroTier, Inc. -- this will eventually go away)
|
||||
#define ZT_TCP_FALLBACK_RELAY "204.80.128.1/443"
|
||||
|
||||
// Frequency at which we re-resolve the TCP fallback relay
|
||||
#define ZT_TCP_FALLBACK_RERESOLVE_DELAY 86400000
|
||||
|
@ -263,7 +261,6 @@ public:
|
|||
// begin member variables --------------------------------------------------
|
||||
|
||||
const std::string _homePath;
|
||||
BackgroundResolver _tcpFallbackResolver;
|
||||
EmbeddedNetworkController *_controller;
|
||||
Phy<OneServiceImpl *> _phy;
|
||||
Node *_node;
|
||||
|
@ -368,7 +365,6 @@ public:
|
|||
|
||||
OneServiceImpl(const char *hp,unsigned int port) :
|
||||
_homePath((hp) ? hp : ".")
|
||||
,_tcpFallbackResolver(ZT_TCP_FALLBACK_RELAY)
|
||||
,_controller((EmbeddedNetworkController *)0)
|
||||
,_phy(this,false,true)
|
||||
,_node((Node *)0)
|
||||
|
@ -710,7 +706,6 @@ public:
|
|||
uint64_t clockShouldBe = OSUtils::now();
|
||||
_lastRestart = clockShouldBe;
|
||||
uint64_t lastTapMulticastGroupCheck = 0;
|
||||
uint64_t lastTcpFallbackResolve = 0;
|
||||
uint64_t lastBindRefresh = 0;
|
||||
uint64_t lastUpdateCheck = clockShouldBe;
|
||||
uint64_t lastLocalInterfaceAddressCheck = (clockShouldBe - ZT_LOCAL_INTERFACE_CHECK_INTERVAL) + 15000; // do this in 15s to give portmapper time to configure and other things time to settle
|
||||
|
@ -765,11 +760,6 @@ public:
|
|||
dl = _nextBackgroundTaskDeadline;
|
||||
}
|
||||
|
||||
if ((now - lastTcpFallbackResolve) >= ZT_TCP_FALLBACK_RERESOLVE_DELAY) {
|
||||
lastTcpFallbackResolve = now;
|
||||
_tcpFallbackResolver.resolveNow();
|
||||
}
|
||||
|
||||
if ((_tcpFallbackTunnel)&&((now - _lastDirectReceiveFromGlobal) < (ZT_TCP_FALLBACK_AFTER / 2)))
|
||||
_phy.close(_tcpFallbackTunnel->sock);
|
||||
|
||||
|
@ -1617,16 +1607,9 @@ public:
|
|||
_tcpFallbackTunnel->writeBuf.append(reinterpret_cast<const char *>(reinterpret_cast<const void *>(&(reinterpret_cast<const struct sockaddr_in *>(addr)->sin_port))),2);
|
||||
_tcpFallbackTunnel->writeBuf.append((const char *)data,len);
|
||||
} else if (((now - _lastSendToGlobalV4) < ZT_TCP_FALLBACK_AFTER)&&((now - _lastSendToGlobalV4) > (ZT_PING_CHECK_INVERVAL / 2))) {
|
||||
std::vector<InetAddress> tunnelIps(_tcpFallbackResolver.get());
|
||||
if (tunnelIps.empty()) {
|
||||
if (!_tcpFallbackResolver.running())
|
||||
_tcpFallbackResolver.resolveNow();
|
||||
} else {
|
||||
bool connected = false;
|
||||
InetAddress addr(tunnelIps[(unsigned long)now % tunnelIps.size()]);
|
||||
addr.setPort(ZT_TCP_FALLBACK_RELAY_PORT);
|
||||
_phy.tcpConnect(reinterpret_cast<const struct sockaddr *>(&addr),connected);
|
||||
}
|
||||
bool connected = false;
|
||||
const InetAddress addr(ZT_TCP_FALLBACK_RELAY);
|
||||
_phy.tcpConnect(reinterpret_cast<const struct sockaddr *>(&addr),connected);
|
||||
}
|
||||
}
|
||||
_lastSendToGlobalV4 = now;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue