Subject: bug#16498: 24.3.50; Support for custom user agents in url.el

From: Vibhav Pant <[email-masked]>
Date: Sun, 19 Jan 2014 21:21:43 +0530

URL currently doesn't support custom user agents. This could be
implemented by adding a defcustom string url-user-agent which could be
changed by the
user.
The default value could be:
(format "User-Agent: %sURL/%s\r\n"
         (if url-package-name
         (concat url-package-name "/" url-package-version " ")
         "") url-version)

I have attached a patch to add support for custom user agents in URL.

-- 
Vibhav Pant
[email-masked]
commit f380c64e2b3a6c892c8f2821b0d902cf5ca9d63d
Author: Vibhav Pant <[email-masked]>
Date:   Sun Jan 19 13:45:28 2014 +0000

    Add support for custom user agent strings.

diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index ac2e140..6a0ec13 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -132,6 +132,15 @@ request.")
     (507 insufficient-storage            "Insufficient storage"))
   "The HTTP return codes and their text.")
 
+(defcustom url-user-agent (format "User-Agent: %sURL/%s\r\n"
+				  (if url-package-name
+				      (concat url-package-name "/"
+					      url-package-version " ")
+				    "") url-version)
+  "User Agent used by the URL package."
+  :type 'string
+  :group 'url)
+
 ;(eval-when-compile
 ;; These are all macros so that they are hidden from external sight
 ;; when the file is byte-compiled.
@@ -214,11 +223,7 @@ request.")
 	  (and (listp url-privacy-level)
 	       (memq 'agent url-privacy-level)))
       ""
-    (format "User-Agent: %sURL/%s\r\n"
-	    (if url-package-name
-		(concat url-package-name "/" url-package-version " ")
-	      "")
-	    url-version)))
+    url-user-agent))
 
 (defun url-http-create-request (&optional ref-url)
   "Create an HTTP request for `url-http-target-url', referred to by REF-URL."