"Retrieve group info on INFOS."
(nntp-with-open-group nil server
(let ((buffer (nntp-find-connection-buffer nntp-server-buffer)))
+ (unless infos
+ (with-current-buffer buffer
+ (setq nntp-retrieval-in-progress nil)))
(when (and buffer
+ infos
(with-current-buffer buffer
(not nntp-retrieval-in-progress)))
;; The first time this is run, this variable is `try'. So we
"Retrieve group info on GROUPS."
(nntp-with-open-group
nil server
- (when (nntp-find-connection-buffer nntp-server-buffer)
+ (when (and (nntp-find-connection-buffer nntp-server-buffer)
+ (with-current-buffer
+ (nntp-find-connection-buffer nntp-server-buffer)
+ (if (not nntp-retrieval-in-progress)
+ t
+ (message "Warning: Refusing to do retrieval from %s because a retrieval is already happening"
+ server)
+ nil)))
(catch 'done
(save-excursion
;; Erase nntp-server-buffer before nntp-inhibit-erase.
(alist (netrc-machine list nntp-address "nntp"))
(auth-info
(nth 0 (auth-source-search :max 1
- ;; TODO: allow the virtual server name too
- :host nntp-address
+ :host (list nntp-address
+ (nnoo-current-server 'nntp))
:port '("119" "nntp"))))
(auth-user (plist-get auth-info :user))
(auth-force (plist-get auth-info :force))
(nnheader-cancel-timer timer))
(when (and process
(not (memq (process-status process) '(open run))))
+ (with-current-buffer pbuffer
+ (goto-char (point-min))
+ (nnheader-report 'nntp "Error when connecting: %s"
+ (buffer-substring (point) (line-end-position))))
(setq process nil))
(unless process
(nntp-kill-buffer pbuffer))