History log of /haiku/src/add-ons/mail_daemon/inbound_protocols/imap/imap_lib/Commands.h
Revision Date Author Comments
# 29871039 21-Dec-2015 Axel Dörfler <axeld@pinc-software.de>

IMAP: Use BStringList instead of STL vector.


# 46019292 18-Jul-2013 Axel Dörfler <axeld@pinc-software.de>

IMAP: let mail retrieval scale better.

* We now also maintain a mail index -> UID array in IMAPMailbox.
* Instead of fetching the message entries by a fixed range of UIDs, we use the
message count, and get the entries by index.
* Likewise, in FetchHeadersCommand, we now get a list of UIDs rather than a
range. This makes it possible to only download exactly the headers we want.
* Extended FetchCommand to be able to dynamically build a sequence list from
a list of UIDs.
* Besides the suboptimal body fetching (one at a time, due to holes in the
IMAP specification), we should now be able to retrieve the messages with
pretty much optimal performance, while retaining an acceptable responsiveness
to user requests.


# c1f779e3 29-May-2013 Axel Dörfler <axeld@pinc-software.de>

IMAP: FetchMessageEntriesCommand now also works without UIDs

* This will be used to solve the TODO in CheckMailboxesCommand::Process()
when the initial message sizes/flags are retrieved.
* Also fixed imap_tester build.


# 1052525d 22-May-2013 Axel Dörfler <axeld@pinc-software.de>

IMAP: work in progress of downloading the mail body.

* Most things are in place now, we just try to download the body to the
wrong file, as the final location is currently unknown.
* Added local only kPartialMessage flag for mails, but it's not being
used yet.


# eba458b9 24-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Fetching headers is now working.

* No state is stored yet, though, so that all messages will be downloaded
over and over again.


# 3302df14 19-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: WIP of getting fetching headers to work.

* Changed the FetchListener mechanism quite a bit.
* Doesn't seem to work correctly yet, although most pieces are in
place now.


# 229c7773 14-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Testing for new messages is now working.

* There is now a CheckSubscribedFoldersCommand that is issued on the main
connection that triggers everything.
* The new CheckMailboxesCommand divides the new mail check into several
portions, and requeues itself until the next step, ie. the
FetchHeadersCommand.
* The headers of the new mails are downloaded, but nothing is done with
them yet.
* The actual check for the new mails doesn't scale that well yet, not sure
how to properly do this without having to rely on the mail indices. Might
be sensible to solve this via some simple heuristic.


# 7993ddfa 10-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Fleshed out command processing.

* Still doesn't do anything useful, though.


# a4bdd26d 05-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Work in progress of connection setup.

* SelectCommand now correctly encodes the mailbox name again.
* Hierarchy separators from the LIST/LSUB commands are now properly parsed,
and taken into account.
* Folders in the file system are now created for mailboxes on the server,
supporting hierarchical mailbox names.
* A connection worker now has an IMAPFolder that handles the local side of the
mailbox, and an IMAPMailbox that handles the server side.
* Connection workers are now created/deleted, and setup correctly. They will
now also wait in case they don't have a mailbox until they get some.


# cc3aa99c 05-Jan-2012 Axel Dörfler <axeld@pinc-software.de>

Use GETQUOTAROOT instead of GETQUOTA.

* At least with my ISP, there is no "" root, so the command would fail when used
as is.
* Now we always use the GETQUOTAROOT command instead, by default for the INBOX
mailbox. This isn't entirely correct either, but better than nothing.


# fe262847 18-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

Added support for decoding RFC-3501 mailbox names.

* Added new RFC3501Encoding class that implements modified UTF-7 as specified
in RFC-3501; only decoding is implemented right now.
* ListCommand now uses this new class to encode, and decode the folder names.


# 9192d4dc 14-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

Started working on the IMAP add-on itself.

* Renamed imap_config.cpp to ConfigView.cpp, IMAPFolderConfig.(h|cpp)
to FolderConfigWindow.(h|cpp).
* Got the latter to build.
* Added Settings class to simplify and unify the BMessage based
settings access.
* Removed the InboundProtocol[Thread] implementation from the build for now.


# 17044801 02-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

Read some more specs, cleaned Protocol a bit.

* Added some TODO comments based on the various IMAP specs and extensions.
* Removed SelectMailbox() functionality from the Protocol class; it's not
really useful to have it there.
* Removed some other methods that don't belong into the Protocol class.


# db0a4f2c 01-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

More work in progress of the IMAP rework.

* Implemented FetchCommand, and some more.
* Improved and extended the imap_tester.
* The base to implement the new InboundProtocol on is now mostly done, at least
for a start.


# a5170470 30-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Got rid of the ConnectionReader, and implemented parsing literals.

* The parser now works on a BDataIO instead. It's now even a bit simpler
overall.
* Implemented ParseLiteral() - the default implementation just reads the data
into a string. Thanks to BDataIO this was now very simple to do.
* Tested the code: imap_tester can now successfully read mails (using the raw
command only, at the moment).


# 37d26ae5 29-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Work in progress of rewrite; IMAP doesn't even compile at this point.


# 46019292630b815296175cf61031f574dc15a69e 18-Jul-2013 Axel Dörfler <axeld@pinc-software.de>

IMAP: let mail retrieval scale better.

