From 4adeb12793f0f27864eea7f24c392eed94832774 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Tue, 6 Nov 2018 21:36:24 +0530 Subject: [PATCH] Remove User-Agent header if set to empty `suricata-update` sends a User Agent as a part of the request header to get some basic information about the user system like the suricata-update version, python version, etc. However, some users do not like this behavior and are facililated with a `--user-agent` option whereby they can modify the `User-Agent` header to a custom string. Although, in some cases, it has been observed that the `User-Agent` header can be set to nothing. In some other cases, users wish to set it to an empty string. Example: ``` $ ./bin/suricata-update update-sources --user-agent " " ``` generates request headers like, ``` Accept-Encoding: identity Host: XXX User-Agent: Connection: close ``` which makes `User-Agent` header quite redundant. Remove the header if it is set to a string that evaluates to nothing. Closes Redmine ticket #2665. --- suricata/update/net.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/suricata/update/net.py b/suricata/update/net.py index 208e4bd..394bb10 100644 --- a/suricata/update/net.py +++ b/suricata/update/net.py @@ -60,7 +60,6 @@ def build_user_agent(): logger.debug("Suppressing HTTP User-Agent header") return None return user_agent - uname_system = platform.uname()[0] params.append("OS: %s" % (uname_system)) @@ -93,7 +92,6 @@ def get(url, fileobj, progress_hook=None): """ user_agent = build_user_agent() - logger.debug("Setting HTTP user-agent to %s", user_agent) try: # Wrap in a try as Python versions prior to 2.7.9 don't have @@ -107,10 +105,12 @@ def get(url, fileobj, progress_hook=None): except: opener = build_opener() - opener.addheaders = [ - ("User-Agent", build_user_agent()), - ] - + if user_agent: + logger.debug("Setting HTTP User-Agent to %s", user_agent) + opener.addheaders = [("User-Agent", user_agent),] + else: + opener.addheaders = [(header, value) for header, + value in opener.addheaders if header.lower() != "user-agent"] remote = opener.open(url) info = remote.info() try: -- 2.47.3