summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2019-01-25 22:17:36 -0700
committerBert JW Regeer <bertjw@regeer.org>2019-01-25 22:17:36 -0700
commit00b30a393efafa036ac39e1f8e7b912181086965 (patch)
treed8ff38fe173cc07cffd5e9783cd458099f157044
parent672241a66842d999ec47a6327123eba0825dd363 (diff)
downloadwaitress-00b30a393efafa036ac39e1f8e7b912181086965.tar.gz
Strip brackets from REMOTE_ADDR for IPv6
-rw-r--r--waitress/task.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/waitress/task.py b/waitress/task.py
index feedd5a..8e14b4f 100644
--- a/waitress/task.py
+++ b/waitress/task.py
@@ -722,12 +722,17 @@ class WSGITask(Task):
environ["SERVER_PORT"] = str(forwarded_port)
if client_addr:
+ def strip_brackets(addr):
+ if addr[0] == "[" and addr[-1] == "]":
+ return addr[1:-1]
+ return addr
+
if ":" in client_addr and client_addr[-1] != "]":
addr, port = client_addr.rsplit(":", 1)
- environ["REMOTE_ADDR"] = addr.strip()
+ environ["REMOTE_ADDR"] = strip_brackets(addr.strip())
environ["REMOTE_PORT"] = port.strip()
else:
- environ["REMOTE_ADDR"] = client_addr.strip()
+ environ["REMOTE_ADDR"] = strip_brackets(client_addr.strip())
return untrusted_headers