summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ryu/lib/hub.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/ryu/lib/hub.py b/ryu/lib/hub.py
index a5ac50a6..182fabf8 100644
--- a/ryu/lib/hub.py
+++ b/ryu/lib/hub.py
@@ -17,6 +17,8 @@
import logging
import os
+import netaddr
+
# We don't bother to use cfg.py because monkey patch needs to be
# called very early. Instead, we use an environment variable to
@@ -110,11 +112,19 @@ if HUB_TYPE == 'eventlet':
assert backlog is None
assert spawn == 'default'
- if ':' in listen_info[0]:
+ if netaddr.valid_ipv4(listen_info[0]):
+ self.server = eventlet.listen(listen_info)
+ elif netaddr.valid_ipv6(listen_info[0]):
self.server = eventlet.listen(listen_info,
family=socket.AF_INET6)
+ elif os.path.isdir(os.path.dirname(listen_info[0])):
+ # Case for Unix domain socket
+ self.server = eventlet.listen(listen_info[0],
+ family=socket.AF_UNIX)
else:
- self.server = eventlet.listen(listen_info)
+ raise ValueError(
+ 'Invalid listen_info: %s' % str(listen_info))
+
if ssl_args:
def wrap_and_handle(sock, addr):
ssl_args.setdefault('server_side', True)