# Copyright (C) 2014 INRIA
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation;
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
import base64
-import cPickle
+import pickle
import errno
import logging
import os
from optparse import OptionParser, SUPPRESS_HELP
-from ns3wrapper import NS3Wrapper
+from nepi.resources.ns3.ns3wrapper import NS3Wrapper
class NS3WrapperMessage:
CREATE = "CREATE"
except:
pass
-def recv_msg(conn, ns3_wrapper):
+def recv_msg(conn):
msg = []
chunk = ''
while '\n' not in chunk:
try:
chunk = conn.recv(1024)
- except (OSError, socket.error), e:
- import traceback
- err = traceback.format_exc()
- ns3_wrapper.logger.error(err)
-
+ except (OSError, socket.error) as e:
if e[0] != errno.EINTR:
raise
# Ignore eintr errors
def decode(item):
item = base64.b64decode(item).rstrip()
- return cPickle.loads(item)
+ return pickle.loads(item)
- decoded = map(decode, msg.split("|"))
+ decoded = [ decode(x) for x in msg.split("|") ]
# decoded message
dmsg_type = decoded.pop(0)
return (dmsg_type, dargs, dkwargs)
def send_reply(conn, reply):
- encoded = base64.b64encode(cPickle.dumps(reply))
+ encoded = base64.b64encode(pickle.dumps(reply))
conn.send("%s\n" % encoded)
def get_options():
while not stop:
conn, addr = sock.accept()
- conn.settimeout(5)
+ conn.settimeout(30)
try:
- (msg_type, args, kwargs) = recv_msg(conn, ns3_wrapper)
- except socket.timeout, e:
+ (msg_type, args, kwargs) = recv_msg(conn)
+ except socket.timeout as e:
# Ingore time-out
close_socket(conn)
continue