diff --git a/panda/src/pstatclient/pStatClient.cxx b/panda/src/pstatclient/pStatClient.cxx index 06e54f35b8..78c20d86bc 100644 --- a/panda/src/pstatclient/pStatClient.cxx +++ b/panda/src/pstatclient/pStatClient.cxx @@ -372,6 +372,11 @@ void PStatClient:: client_main_tick() { LightReMutexHolder holder(_lock); if (has_impl()) { + if (!_impl->client_is_connected()) { + client_disconnect(); + return; + } + _impl->client_main_tick(); MultiThingsByName::const_iterator ni = diff --git a/panda/src/pstatclient/pStatClientImpl.cxx b/panda/src/pstatclient/pStatClientImpl.cxx index 93988b7aa7..4031a18b7e 100644 --- a/panda/src/pstatclient/pStatClientImpl.cxx +++ b/panda/src/pstatclient/pStatClientImpl.cxx @@ -458,7 +458,7 @@ handle_server_control_message(const PStatServerControlMessage &message) { void PStatClientImpl:: connection_reset(const PT(Connection) &connection, bool) { if (connection == _tcp_connection) { - _client->client_disconnect(); + client_disconnect(); } else if (connection == _udp_connection) { pstats_cat.warning() << "Trouble sending UDP; switching to TCP only.\n";