Simplify zuul_console port binding logic
Now that osic-cloud1 is providing IPv6 only, we need to update zuul_console to also include ipv6 support. Previously, our logic would only bind to 1 address, even if the host supported both ipv4/ipv6. With help from fungi, we can simplify our logic binding to both ipv4 and ipv6 at the same time. Change-Id: Ia0286e017f14eab77c5d60333ee092c87bb1a84b Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
17262fd512
commit
1bfb002d70
|
@ -60,28 +60,13 @@ class Console(object):
|
|||
class Server(object):
|
||||
def __init__(self, path, port):
|
||||
self.path = path
|
||||
s = None
|
||||
for res in socket.getaddrinfo(None, port, socket.AF_UNSPEC,
|
||||
socket.SOCK_STREAM, 0,
|
||||
socket.AI_PASSIVE):
|
||||
af, socktype, proto, canonname, sa = res
|
||||
try:
|
||||
s = socket.socket(af, socktype, proto)
|
||||
s.setsockopt(socket.SOL_SOCKET,
|
||||
socket.SO_REUSEADDR, 1)
|
||||
except socket.error:
|
||||
s = None
|
||||
continue
|
||||
try:
|
||||
s.bind(sa)
|
||||
s.listen(1)
|
||||
except socket.error:
|
||||
s.close()
|
||||
s = None
|
||||
continue
|
||||
break
|
||||
if s is None:
|
||||
sys.exit(1)
|
||||
|
||||
s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
|
||||
s.setsockopt(socket.SOL_SOCKET,
|
||||
socket.SO_REUSEADDR, 1)
|
||||
s.bind(('::', port))
|
||||
s.listen(1)
|
||||
|
||||
self.socket = s
|
||||
|
||||
def accept(self):
|
||||
|
|
Loading…
Reference in New Issue