* We now also maintain a mail index -> UID array in IMAPMailbox.
* Instead of fetching the message entries by a fixed range of UIDs, we use the
message count, and get the entries by index.
* Likewise, in FetchHeadersCommand, we now get a list of UIDs rather than a
range. This makes it possible to only download exactly the headers we want.
* Extended FetchCommand to be able to dynamically build a sequence list from
a list of UIDs.
* Besides the suboptimal body fetching (one at a time, due to holes in the
IMAP specification), we should now be able to retrieve the messages with
pretty much optimal performance, while retaining an acceptable responsiveness
to user requests.


# c1f779e3500b6157de46ccdf7ddccd70850beab9 29-May-2013 Axel Dörfler <axeld@pinc-software.de>

IMAP: FetchMessageEntriesCommand now also works without UIDs

* This will be used to solve the TODO in CheckMailboxesCommand::Process()
when the initial message sizes/flags are retrieved.
* Also fixed imap_tester build.


# 1052525dc5cfda3563a36ad82b4a900d7beb5221 22-May-2013 Axel Dörfler <axeld@pinc-software.de>

IMAP: work in progress of downloading the mail body.

* Most things are in place now, we just try to download the body to the
wrong file, as the final location is currently unknown.
* Added local only kPartialMessage flag for mails, but it's not being
used yet.


# eba458b9407056235aeb184a038e202b2d7bfe5e 24-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Fetching headers is now working.

* No state is stored yet, though, so that all messages will be downloaded
over and over again.


# 3302df142ef8f47c0c0a7d6020b38a63c7cb7403 19-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: WIP of getting fetching headers to work.

* Changed the FetchListener mechanism quite a bit.
* Doesn't seem to work correctly yet, although most pieces are in
place now.


# 229c7773234389164b47efc09f348b248b8caf47 14-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Testing for new messages is now working.

* There is now a CheckSubscribedFoldersCommand that is issued on the main
connection that triggers everything.
* The new CheckMailboxesCommand divides the new mail check into several
portions, and requeues itself until the next step, ie. the
FetchHeadersCommand.
* The headers of the new mails are downloaded, but nothing is done with
them yet.
* The actual check for the new mails doesn't scale that well yet, not sure
how to properly do this without having to rely on the mail indices. Might
be sensible to solve this via some simple heuristic.


# 7993ddfabaa0069192062289b4fb18c0034cdf76 10-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Fleshed out command processing.

* Still doesn't do anything useful, though.


# a4bdd26d61967231469220573c4b5ee09e29dd49 05-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

imap: Work in progress of connection setup.

* SelectCommand now correctly encodes the mailbox name again.
* Hierarchy separators from the LIST/LSUB commands are now properly parsed,
and taken into account.
* Folders in the file system are now created for mailboxes on the server,
supporting hierarchical mailbox names.
* A connection worker now has an IMAPFolder that handles the local side of the
mailbox, and an IMAPMailbox that handles the server side.
* Connection workers are now created/deleted, and setup correctly. They will
now also wait in case they don't have a mailbox until they get some.


# cc3aa99cb3ca7796ae4a199e445608fc478d4f45 05-Jan-2012 Axel Dörfler <axeld@pinc-software.de>

Use GETQUOTAROOT instead of GETQUOTA.

* At least with my ISP, there is no "" root, so the command would fail when used
as is.
* Now we always use the GETQUOTAROOT command instead, by default for the INBOX
mailbox. This isn't entirely correct either, but better than nothing.


# fe26284795c623afb2448bf19b116d5ce4c70b94 18-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

Added support for decoding RFC-3501 mailbox names.

* Added new RFC3501Encoding class that implements modified UTF-7 as specified
in RFC-3501; only decoding is implemented right now.
* ListCommand now uses this new class to encode, and decode the folder names.


# 9192d4dcf36ca64087e0702be1ef464c1e49d208 14-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

Started working on the IMAP add-on itself.

* Renamed imap_config.cpp to ConfigView.cpp, IMAPFolderConfig.(h|cpp)
to FolderConfigWindow.(h|cpp).
* Got the latter to build.
* Added Settings class to simplify and unify the BMessage based
settings access.
* Removed the InboundProtocol[Thread] implementation from the build for now.


# 1704480100a35875a8742f3c7a11426d92bb1b46 02-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

Read some more specs, cleaned Protocol a bit.

* Added some TODO comments based on the various IMAP specs and extensions.
* Removed SelectMailbox() functionality from the Protocol class; it's not
really useful to have it there.
* Removed some other methods that don't belong into the Protocol class.


# db0a4f2c001485adccd9b344987ec8a6055626c8 01-Dec-2011 Axel Dörfler <axeld@pinc-software.de>

More work in progress of the IMAP rework.

* Implemented FetchCommand, and some more.
* Improved and extended the imap_tester.
* The base to implement the new InboundProtocol on is now mostly done, at least
for a start.


# a5170470701b5d51ede5a4ec9ef60b28aff62a3f 30-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Got rid of the ConnectionReader, and implemented parsing literals.

* The parser now works on a BDataIO instead. It's now even a bit simpler
overall.
* Implemented ParseLiteral() - the default implementation just reads the data
into a string. Thanks to BDataIO this was now very simple to do.
* Tested the code: imap_tester can now successfully read mails (using the raw
command only, at the moment).


# 37d26ae5e2143d8c7f8d190cc6913880f2f5ae81 29-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Work in progress of rewrite; IMAP doesn't even compile at this point.