|
|
|
|
@ -46,6 +46,7 @@ constexpr uint64_t ZtNetwork = 0xa84ac5c10a7ebb5f;
|
|
|
|
|
std::atomic_bool zt_network_ready(false); |
|
|
|
|
std::atomic_bool zt_node_online(false); |
|
|
|
|
std::atomic_bool zt_joined(false); |
|
|
|
|
std::atomic_uint zt_peers_ready(0); |
|
|
|
|
|
|
|
|
|
ankerl::unordered_dense::map<uint64_t, zts_event_t> ztPeerEvents; |
|
|
|
|
|
|
|
|
|
@ -142,6 +143,7 @@ void Callback(void *ptr)
|
|
|
|
|
Log("ZeroTier: ZTS_EVENT_NETWORK_READY_IP6, networkId={:x}", (unsigned long long)msg->network->net_id); |
|
|
|
|
zt_ip6setup(); |
|
|
|
|
zt_network_ready = true; |
|
|
|
|
zt_peers_ready = SDL_GetTicks(); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case ZTS_EVENT_ADDR_ADDED_IP6: |
|
|
|
|
@ -151,6 +153,8 @@ void Callback(void *ptr)
|
|
|
|
|
case ZTS_EVENT_PEER_DIRECT: |
|
|
|
|
case ZTS_EVENT_PEER_RELAY: |
|
|
|
|
ztPeerEvents[msg->peer->peer_id] = static_cast<zts_event_t>(msg->event_code); |
|
|
|
|
if (!zerotier_peers_ready()) |
|
|
|
|
zt_peers_ready = SDL_GetTicks(); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case ZTS_EVENT_PEER_PATH_DEAD: |
|
|
|
|
@ -166,6 +170,11 @@ bool zerotier_network_ready()
|
|
|
|
|
return zt_network_ready && zt_node_online; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool zerotier_peers_ready() |
|
|
|
|
{ |
|
|
|
|
return SDL_GetTicks() - zt_peers_ready >= 5000; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void zerotier_network_start() |
|
|
|
|
{ |
|
|
|
|
std::string configPath = paths::ConfigPath(); |
|
|
|
|
|