diff options
author | Bert JW Regeer <bertjw@regeer.org> | 2019-01-25 22:17:36 -0700 |
---|---|---|
committer | Bert JW Regeer <bertjw@regeer.org> | 2019-01-25 22:17:36 -0700 |
commit | 00b30a393efafa036ac39e1f8e7b912181086965 (patch) | |
tree | d8ff38fe173cc07cffd5e9783cd458099f157044 | |
parent | 672241a66842d999ec47a6327123eba0825dd363 (diff) | |
download | waitress-00b30a393efafa036ac39e1f8e7b912181086965.tar.gz |
Strip brackets from REMOTE_ADDR for IPv6
-rw-r--r-- | waitress/task.py | 9 |
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 |