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:  | 
