- return unless req.is_a?(LoginRequest)
-
- case resp.status
- when :ok
- @state = :logged_in
-
- @mboxes.each { |mb| query_status(mb) }
- else
- raise(LoginError, "cannot login - #{resp.data}")
+ case req
+ when LoginRequest
+ case resp.status
+ when :ok
+ @state = :logged_in
+
+ @mboxes.each { |mb| query_status(mb) }
+ else
+ raise(LoginError, "cannot login - #{resp.data}")
+ end
+ when StatusRequest
+ @mboxes.delete(req.mailbox)
+
+ if @mboxes.empty?
+ @status = :done
+ logout
+ end