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

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