diff options
author | IWASE Yusuke <iwase.yusuke0@gmail.com> | 2017-02-17 13:05:58 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2017-02-22 12:22:38 +0900 |
commit | 9efde1d2f52d976556934b4668bae06dddee3469 (patch) | |
tree | 2f6de0d0971b39a6b78c65f62c09b009fcdcbafd | |
parent | fd3bfb55dea8e45b07b7ca488476497fc7e8e817 (diff) |
hub: Enable StreamServer to listen Unix domain socket
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/lib/hub.py | 14 |
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) |