@@ -46,6 +46,7 @@ constexpr uint64_t ZtNetwork = 0xa84ac5c10a7ebb5f;
4646std::atomic_bool zt_network_ready (false );
4747std::atomic_bool zt_node_online (false );
4848std::atomic_bool zt_joined (false );
49+ std::atomic_uint zt_peers_ready (0 );
4950
5051ankerl::unordered_dense::map<uint64_t , zts_event_t > ztPeerEvents;
5152
@@ -142,6 +143,7 @@ void Callback(void *ptr)
142143 Log (" ZeroTier: ZTS_EVENT_NETWORK_READY_IP6, networkId={:x}" , (unsigned long long )msg->network ->net_id );
143144 zt_ip6setup ();
144145 zt_network_ready = true ;
146+ zt_peers_ready = SDL_GetTicks ();
145147 break ;
146148
147149 case ZTS_EVENT_ADDR_ADDED_IP6:
@@ -151,6 +153,8 @@ void Callback(void *ptr)
151153 case ZTS_EVENT_PEER_DIRECT:
152154 case ZTS_EVENT_PEER_RELAY:
153155 ztPeerEvents[msg->peer ->peer_id ] = static_cast <zts_event_t >(msg->event_code );
156+ if (!zerotier_peers_ready ())
157+ zt_peers_ready = SDL_GetTicks ();
154158 break ;
155159
156160 case ZTS_EVENT_PEER_PATH_DEAD:
@@ -166,6 +170,11 @@ bool zerotier_network_ready()
166170 return zt_network_ready && zt_node_online;
167171}
168172
173+ bool zerotier_peers_ready ()
174+ {
175+ return SDL_GetTicks () - zt_peers_ready >= 5000 ;
176+ }
177+
169178void zerotier_network_start ()
170179{
171180 std::string configPath = paths::ConfigPath ();
0 commit comments