From e952b7113684d3097c074df8d78111af489268e1 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Sat, 10 May 2008 05:34:55 +0000 Subject: [PATCH] Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1153 --- lisp/gnus/ChangeLog | 12 ++++++++++++ lisp/gnus/auth-source.el | 19 +++++++++++++++++++ lisp/gnus/nnimap.el | 39 +++++++++++++++++++++++---------------- lisp/gnus/nntp.el | 14 ++++++++++++-- 4 files changed, 66 insertions(+), 18 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 7de606761c7..7ce34cd043a 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,15 @@ +2008-05-09 Teodor Zlatanov + + * nntp.el: Autoload `auth-source-user-or-password'. + (nntp-send-authinfo): Use it. + + * nnimap.el: Autoload `auth-source-user-or-password'. + (nnimap-open-connection): Use it. + + * auth-source.el: Added docs on using with url-auth. Import gnus-util + for the gnus-message function. + (auth-source-user-or-password): Use it. + 2008-05-08 Stefan Monnier * rfc2104.el (rfc2104-hexstring-to-bitstring): Rename it back from diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 3fa4b445403..2bf2bf0ad62 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -39,8 +39,18 @@ ;; before you put some data in ~/.authinfo.gpg (the default place) +;;; For url-auth authentication (HTTP/HTTPS), you need to use: + +;;; machine yourmachine.com:80 port http login testuser password testpass + +;;; This will match any realm and authentication method (basic or +;;; digest). If you want finer controls, explore the url-auth source +;;; code and variables. + ;;; Code: +(require 'gnus-util) + (eval-when-compile (require 'cl)) (eval-when-compile (require 'netrc)) @@ -135,6 +145,9 @@ Returns fallback choices (where PROTOCOL or HOST are nil) with FALLBACK t." (defun auth-source-user-or-password (mode host protocol) "Find user or password (from the string MODE) matching HOST and PROTOCOL." + (gnus-message 9 + "auth-source-user-or-password: get %s for %s (%s)" + mode host protocol) (let (found) (dolist (choice (auth-source-pick host protocol)) (setq found (netrc-machine-user-or-password @@ -144,6 +157,12 @@ Returns fallback choices (where PROTOCOL or HOST are nil) with FALLBACK t." (list (format "%s" protocol)) (auth-source-protocol-defaults protocol))) (when found + (gnus-message 9 + "auth-source-user-or-password: found %s=%s for %s (%s)" + mode + ;; don't show the password + (if (equal mode "password") "SECRET" found) + host protocol) (return found))))) (defun auth-source-protocol-defaults (protocol) diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index d6b414fdabe..11396fcec78 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -71,6 +71,9 @@ (eval-when-compile (require 'cl)) +(eval-and-compile + (autoload 'auth-source-user-or-password "auth-source")) + (nnoo-declare nnimap) (defconst nnimap-version "nnimap 1.0") @@ -796,22 +799,26 @@ If EXAMINE is non-nil the group is selected read-only." (port (if nnimap-server-port (int-to-string nnimap-server-port) "imap")) - (user (netrc-machine-user-or-password - "login" - list - (list server - (or nnimap-server-address - nnimap-address)) - (list port) - (list "imap" "imaps" "143" "993"))) - (passwd (netrc-machine-user-or-password - "password" - list - (list server - (or nnimap-server-address - nnimap-address)) - (list port) - (list "imap" "imaps" "143" "993")))) + (user (or + (auth-source-user-or-password "login" server port) ; this is preferred to netrc-* + (netrc-machine-user-or-password + "login" + list + (list server + (or nnimap-server-address + nnimap-address)) + (list port) + (list "imap" "imaps" "143" "993")))) + (passwd (or + (auth-source-user-or-password "login" server port) ; this is preferred to netrc-* + (netrc-machine-user-or-password + "password" + list + (list server + (or nnimap-server-address + nnimap-address)) + (list port) + (list "imap" "imaps" "143" "993"))))) (if (imap-authenticate user passwd nnimap-server-buffer) (prog2 (setq nnimap-server-buffer-alist diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 02b2f6f713c..ea053531b9a 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el @@ -36,6 +36,9 @@ (eval-when-compile (require 'cl)) +(eval-and-compile + (autoload 'auth-source-user-or-password "auth-source")) + (defgroup nntp nil "NNTP access for Gnus." :group 'gnus) @@ -1177,8 +1180,15 @@ If SEND-IF-FORCE, only send authinfo to the server if the (let* ((list (netrc-parse nntp-authinfo-file)) (alist (netrc-machine list nntp-address "nntp")) (force (or (netrc-get alist "force") nntp-authinfo-force)) - (user (or (netrc-get alist "login") nntp-authinfo-user)) - (passwd (netrc-get alist "password"))) + (user (or + ;; this is preferred to netrc-* + (auth-source-user-or-password "login" nntp-address "nntp") + (netrc-get alist "login") + nntp-authinfo-user)) + (passwd (or + ;; this is preferred to netrc-* + (auth-source-user-or-password "password" nntp-address "nntp") + (netrc-get alist "password")))) (when (or (not send-if-force) force) (unless user -- 2.39.2