[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 2a0a057 05/13: Add auth-source-pass-port-separator
From: |
Damien Cassou |
Subject: |
[Emacs-diffs] master 2a0a057 05/13: Add auth-source-pass-port-separator option |
Date: |
Mon, 24 Jun 2019 03:22:46 -0400 (EDT) |
branch: master
commit 2a0a05789d4734e4b3d18941346ecda9834e7cc9
Author: Iku Iwasa <address@hidden>
Commit: Damien Cassou <address@hidden>
Add auth-source-pass-port-separator option
* lisp/auth-source-pass.el (auth-source-pass-port-separator): New
option to specify separator between host and port, default to
colon (":").
(auth-source-pass--find-match-unambiguous): Adapt to make use of the
new variable.
* test/lisp/auth-source-pass-tests.el: Add corresponding tests.
---
lisp/auth-source-pass.el | 17 ++++++++++++++---
test/lisp/auth-source-pass-tests.el | 11 +++++++++++
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el
index 1fda698..626dbf8 100644
--- a/lisp/auth-source-pass.el
+++ b/lisp/auth-source-pass.el
@@ -49,6 +49,11 @@
:type 'directory
:version "27.1")
+(defcustom auth-source-pass-port-separator ":"
+ "Separator string between host and port in entry filename."
+ :type 'string
+ :version "27.1")
+
(cl-defun auth-source-pass-search (&rest spec
&key backend type host user port
&allow-other-keys)
@@ -254,9 +259,15 @@ return nil.
HOSTNAME should not contain any username or port number."
(or
- (and user port (auth-source-pass--find-one-by-entry-name (format "%s@%s:%s"
user hostname port) user))
- (and user (auth-source-pass--find-one-by-entry-name (format "%s@%s" user
hostname) user))
- (and port (auth-source-pass--find-one-by-entry-name (format "%s:%s"
hostname port) nil))
+ (and user port (auth-source-pass--find-one-by-entry-name
+ (format "%s@%s%s%s" user hostname
auth-source-pass-port-separator port)
+ user))
+ (and user (auth-source-pass--find-one-by-entry-name
+ (format "%s@%s" user hostname)
+ user))
+ (and port (auth-source-pass--find-one-by-entry-name
+ (format "%s%s%s" hostname auth-source-pass-port-separator port)
+ nil))
(auth-source-pass--find-one-by-entry-name hostname user)
;; if that didn't work, remove subdomain: foo.bar.com -> bar.com
(let ((components (split-string hostname "\\.")))
diff --git a/test/lisp/auth-source-pass-tests.el
b/test/lisp/auth-source-pass-tests.el
index ab9ef92..ae7a696 100644
--- a/test/lisp/auth-source-pass-tests.el
+++ b/test/lisp/auth-source-pass-tests.el
@@ -186,6 +186,17 @@ This function is intended to be set to
`auth-source-debug`."
(should (equal (auth-source-pass--find-match "host.com:8888" "someuser"
nil)
"host.com"))))
+(ert-deftest auth-source-pass-find-host-with-port ()
+ (auth-source-pass--with-store '(("host.com:443"))
+ (should (equal (auth-source-pass--find-match "host.com" "someuser" "443")
+ "host.com:443"))))
+
+(ert-deftest auth-source-pass-find-host-with-custom-port-separator ()
+ (let ((auth-source-pass-port-separator "#"))
+ (auth-source-pass--with-store '(("host.com#443"))
+ (should (equal (auth-source-pass--find-match "host.com" "someuser" "443")
+ "host.com#443")))))
+
(defmacro auth-source-pass--with-store-find-foo (store &rest body)
"Use STORE while executing BODY. \"foo\" is the matched entry."
(declare (indent 1))
- [Emacs-diffs] master a63cbb5 04/13: Add auth-source-pass-filename option, (continued)
- [Emacs-diffs] master a63cbb5 04/13: Add auth-source-pass-filename option, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 9574565 03/13: * lisp/auth-source-pass.el (auth-source-pass-get): Add autoload, Damien Cassou, 2019/06/24
- [Emacs-diffs] master ba11be0 02/13: * lisp/auth-source-pass.el: Version 4.0.2, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 94c9eb8 06/13: Fix auth-source-pass to search for hostname:port/username, Damien Cassou, 2019/06/24
- [Emacs-diffs] master e6fc02f 11/13: * lisp/auth-source-pass.el: Version 5.0.0, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 57e763a 07/13: Split out the attribute retrieval form auth-source-pass-get, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 736f78b 09/13: * lisp/auth-source-pass.el: Add Keith Amidon to authors, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 34f01eb 12/13: * etc/NEWS: Describe changes to auth-source-pass, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 157fced 13/13: * doc/misc/auth.texi (The Unix password store): Complete rewrite, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 0a580c1 08/13: Minimize entry parsing in auth-source-pass, Damien Cassou, 2019/06/24
- [Emacs-diffs] master 2a0a057 05/13: Add auth-source-pass-port-separator option,
Damien Cassou <=
- [Emacs-diffs] master 7022e3f 10/13: Refactoring of auth-source-pass, Damien Cassou, 2019/06/24