session
(concat "AUTHENTICATE " name
(and (sasl-step-data step)
- (concat
+ (concat
" "
(elmo-base64-encode-string
(sasl-step-data step)
- 'no-lin-break)))))) ;)
+ 'no-lin-break))))))
(catch 'done
(while t
(setq response
(elmo-imap4-read-untagged
(elmo-network-session-process-internal session)))
- (if (elmo-imap4-response-continue-req-p response)
- (unless (sasl-next-step client step)
- ;; response is '+' but there's no next step.
- (signal 'elmo-authenticate-error
- (list (intern
- (concat "elmo-imap4-auth-"
- (downcase name))))))
- ;; response is OK.
- (if (elmo-imap4-response-ok-p response)
- (throw 'done nil) ; finished.
- ;; response is NO or BAD.
- (signal 'elmo-authenticate-error
- (list (intern
- (concat "elmo-imap4-auth-"
- (downcase name)))))))
+ (if (elmo-imap4-response-ok-p response)
+ (if (sasl-next-step client step)
+ ;; Bogus server?
+ (signal 'elmo-authenticate-error
+ (list (intern
+ (concat "elmo-imap4-auth-"
+ (downcase name)))))
+ ;; The authentication process is finished.
+ (throw 'done nil)))
+ (unless (elmo-imap4-response-continue-req-p response)
+ ;; response is NO or BAD.
+ (signal 'elmo-authenticate-error
+ (list (intern
+ (concat "elmo-imap4-auth-"
+ (downcase name))))))
(sasl-step-set-data
step
(elmo-base64-decode-string
'fetch)))))
(defun elmo-imap4-prefetch-msg (spec msg outbuf)
- (elmo-imap4-read-msg spec msg outbuf 'unseen))
+ (elmo-imap4-read-msg spec msg outbuf nil 'unseen))
(defun elmo-imap4-read-msg (spec msg outbuf
- &optional leave-seen-flag-untouched)
+ &optional msgdb leave-seen-flag-untouched)
(let ((session (elmo-imap4-get-session spec))
response)
(elmo-imap4-session-select-mailbox session