diff --git a/direct/src/distributed/ClientRepository.py b/direct/src/distributed/ClientRepository.py index 6d1749111c..45b597cadb 100644 --- a/direct/src/distributed/ClientRepository.py +++ b/direct/src/distributed/ClientRepository.py @@ -70,6 +70,7 @@ class ClientRepository(DirectObject.DirectObject): return Task.cont def readerPollOnce(self): + self.ensureValidConnection() availGetVal = self.qcr.dataAvailable() if availGetVal: #print "Client: Incoming message!" @@ -81,6 +82,14 @@ class ClientRepository(DirectObject.DirectObject): ClientRepository.notify.warning("getData returned false") return availGetVal + def ensureValidConnection(self): + # Was the connection reset? + if self.qcm.resetConnectionAvailable(): + resetConnectionPointer = PointerToConnection() + if self.qcm.getResetConnection(resetConnectionPointer): + self.fsm.request("noConnection") + return None + def handleDatagram(self, datagram): # This class is meant to be pure virtual, and any classes that # inherit from it need to make their own handleDatagram method