Allow controller host to be an IPv6 address.
diff --git a/src/python/oftest/controller.py b/src/python/oftest/controller.py
index 5289fdd..81d26dc 100644
--- a/src/python/oftest/controller.py
+++ b/src/python/oftest/controller.py
@@ -160,11 +160,26 @@
         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):
         """