bpo-38907: Suppress any exception when attempting to set V6ONLY. (GH-17864)

Fixes error attempting to bind to IPv4 address.
This commit is contained in:
Jason R. Coombs 2020-01-06 07:59:36 -05:00 committed by GitHub
parent 5136e721d7
commit 7cdc31a14c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -103,6 +103,7 @@ import socketserver
import sys
import time
import urllib.parse
import contextlib
from functools import partial
from http import HTTPStatus
@ -1286,7 +1287,10 @@ if __name__ == '__main__':
# ensure dual-stack is not disabled; ref #38907
class DualStackServer(ThreadingHTTPServer):
def server_bind(self):
self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
# suppress exception when protocol is IPv4
with contextlib.suppress(Exception):
self.socket.setsockopt(
socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
return super().server_bind()
test(