diff options
author | Bert JW Regeer <bertjw@regeer.org> | 2016-06-11 19:41:45 -0600 |
---|---|---|
committer | Bert JW Regeer <bertjw@regeer.org> | 2016-06-11 19:41:45 -0600 |
commit | 7c63ad06f354de68d233e5b0556cee601eaf3704 (patch) | |
tree | 189626710b3991e2752d82e598c94059867bb869 | |
parent | 4dd418adc98d4a524d2804c415feadd37666febf (diff) | |
download | waitress-7c63ad06f354de68d233e5b0556cee601eaf3704.tar.gz |
Set IPv6 socket to be IPv6 only
On systems that allow for IPv6 mapped IPv4 we want to make sure we
explicitly set the socket to be IPv6 only. This way we don't run into
the issue whereby we try to bind to the same socket twice (once with an
mapped IPv6, and then on IPv4) because bind() won't like that.
-rw-r--r-- | waitress/server.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/waitress/server.py b/waitress/server.py index 25a690b..bf4e467 100644 --- a/waitress/server.py +++ b/waitress/server.py @@ -157,6 +157,9 @@ class BaseWSGIServer(logging_dispatcher, object): self.asyncore.dispatcher.__init__(self, _sock, map=map) if _sock is None: self.create_socket(self.family, self.socktype) + if self.family == socket.AF_INET6: # pragma: nocover + self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) + self.set_reuse_addr() self.bind_server_socket() self.effective_host, self.effective_port = self.getsockname() |