From 2d93787b926cbfe1e9b33e66e1900613d320b090 Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Thu, 4 Jun 2015 20:14:08 +0100 Subject: 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 --- CAO_Client.py | 4 ++++ server.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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 diff --git a/server.py b/server.py index cdd8abf..9a9e75a 100755 --- a/server.py +++ b/server.py @@ -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: -- cgit v1.2.3