Commit 92fda5a7 authored by João Távora's avatar João Távora

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.
parent c5de861a
Pipeline #4132 failed with stage
in 60 minutes and 16 seconds
......@@ -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)
(lambda (p)
(auth-source-pass--name-port-user-suffixes domain user p))
(if (listp port) port (list port))))
(defun auth-source-pass--domains (name-components)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment