(setq cmdstr (concat tag " "))
;; (erase-buffer) No need.
(goto-char (point-min))
- (if (elmo-imap4-response-bye-p elmo-imap4-current-response)
- (signal 'elmo-imap4-bye-error
- (list (elmo-imap4-response-error-text
- elmo-imap4-current-response))))
+ (when (elmo-imap4-response-bye-p elmo-imap4-current-response)
+ (elmo-network-close-session session)
+ (signal 'elmo-imap4-bye-error
+ (list (elmo-imap4-response-error-text
+ elmo-imap4-current-response))))
(setq elmo-imap4-current-response nil)
(if elmo-imap4-parsing
(error "IMAP process is running. Please wait (or plug again.)"))
(if (elmo-imap4-response-ok-p response)
response
(if (elmo-imap4-response-bye-p response)
- (signal 'elmo-imap4-bye-error
- (list (elmo-imap4-response-error-text response)))
+ (progn
+ (elmo-network-close-session session)
+ (signal 'elmo-imap4-bye-error
+ (list (elmo-imap4-response-error-text response))))
(error "IMAP error: %s"
(or (elmo-imap4-response-error-text response)
"No `OK' response from server."))))))