summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstanzgy <stanzgy@gmail.com>2015-05-05 15:18:47 +0800
committerstanzgy <stanzgy@gmail.com>2015-05-05 15:27:33 +0800
commitc09a295c403e19811bf748d88155b368412c31bd (patch)
tree7331321d71d542904e849afe4e45e516b575e86b
parent50936be342e3927fd05dec6b2926f38fb443a872 (diff)
Fixed SO_REUSEPORT not supported by Linux <3.9
Notes
Notes (review): Verified+2: Jenkins Code-Review+2: Kiall Mac Innes <kiall@macinnes.ie> Code-Review+2: Tim Simmons <tim.simmons@rackspace.com> Workflow+1: Tim Simmons <tim.simmons@rackspace.com> Submitted-by: Jenkins Submitted-at: Wed, 06 May 2015 14:51:00 +0000 Reviewed-on: https://review.openstack.org/180045 Project: openstack/designate Branch: refs/heads/master
-rw-r--r--designate/dnsutils.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/designate/dnsutils.py b/designate/dnsutils.py
index f3c0fbb..460de7f 100644
--- a/designate/dnsutils.py
+++ b/designate/dnsutils.py
@@ -247,8 +247,14 @@ def bind_tcp(host, port, tcp_backlog):
247 {'host': host, 'port': port}) 247 {'host': host, 'port': port})
248 sock_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 248 sock_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
249 sock_tcp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 249 sock_tcp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
250 sock_tcp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
251 sock_tcp.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) 250 sock_tcp.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
251
252 # NOTE: Linux supports socket.SO_REUSEPORT only in 3.9 and later releases.
253 try:
254 sock_tcp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
255 except Exception:
256 pass
257
252 sock_tcp.setblocking(True) 258 sock_tcp.setblocking(True)
253 sock_tcp.bind((host, port)) 259 sock_tcp.bind((host, port))
254 sock_tcp.listen(tcp_backlog) 260 sock_tcp.listen(tcp_backlog)
@@ -262,7 +268,13 @@ def bind_udp(host, port):
262 {'host': host, 'port': port}) 268 {'host': host, 'port': port})
263 sock_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 269 sock_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
264 sock_udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 270 sock_udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
265 sock_udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) 271
272 # NOTE: Linux supports socket.SO_REUSEPORT only in 3.9 and later releases.
273 try:
274 sock_udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
275 except Exception:
276 pass
277
266 sock_udp.setblocking(True) 278 sock_udp.setblocking(True)
267 sock_udp.bind((host, port)) 279 sock_udp.bind((host, port))
268 280