--- nntp.el~ 2007-07-18 12:07:39 +0000 +++ nntp.el 2007-07-31 02:54:25 +0000 @@ -978,8 +978,12 @@ (or (nntp-find-connection nntp-server-buffer) (nntp-open-connection nntp-server-buffer))))) +(defvar nntp-force-close-server nil + "Non-nil means force server to close if it doesn't respond immediately.") + (deffoo nntp-close-server (&optional server) - (nntp-possibly-change-group nil server t) + (let ((nntp-force-close-server t)) + (nntp-possibly-change-group nil server t)) (let ((process (nntp-find-connection nntp-server-buffer))) (while process (when (memq (process-status process) '(open run)) @@ -1728,7 +1732,10 @@ (while (and (setq proc (get-buffer-process buf)) (memq (process-status proc) '(open run)) (not (re-search-forward regexp nil t))) - (accept-process-output proc) + (if nntp-force-close-server + (unless (accept-process-output proc 1) + (delete-process proc)) + (accept-process-output proc)) (set-buffer buf) (goto-char (point-min)))))