From 5fcd1237f0caacafb8a4a01cf775fe197680df90 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Mon, 4 Nov 2013 05:48:40 +0000 Subject: [PATCH] fix race condition of closing http socket in web_server.py --- test/web_server.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/web_server.py b/test/web_server.py index 47dab4ed2..cb7a5ead9 100644 --- a/test/web_server.py +++ b/test/web_server.py @@ -25,19 +25,22 @@ class http_handler(SimpleHTTPServer.SimpleHTTPRequestHandler): s.send_header("Location", "/test_file") s.send_header("Connection", "close") s.end_headers() - s.finish() + try: s.finish() + except: pass elif s.path == '/infinite_redirect': s.send_response(301) s.send_header("Location", "/infinite_redirect") s.send_header("Connection", "close") s.end_headers() - s.finish() + try: s.finish() + except: pass elif s.path == '/relative/redirect': s.send_response(301) s.send_header("Location", "../test_file") s.send_header("Connection", "close") s.end_headers() - s.finish() + try: s.finish() + except: pass elif s.path.startswith('/announce'): s.send_response(200) response = 'd8:intervali1800e8:completei1e10:incompletei1e5:peers0:e' @@ -45,7 +48,8 @@ class http_handler(SimpleHTTPServer.SimpleHTTPRequestHandler): s.send_header("Connection", "close") s.end_headers() s.wfile.write(response) - s.finish() + try: s.finish() + except: pass elif os.path.split(s.path)[1].startswith('seed?'): query = s.path[6:] args_raw = query.split('&')