2005-09-07 Reiner Steib <Reiner.Steib@gmx.de>
+ * spam-report.el (spam-report-gmane): Make it work without
+ X-Report-Spam header. Gmane now only provides Archived-At. This
+ is only used if `spam-report-gmane-use-article-number' is nil.
+ (spam-report-gmane-spam-header): Removed. Not used anymore.
+
* gnus-sum.el (gnus-thread-sort-by-recipient): New function to
make `gnus-summary-sort-by-recipient' work with threading.
* gnus-art.el (gnus-mime-display-single): Revert 2004-10-07
change. Decode text/* parts content before displaying.
+2005-09-06 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * mml-smime.el: Remove defvar of gnus-extract-address-components.
+
2005-09-06 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-view.el (mm-display-inline-fontify): Disable support modes.
;;; mml-smime.el --- S/MIME support for MML
-;; Copyright (c) 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: Gnus, MIME, S/MIME, MML
(eval-when-compile (require 'cl))
-(defvar gnus-extract-address-components)
-
;; EMIKO doesn't provide the smime.el module.
(condition-case nil
(require 'smime)
result))
(defun mml-smime-encrypt-query ()
- ;; todo: add ldap support (xemacs ldap api?)
;; todo: try dns/ldap automatically first, before prompting user
(let (certs done)
(while (not done)
(regexp :value "^nntp\+.*:gmane\."))
:group 'spam-report)
-(defcustom spam-report-gmane-spam-header
- "^X-Report-Spam: http://\\([^/]+\\)\\(.*\\)$"
- "String matching Gmane spam-reporting header. Two match groups are needed."
- :type 'regexp
- :group 'spam-report)
-
(defcustom spam-report-gmane-use-article-number t
"Whether the article number (faster!) or the header should be used."
:type 'boolean
article))
(with-current-buffer nntp-server-buffer
(gnus-request-head article gnus-newsgroup-name)
- (goto-char (point-min))
- (if (re-search-forward spam-report-gmane-spam-header nil t)
- (let* ((host (match-string 1))
- (report (match-string 2))
- (url (format "http://%s%s" host report)))
- (gnus-message 7 "Reporting spam through URL %s..." url)
- (spam-report-url-ping host report))
- (gnus-message 3 "Could not find X-Report-Spam in article %d..."
- article)))))))
+ (let ((case-fold-search t)
+ field host report url)
+ ;; First check for X-Report-Spam because it's more specific to
+ ;; spam reporting than Archived-At. OTOH, all new articles on
+ ;; Gmane don't have X-Report-Spam anymore (unless Lars changes his
+ ;; mind :-)).
+ ;;
+ ;; There might be more than one Archived-At header so we need to
+ ;; find (and transform) the one related to Gmane.
+ (setq field (or (gnus-fetch-field "X-Report-Spam")
+ (gnus-fetch-field "Archived-At")))
+ (setq host (progn
+ (string-match
+ (concat "http://\\([a-z]+\\.gmane\\.org\\)"
+ "\\(/[^:/]+[:/][0-9]+\\)")
+ field)
+ (match-string 1 field)))
+ (setq report (match-string 2 field))
+ (when (string-equal "permalink.gmane.org" host)
+ (setq host "spam.gmane.org"))
+ (setq url (format "http://%s%s" host report))
+ (if (not (and host report url))
+ (gnus-message
+ 3 "Could not find a spam report header in article %d..."
+ article)
+ (gnus-message 7 "Reporting spam through URL %s..." url)
+ (spam-report-url-ping host report))))))))
(defun spam-report-url-ping (host report)
"Ping a host through HTTP, addressing a specific GET resource using
the function specified by `spam-report-url-ping-function'."
+ ;; Example:
+ ;; host: "spam.gmane.org"
+ ;; report: "/gmane.some.group:123456"
(funcall spam-report-url-ping-function host report))
(defun spam-report-url-ping-plain (host report)