diff options
| author | stanzgy <stanzgy@gmail.com> | 2015-05-05 15:18:47 +0800 |
|---|---|---|
| committer | stanzgy <stanzgy@gmail.com> | 2015-05-05 15:27:33 +0800 |
| commit | c09a295c403e19811bf748d88155b368412c31bd (patch) | |
| tree | 7331321d71d542904e849afe4e45e516b575e86b | |
| parent | 50936be342e3927fd05dec6b2926f38fb443a872 (diff) | |
Fixed SO_REUSEPORT not supported by Linux <3.9
Change-Id: If2dec4555dc436c1b16d7298c6f37d99e0e48cea
Closes-Bug: 1451691
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.py | 16 |
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 | ||