1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Make auth-source-pass-search understand port lists

For cases such as a typical IMAP Gnus setup, auto-source-pass-search
is passed a list of "port aliases" like (993 "imaps" "imap" "993"
"143") in hopes of finding a matching ~/.password-store entry.

This modification makes this library understand and unroll the port
list so that, i.e. "domain:993", "domain:imaps"", "domain:imap",
etc. are computed as potential suffixes.  Previously a nonsensical
string "domain:(993 imaps imap ...)" was returned.

* lisp/auth-source-pass.el
(auth-source-pass--generate-entry-suffixes): Allow PORT to be a list
of ports.
This commit is contained in:
João Távora 2019-11-20 00:11:00 +00:00
parent c5de861af1
commit 92fda5a7f9

View File

@ -269,10 +269,15 @@ If ENTRIES is nil, use the result of calling `auth-source-pass-entries' instead.
Based on the supported pathname patterns for HOSTNAME, USER, &
PORT, return a list of possible suffixes for matching entries in
the password-store."
the password-store.
PORT may be a list of ports."
(let ((domains (auth-source-pass--domains (split-string hostname "\\."))))
(seq-mapcat (lambda (n)
(auth-source-pass--name-port-user-suffixes n user port))
(seq-mapcat (lambda (domain)
(seq-mapcat
(lambda (p)
(auth-source-pass--name-port-user-suffixes domain user p))
(if (listp port) port (list port))))
domains)))
(defun auth-source-pass--domains (name-components)