From 3adb47efde7365e00208bd3dcb9b6bcb8641b444 Mon Sep 17 00:00:00 2001 From: Juhani Haverinen Date: Wed, 3 Aug 2016 01:19:08 +0300 Subject: [PATCH] Do SO_REUSEADDR --- neomi.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/neomi.py b/neomi.py index 3e02971..4961549 100644 --- a/neomi.py +++ b/neomi.py @@ -62,12 +62,17 @@ def bind(port, backlog = 1): s = socket.socket(af, socktype, proto) except OSError: continue + # Make IPv6 socket only bind on IPv6 address, otherwise may clash with IPv4 and not get enabled if af == socket.AF_INET6: try: s.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) except OSError: pass + + # Set SO_REUSEADDR for less painful server restarting + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + try: s.bind(sa) s.listen(backlog) @@ -79,7 +84,6 @@ def bind(port, backlog = 1): return sockets - # drop_privileges() # Drops set[ug]id, die()s if unsuccesful def drop_privileges():