Function: nntp-with-open-group

nntp-with-open-group is a macro defined in nntp.el.gz.

Signature

(nntp-with-open-group GROUP SERVER &optional CONNECTIONLESS &rest FORMS)

Documentation

Protect against servers that don't like clients that keep idle connections open.

The problem being that these servers may either close a connection or simply ignore any further requests on a connection. Closed connections are not detected until accept-process-output has updated the process-status. Dropped connections are not detected until the connection timeouts (which may be several minutes) or nntp-connection-timeout has expired. When these occur nntp-with-open-group, opens a new connection then re-issues the NNTP command whose response triggered the error.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nntp.el.gz
(defmacro nntp-with-open-group (group server &optional connectionless &rest forms)
  "Protect against servers that don't like clients that keep idle connections open.
The problem being that these servers may either close a connection or
simply ignore any further requests on a connection.  Closed
connections are not detected until `accept-process-output' has updated
the `process-status'.  Dropped connections are not detected until the
connection timeouts (which may be several minutes) or
`nntp-connection-timeout' has expired.  When these occur
`nntp-with-open-group', opens a new connection then re-issues the NNTP
command whose response triggered the error."
  (declare (indent 2) (debug (form form [&optional symbolp] def-body)))
  (when (consp connectionless)
    (setq forms (cons connectionless forms)
	  connectionless nil))
  `(nntp-with-open-group-function ,group ,server ,connectionless
                                  (lambda () ,@forms)))