diff options
author | Jack Wearden <jack@jackwearden.co.uk> | 2018-05-17 12:24:15 -0700 |
---|---|---|
committer | Jack Wearden <jack@jackwearden.co.uk> | 2018-05-17 12:24:15 -0700 |
commit | 02ddee322bdc96f5f3670a15a7c53545c734bf7c (patch) | |
tree | ff6f5cf472ea5380cde467eace46180f7e1bd9a4 | |
parent | 687bf350e74cf3208fa4df98f21225fb8dcfe9c5 (diff) | |
download | waitress-02ddee322bdc96f5f3670a15a7c53545c734bf7c.tar.gz |
Support configurably omitting server header
-rw-r--r-- | waitress/adjustments.py | 7 | ||||
-rw-r--r-- | waitress/task.py | 10 |
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))) |