bpo-38907: In http.server script, restore binding to IPv4 on Windows.… · python/cpython@5ed9d60 (original) (raw)

Original file line number Diff line number Diff line change
@@ -1280,4 +1280,16 @@ def test(HandlerClass=BaseHTTPRequestHandler,
1280 1280 else:
1281 1281 handler_class = partial(SimpleHTTPRequestHandler,
1282 1282 directory=args.directory)
1283 -test(HandlerClass=handler_class, port=args.port, bind=args.bind)
1283 +
1284 +# ensure dual-stack is not disabled; ref #38907
1285 +class DualStackServer(ThreadingHTTPServer):
1286 +def server_bind(self):
1287 +self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
1288 +return super().server_bind()
1289 +
1290 +test(
1291 +HandlerClass=handler_class,
1292 +ServerClass=DualStackServer,
1293 +port=args.port,
1294 +bind=args.bind,
1295 + )