diff options
Diffstat (limited to 'lisp/url')
31 files changed, 70 insertions, 59 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index c4a22bd314e..87c27a8786c 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,21 @@ +2007-01-14 Magnus Henoch <mange@freemail.hu> + + * url-proxy.el (url-proxy-object): Remove. + (url-proxy): Don't use `url-proxy-object'. Act according to type of + proxy (currently only HTTP supported). + + * url.el (url-retrieve-internal): Don't use `url-proxy-object'. + + * url-http.el (url-http-proxy): New variable. + (url-http-create-request): Use it. Don't use `url-proxy-object'. + (url-http): Treat `url' argument as resource to download, and + dynamic variable `url-using-proxy' as proxy to use. Set + `url-current-object' to actual URL, and `url-http-proxy' to proxy + used. + (url-http-handle-cookies): Assume that `url-current-object' does + not point to the proxy used. + (url-http-async-sentinel): Adapt error message. + 2006-12-10 Juanma Barranquero <lekktu@gmail.com> * url-gw.el (url-gateway-nslookup-program): Doc fix. @@ -1752,7 +1770,7 @@ ;; End: Copyright (C) 1999, 2001, 2002, 2004, 2005, - 2006 Free Software Foundation, Inc. + 2006, 2007 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el index d0dcc6dc905..4c16d471e86 100644 --- a/lisp/url/url-about.el +++ b/lisp/url/url-about.el @@ -1,6 +1,6 @@ ;;; url-about.el --- Show internal URLs -;; Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el index 5845b9d660e..c0f2c6bdf0f 100644 --- a/lisp/url/url-auth.el +++ b/lisp/url/url-auth.el @@ -1,7 +1,7 @@ ;;; url-auth.el --- Uniform Resource Locator authorization modules ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el index 5113ad0d7d9..f0802602c3f 100644 --- a/lisp/url/url-cache.el +++ b/lisp/url/url-cache.el @@ -1,7 +1,7 @@ ;;; url-cache.el --- Uniform Resource Locator retrieval tool ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-cid.el b/lisp/url/url-cid.el index f6e569a4b2f..6e3369f388b 100644 --- a/lisp/url/url-cid.el +++ b/lisp/url/url-cid.el @@ -1,6 +1,6 @@ ;;; url-cid.el --- Content-ID URL loader -;; Copyright (C) 1998, 1999, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index f3902619c89..cfe4f8ecf71 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el @@ -1,7 +1,7 @@ ;;; url-cookie.el --- Netscape Cookie support ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index 546d744558d..25cdbdfadf8 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el @@ -1,6 +1,6 @@ ;;; url-dav.el --- WebDAV support -;; Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Maintainer: Bill Perry <wmperry@gnu.org> diff --git a/lisp/url/url-dired.el b/lisp/url/url-dired.el index 28f86560942..404068264af 100644 --- a/lisp/url/url-dired.el +++ b/lisp/url/url-dired.el @@ -1,7 +1,7 @@ ;;; url-dired.el --- URL Dired minor mode ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, files diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el index 4f422e5cc5f..43e6e18791b 100644 --- a/lisp/url/url-expand.el +++ b/lisp/url/url-expand.el @@ -1,6 +1,6 @@ ;;; url-expand.el --- expand-file-name for URLs -;; Copyright (C) 1999, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el index c9bbebdfddb..1ad2e09e976 100644 --- a/lisp/url/url-file.el +++ b/lisp/url/url-file.el @@ -1,7 +1,7 @@ ;;; url-file.el --- File retrieval code ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ftp.el b/lisp/url/url-ftp.el index 8ff43ff57a5..67a4b091465 100644 --- a/lisp/url/url-ftp.el +++ b/lisp/url/url-ftp.el @@ -1,7 +1,7 @@ ;;; url-ftp.el --- FTP wrapper ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index eaf654e2b4f..b2768212721 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el @@ -1,6 +1,6 @@ ;;; url-gw.el --- Gateway munging for URL loading -;; Copyright (C) 1997, 1998, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index 97d10003620..91ac355a8c4 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el @@ -1,7 +1,7 @@ ;;; url-handlers.el --- file-name-handler stuff for URL loading ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-history.el b/lisp/url/url-history.el index 0cdfe329bc2..d595b1a14b0 100644 --- a/lisp/url/url-history.el +++ b/lisp/url/url-history.el @@ -1,7 +1,7 @@ ;;; url-history.el --- Global history tracking for URL package ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 309be690408..eb193f1c7a6 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -1,6 +1,6 @@ ;;; url-http.el --- HTTP retrieval routines -;; Copyright (C) 1999, 2001, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes @@ -29,6 +29,7 @@ (eval-when-compile (require 'cl)) (defvar url-http-extra-headers) (defvar url-http-target-url) +(defvar url-http-proxy) (require 'url-gw) (require 'url-util) (require 'url-parse) @@ -154,11 +155,10 @@ request.") (declare (special proxy-info url-http-method url-http-data url-http-extra-headers)) - (url-http-debug "url-proxy-object is %s\n" url-proxy-object) (let* ((extra-headers) (request nil) (no-cache (cdr-safe (assoc "Pragma" url-http-extra-headers))) - (using-proxy (not (eq url-current-object url-http-target-url))) + (using-proxy url-http-proxy) (proxy-auth (if (or (cdr-safe (assoc "Proxy-Authorization" url-http-extra-headers)) (not using-proxy)) @@ -379,8 +379,7 @@ This allows us to use `mail-fetch-field', etc." The buffer must already be narrowed to the headers, so `mail-fetch-field' will work correctly." (let ((cookies (mail-fetch-field "Set-Cookie" nil nil t)) - (cookies2 (mail-fetch-field "Set-Cookie2" nil nil t)) - (url-current-object url-http-target-url)) + (cookies2 (mail-fetch-field "Set-Cookie2" nil nil t))) (and cookies (url-http-debug "Found %d Set-Cookie headers" (length cookies))) (and cookies2 (url-http-debug "Found %d Set-Cookie2 headers" (length cookies2))) (while cookies @@ -1087,18 +1086,16 @@ CBARGS as the arguments." url-http-chunked-start url-http-chunked-counter url-http-process)) - (let ((connection (url-http-find-free-connection (url-host url) - (url-port url))) - (buffer (generate-new-buffer (format " *http %s:%d*" - (url-host url) - (url-port url))))) + (let* ((host (url-host (or url-using-proxy url))) + (port (url-port (or url-using-proxy url))) + (connection (url-http-find-free-connection host port)) + (buffer (generate-new-buffer (format " *http %s:%d*" host port)))) (if (not connection) ;; Failed to open the connection for some reason (progn (kill-buffer buffer) (setq buffer nil) - (error "Could not create connection to %s:%d" (url-host url) - (url-port url))) + (error "Could not create connection to %s:%d" host port)) (with-current-buffer buffer (mm-disable-multibyte) (setq url-current-object url @@ -1120,7 +1117,8 @@ CBARGS as the arguments." url-http-method url-http-extra-headers url-http-data - url-http-target-url)) + url-http-target-url + url-http-proxy)) (set (make-local-variable var) nil)) (setq url-http-method (or url-request-method "GET") @@ -1133,8 +1131,8 @@ CBARGS as the arguments." url-callback-function callback url-callback-arguments cbargs url-http-after-change-function 'url-http-wait-for-headers-change-function - url-http-target-url (or url-proxy-object - url-current-object)) + url-http-target-url url-current-object + url-http-proxy url-using-proxy) (set-process-buffer connection buffer) (set-process-filter connection 'url-http-generic-filter) @@ -1145,8 +1143,7 @@ CBARGS as the arguments." (set-process-sentinel connection 'url-http-async-sentinel)) ((eq status 'failed) ;; Asynchronous connection failed - (error "Could not create connection to %s:%d" (url-host url) - (url-port url))) + (error "Could not create connection to %s:%d" host port)) (t (set-process-sentinel connection 'url-http-end-of-document-sentinel) (process-send-string connection (url-http-create-request))))))) @@ -1164,8 +1161,8 @@ CBARGS as the arguments." (t (setf (car url-callback-arguments) (nconc (list :error (list 'error 'connection-failed why - :host (url-host url-current-object) - :service (url-port url-current-object))) + :host (url-host (or url-http-proxy url-current-object)) + :service (url-port (or url-http-proxy url-current-object)))) (car url-callback-arguments))) (url-http-activate-callback))))) diff --git a/lisp/url/url-imap.el b/lisp/url/url-imap.el index a10db8e7445..da3fd887e3f 100644 --- a/lisp/url/url-imap.el +++ b/lisp/url/url-imap.el @@ -1,6 +1,6 @@ ;;; url-imap.el --- IMAP retrieval routines -;; Copyright (C) 1999, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Simon Josefsson <jas@pdc.kth.se> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el index 19eec6f2ef2..b00b897a92c 100644 --- a/lisp/url/url-irc.el +++ b/lisp/url/url-irc.el @@ -1,7 +1,7 @@ ;;; url-irc.el --- IRC URL interface ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el index 64471bae5b1..b50bd714aa6 100644 --- a/lisp/url/url-ldap.el +++ b/lisp/url/url-ldap.el @@ -1,6 +1,6 @@ ;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code -;; Copyright (C) 1998, 1999, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el index d9d6e22cd05..9f20989a0b1 100644 --- a/lisp/url/url-mailto.el +++ b/lisp/url/url-mailto.el @@ -1,7 +1,7 @@ ;;; url-mail.el --- Mail Uniform Resource Locator retrieval code ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el index 55166ee46f4..f29364f3499 100644 --- a/lisp/url/url-methods.el +++ b/lisp/url/url-methods.el @@ -1,7 +1,7 @@ ;;; url-methods.el --- Load URL schemes as needed ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el index f7f9bcd439c..11771537ca2 100644 --- a/lisp/url/url-misc.el +++ b/lisp/url/url-misc.el @@ -1,7 +1,7 @@ ;;; url-misc.el --- Misc Uniform Resource Locator retrieval code ;; Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el index 47d4878c890..ab3c3ae31ad 100644 --- a/lisp/url/url-news.el +++ b/lisp/url/url-news.el @@ -1,7 +1,7 @@ ;;; url-news.el --- News Uniform Resource Locator retrieval code ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-nfs.el b/lisp/url/url-nfs.el index d6bc8417631..4f06f5e5bb3 100644 --- a/lisp/url/url-nfs.el +++ b/lisp/url/url-nfs.el @@ -1,7 +1,7 @@ ;;; url-nfs.el --- NFS URL interface ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el index 6b017b83ca9..c460a423b64 100644 --- a/lisp/url/url-ns.el +++ b/lisp/url/url-ns.el @@ -1,7 +1,7 @@ ;;; url-ns.el --- Various netscape-ish functions for proxy definitions ;; Copyright (C) 1997, 1998, 1999, 2004, 2005, -;; 2006 Free Software Foundation, Inc. +;; 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el index bda303697fb..2b69c54133f 100644 --- a/lisp/url/url-parse.el +++ b/lisp/url/url-parse.el @@ -1,7 +1,7 @@ ;;; url-parse.el --- Uniform Resource Locator parser ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes diff --git a/lisp/url/url-privacy.el b/lisp/url/url-privacy.el index b57de81c813..0ea93b1857e 100644 --- a/lisp/url/url-privacy.el +++ b/lisp/url/url-privacy.el @@ -1,7 +1,7 @@ ;;; url-privacy.el --- Global history tracking for URL package ;; Copyright (C) 1996, 1997, 1998, 1999, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url-proxy.el b/lisp/url/url-proxy.el index 5374030587b..76bea8d1435 100644 --- a/lisp/url/url-proxy.el +++ b/lisp/url/url-proxy.el @@ -1,6 +1,6 @@ ;;; url-proxy.el --- Proxy server support -;; Copyright (C) 1999, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia @@ -65,20 +65,17 @@ (url-warn 'url (format "Unknown proxy directive: %s" proxy) 'critical) nil)))) -(defvar url-proxy-object nil - "The URL to access through a proxy. -This variable is bound by `url-proxy'. If this is non-nil, the -scheme-specific loader should use its argument as the proxy, and -the value of this variable as the object to retrieve.") - (defun url-proxy (url callback &optional cbargs) ;; Retrieve URL from a proxy. ;; Expects `url-using-proxy' to be bound to the specific proxy to use." (setq url-using-proxy (url-generic-parse-url url-using-proxy)) - (let ((url-proxy-object (copy-sequence url))) - (url-set-target url-proxy-object nil) - (url-http url-using-proxy callback cbargs))) + (cond + ((string= (url-type url-using-proxy) "http") + (url-http url callback cbargs)) + (t + (error "Don't know how to use proxy `%s'" url-using-proxy)))) + (provide 'url-proxy) ;;; arch-tag: 4ff8882e-e498-42b7-abc5-acb449cdbc62 diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index 57c0f05661d..db7aac78bfd 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el @@ -1,7 +1,7 @@ ;;; url-util.el --- Miscellaneous helper routines for URL library ;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 97f6fc129fb..705eb947001 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el @@ -1,7 +1,7 @@ ;;; url-vars.el --- Variables for Uniform Resource Locator tool ;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia diff --git a/lisp/url/url.el b/lisp/url/url.el index 4ba604203dc..a150733e40d 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -1,7 +1,7 @@ ;;; url.el --- Uniform Resource Locator retrieval tool ;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, -;; 2005, 2006 Free Software Foundation, Inc. +;; 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Keywords: comm, data, processes, hypermedia @@ -172,7 +172,6 @@ the list of events, as described in the docstring of `url-retrieve'." (unless (url-type url) (error "Bad url: %s" (url-recreate-url url))) (let ((loader (url-scheme-get-property (url-type url) 'loader)) - (url-proxy-object nil) (url-using-proxy (if (url-host url) (url-find-proxy-for-url url (url-host url)))) (buffer nil) diff --git a/lisp/url/vc-dav.el b/lisp/url/vc-dav.el index 8181788a05c..b19f43a64be 100644 --- a/lisp/url/vc-dav.el +++ b/lisp/url/vc-dav.el @@ -1,6 +1,6 @@ ;;; vc-dav.el --- vc.el support for WebDAV -;; Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Author: Bill Perry <wmperry@gnu.org> ;; Maintainer: Bill Perry <wmperry@gnu.org> |