diff options
author | Olivier Gayot <duskcoder@gmail.com> | 2015-06-04 20:14:08 +0100 |
---|---|---|
committer | Olivier Gayot <duskcoder@gmail.com> | 2015-06-04 20:14:08 +0100 |
commit | 2d93787b926cbfe1e9b33e66e1900613d320b090 (patch) | |
tree | e153c433729c95d09d786fd29b0399aedf8c88c5 | |
parent | c5f0a0b71a9f287006868da2e2209b0622164812 (diff) |
handle the disconnection of the clients
when a client disconnects, we must not try to send him a message since
its socket is destroyed.
However, a race condition can still probably occur if a client is
disconnected during the handling of a request which leads to a
notification.
Signed-off-by: Olivier Gayot <duskcoder@gmail.com>
-rw-r--r-- | CAO_Client.py | 4 | ||||
-rwxr-xr-x | server.py | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/CAO_Client.py b/CAO_Client.py index b9da42a..bdcc000 100644 --- a/CAO_Client.py +++ b/CAO_Client.py @@ -61,3 +61,7 @@ class CAO_Client(): def send_notification(self, message): self.socket.send_message(self.handler, message) + + def disconnect(self): + if self.player is not None: + self.player.client = None @@ -13,7 +13,7 @@ def new_client_handler(client, server): client['cao_client'] = CAO_Client.CAO_Client(server, client, game_manager) def client_left_handler(client, server): - pass + client['cao_client'].disconnect(); def message_received_handler(client, server, message): try: |