summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Wearden <jack@jackwearden.co.uk>2018-05-17 12:24:15 -0700
committerJack Wearden <jack@jackwearden.co.uk>2018-05-17 12:24:15 -0700
commit02ddee322bdc96f5f3670a15a7c53545c734bf7c (patch)
treeff6f5cf472ea5380cde467eace46180f7e1bd9a4
parent687bf350e74cf3208fa4df98f21225fb8dcfe9c5 (diff)
downloadwaitress-02ddee322bdc96f5f3670a15a7c53545c734bf7c.tar.gz
Support configurably omitting server header
-rw-r--r--waitress/adjustments.py7
-rw-r--r--waitress/task.py10
2 files changed, 12 insertions, 5 deletions
diff --git a/waitress/adjustments.py b/waitress/adjustments.py
index 1a56621..db6291b 100644
--- a/waitress/adjustments.py
+++ b/waitress/adjustments.py
@@ -66,6 +66,11 @@ def slash_fixed_str(s):
s = '/' + s.lstrip('/').rstrip('/')
return s
+def str_ifnotnone(s):
+ if s is None:
+ return None
+ return str(s)
+
class _str_marker(str):
pass
@@ -98,7 +103,7 @@ class Adjustments(object):
('max_request_header_size', int),
('max_request_body_size', int),
('expose_tracebacks', asbool),
- ('ident', str),
+ ('ident', str_ifnotnone),
('asyncore_loop_timeout', int),
('asyncore_use_poll', asbool),
('unix_socket', str),
diff --git a/waitress/task.py b/waitress/task.py
index 76c4d2d..eaeba56 100644
--- a/waitress/task.py
+++ b/waitress/task.py
@@ -250,10 +250,12 @@ class Task(object):
# Set the Server and Date field, if not yet specified. This is needed
# if the server is used as a proxy.
ident = self.channel.server.adj.ident
- if not server_header:
- response_headers.append(('Server', ident))
- else:
- response_headers.append(('Via', ident))
+ if ident is not None:
+ if not server_header:
+ response_headers.append(('Server', ident))
+ else:
+ response_headers.append(('Via', ident))
+
if not date_header:
response_headers.append(('Date', build_http_date(self.start_time)))