1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

When the .authinfo file has a user name but not a password, prompt

for the password.
This commit is contained in:
Lars Magne Ingebrigtsen 2011-06-22 16:48:31 +02:00
parent d5a19415d0
commit ddb7ffeeb8
3 changed files with 19 additions and 8 deletions

View File

@ -2,6 +2,8 @@
* mail/smtpmail.el (smtpmail-via-smtp): Make sure we don't send
QUIT twice.
(smtpmail-try-auth-methods): Require user name and password from
auth-source.
2011-06-22 Martin Rudalics <rudalics@gmx.at>

View File

@ -713,7 +713,8 @@ Returns the deleted entries."
when (string-match (concat "^" auth-source-magic)
(symbol-name sym))
;; remove that key
do (password-cache-remove (symbol-name sym))))
do (password-cache-remove (symbol-name sym)))
(setq auth-source-netrc-cache nil))
(defun auth-source-remember (spec found)
"Remember FOUND search results for SPEC."
@ -1144,6 +1145,9 @@ See `auth-source-search' for details on SPEC."
;; we know (because of an assertion in auth-source-search) that the
;; :create parameter is either t or a list (which includes nil)
(create-extra (if (eq t create) nil create))
(current-data (car (auth-source-search :max 1
:host host
:port port)))
(required (append base-required create-extra))
(file (oref backend source))
(add "")
@ -1178,7 +1182,9 @@ See `auth-source-search' for details on SPEC."
(dolist (r required)
(let* ((data (aget valist r))
;; take the first element if the data is a list
(data (auth-source-netrc-element-or-first data))
(data (or (auth-source-netrc-element-or-first data)
(plist-get current-data
(intern (format ":%s" r) obarray))))
;; this is the default to be offered
(given-default (aget auth-source-creation-defaults r))
;; the default supplementals are simple:

View File

@ -483,12 +483,15 @@ The list is in preference order.")
'((user . "SMTP user at %h: ")
(secret . "SMTP password for %u@%h: ")))
(auth-info (car
(auth-source-search :max 1
:host host
:port (if port
(format "%s" port)
"smtp")
:create ask-for-password)))
(auth-source-search
:max 1
:host host
:port (if port
(format "%s" port)
"smtp")
:require (and ask-for-password
'(:user :secret))
:create ask-for-password)))
(user (plist-get auth-info :user))
(password (plist-get auth-info :secret))
(save-function (and ask-for-password