From: Chong Yidong Date: Mon, 25 Feb 2008 16:19:08 +0000 (+0000) Subject: (url-digest-auth): Don't show prompt if authentication succeeded on X-Git-Tag: emacs-pretest-22.1.92~76 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4992c1db16fba951175fa072ba696d04f072b8b9;p=emacs.git (url-digest-auth): Don't show prompt if authentication succeeded on the previous pass. Don't pass "opaque" value if none is presented by the server. --- diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el index 10b968a68d8..adf1a5fabcb 100644 --- a/lisp/url/url-auth.el +++ b/lisp/url/url-auth.el @@ -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