1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Support numeric port numbers in auth-source-macos-keychain

* lisp/auth-source.el (auth-source-macos-keychain-search):
Support numeric port numbers (bug#68376).
(auth-source-macos-keychain-search-items): Make regexp more robust.

* test/lisp/auth-source-tests.el (test-macos-keychain-search):
Extend test.
This commit is contained in:
Michael Albinus 2024-01-11 12:30:05 +01:00
parent c7aa5c6d2b
commit ef08f94cbe
2 changed files with 26 additions and 16 deletions

View file

@ -1946,18 +1946,20 @@ entries for git.gnus.org:
(returned-keys (delete-dups (append
'(:host :login :port :secret)
search-keys)))
;; Extract host and port from spec
;; Extract host, port and user from spec
(hosts (plist-get spec :host))
(hosts (if (and hosts (listp hosts)) hosts `(,hosts)))
(hosts (if (consp hosts) hosts `(,hosts)))
(ports (plist-get spec :port))
(ports (if (and ports (listp ports)) ports `(,ports)))
(ports (if (consp ports) ports `(,ports)))
(users (plist-get spec :user))
(users (if (and users (listp users)) users `(,users)))
(users (if (consp users) users `(,users)))
;; Loop through all combinations of host/port and pass each of these to
;; auth-source-macos-keychain-search-items
;; auth-source-macos-keychain-search-items. Convert numeric port to
;; string (bug#68376).
(items (catch 'match
(dolist (host hosts)
(dolist (port ports)
(when (numberp port) (setq port (number-to-string port)))
(dolist (user users)
(let ((items (apply
#'auth-source-macos-keychain-search-items
@ -2019,7 +2021,7 @@ entries for git.gnus.org:
(when port
(if keychain-generic
(setq args (append args (list "-s" port)))
(setq args (append args (if (string-match "[0-9]+" port)
(setq args (append args (if (string-match-p "\\`[[:digit:]]+\\'" port)
(list "-P" port)
(list "-r" (substring
(format "%-4s" port)