;;; gnus-int.el --- backend interface functions for Gnus
-;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
(list 'nnmh-directory
(file-name-as-directory
(expand-file-name
- (concat "~/" (substring
- gnus-nntp-server 1)))))
+ (substring gnus-nntp-server 1) "~/")))
(list 'nnmh-get-new-mail nil)))
(t
(list 'nntp gnus-nntp-server)))))
"Check whether the connection to METHOD is down.
If METHOD is nil, use `gnus-select-method'.
If it is down, start it up (again)."
- (let ((method (or method gnus-select-method)))
+ (let ((method (or method gnus-select-method))
+ result)
;; Transform virtual server names into select methods.
(when (stringp method)
(setq method (gnus-server-to-method method)))
(format " on %s" (nth 1 method)))))
(gnus-run-hooks 'gnus-open-server-hook)
(prog1
- (gnus-open-server method)
+ (condition-case ()
+ (setq result (gnus-open-server method))
+ (quit (message "Quit gnus-check-server")
+ nil))
(unless silent
- (message ""))))))
+ (gnus-message 5 "Opening %s server%s...%s" (car method)
+ (if (equal (nth 1 method) "") ""
+ (format " on %s" (nth 1 method)))
+ (if result "done" "failed")))))))
(defun gnus-get-function (method function &optional noerror)
"Return a function symbol based on METHOD and FUNCTION."
(defun gnus-server-opened (gnus-command-method)
"Check whether a connection to GNUS-COMMAND-METHOD has been opened."
- (when (stringp gnus-command-method)
- (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
- (funcall (inline (gnus-get-function gnus-command-method 'server-opened))
- (nth 1 gnus-command-method)))
+ (unless (eq (gnus-server-status gnus-command-method)
+ 'denied)
+ (when (stringp gnus-command-method)
+ (setq gnus-command-method (gnus-server-to-method gnus-command-method)))
+ (funcall (inline (gnus-get-function gnus-command-method 'server-opened))
+ (nth 1 gnus-command-method))))
(defun gnus-status-message (gnus-command-method)
"Return the status message from GNUS-COMMAND-METHOD.
articles (gnus-group-real-name group)
(nth 1 gnus-command-method) fetch-old))))
-(defun gnus-retrieve-parsed-headers (articles group &optional fetch-old
- dependencies force-new)
- "Request parsed-headers for ARTICLES in GROUP.
-If FETCH-OLD, retrieve all headers (or some subset thereof) in the group."
- (unless dependencies
- (setq dependencies
- (save-excursion
- (set-buffer gnus-summary-buffer)
- gnus-newsgroup-dependencies)))
- (let ((gnus-command-method (gnus-find-method-for-group group))
- headers)
- (if (and gnus-use-cache (numberp (car articles)))
- (setq headers
- (gnus-cache-retrieve-parsed-headers articles group fetch-old
- dependencies force-new))
- (let ((func (gnus-get-function gnus-command-method
- 'retrieve-parsed-headers 'no-error)))
- (if func
- (setq headers (funcall func articles dependencies
- (gnus-group-real-name group)
- (nth 1 gnus-command-method) fetch-old
- force-new)
- gnus-headers-retrieved-by (car headers)
- headers (cdr headers))
- (setq gnus-headers-retrieved-by
- (funcall
- (gnus-get-function gnus-command-method 'retrieve-headers)
- articles (gnus-group-real-name group)
- (nth 1 gnus-command-method) fetch-old))
- )))
- (or headers
- (if (eq gnus-headers-retrieved-by 'nov)
- (gnus-get-newsgroup-headers-xover
- articles nil dependencies gnus-newsgroup-name t)
- (gnus-get-newsgroup-headers dependencies)))
- ))
-
(defun gnus-retrieve-articles (articles group)
"Request ARTICLES in GROUP."
(let ((gnus-command-method (gnus-find-method-for-group group)))
(defun gnus-request-scan (group gnus-command-method)
"Request a SCAN being performed in GROUP from GNUS-COMMAND-METHOD.
If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned."
- (when gnus-plugged
- (let ((gnus-command-method
- (if group (gnus-find-method-for-group group) gnus-command-method))
- (gnus-inhibit-demon t))
- (funcall (gnus-get-function gnus-command-method 'request-scan)
- (and group (gnus-group-real-name group))
- (nth 1 gnus-command-method)))))
+ (let ((gnus-command-method
+ (if group (gnus-find-method-for-group group) gnus-command-method))
+ (gnus-inhibit-demon t)
+ (mail-source-plugged gnus-plugged))
+ (if (or gnus-plugged (not (gnus-agent-method-p gnus-command-method)))
+ (funcall (gnus-get-function gnus-command-method 'request-scan)
+ (and group (gnus-group-real-name group))
+ (nth 1 gnus-command-method)))))
(defsubst gnus-request-update-info (info gnus-command-method)
"Request that GNUS-COMMAND-METHOD update INFO."