summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2018-12-02 16:59:01 -0700
committerBert JW Regeer <bertjw@regeer.org>2018-12-02 18:03:53 -0700
commit89fe396a13e31db5692def5bcb253d85d5d5817f (patch)
tree50c198811ab7b9bf8ab4b7cb3dfb8114a550f086
parent72174cef50a18a47dc4a0263d191b7e37b635c03 (diff)
downloadwaitress-89fe396a13e31db5692def5bcb253d85d5d5817f.tar.gz
Define PROXY_HEADERS once
-rw-r--r--waitress/adjustments.py14
-rw-r--r--waitress/task.py10
-rw-r--r--waitress/utilities.py9
3 files changed, 14 insertions, 19 deletions
diff --git a/waitress/adjustments.py b/waitress/adjustments.py
index d9e931f..8d34351 100644
--- a/waitress/adjustments.py
+++ b/waitress/adjustments.py
@@ -17,7 +17,8 @@ import getopt
import socket
import warnings
-from waitress.compat import (
+from .utilities import PROXY_HEADERS
+from .compat import (
PY2,
WIN,
string_types,
@@ -26,14 +27,7 @@ from waitress.compat import (
truthy = frozenset(('t', 'true', 'y', 'yes', 'on', '1'))
-KNOWN_PROXY_HEADERS = frozenset({
- 'forwarded',
- 'x-forwarded-by',
- 'x-forwarded-for',
- 'x-forwarded-host',
- 'x-forwarded-port',
- 'x-forwarded-proto',
-})
+KNOWN_PROXY_HEADERS = {header.lower().replace('_', '-') for header in PROXY_HEADERS}
def asbool(s):
""" Return the boolean value ``True`` if the case-lowered value of string
@@ -167,7 +161,7 @@ class Adjustments(object):
# Which of the proxy headers should we trust, this is a set where you
# either specify forwarded or one or more of forwarded-host, forwarded-for,
# forwarded-proto, forwarded-port.
- trusted_proxy_headers = {}
+ trusted_proxy_headers = set()
# Would you like waitress to log warnings about untrusted proxy headers
# that were encountered while processing the proxy headers? This only makes
diff --git a/waitress/task.py b/waitress/task.py
index 22c69db..0c686ab 100644
--- a/waitress/task.py
+++ b/waitress/task.py
@@ -27,6 +27,7 @@ from .utilities import (
logger,
queue_logger,
undquote,
+ PROXY_HEADERS,
)
rename_headers = { # or keep them without the HTTP_ prefix added
@@ -45,15 +46,6 @@ hop_by_hop = frozenset((
'upgrade'
))
-PROXY_HEADERS = frozenset({
- 'X_FORWARDED_FOR',
- 'X_FORWARDED_HOST',
- 'X_FORWARDED_PROTO',
- 'X_FORWARDED_PORT',
- 'X_FORWARDED_BY',
- 'FORWARDED',
-})
-
class JustTesting(Exception):
pass
diff --git a/waitress/utilities.py b/waitress/utilities.py
index 8c46f85..2d56e35 100644
--- a/waitress/utilities.py
+++ b/waitress/utilities.py
@@ -26,6 +26,15 @@ from collections import namedtuple
logger = logging.getLogger('waitress')
queue_logger = logging.getLogger('waitress.queue')
+PROXY_HEADERS = frozenset({
+ 'X_FORWARDED_FOR',
+ 'X_FORWARDED_HOST',
+ 'X_FORWARDED_PROTO',
+ 'X_FORWARDED_PORT',
+ 'X_FORWARDED_BY',
+ 'FORWARDED',
+})
+
def find_double_newline(s):
"""Returns the position just after a double newline in the given string."""
pos1 = s.find(b'\n\r\n') # One kind of double newline