emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 94c9eb8 06/13: Fix auth-source-pass to search for h


From: Damien Cassou
Subject: [Emacs-diffs] master 94c9eb8 06/13: Fix auth-source-pass to search for hostname:port/username
Date: Mon, 24 Jun 2019 03:22:46 -0400 (EDT)

branch: master
commit 94c9eb81b8b265380345c36c0a481d9022435d89
Author: Keith Amidon <address@hidden>
Commit: Damien Cassou <address@hidden>

    Fix auth-source-pass to search for hostname:port/username
    
    auth-source-pass supports entries with username either prefixed to the
    hostname with an @ as separator or in a subdirectory under the
    hostname.  This was true when there was no port or service included in
    the name, but got broken with the introduction of
    auth-source-pass-port-separator.
    
    * lisp/auth-source-pass.el (auth-source-pass--find-match-unambiguous): Fix
    to match hostname:port/username.
    * test/lisp/auth-source-pass-tests.el: Add corresponding tests.
---
 lisp/auth-source-pass.el            |  3 +++
 test/lisp/auth-source-pass-tests.el | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el
index 626dbf8..4aa0853 100644
--- a/lisp/auth-source-pass.el
+++ b/lisp/auth-source-pass.el
@@ -262,6 +262,9 @@ HOSTNAME should not contain any username or port number."
    (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 port (auth-source-pass--find-one-by-entry-name
+                   (format "%s%s%s" hostname auth-source-pass-port-separator 
port)
+                   user))
    (and user (auth-source-pass--find-one-by-entry-name
               (format "%s@%s" user hostname)
               user))
diff --git a/test/lisp/auth-source-pass-tests.el 
b/test/lisp/auth-source-pass-tests.el
index ae7a696..1539d96 100644
--- a/test/lisp/auth-source-pass-tests.el
+++ b/test/lisp/auth-source-pass-tests.el
@@ -144,6 +144,17 @@ This function is intended to be set to 
`auth-source-debug`."
     (should (equal (auth-source-pass--find-match "foo.bar.com" nil nil)
                    nil))))
 
+(ert-deftest auth-source-pass-find-match-matching-host-port-and-subdir-user ()
+  (auth-source-pass--with-store '(("bar.com:443/someone"))
+    (should (equal (auth-source-pass--find-match "bar.com" "someone" "443")
+                   "bar.com:443/someone"))))
+
+(ert-deftest 
auth-source-pass-find-match-matching-host-port-and-subdir-user-with-custom-separator
 ()
+  (let ((auth-source-pass-port-separator "#"))
+    (auth-source-pass--with-store '(("bar.com#443/someone"))
+      (should (equal (auth-source-pass--find-match "bar.com" "someone" "443")
+                     "bar.com#443/someone")))))
+
 (ert-deftest auth-source-pass-find-match-matching-extracting-user-from-host ()
   (auth-source-pass--with-store '(("foo.com/bar"))
     (should (equal (auth-source-pass--find-match "https://address@hidden"; nil 
nil)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]