From 4762aa96c7f41a86d919db6dac0feca2c6ca8e16 Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Sun, 14 Dec 2014 16:43:49 +0100 Subject: [PATCH] Fixing NS3 server --- src/nepi/resources/ns3/ns3server.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/nepi/resources/ns3/ns3server.py b/src/nepi/resources/ns3/ns3server.py index 43e0d5f5..5f756ae6 100644 --- a/src/nepi/resources/ns3/ns3server.py +++ b/src/nepi/resources/ns3/ns3server.py @@ -98,11 +98,17 @@ def handle_message(ns3_wrapper, msg_type, args, kwargs): return "FLUSHED" -def create_socket(socket_name): +def open_socket(socket_name): sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.bind(socket_name) return sock +def close_socket(sock): + try: + sock.close() + except: + pass + def recv_msg(conn): msg = [] chunk = '' @@ -189,7 +195,7 @@ def run_server(socket_name, level = logging.INFO, ns_log = None, ns3_wrapper.logger.info("STARTING...") # create unix socket to receive instructions - sock = create_socket(socket_name) + sock = open_socket(socket_name) sock.listen(0) # wait for messages to arrive and process them @@ -203,10 +209,12 @@ def run_server(socket_name, level = logging.INFO, ns_log = None, (msg_type, args, kwargs) = recv_msg(conn) except socket.timeout, e: # Ingore time-out + close_socket(conn) continue if not msg_type: # Ignore - connection lost + close_socket(conn) continue if msg_type == NS3WrapperMessage.SHUTDOWN: @@ -218,6 +226,7 @@ def run_server(socket_name, level = logging.INFO, ns_log = None, import traceback err = traceback.format_exc() ns3_wrapper.logger.error(err) + close_socket(conn) raise try: @@ -226,12 +235,12 @@ def run_server(socket_name, level = logging.INFO, ns_log = None, import traceback err = traceback.format_exc() ns3_wrapper.logger.error(err) + close_socket(conn) raise - - try: - conn.close() - except: - pass + + close_socket(conn) + + close_socket(sock) ns3_wrapper.logger.info("EXITING...") -- 2.43.0