From 6650a97d8d03b2511e4132cb634a2bcd762ba409 Mon Sep 17 00:00:00 2001 From: YAMADA Hideki Date: Tue, 17 Jun 2014 13:42:22 +0900 Subject: [PATCH] ws_topology: Handle WebSocket disconnection Signed-off-by: YAMADA Hideki Signed-off-by: FUJITA Tomonori --- ryu/app/ws_topology.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ryu/app/ws_topology.py b/ryu/app/ws_topology.py index d2f4257c..7840da0d 100644 --- a/ryu/app/ws_topology.py +++ b/ryu/app/ws_topology.py @@ -34,6 +34,7 @@ $ sudo mn --controller=remote --topo linear,2 ... """ +from socket import error as SocketError from tinyrpc.exc import InvalidReplyError from ryu.app.wsgi import ( @@ -88,6 +89,9 @@ class WebSocketTopology(app_manager.RyuApp): rpc_server = rpc_client.get_proxy() try: getattr(rpc_server, func_name)(msg) + except SocketError: + self.logger.debug('WebSocket disconnected: %s' % rpc_client.ws) + self.rpc_clients.remove(rpc_client) except InvalidReplyError as e: self.logger.error(e)