From 8f3f705d0e930048ac6a2ed89a9dcacd4c88b8f4 Mon Sep 17 00:00:00 2001 From: Ken Chiang Date: Tue, 27 Jan 2015 11:25:34 -0800 Subject: [PATCH 1/2] Allow controller host to be an IPv6 address. --- src/python/oftest/controller.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/python/oftest/controller.py b/src/python/oftest/controller.py index 5289fdd4f..81d26dc1b 100644 --- a/src/python/oftest/controller.py +++ b/src/python/oftest/controller.py @@ -160,11 +160,26 @@ def __init__(self, switch=None, host='127.0.0.1', port=6653, max_pkts=1024): if self.passive: self.logger.info("Create/listen at " + self.host + ":" + str(self.port)) - self.listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.listen_socket.setsockopt(socket.SOL_SOCKET, - socket.SO_REUSEADDR, 1) - self.listen_socket.bind((self.host, self.port)) - self.listen_socket.listen(LISTEN_QUEUE_SIZE) + try: + ai = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, + socket.SOCK_STREAM, 0, + socket.AI_PASSIVE) + except: + raise Exception("Could not get address info for " + + self.host + ":" + str(self.port)) + + try: + # Use first returned addrinfo + (family, socktype, proto, name, sockaddr) = ai[0] + self.listen_socket = socket.socket(family, socktype) + self.listen_socket.setsockopt(socket.SOL_SOCKET, + socket.SO_REUSEADDR, 1) + self.listen_socket.bind(sockaddr) + self.listen_socket.listen(LISTEN_QUEUE_SIZE) + except Exception as e: + raise Exception("Could not set up socket for " + + self.host + ":" + str(self.port) + ': ' + + str(e)) def filter_packet(self, rawmsg, hdr): """ From bf84c338b696d4278d0abd1c4782a6284363d1c9 Mon Sep 17 00:00:00 2001 From: Ken Chiang Date: Tue, 27 Jan 2015 12:52:27 -0800 Subject: [PATCH 2/2] Strip off exception handling so backtrace can be obtained. --- src/python/oftest/controller.py | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/src/python/oftest/controller.py b/src/python/oftest/controller.py index 81d26dc1b..acbe3fced 100644 --- a/src/python/oftest/controller.py +++ b/src/python/oftest/controller.py @@ -160,26 +160,15 @@ def __init__(self, switch=None, host='127.0.0.1', port=6653, max_pkts=1024): if self.passive: self.logger.info("Create/listen at " + self.host + ":" + str(self.port)) - try: - ai = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, - socket.SOCK_STREAM, 0, - socket.AI_PASSIVE) - except: - raise Exception("Could not get address info for " + - self.host + ":" + str(self.port)) - - try: - # Use first returned addrinfo - (family, socktype, proto, name, sockaddr) = ai[0] - self.listen_socket = socket.socket(family, socktype) - self.listen_socket.setsockopt(socket.SOL_SOCKET, - socket.SO_REUSEADDR, 1) - self.listen_socket.bind(sockaddr) - self.listen_socket.listen(LISTEN_QUEUE_SIZE) - except Exception as e: - raise Exception("Could not set up socket for " + - self.host + ":" + str(self.port) + ': ' + - str(e)) + ai = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, + socket.SOCK_STREAM, 0, socket.AI_PASSIVE) + # Use first returned addrinfo + (family, socktype, proto, name, sockaddr) = ai[0] + self.listen_socket = socket.socket(family, socktype) + self.listen_socket.setsockopt(socket.SOL_SOCKET, + socket.SO_REUSEADDR, 1) + self.listen_socket.bind(sockaddr) + self.listen_socket.listen(LISTEN_QUEUE_SIZE) def filter_packet(self, rawmsg, hdr): """