c1f8d7ab0d8b15f27bbf33324000fc39751d8564 |
|
19-Jan-2018 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
imap: support for FETCH SNIPPET |
f32c6ed9db6f4c535f97a2020401572efc8abf86 |
|
27-Aug-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add debug logging for [un]hibernation
The logs should now clearly say when a client was hibernated and when/why
it was was unhibernated. |
67c25cb4af273aff7384d5028d459cc9afdf8712 |
|
20-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Allow plugins to replace existing FETCH handlers
They can use imap_fetch_handler_lookup() to get the old init() function.
Then they can imap_fetch_handler_unregister() the existing handler and
register a new handler, which can do its own work and call the old init()
if needed. |
cddfd1355db6b60c71d7ee3c0b4f23b3efcc9ad1 |
|
03-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Add mailbox_transaction_set_reason() calls
Added to the most important places. |
289bd999f282a307b05e6f8beef33155a50fb837 |
|
21-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Fix error message in failed FETCH's NO reply.
This was broken only with the new imap_fetch_failure = no-after setting. |
46e17407ed48155ac7290a992216a11b2b2b3cf4 |
|
19-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Code cleanup - Remove duplicate flags from imap_fetch_state
All the cur_flushed, line_partial and line_finished were about the same
thing. |
905627a760ce8bf4141b361f72858a99975ded3c |
|
19-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Fix sending UID only when necessary on broken FETCHes.
b748f91d0677fffaa2208b39ebb6db3aeb2e937b changed UID to be sent for most
FETCH replies. There was also some existing code that attempted to do this,
but didn't fully work.
So now:
1) If there are no non-buffered replies, the entire FETCH response isn't
sent.
2) If the buffer was already flushed and nothing else was sent, add UID to
reply. The code paths for handling this are differently for
imap_fetch_failure = disconnect-immediately vs others (depending on
imap_fetch_cur_failed() return value). |
704a96fa677763eef7ae62466e14e83a2f535427 |
|
06-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add imap_fetch_failure setting
This controls what happens when FETCH fails for some mails. The possible
values are:
disconnect-immediately: This is the original behavior. Whenever FETCH
fails for a mail, the FETCH is aborted and client is disconnected.
disconnect-after: The FETCH runs for all the requested mails, skipping
any mails that returned failures, but at the end the client is still
disconnected.
no-after: The FETCH runs for all the requested mails, skipping any mails
that returned failures. At the end tagged NO reply is returned. If the
client attempts to FETCH the same failed mail more than once, the client
is disconnected. This is to avoid clients from going into infinite loops
trying to FETCH a broken mail. |
0dffa25d211be541ee3c953b23566a1a990789df |
|
06-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: unsigned int:1 -> bool:1
perl -i -pe 's/unsigned int ([^,:;]+):1;/bool $1:1;/' **/*.[ch] |
f339a8e73beea7684ea634941ea82593dea522ee |
|
18-May-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Don't assume o_stream_send_istream() return bytes sent.
This won't be true soon after its API changes. |
defeb23b40f1c1af0535a84529383825e5ef8dfe |
|
15-May-2015 |
Timo Sirainen <tss@iki.fi> |
Added %{fetch_hdr/body_count/bytes} variables to imap_logout_format |
be48f0e5693530f97f60c6f9dce8c8c08a38b584 |
|
02-May-2014 |
Timo Sirainen <tss@iki.fi> |
imap: Make sure we don't return empty "* n FETCH ()" reply, which violates RFC 3501 ABNF.
It happened only during error conditions, and it would be a bit too much
trouble to try to remove the reply entirely, so just append the message UID
there. |
8391619213e3bea5be470394e0ada6f504cd0885 |
|
19-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Fixed crashing in QRESYNC SELECT. |
27a44fcfd8d19bffe0f267f20a2b5d3fe7600fdd |
|
19-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
Removed CONTEXT_TYPE_SAFETY macro and reimplemented its functionality better.
gcc/clang now gives a compiler error in many places if callback isn't
exactly what was expected. It's also now much easier to add more of these
checks. |
4ee00532a265bdfb38539d811fcd12d51210ac35 |
|
19-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
Array API changed: ARRAY_DEFINE(name, type) -> ARRAY(type) name
Easy way to update your existing code:
perl -i -pe 's:ARRAY_DEFINE\(([^,]+), *([^)]+)\);:ARRAY($2) $1;:' **/*.[ch] |
51cbc45fc1ac5dde29bc2adbb175945df1b4f7d4 |
|
13-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Implemented NOTIFY extension.
Requires mailbox_list_index=yes to work (and to show up in capabilities).
SubscriptionChange event is still unimplemented. |
e82e363e7a6917f470412d629db6c5b1f5891a35 |
|
13-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
imap: FETCH API updated to allow using the same parsed FETCH in multiple mailboxes.
This is in preparation for NOTIFY extension. |
d10a370b2614712d9cb6a1dd8625f62a071b6377 |
|
13-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
imap: FETCH API cleanup: keep fetch state in a separate struct. |
306b3f41b05da642d87e7ca7a1496efce9f5902f |
|
11-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
IMAP BINARY extension supports now FETCH BINARY command. |
a10ed8c47534b4c6b6bf2711ccfe577e720a47b4 |
|
23-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
The non-obvious APIs where NULL parameter was changed to "" are
master_service_init() and auth_master_user_list_init().
These checks can currently be enabled only on a patched clang:
http://llvm.org/bugs/show_bug.cgi?id=6786 |
6816955a9254b43bff782175ee6762fdc5448b86 |
|
21-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Rewrote FETCH command to use imap-msgpart API. |
d6c5ceea8521b92d10e51a59da00c792f6140b1d |
|
01-Mar-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Changed internal FETCH command handling API. |
fca397447724c0b58365e69491f583829ff9eadf |
|
08-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
Removed unnecessary code. |
eef4ba0cc3e78f8c26804c1c9251a76580a41f0c |
|
29-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Changed mailbox_search_*() API to return pointer struct mail.
This reduces the flexibility, because now different mailbox_search_next()
calls can't have different mail parameters with possibly different
wanted_fields settings. This flexibility was never used though, and removing
it gives a couple of benefits:
* it's now easier for backends to implement prefetch and parallel search
* usage is easier since mail_alloc()/mail_free() is no longer needed |
16834f18f903048c772112838c015051642a0e77 |
|
21-May-2009 |
Timo Sirainen <tss@iki.fi> |
IMAP: Register FETCH handlers at startup so we don't break if plugins add them.
--HG--
branch : HEAD |
a342a31752dd71ac444259ca57ad33ea6b79a572 |
|
11-Mar-2009 |
Timo Sirainen <tss@iki.fi> |
imap: Code cleanup: Changed buffer to an array.
--HG--
branch : HEAD |
0011b7d11624ff4d72c1832081285c3edb90c2c3 |
|
11-Mar-2009 |
Timo Sirainen <tss@iki.fi> |
imap: Improve "FETCH .. got too little data" error messages.
--HG--
branch : HEAD |
ca63a68b1dbeeb44c1e71ddf129054f21edc0cb8 |
|
11-Mar-2009 |
Timo Sirainen <tss@iki.fi> |
imap: Code cleanup: Changed buffer to an array.
--HG--
branch : HEAD |
101bc3819d08824cedba3cedbf0ae9a850831328 |
|
11-Mar-2009 |
Timo Sirainen <tss@iki.fi> |
imap: Improve "FETCH .. got too little data" error messages.
--HG--
branch : HEAD |
3a985b4f3481d7061ee0c6ace3a5bb0bcbcb67ad |
|
24-Oct-2008 |
Timo Sirainen <tss@iki.fi> |
QRESYNC: FETCH CHANGEDSINCE and SELECT with modseq shouldn't have returned changes with the same modseq.
--HG--
branch : HEAD |
c4b376dd6e0c423006d7ac83a39253bcaf8e7c47 |
|
03-Jun-2008 |
Timo Sirainen <tss@iki.fi> |
Make mail_search_args an independent structure that can be used for multiple
separate searches.
--HG--
branch : HEAD |
923eb3dde28e4d8841c14fd6b4a69635b7070c3e |
|
15-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Added QRESYNC support.
--HG--
branch : HEAD |
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1 |
|
15-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Initial CONDSTORE support.
--HG--
branch : HEAD |
9741f601c80f60fd305a45b4ff492dc7f6b664d8 |
|
16-Feb-2008 |
Timo Sirainen <tss@iki.fi> |
If stream ends unexpectedly, it was most likely because of a broken cached
field, so mark the cache corrupted.
--HG--
branch : HEAD |
15144da8b116d887e6954bc5ec6c86b1a61565e7 |
|
16-Feb-2008 |
Timo Sirainen <tss@iki.fi> |
If stream ends unexpectedly, it was most likely because of a broken cached
field, so mark the cache corrupted.
--HG--
branch : HEAD |
8039af9679af6fb56116b353fe44f7dd4c08f031 |
|
29-Dec-2007 |
Timo Sirainen <tss@iki.fi> |
FLAGS/PERMENENTFLAGS weren't always sent to client early enough. Also
optimized sending keywords with FETCH FLAGS.
--HG--
branch : HEAD |
ca9b4bd99287f7aef3065c9973f8d440bf5bbbc5 |
|
22-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Make sure we do a mailbox sync after flag updates (STORE, FETCH). Also added
a new IMAP_SYNC_FLAG_SAFE which is used to figure out if appends and
expunges are safe to send to client when delay-newmail workaround is
enabled.
--HG--
branch : HEAD |
c25356d5978632df6203437e1953bcb29e0c736f |
|
16-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Changed .h ifdef/defines to use <NAME>_H format.
--HG--
branch : HEAD |
f1e9611e93dcb3b745c1904029084fa81644e1b3 |
|
29-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Added more consts to imap-parser API
--HG--
branch : HEAD |
3ddbbe03fe74b3ee7b1dff4e08ec706d7880d052 |
|
28-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
When client fetches message data that has already been expunged, reply with
dummy NIL and such values for the message. Don't disconnect the client
anymore.
--HG--
branch : HEAD |
42507d758b053bb483de58fba55c73a9eb5d3fba |
|
20-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Dovecot is now able to execute multiple commands at the same time.
Practically this means commands: FETCH, LIST, SEARCH and syncing output for
all commands. For example it's possible that doing two FETCH commands at the
same time makes their output mixed together.
Non-blocking SEARCH is done by doing search for 20 mails at a time, and then
checking if another command is pending.
Also added X-CANCEL <tag> command to cancel running commands.
--HG--
branch : HEAD |
2cfe9983ce7a6280636ee12beccc2e865111967b |
|
15-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Replaced void *context from a lot of callbacks with the actual context
type. Also added/fixed some context type checks.
--HG--
branch : HEAD |
00efa7d99981e18e286c02b18c1163dde18ee521 |
|
15-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Type safe callbacks weren't as easy as I thought. Only callback(void
*context) can be handled generically. Others can be handled specially, but
only if all the parameters are pointers, otherwise eg. int parameter can be
replaced with long without compiler giving any warnings.
--HG--
branch : HEAD |
59151b71059df1190acd75d8717ed04a7920c862 |
|
15-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Added context parameter type safety checks for most callback APIs.
--HG--
branch : HEAD |
8d80659e504ffb34bb0c6a633184fece35751b18 |
|
28-Jun-2006 |
Timo Sirainen <tss@iki.fi> |
Array API redesigned to work using unions. It now provides type safety
without having to enable DEBUG, as long as the compiler supports typeof().
Its API changed a bit. It now allows directly accessing the array contents,
although that's not necessarily recommended. Changed existing array usage to
be type safe in a bit more places. Removed array_t completely. Also did
s/modifyable/modifiable/.
--HG--
branch : HEAD |
79fcd3f95a6266cc62ceaa753e56dd4456ab7c4b |
|
26-Feb-2006 |
Timo Sirainen <tss@iki.fi> |
Memory leak fixes
--HG--
branch : HEAD |
6ef7e31619edfaa17ed044b45861d106a86191ef |
|
13-Jan-2006 |
Timo Sirainen <tss@iki.fi> |
Added "bool" type and changed all ints that were used as booleans to bool.
--HG--
branch : HEAD |
88ea893b45d3ed8d68000921db9156c03cbe1b00 |
|
18-Mar-2005 |
Timo Sirainen <tss@iki.fi> |
Send buffered fetch items to client first. Fixes kmail and Thunderbird
issues..
--HG--
branch : HEAD |
fdc557286bc9f92c5f3bb49096ff6e2bcec0ea79 |
|
15-Mar-2005 |
Timo Sirainen <tss@iki.fi> |
Major mail-storage API changes. It's now a bit cleaner and much more plugin
friendly. Removed proxy_mailbox* stuff, they were difficult to use and
there's now much easier way to replace them.
--HG--
branch : HEAD |
d21f14c01d5546f4bf1b2cbb28ac1f00c24d952a |
|
11-Feb-2005 |
Timo Sirainen <tss@iki.fi> |
If UID FETCH notices in the middle of fetching that message is expunged,
don't fail but just don't return all the data.
--HG--
branch : HEAD |
e60a349c641bb2f4723e4a395a25f55531682d2b |
|
05-Feb-2005 |
Timo Sirainen <tss@iki.fi> |
Moved command-specific variables from struct client to struct
client_command_context and changed code to use it.
--HG--
branch : HEAD |
16c89b1260c9d07c01c83a9219424d3727069b2e |
|
26-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
Initial support for keywords. Syncing to mbox/maildir doesn't work yet.
--HG--
branch : HEAD |
2ba4e9bedb0fa778dfbccec5370018b4d0040d9c |
|
03-Oct-2004 |
Timo Sirainen <tss@iki.fi> |
If fetching fails, finish sending the untagged FETCH reply correctly.
--HG--
branch : HEAD |
4c07b08af30e1065f7022980b60474f229d8cadf |
|
28-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
BODY.PEEK[HEADER.FIELDS (...)] list is allowed to contain strings and
literals. We didn't handle them correctly before.
--HG--
branch : HEAD |
95d493c371891ea3b7598926d6b5464eabe27860 |
|
21-Aug-2004 |
Timo Sirainen <tss@iki.fi> |
Added netscape-eoh workaround.
--HG--
branch : HEAD |
2767104d81e97a109f0aa9758792bfa1da325a97 |
|
15-Aug-2004 |
Timo Sirainen <tss@iki.fi> |
We never do blocking reads/writes to network anymore. Changed imap and pop3
processes to use a single I/O loop.
Not much tested yet, and currently LIST/LSUB may eat too much memory and
APPEND eats all CPU.
--HG--
branch : HEAD |
e015e2f7e7f48874495f9df8b0dd192b7ffcb5cc |
|
18-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Header caching redesigned. New design allows caching decisions per field, so
they can be divided to temporary/permanent. Cached headers are now always
returned in original order, old code didn't guarantee it. Some other caching
changes. (still missing code to store changes in caching decisions)
--HG--
branch : HEAD |
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834 |
|
27-Apr-2004 |
Timo Sirainen <tss@iki.fi> |
importing new index code. mbox still broken.
--HG--
branch : HEAD |
b1f57b7183fe44d7d7ba30b944d3de1f015b9253 |
|
26-Oct-2003 |
Timo Sirainen <tss@iki.fi> |
Removed fetch_init/fetch_next from mail-storage. search_* makes it
unnecessary
--HG--
branch : HEAD |
6789ed17e7ca4021713507baf0dcf6979bb42e0c |
|
06-Aug-2003 |
Timo Sirainen <tss@iki.fi> |
Index cache file rewrite. It's not finished yet and mbox support is
completely broken. But it's getting difficult to maintain outside cvs :)
--HG--
branch : HEAD |
6389aeec8c26b585e583c364b48ad12adf741898 |
|
23-Jul-2003 |
Timo Sirainen <tss@iki.fi> |
API change for updating message flags.
--HG--
branch : HEAD |
a5a0a25a2aa6c85e1bbf0f281d515b45018e190e |
|
21-Jan-2003 |
Timo Sirainen <tss@iki.fi> |
Partial fetches are working fast again - faster than ever actually.
--HG--
branch : HEAD |
5ce2084ada06ade9f44fc2914c34658e9a842dc1 |
|
20-Jan-2003 |
Timo Sirainen <tss@iki.fi> |
mail-storage.h interface changes, affects pretty much everything.
FETCH, SEARCH, SORT and THREAD handling were pretty much moved from
lib-storage/ to imap/ so adding non-index storages would be much easier now.
Also POP3 server can now be easily implemented with lib-storage.
Not too well tested, and at least one major problem: partial fetching is
_slow_.
--HG--
branch : HEAD |