]> git.ipfire.org Git - thirdparty/suricata-update.git/commitdiff
Remove User-Agent header if set to empty 59/head
authorShivani Bhardwaj <shivanib134@gmail.com>
Tue, 6 Nov 2018 16:06:24 +0000 (21:36 +0530)
committerShivani Bhardwaj <shivanib134@gmail.com>
Tue, 6 Nov 2018 16:28:59 +0000 (21:58 +0530)
`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

index 208e4bd69c030abd32b4152d73434b457e0359fd..394bb10e997f5b3dcb6c6a4715cdfc02dfbb14fe 100644 (file)
@@ -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: