]> git.eshelyaron.com Git - emacs.git/commitdiff
(url-digest-auth): Don't show prompt if authentication succeeded on
authorChong Yidong <cyd@stupidchicken.com>
Mon, 25 Feb 2008 16:19:08 +0000 (16:19 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 25 Feb 2008 16:19:08 +0000 (16:19 +0000)
the previous pass.  Don't pass "opaque" value if none is presented by
the server.

lisp/url/url-auth.el

index 10b968a68d88537c64fb47e3cb433ce4571eec7a..adf1a5fabcbd7b33fd386bff1b07ab9b03c1d611 100644 (file)
@@ -158,7 +158,7 @@ instead of hostname:portnum."
        (setq file (cond
                    (realm realm)
                    ((string-match "/$" file) file)
-                   (t (url-file-directory file)))
+                   (t (url-basepath file)))
              server (format "%s:%d" server port)
              byserv (cdr-safe (assoc server url-digest-auth-storage)))
        (cond
@@ -188,31 +188,40 @@ instead of hostname:portnum."
                         (string= data (substring file 0 (length data)))))
                    (setq retval (cdr (car byserv))))
                (setq byserv (cdr byserv))))
-         (if (or (and (not retval) prompt) overwrite)
-             (progn
-               (setq user (read-string (url-auth-user-prompt url realm)
-                                       (user-real-login-name))
-                     pass (read-passwd "Password: ")
-                     retval (setq retval
-                                  (cons user
-                                        (url-digest-auth-create-key
-                                         user pass realm
-                                         (or url-request-method "GET")
-                                         url)))
-                     byserv (assoc server url-digest-auth-storage))
+         (if overwrite
+             (if (and (not retval) prompt)
+                 (setq user (read-string (url-auth-user-prompt url realm)
+                                         (user-real-login-name))
+                       pass (read-passwd "Password: ")
+                       retval (setq retval
+                                    (cons user
+                                          (url-digest-auth-create-key
+                                           user pass realm
+                                           (or url-request-method "GET")
+                                           url)))
+                       byserv (assoc server url-digest-auth-storage))
                (setcdr byserv
                        (cons (cons file retval) (cdr byserv))))))
         (t (setq retval nil)))
        (if retval
-           (let ((nonce (or (cdr-safe (assoc "nonce" args)) "nonegiven"))
-                 (opaque (or (cdr-safe (assoc "opaque" args)) "nonegiven")))
-             (format
-              (concat "Digest username=\"%s\", realm=\"%s\","
-                      "nonce=\"%s\", uri=\"%s\","
-                      "response=\"%s\", opaque=\"%s\"")
-              (nth 0 retval) realm nonce (url-filename href)
-              (md5 (concat (nth 1 retval) ":" nonce ":"
-                           (nth 2 retval))) opaque))))))
+           (if (cdr-safe (assoc "opaque" args))
+               (let ((nonce (or (cdr-safe (assoc "nonce" args)) "nonegiven"))
+                     (opaque (cdr-safe (assoc "opaque" args))))
+                 (format
+                  (concat "Digest username=\"%s\", realm=\"%s\","
+                          "nonce=\"%s\", uri=\"%s\","
+                          "response=\"%s\", opaque=\"%s\"")
+                  (nth 0 retval) realm nonce (url-filename href)
+                  (md5 (concat (nth 1 retval) ":" nonce ":"
+                               (nth 2 retval))) opaque))
+             (let ((nonce (or (cdr-safe (assoc "nonce" args)) "nonegiven")))
+               (format
+                (concat "Digest username=\"%s\", realm=\"%s\","
+                        "nonce=\"%s\", uri=\"%s\","
+                        "response=\"%s\"")
+                (nth 0 retval) realm nonce (url-filename href)
+                (md5 (concat (nth 1 retval) ":" nonce ":"
+                             (nth 2 retval))))))))))
 
 (defvar url-registered-auth-schemes nil
   "A list of the registered authorization schemes and various and sundry