From aa88e26ae289dd86610141b6d9f9103b53494f4d Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Fri, 12 Dec 2014 20:38:06 +0100 Subject: [PATCH] Fixing socket error in ns3 server --- src/nepi/resources/ns3/ns3dceapplication.py | 3 +-- src/nepi/resources/ns3/ns3server.py | 7 +++++-- src/nepi/resources/ns3/ns3wrapper.py | 3 +++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/nepi/resources/ns3/ns3dceapplication.py b/src/nepi/resources/ns3/ns3dceapplication.py index 886679e4..d4ae7eb1 100644 --- a/src/nepi/resources/ns3/ns3dceapplication.py +++ b/src/nepi/resources/ns3/ns3dceapplication.py @@ -198,9 +198,8 @@ class NS3BaseDceApplication(NS3BaseApplication): self.ec.schedule(self.reschedule_delay, self.start) else: is_app_running = self.simulation.invoke(self.uuid, "isAppRunning") - is_simu_finished = self.simulation.invoke(SIMULATOR_UUID, "isFinished") - if is_app_running or is_simu_finished: + if is_app_running or self.simulation.state > Resource.STARTED: super(NS3BaseApplication, self).do_start() self._start_time = self.simulation.start_time else: diff --git a/src/nepi/resources/ns3/ns3server.py b/src/nepi/resources/ns3/ns3server.py index 30d5baf4..c4bcc5ac 100644 --- a/src/nepi/resources/ns3/ns3server.py +++ b/src/nepi/resources/ns3/ns3server.py @@ -207,7 +207,7 @@ def run_server(socket_name, level = logging.INFO, ns_log = None, if not msg_type: # Ignore - connection lost - break + continue if msg_type == NS3WrapperMessage.SHUTDOWN: stop = True @@ -223,7 +223,10 @@ def run_server(socket_name, level = logging.INFO, ns_log = None, try: send_reply(conn, reply) except socket.error: - break + import traceback + err = traceback.format_exc() + ns3_wrapper.logger.error(err) + raise ns3_wrapper.logger.info("EXITING...") diff --git a/src/nepi/resources/ns3/ns3wrapper.py b/src/nepi/resources/ns3/ns3wrapper.py index c0f27beb..d8fa96fe 100644 --- a/src/nepi/resources/ns3/ns3wrapper.py +++ b/src/nepi/resources/ns3/ns3wrapper.py @@ -586,6 +586,9 @@ class NS3Wrapper(object): if now.IsZero(): return False + if self.ns3.Simulator.IsFinished(): + return False + app = self.get_object(uuid) stop_time_value = self.ns3.TimeValue() app.GetAttribute("StopTime", stop_time_value) -- 2.43.0