emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/url/url-http.el,v


From: Magnus Henoch
Subject: [Emacs-diffs] Changes to emacs/lisp/url/url-http.el,v
Date: Thu, 02 Nov 2006 23:06:21 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Magnus Henoch <legoscia>        06/11/02 23:06:20

Index: url-http.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/url/url-http.el,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- url-http.el 1 Nov 2006 15:16:22 -0000       1.38
+++ url-http.el 2 Nov 2006 23:06:20 -0000       1.39
@@ -305,21 +305,29 @@
   (declare (special status success url-http-method url-http-data
                    url-callback-function url-callback-arguments))
   (url-http-debug "Handling %s authentication" (if proxy "proxy" "normal"))
-  (let ((auth (or (mail-fetch-field (if proxy "proxy-authenticate" 
"www-authenticate"))
-                 "basic"))
+  (let ((auths (or (nreverse
+                   (mail-fetch-field
+                    (if proxy "proxy-authenticate" "www-authenticate")
+                    nil nil t))
+                 '("basic")))
        (type nil)
        (url (url-recreate-url url-current-object))
        (url-basic-auth-storage 'url-http-real-basic-auth-storage)
-       )
-
+       auth)
     ;; Cheating, but who cares? :)
     (if proxy
        (setq url-basic-auth-storage 'url-http-proxy-basic-auth-storage))
 
-    (setq auth (url-eat-trailing-space (url-strip-leading-spaces auth)))
+    ;; find first supported auth
+    (while auths
+      (setq auth (url-eat-trailing-space (url-strip-leading-spaces (car 
auths))))
     (if (string-match "[ \t]" auth)
        (setq type (downcase (substring auth 0 (match-beginning 0))))
       (setq type (downcase auth)))
+      (if (url-auth-registered type)
+         (setq auths nil)              ; no more check
+       (setq auth nil
+             auths (cdr auths))))
 
     (if (not (url-auth-registered type))
        (progn




reply via email to

[Prev in Thread] Current Thread [Next in Thread]