From 2e2cd944a0b03ee5aab9cbca4f5d3f1d0c5448f9 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sun, 5 Apr 2015 16:13:47 +0200 Subject: serve.py: set reuse_address Otherwise you may get "Address already in use" errors. --- serve.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/serve.py b/serve.py index df0425c..b499164 100755 --- a/serve.py +++ b/serve.py @@ -11,6 +11,13 @@ import sys PORT = 8000 if len(sys.argv) <= 1 else int(sys.argv[1]) HOST = "" if len(sys.argv) <= 2 else sys.argv[2] +class Server(socketserver.TCPServer): + def __init__(self, addr, handler): + self.allow_reuse_address = True + if ':' in addr[0]: + self.address_family = socket.AF_INET6 + super().__init__(addr, handler) + class Handler(SimpleHTTPRequestHandler): def send_response(self, code, message=None): # Grr, cannot use this in Python 2 as SimpleHTTPRequestHandler is not a @@ -19,7 +26,7 @@ class Handler(SimpleHTTPRequestHandler): SimpleHTTPRequestHandler.send_response(self, code, message) self.send_header('Cache-Control', 'no-cache') -httpd = socketserver.TCPServer((HOST, PORT), Handler) +httpd = Server((HOST, PORT), Handler) print("Serving at port %d" % PORT) httpd.serve_forever() -- cgit v1.2.1