Synch with Gnus trunk:
2009-07-16 Katsumi Yamaoka <yamaoka@jpl.org> * nnrss.el (nnrss-request-article): Allow mml-to-mime to generate MIME article without making inquiry to a user for unknown encoding. * nnmaildir.el (nnmaildir--group-maxnum, nnmaildir--new-number) (nnmaildir--scan): Assume i-node and device number that file-attributes returns might be cons-cell. 2009-07-16 Teodor Zlatanov <tzz@lifelogs.com> * auth-source.el: Remove docs now in auth.texi. Don't use `gnus-message' for logging. Add new variables `auth-source-debug' and `auth-source-hide-passwords' and use them.
This commit is contained in:
parent
0dd44f7e2c
commit
554a69b81c
4 changed files with 80 additions and 49 deletions
|
|
@ -1,3 +1,18 @@
|
|||
2009-07-16 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* nnrss.el (nnrss-request-article): Allow mml-to-mime to generate MIME
|
||||
article without making inquiry to a user for unknown encoding.
|
||||
|
||||
* nnmaildir.el (nnmaildir--group-maxnum, nnmaildir--new-number)
|
||||
(nnmaildir--scan): Assume i-node and device number that file-attributes
|
||||
returns might be cons-cell.
|
||||
|
||||
2009-07-16 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* auth-source.el: Remove docs now in auth.texi. Don't use
|
||||
`gnus-message' for logging. Add new variables `auth-source-debug' and
|
||||
`auth-source-hide-passwords' and use them.
|
||||
|
||||
2009-07-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* gnus-spec.el (gnus-make-format-preserve-properties): Doc fix.
|
||||
|
|
|
|||
|
|
@ -27,33 +27,7 @@
|
|||
;; of providing 5000 options, we'll stick to simple, easy to
|
||||
;; understand options.
|
||||
|
||||
;; Easy setup:
|
||||
;; (require 'auth-source)
|
||||
;; (customize-variable 'auth-sources) ;; optional
|
||||
|
||||
;; now, whatever sources you've defined for password have to be available
|
||||
|
||||
;; if you want encrypted sources, which is strongly recommended, do
|
||||
;; (require 'epa-file)
|
||||
;; (epa-file-enable)
|
||||
;; (setq epa-file-cache-passphrase-for-symmetric-encryption t) ; VERY important
|
||||
|
||||
;; 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.
|
||||
|
||||
;;; For tramp authentication, use:
|
||||
|
||||
;;; machine yourmachine.com port scp login testuser password testpass
|
||||
|
||||
;;; Note that the port denotes the Tramp connection method. When you
|
||||
;;; don't use a port entry, you match any Tramp method.
|
||||
;; See the auth.info Info documentation for details.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
@ -100,6 +74,31 @@
|
|||
:version "23.1" ;; No Gnus
|
||||
:type `boolean)
|
||||
|
||||
(defcustom auth-source-debug nil
|
||||
"Whether auth-source should log debug messages.
|
||||
Also see `auth-source-hide-passwords'.
|
||||
|
||||
If the value is nil, debug messages are not logged.
|
||||
If the value is t, debug messages are logged with `message'.
|
||||
In that case, your authentication data will be in the
|
||||
clear (except for passwords, which are always stripped out).
|
||||
If the value is a function, debug messages are logged by calling
|
||||
that function using the same arguments as `message'."
|
||||
:group 'auth-source
|
||||
:version "23.1" ;; No Gnus
|
||||
:type `(choice
|
||||
:tag "auth-source debugging mode"
|
||||
(const :tag "Log using `message' to the *Messages* buffer" t)
|
||||
(function :tag "Function that takes arguments like `message'")
|
||||
(const :tag "Don't log anything" nil)))
|
||||
|
||||
(defcustom auth-source-hide-passwords t
|
||||
"Whether auth-source should hide passwords in log messages.
|
||||
Only relevant if `auth-source-debug' is not nil."
|
||||
:group 'auth-source
|
||||
:version "23.1" ;; No Gnus
|
||||
:type `boolean)
|
||||
|
||||
(defcustom auth-sources '((:source "~/.authinfo.gpg" :host t :protocol t))
|
||||
"List of authentication sources.
|
||||
|
||||
|
|
@ -137,6 +136,19 @@ Each entry is the authentication type with optional properties."
|
|||
;; (auth-source-user-or-password-imap "password" "imap.myhost.com")
|
||||
;; (auth-source-protocol-defaults 'imap)
|
||||
|
||||
;; (let ((auth-source-debug 'debug)) (auth-source-debug "hello"))
|
||||
;; (let ((auth-source-debug t)) (auth-source-debug "hello"))
|
||||
;; (let ((auth-source-debug nil)) (auth-source-debug "hello"))
|
||||
(defun auth-source-do-debug (&rest msg)
|
||||
;; set logger to either the function in auth-source-debug or 'message
|
||||
;; note that it will be 'message if auth-source-debug is nil, so
|
||||
;; we also check the value
|
||||
(when auth-source-debug
|
||||
(let ((logger (if (functionp auth-source-debug)
|
||||
auth-source-debug
|
||||
'message)))
|
||||
(apply logger msg))))
|
||||
|
||||
(defun auth-source-pick (host protocol &optional fallback)
|
||||
"Parse `auth-sources' for HOST, and PROTOCOL matches.
|
||||
|
||||
|
|
@ -171,21 +183,21 @@ Returns fallback choices (where PROTOCOL or HOST are nil) with FALLBACK t."
|
|||
(defun auth-source-user-or-password (mode host protocol)
|
||||
"Find MODE (string or list of strings) matching HOST and PROTOCOL.
|
||||
MODE can be \"login\" or \"password\" for example."
|
||||
(gnus-message 9
|
||||
"auth-source-user-or-password: get %s for %s (%s)"
|
||||
mode host protocol)
|
||||
(auth-source-do-debug
|
||||
"auth-source-user-or-password: get %s for %s (%s)"
|
||||
mode host protocol)
|
||||
(let* ((listy (listp mode))
|
||||
(mode (if listy mode (list mode)))
|
||||
(cname (format "%s %s:%s" mode host protocol))
|
||||
(found (gethash cname auth-source-cache)))
|
||||
(if found
|
||||
(progn
|
||||
(gnus-message 9
|
||||
"auth-source-user-or-password: cached %s=%s for %s (%s)"
|
||||
mode
|
||||
;; don't show the password
|
||||
(if (member "password" mode) "SECRET" found)
|
||||
host protocol)
|
||||
(auth-source-do-debug
|
||||
"auth-source-user-or-password: cached %s=%s for %s (%s)"
|
||||
mode
|
||||
;; don't show the password
|
||||
(if (and (member "password" mode) auth-source-hide-passwords) "SECRET" found)
|
||||
host protocol)
|
||||
found)
|
||||
(dolist (choice (auth-source-pick host protocol))
|
||||
(setq found (netrc-machine-user-or-password
|
||||
|
|
@ -195,12 +207,12 @@ MODE can be \"login\" or \"password\" for example."
|
|||
(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 (member "password" mode) "SECRET" found)
|
||||
host protocol)
|
||||
(auth-source-do-debug
|
||||
"auth-source-user-or-password: found %s=%s for %s (%s)"
|
||||
mode
|
||||
;; don't show the password
|
||||
(if (and (member "password" mode) auth-source-hide-passwords) "SECRET" found)
|
||||
host protocol)
|
||||
(setq found (if listy found (car-safe found)))
|
||||
(when auth-source-do-cache
|
||||
(puthash cname found auth-source-cache)))
|
||||
|
|
|
|||
|
|
@ -270,8 +270,8 @@ by nnmaildir-request-article.")
|
|||
(setq attr (file-attributes
|
||||
(concat dir (number-to-string number-linked))))
|
||||
(or attr (throw 'return (1- number-linked)))
|
||||
(if (/= ino-opened (nth 10 attr))
|
||||
(setq number-opened number-linked))))))
|
||||
(unless (equal ino-opened (nth 10 attr))
|
||||
(setq number-opened number-linked))))))
|
||||
|
||||
;; Make the given server, if non-nil, be the current server. Then make the
|
||||
;; given group, if non-nil, be the current group of the current server. Then
|
||||
|
|
@ -361,9 +361,9 @@ by nnmaildir-request-article.")
|
|||
number-open number-link))
|
||||
((nnmaildir--eexist-p err)
|
||||
(let ((attr (file-attributes path-link)))
|
||||
(if (/= (nth 10 attr) ino-open)
|
||||
(setq number-open number-link
|
||||
number-link 0))))
|
||||
(unless (equal (nth 10 attr) ino-open)
|
||||
(setq number-open number-link
|
||||
number-link 0))))
|
||||
(t (signal (car err) (cdr err)))))))))
|
||||
|
||||
(defun nnmaildir--update-nov (server group article)
|
||||
|
|
@ -744,7 +744,7 @@ by nnmaildir-request-article.")
|
|||
ls (or (nnmaildir--param pgname 'directory-files) srv-ls))
|
||||
(unless read-only
|
||||
(setq x (nth 11 (file-attributes tdir)))
|
||||
(unless (and (= x (nth 11 nattr)) (= x (nth 11 cattr)))
|
||||
(unless (and (equal x (nth 11 nattr)) (equal x (nth 11 cattr)))
|
||||
(setf (nnmaildir--srv-error nnmaildir--cur-server)
|
||||
(concat "Maildir spans filesystems: " absdir))
|
||||
(throw 'return nil))
|
||||
|
|
|
|||
|
|
@ -310,7 +310,11 @@ used to render text. If it is nil, text will simply be folded.")
|
|||
"<#/part>\n"
|
||||
"<#/multipart>\n"))
|
||||
(condition-case nil
|
||||
(mml-to-mime)
|
||||
;; Allow `mml-to-mime' to generate MIME article without
|
||||
;; making inquiry to a user for unknown encoding.
|
||||
(let ((mml-confirmation-set
|
||||
(cons 'unknown-encoding mml-confirmation-set)))
|
||||
(mml-to-mime))
|
||||
(error
|
||||
(erase-buffer)
|
||||
(insert header
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue