700f5298a28c60d19936c3c20a6e4ff7d588fd9c |
|
16-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add client_create_finish() to finish namespace creation. |
1c02804cdc5f1ad830fec081100e951bc67204b4 |
|
13-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add client_command_context.event and use it as global event while running |
fcad7b5f8913030ef5bb6f23022fcdf15a089e14 |
|
13-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add client.event and use it as mail_*user's parent event |
64c7bca60b07c3652f3071913f56c6029d6deae4 |
|
13-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap, pop3: Remove unnecessary call to mail_storage_service_io_deactivate()
The context is automatically deactivated when service user is freed. |
1519df1d514ed508c9708e3d2a4daf89e9c937e0 |
|
05-Oct-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
imap: Drop dependencies on lib-lda settings.
Start using lib-smtp/smtp-submit-settings instead.
Put any other settings required by IMAPSIEVE in struct imap_settings. |
0c803d52adebb6b67e785380f88275f7daa325be |
|
19-Jul-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
imap: Add %{appended} to imap_logout_format |
0aa23d8824f31a55928d4631e0e702925d534f6e |
|
19-Jul-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
imap-client: Add %{autoexpunged} to imap_logout_format |
d6bb1be2c65b5bef882946a6610e8fdcfd4ea27e |
|
19-Jul-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
imap-client: Add const char *disconnect_reason to client
This is to allow using reason given to client_disconnect() via timeout
context. |
b596cac264eaa0fbd6cd74a279d58accccb7405b |
|
10-Jul-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Don't do autoexpunging when IMAP client is hibernated |
08406452bf0deae412437463618ed3f870ed03d5 |
|
20-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Move struct client_sync_context to imap-sync-private.h and add imap_ prefix |
d64280bc41338078701e79aefaab3169686b683d |
|
27-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Allow plugins to hook into syncing.
Ideally all of the existing pieces in the syncing code would start using
this at some point, so their code could be moved to a more logical location. |
f10f05dfa64b3c005e630b0e1982c15d7ad2114c |
|
24-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add client_add_capability() |
f231cd77594d5a30e92118a1f6dda31f0e48bb52 |
|
21-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add imap_client_vfuncs.send_tagline()
This allows plugins to catch all the IMAP command replies. |
bf9e29ed2d95a81780effae125fe6dca688818c1 |
|
04-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add client_command_context.human_args
Generated with imap_write_args_for_human() |
b98f1ffc049e8c4c1677173ea65830aa07b3ef87 |
|
19-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Fix running time in tagged command replies.
The timing information was updated only after command_exec() returned.
Most of the commands were handled within a single command_exec() though,
so at the time when tagline was sent the running_usecs was still zero.
The msecs in ioloop timing was correct though, because it relied only on
the command start timing info. |
9036b11c0f06193bfebab686d75982d7930cb517 |
|
19-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Include info about last command in disconnection log line.
Only if LOGOUT isn't sent, because that's already visible. |
5334234b155ced693feb925aeabd3a3cda07eacd |
|
19-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Add imap_client.logged_out at LOGOUT
This is useful for determining if client did a clean logout |
567b56c2d6a1063cad997c956f3ed1d9d735f14e |
|
19-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Code cleanup - move command stats to struct client_command_stats |
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. |
9ac30c648aebe0660f137af18749917e2b62b556 |
|
23-Aug-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Track how much time was spent on waiting for locks. |
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] |
5ceeb24b0d12e3368a78e17ce4b14d1c900fb223 |
|
17-May-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Include sync timing information in tagged command replies.
Show it only when it's larger than 0 to avoid unnecessary output. |
3c5d1187e825bc9fd4f8ccf3911cc34df3d3e05f |
|
01-May-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
imap: Added struct client_command_context.tagline_reply
Can be used by plugins. |
c15e8f33c81141381a788bf8f9aa3d407e3b1ee2 |
|
23-Mar-2016 |
Stephan Bosch <stephan@rename-it.nl> |
imap: Made LDA settings accessible from plugins.
This way, plugins can also send mail. |
1ddf959a750f3860feff4ab3f0e908f32740978f |
|
08-Dec-2015 |
Timo Sirainen <tss@iki.fi> |
imap: Added assert to make sure client_command_context isn't freed too early. |
117bc062ec4a3770f6e4291e4697895d66d0f18a |
|
24-Nov-2015 |
Timo Sirainen <tss@iki.fi> |
imap: Added extra assert checks to make sure command states are consistent. |
c9b76ca218d93dc97e27d6ec04a645e8dc6f228b |
|
21-Sep-2015 |
Timo Sirainen <tss@iki.fi> |
imap: If client disconnects, log the in-progress commands' input/output bytes. |
266d72b0b32d5b105de96aac0c050d5a4c0ed3a8 |
|
21-Sep-2015 |
Timo Sirainen <tss@iki.fi> |
imap: Improved command timing information reporting.
We now report also the time we spent waiting on ioloop. Also fixed reporting
command timing information when multiple commands were running in parallel
(e.g. SEARCH + FETCH). If multiple commands are running in parallel they all
report the same ioloop wait time, because there's no easy way to know which
one of them caused the wait. |
5ef28f68edef46f69961b19b7c1dcd8ec5a955e8 |
|
24-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
Added imap-hibernate process for gathering IDLEing imap processes.
imap_hibernate_timeout setting controls how quickly the connection is moved
from imap process to imap-hibernate process.
Some IMAP extensions like NOTIFY, SEARCH=CONTEXT and COMPRESS aren't
supported yet.
There's also a new X-STATE command, which can be used to export the current
IMAP connection state to a string and later on imported to get back to the
original state (a quick resync feature for IMAP clients). However, this
command is disabled for now due to the current code being unoptimized for
untrusted input. |
760245ee05c5685122ca29427dffedbeed4b24bc |
|
15-May-2015 |
Timo Sirainen <tss@iki.fi> |
imap: Added %{deleted}, %{expunged} and %{trashed} to imap_logout_format |
defeb23b40f1c1af0535a84529383825e5ef8dfe |
|
15-May-2015 |
Timo Sirainen <tss@iki.fi> |
Added %{fetch_hdr/body_count/bytes} variables to imap_logout_format |
8808ae64126694d020a4d454972d48e106ab829a |
|
21-Apr-2015 |
Timo Sirainen <tss@iki.fi> |
imap: Include in tagged reply how much running time each IMAP command takes.
The running time doesn't include time spent waiting for the client on
ioloop. |
2df651ae18342cbe72c92d5489af5fc582b65937 |
|
25-Sep-2014 |
Timo Sirainen <tss@iki.fi> |
imap, pop3: Show user's proper log prefix when deinitializing users at exit. |
59714981ae172b5113be7ca9b8be518b759fc86d |
|
19-Dec-2013 |
Timo Sirainen <tss@iki.fi> |
imap: if mailbox has non-permanent modseqs, never send HIGHESTMODSEQ/MODSEQs. |
02c75e04c6ff80726bb59e3ea34a7995ad1f6f7c |
|
02-Nov-2013 |
Timo Sirainen <tss@iki.fi> |
imap: Added initial support for METADATA extension.
For now this is enabled only when imap_metadata=yes setting is used. The
setting will go away once the feature is complete. Also mail_attribute_dict
must be set.
TODO:
- Metadata doesn't work for public namespaces. There should probably be a
mail_attribute_public_dict setting for that.
- There isn't any kind of quota or other limits
- After ENABLE METADATA start sending untagged METADATA entries to clients
- /shared/admin should probably return postmaster_address URL
- Check if we handle ACLs correctly
- RFC says that it SHOULD be possible to set METADATA entries to \NoSelect
mailboxes. We probably will never allow this though. |
24491cfd5ea07fa30c11ae8d84e8841865aefcc8 |
|
03-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Removed unnecessary code. |
f9511e684858bf5f6ac77ab12254b85b737beae8 |
|
15-Sep-2012 |
Stephan Bosch <stephan@rename-it.nl> |
Added support for IMAP URLAUTH and URLAUTH=BINARY extensions
Extends imap service with URLAUTH and URLAUTH=BINARY support:
- Adds new commands URLFETCH, GENURLAUTH and RESETKEY.
Creates imap-urlauth service in src/imap-urlauth.
Functionality common to both the imap and imap-urlauth services is located
in src/lib-imap-urlauth.
TODO:
- use mailbox GUIDs instead of names
- doveadm command to delete stale urlauth entries?
- add delay when attempting to access nonexistent user
- create urlauth-worker queue, similar to how indexer-worker works
(could we share code?..) |
945b6f8c7d73a34e3c467b83b5fa9f057bd768b9 |
|
29-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Added asserts to make sure a tagline isn't sent twice to the same command. |
5a7acd67806132cbc1ec9578df60d712d307e4be |
|
21-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Fixed command output locking. |
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. |
e34d170f8f0e084bd94bfbc1a7085ece67e508df |
|
25-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Make sure we check all the functions' return values. Minor API changes to simplify this.
Checked using a patched clang that adds attribute(warn_unused_result) to all
functions. This commit fixes several error handling mistakes. |
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. |
b55f914c0ade77252cfd798ea8eb9a84bda56315 |
|
07-Mar-2012 |
Timo Sirainen <tss@iki.fi> |
Added a "session ID" string for imap/pop3 connections, available in %{session} variable.
The session ID passes through Dovecot IMAP/POP3 proxying to backend server.
The same session ID is can be reused after a long time (currently a bit
under 9 years). |
00baa9c944ec73865f20a96684dd5887fe5fc186 |
|
27-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
imap: Made client_destroy() a virtual method. |
0d82d7744160c598ecfe73ec25598ad43596d10c |
|
30-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
imap: Moved partial fetch cache from static variable into struct client. |
d8f73a44fcc663152fd1a1331ce03a62a0dec3ba |
|
22-Feb-2011 |
Timo Sirainen <tss@iki.fi> |
imap: Fixed infinite loop / memory eating with SEARCHRES + pipelining $.
If SEARCH RETURN (SAVE) command was running long enough so that Dovecot
started executing the next command, and if that command used $ in
messageset, Dovecot went into infinite function recursion. |
51327f2489a4e0e615eb9f7d921473cf8512bb79 |
|
01-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved some items from mailbox_get_status() to a new mailbox_get_metadata().
The idea is now that all status items are tracked all the time after mailbox
is opened and they can always be looked up without failure. The metadata
items are looked up lazily and the lookups may fail at any time.
mailbox_get_status() can be used after mailbox_alloc() to indicate that the
mailbox doesn't necessarily have to be opened, just that the status fields
get returned.
If mailbox is already known to be open, mailbox_get_open_status() can be
used. It never fails. |
5be786ac7cafd3dcd8574edaec31eb414ae92b03 |
|
03-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
imap, pop3: Removed previous log prefix hack. |
0fb11b6350ecb430cd1888b662aac7624a26adad |
|
03-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
imap, pop3: Try to use the correct log prefix when service_count!=1. |
809329fe7be1281bec99dd5d06fd7b8b52752daf |
|
13-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
imap: Added module_contexts to struct client.
--HG--
branch : HEAD |
7b1bdf60531f8d511e9983e2bd6375938d711cff |
|
13-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
imap: Remember if TLS compression is enabled.
--HG--
branch : HEAD |
5735e4cc683402a03af73a1bb5f6e50b9a7f619b |
|
07-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
imap-client.h: Updated comments.
--HG--
branch : HEAD |
4f7987384f306ea93b0258623a4cdd69601f2d0e |
|
27-Oct-2009 |
Timo Sirainen <tss@iki.fi> |
imap: Added support for verbose_proctitle=yes
--HG--
branch : HEAD |
4da8c6cdefabd31262318c32da3c13de1d9ea953 |
|
22-Oct-2009 |
Timo Sirainen <tss@iki.fi> |
Merged single and multi mail_storage_service_*() functions.
--HG--
branch : HEAD |
cf0ad1a0bddb0787f3d7b408a96d721a8b2a98a3 |
|
20-Oct-2009 |
Timo Sirainen <tss@iki.fi> |
Redesigned how login process passes connections to mail processes and changed related APIs.
Master process is no longer in the middle.
--HG--
branch : HEAD |
a8284e999d091cd29210fa75ecdc8076376a7345 |
|
16-Oct-2009 |
Timo Sirainen <tss@iki.fi> |
imap, pop3: Moved imap/pop3_client_workarounds setting parsing to config checking.
--HG--
branch : HEAD |
459f60325f94f486ef057241b42d8a9e9c376fb4 |
|
26-May-2009 |
Timo Sirainen <tss@iki.fi> |
imap: Cleaned up "command pending" handling code. Should fix hangs caused by recent changes.
--HG--
branch : HEAD |
f13c9ae4f96d4d13b3996ec716a959cf3380896c |
|
23-May-2009 |
Timo Sirainen <tss@iki.fi> |
imap, pop3 no longer assume that there's only a single client in process.
--HG--
branch : HEAD |
6c2ce1d5bf17b21e804a079eb0f973b7ab83e0d8 |
|
06-May-2009 |
Timo Sirainen <tss@iki.fi> |
Implemented anvil service, which is used to implement mail_max_userip_connections.
--HG--
branch : HEAD |
08d6658a4e2ec8104cd1307f6baa75fdb07a24f8 |
|
05-May-2009 |
Mark Washenberger <none@none> |
Renamed headers to prevent collision if they were flattened on an install.
--HG--
branch : HEAD |