From: Shivani Bhardwaj Date: Tue, 6 Nov 2018 16:06:24 +0000 (+0530) Subject: Remove User-Agent header if set to empty X-Git-Tag: 1.0.1~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F59%2Fhead;p=thirdparty%2Fsuricata-update.git 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. --- 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: