66fa646212a2c1cfd3ec45f97488b6a8ae41cdc0 |
|
01-Mar-2018 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-storage: Add tests for mailbox_verify_name |
08495095af85423369e1419dc1a4bd8299a4022c |
|
13-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Remove mailbox_transaction_context.nontransactional_changes
Nothing cares about them. It was only set for POP3 UIDL change with
Maildir. In theory dsync replication would want to replicate such a change,
but it doesn't actually support changing UIDLs for existing mails. Other
mailbox formats don't support it anyway. |
74943466e541d8bfe3916bb0eb9fb9cb0599dfe7 |
|
07-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: mail_storage_lock_create() - add support for dotlocks |
2039bdca260cd123832ddda9b2b6862a4abc53aa |
|
07-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mail_storage_lock_create()
This is split off of mailbox_lock_file_create(). |
c51390c3ae6e373e7b4a052a94e8e4065b98321c |
|
24-Jan-2018 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-storage: Add and use MAIL_STORAGE_CONTEXT_REQUIRE
Satisfies static analyzers |
722c012ccadcf1f63d70439a2564e77510b6dd86 |
|
17-Jan-2018 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-storage: Set keyword based on attachment presence when saving
If attachment is detected, use $HasAttachment, if not
use $HasNoAttachment |
c499c40caf37f766968a551909190c5b009a9b15 |
|
13-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mail.event |
b644a77b00ce21c67a7becda974a12dfe3a946e4 |
|
13-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mailbox.event |
677cc0d62b41c7506246bf1b992a400a11896474 |
|
13-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mail_user.event and give parent event in mail_user_alloc*() |
b42817ce16a8660cbcc4adfc8bccc3db1c6d00c7 |
|
05-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Rebuild list index when doing doveadm force-resync |
8049d5792631981b50b0ad226a03298445e305c7 |
|
05-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
LAYOUT=index: Rebuild list index if INBOX is missing on inbox=yes namespace
This avoids having to manually rebuild the list index afterwards if it
becomes lost. |
82d1fe3d5d04fb11e3e89cce03dc4de191e58f75 |
|
05-Dec-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Rename mail_storage.list_index_corrupted() to list_index_rebuild()
Also add a new parameter to it to specify the rebuild reason. |
4e3b79ac7787b1a867514a6ac3d1b623b72a26c6 |
|
22-Nov-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mailbox_set_critical() and mail_set_critical()
These add the mailbox vname and mail UID to the log prefix and then call
mail_storage_set_critical(). |
2ceb75f820c9415b767a17e1f4830c75093ab867 |
|
05-Oct-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
lib-storage: Implemented mailbox_is_autosubscribed().
Indicates whether the mailbox is automatically subscribed to when it is automatically created. |
9a19ae4b399557c0bba809bbf32221a4b8957e86 |
|
03-Oct-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: Remove obsolete mailbox_save_set_dest_mail() |
c6ce2e251ac75fa650c7fbfa52150eae69386293 |
|
22-Sep-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: Add reason to mailbox.transaction_begin() |
34902486e270728379fd147ca9d7b8d366fcd0e6 |
|
25-Aug-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mail_storage_set_index_error() |
c0c346d0e6a76137ba5006857ed03b1227804170 |
|
09-Aug-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Panic if at mailbox_free() there are open attribute iterators. |
4906f652013f9f9ea806602b5cd677ef0d039d62 |
|
10-Jul-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: mailbox_sync_init() - open mailbox immediately if it's not open yet
This simplifies the work for plugins that want to hook into
mailbox.sync_init() so they no longer have to handle the "mailbox isn't
opened" case. |
bd94a2a86e27f4809d087a8269bc4ccdd5f4ede3 |
|
28-Jun-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Move .vsize.lock creation to a generic mailbox_lock_file_create() |
b0f08544a680b029666ab0e43ebcd913f0b91965 |
|
28-Jun-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Make mailbox_is_autocreated() public
This also removes duplicated code from acl plugin. |
30d50c7e8706f2d750215e009504109ca19cd485 |
|
24-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Fix mail_storage_last_error_push/pop() to work with internal errors |
b99515ba4105f6bfd7fa7590dcc73fabf734dec6 |
|
12-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add missing ATTR_FORMAT to mail_set_mail_cache_corrupted() |
7522446d6514e5593c9d4d7e4beacd328301cb23 |
|
11-May-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-storage: Use new mail_cache_set_seq_corrupted_reason |
afe1da042382720393eca6497253106e4eec75e0 |
|
24-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mail_storage.nonbody_access_fields
This avoids index_mail_update_access_parts_pre() from opening the mail
stream unnecessarily for fields that can be looked up via other methods
by the storage. |
d1fbd2c264368d8b4c7139b96e3b21f45930b857 |
|
03-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mailbox_transaction_set_reason() |
4b41218f9e09386ad5d8f279355aad1dfb64392d |
|
03-Apr-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mailbox_set_reason()
Use it to log a debug message when mailbox is being opened. |
6c51e3c3dc8dc5dc6fef2280b7c2c9ebef3de8f0 |
|
27-Mar-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-storage: Indicate mail is being autoexpunged
This way plugins, such as mail_log, can detect this. |
98c217499d578495e982ea6010ebff831e9669ae |
|
23-Mar-2017 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: Add mail_storage_get_last_internal_error()
This returns the error given to mail_storage_set_critical(). |
3857e2945a3b6744d603f0f5a656849ed8436ba3 |
|
15-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Make sure mailbox undeletion won't go to infinite loop |
897368f75a68f97e172ba76540759a10c557f1c3 |
|
14-Feb-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Always create mail_save_context.dest_mail
This allows removing similar mail_alloc() from storage backends and plugins
that need it.
As a side effect, this changes mbox code to always assign UIDs to saved
mails. This shouldn't be much of a problem, since it happened practically
always already. |
134987bc3b685d7ec71c04e9337f7125cff0698f |
|
30-Jan-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Move index_mail.vsize_ext_id to mailbox.mail_vsize_ext_id
It's mailbox-specific, so it doesn't have to be looked up every time.
Also this is needed for the following fix. |
3743948b65bd079cd6f2502d35bd21666c1a2f5a |
|
02-Jan-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
index-storage: Update mailbox last_rename_stamp on rename |
d0d37a769d7e54646de025a43d2cb888478cb218 |
|
30-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add struct mail_save_context.copy_src_mail |
857c471c13ca215f4be9dd4b336b742b8d434e31 |
|
25-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add mail_storage.list_index_corrupted()
The actual implementation is in the next commit. |
08e9fd42eb8007e1f9db62c088eef74f906114a5 |
|
22-Nov-2016 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: require MAIL_STORAGE_CLASS_FLAG_STUBS when caching
If we are going to be using the storage for caching, we should check that
the storage actually supports mail stubs. |
61cae213dc69070c1cef266578057710e34e0d12 |
|
18-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Add support for storing "mail stubs"
These allow treating a storage backend as a cache where the mail bodies
don't necessarily exist. |
540555c5b435203e1c26c8e7b924b2643ae07ae3 |
|
16-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Added struct mailbox.corrupted_mailbox_name
This allows backends that are adding lost mailboxes to mailbox list index to
indicate that they don't actually know the name of the mailbox, and the
mailbox list index should try to figure it out and rename the mailbox to its
proper name. |
97a5e150cacf7da9dd200e317b75460352038d65 |
|
16-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
LAYOUT=index: Update mailbox name to mailbox index's header when opening.
This way if the mailbox list index gets lost, a recent mailbox name is still
available. |
21aaa6affb9f134112b75b5db737309fc35ef1cf |
|
27-Oct-2016 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: rename get_real_mail to get_backend_mail
Also change the function signature so that it returns an int to indicate
success or failure. |
7900eb30bac4a46b259522c58362884661483d7c |
|
18-Oct-2016 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: treat empty root_dir as an empty string |
05150df8fbda6b8fdfafcfb0aa9003f1da4ecaca |
|
29-Sep-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Don't reset mail_save_context.saving too early.
If mailbox_save_using_mail() ended up in mail_storage_copy(), saving was set
to FALSE before the copy() method was finished running. This caused e.g.
notify plugin to think that this was a copy event instead of a save event.
Added comments and asserts to clarify how the logic should work between
all the different copying/moving/saving flags. |
bd6a8056771b6150685dea319ab5a94e021d17f1 |
|
20-Sep-2016 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
lib-storage: remove unused internal_attribute argument from attribute_{get,set}
This removes an argument added in 9f37ef2a9192e7d47e3d7ac959080fd01120f2e9
but obsoleted (but not removed) in d1147c225f64596fc5eeb1cb2aab31b3c57d5215.
Not only does this change simplify the codebase, it actually brings the API
closer to what it was back in 2.2. |
0206dc57f2c04da69599dea5816235cfeb2b897a |
|
13-Aug-2016 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib-storage: remove set_cache_corrupted_reason from mail_vfuncs
Change set_cache_corrupted signature to what set_cache_corrupted_reason
used to be. |
9f37ef2a9192e7d47e3d7ac959080fd01120f2e9 |
|
10-Aug-2016 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-storage: Change mailbox_attribute_get* API
lib-storage/mailbox-attribute.h: mailbox_attribute_get() and
mailbox_attribute_get_stream() now has struct mailbox_transaction_context
as their first parameter. This isn't good for performance, because opening
a transaction requires opening mailbox indexes first. But reading
attributes wouldn't actually require opening the indexes, so this is just
wasteful. |
2c8ca7e88ec881c473fb90e5f647c1f563877164 |
|
03-Aug-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Added mail_get_stream_because() and mail_get_hdr_stream_because()
With mail_debug=yes each mail access is now logged with a reason. This can
be helpful when figuring out why something isn't in dovecot.index.cache. |
aa47c9bd1d1fc70cd699c49fd1ca92dbc7615953 |
|
21-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Added quick parameter to list_index_has_changed() |
2b9dbb270ad82e58d5f3581436e6f143176d5819 |
|
21-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dbox: Optimize POP3 MAIL_FETCH_UIDL_BACKEND.
We keep track of the highest UID known to have POP3 UIDL in index's header.
If saving adds a newer message, it'll also update the header. When fetching
UIDL_BACKEND, we can need to check only mails with lower UIDs. There are
some race conditions here, but normally UIDLs are set only once during
migration so it shouldn't matter. |
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] |
aa41b2e17912d6cad3151babea6a85dd88539d28 |
|
03-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
virtual: Moved virtual_mailbox_vfuncs to lib-storage.
This allows implementing other virtual storage backends. |
291ce16fffca75e8598a8c9dceb08613413dcb07 |
|
19-Apr-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Added MAIL_STORAGE_CLASS_FLAG_NO_LIST_DELETES and MAILBOX_LIST_FLAG_NO_DELETES |
6de6ec228a41275ddda972d4a554699ea75cd06d |
|
28-Feb-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Added mail_set_cache_corrupted_reason() |
19e161dd9e2c3a2ffc96ee8852bec0720cb30d1c |
|
28-Dec-2015 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dsync: Don't restrict what mailbox names can be created (except basic sanity checks)
The mailbox names already exist on the other side, so we don't want to add
arbitrary limits to them. |
4e3bcf7fdaeef92dd07a2acb1ded58422a907e87 |
|
27-Nov-2015 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Don't add first_saved to mailbox list index unless autoexpunge is set. |
1ae5d61ec366fdb2f3c5b150ca378d6141b0f4bd |
|
27-Nov-2015 |
Timo Sirainen <tss@iki.fi> |
Added mailbox { autoexpunge } setting.
This can be used to automatically expunge mails from specified mailboxes
after they're old enough. The expunges are done when the user is being
deinitialized. mailbox_list_index=yes should be enabled to have the best
performance with this setting.
Example:
namespace inbox {
mailbox Spam {
auto = create
special_use = \Junk
autoexpunge = 30d
}
} |
ab5269901fa285cf66bc55dd068979d4fdbb4c23 |
|
07-Sep-2015 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Allow set/get for Dovecot-private attributes via internal attributes.
This allows registering attributes with MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT
prefix and having them be get/set via dict, instead of failing them. |
7e2671b295927b461adc8b6c4ed6a1c4761fb323 |
|
19-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved index/index-mailbox-check.c code to mailbox-watch.c
This changes the API, but adds backwards compatibility macros. |
817d027593510c3ba70ad542ce0011f5f6916d1e |
|
18-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved most of the \Recent flag handling code to mailbox-recent-flags.c
There are also some API changes, because functions were renamed and the
recent_* fields were moved to struct mailbox. I'm not aware of any plugins
using these though, except for index_mailbox_set_recent_seq() which for now
is kept as a backwards compatibility macro.
No changes were made to the actual code logic. |
382f23541ce657be87b079abd6784d376fb4eb43 |
|
10-Jul-2015 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved vsize_hdr_ext_id to struct mailbox for more global access. |
2c70086138fe7ac9abf52cd4223c224fe0bbb488 |
|
10-Jul-2015 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Renamed struct index_vsize_header to struct mailbox_index_vsize
Also moved the struct to mail-storage-private.h for more global access. |
146f9076cd456ea1e9b3f8536456d9d3c962fadb |
|
04-May-2015 |
Stephan Bosch <stephan@rename-it.nl> |
mail-storage: Moved mailbox attributes API to separate module. |
546335814920fb6b5b44c68c7803e654eefeae9d |
|
25-Sep-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_get_index_path() and caching of the index path.
This solves some potential assert-crashes on race conditions when opening a
mailbox while it's being deleted. |
f90cbe597c41d5cc91debd371f8648bd8e6ffbc2 |
|
28-Aug-2014 |
Timo Sirainen <tss@iki.fi> |
lib-index, lib-storage: Fixed race conditions with deleting mailbox.
Now only one process can successfully finish mailbox_mark_index_deleted(). |
97ae33602db7d5bc8eede82512a965d49ab8853b |
|
12-Aug-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_storage_last_error_push/pop() |
1a5573ebc32fae2fe576ec544e1781323c1db609 |
|
03-Jul-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Move "shared" storage name to mail-storage-private.h where it can be used. |
9456a4a3e74929f9d3d5b00b93be6d8eb69bc52a |
|
30-Apr-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mail_never_cache_fields=* means now to disable all caching. |
ceac44e7560fcbf6fc2f932c7b624a5055dc3bc9 |
|
30-Apr-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Partially reverted the mail.get_real_mail() API change for backwards compatibility.
I hadn't realized Pigeonhole was also using it. (I thought it was using only
the mail_get_real_mail() public API.) This fixes Pigeonhole v0.4.2 to work
again. |
ba8ff75a149d6936f769a2d1dfceaab9da87863b |
|
29-Apr-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Fixed crash if mailbox_save_cancel() was called in save_finish()/copy() method. |
541b251a99a55cb0fa2eaf02645a7c39ad997092 |
|
15-Apr-2014 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Replaced mail_get_real_mail() with mail_get_backend_mail() that can fail.
For now the mail_get_real_mail() can still be used for backwards
compatibility. |
d1e843e77f4760e303c53d9fce10123fc8d230a1 |
|
17-Nov-2013 |
Timo Sirainen <tss@iki.fi> |
dsync: Support syncing storages with 128bit GUIDs <-> string GUIDs. |
d46a1e3f999dda802dc5137e883adcd7a6629cd3 |
|
12-Jun-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added MAIL_STORAGE_CLASS_FLAG_BINARY_DATA flag for classes. |
58ba0fe5a6904d3a65cfe268411f4cbb881234ee |
|
01-Jun-2013 |
Timo Sirainen <tss@iki.fi> |
imapc: Fixed mailbox deletion. |
9847ec56efa15fa063eea9988eee2d4ed9ec7d58 |
|
19-May-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_status.have_save_guids. |
e563b8a1457be8c08cc7567043c9f06b8243a025 |
|
19-Mar-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added a way to create plugins that forcibly hook into mail storage.
Mostly meant for doveadm_sieve plugin. |
6cc4cce2078aca138fbce19305e69e77edcee614 |
|
19-Mar-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mailbox_attribute_set() now uses struct mail_attribute_value.
This allows settig the last_change value, as well as using streams and
setting other flags in future. |
50c617761ee9653bd44646a95178773a3686d62e |
|
14-Mar-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Changed mailbox_attribute_get/set() APIs to have a transaction and update index.
The _get() doesn't currently actually use the transaction. It was mainly put
there for future use where it could be useful. It's also possible that
_iter() will need a transaction also. For now these decisions seem good
enough. |
e2d268e9531227ead6a98466ecf3c046c857ef70 |
|
19-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Saving/copying no longer discards private message flags. |
b09eaeb9a81e5b58c6e605eb762573a2b4a69e0e |
|
16-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Assert-crash if mailbox_save_context isn't properly freed before reusing. |
8b31f966d9688e07672ef1958dcbdb7686523c04 |
|
10-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_status.have_guids flag |
9c32eb25e7b90e753e0cd7b30f7a70e8ca9121d9 |
|
05-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Changed mailbox_attribute_get() to return a struct for value.
This allows returning flags for the values in future. Mainly readonly-flag
for internal attributes and when restricted by ACL plugin. |
13e130c3af3032982de6b1d13c6dcddda9164848 |
|
04-Jan-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Bypass virtual storage when copying mail to allow optimizations.
As a side effect this also causes all plugins to see the backend mail
instead of the virtual mail. This probably isn't bad in most situations, but
for those where it's unwanted mail_private.vmail can be used to access the
virtual mail. mail_log plugin does this to log the original virtual mailbox
name for copy operations. |
f46885a5b78b15a8d2419f6e5d13b643bd85e41f |
|
04-Jan-2013 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added support for "private modseqs" for INDEXPVT index.
Used by dsync (next commit). |
d9a129b491613014ce5f31fe1ab20903e2899ea4 |
|
26-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Comment update for mail_prefetch() |
1f1ee8db68d9ae1604350801cd8dc33ebe29fe8a |
|
29-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Renamed mail_storage_set_index_error() to mailbox_set_index_error() |
8c909e451d14075c05d90382cf8eebc4e354f569 |
|
29-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
Replaced *_INDEX_PREFIX macros with a common MAIL_INDEX_PREFIX. |
9fd2181788a61500641c66aec0f8c746b19bf830 |
|
29-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Fixes to handling separation of private/shared attributes. |
c6afd726060aae56b6622c6c52aec10231c4bf1c |
|
29-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved mail attribute dict to struct mail_storage.
This also means that index_storage_destroy() must always be called, so
removed now unnecessary mail_storage.destroy=NULL checks. |
e53ab6c7081246c865917f9aa0eff031a08ad1e7 |
|
23-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
imap: URLFETCH BINARY BODYPARTSTRUCTURE returns binary-decoded line counts. |
62041dfb7d6ac6e9c633a557075999cdfcff7bd5 |
|
13-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added support to get/set/iterate mailbox attributes.
The attributes are stored in a dict specified by mail_attribute_dict
setting. The idea is to use this as storage for extensions that require
per-mailbox key=value pairs, such as METADATA. |
d74c9540cd64888055c4840a4544b1de4248e584 |
|
18-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
Backported parts of normalizer_func_t changes from v2.2 tree. |
9fc97c8aa8190df87624d214bcc5d0b5362bec93 |
|
26-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mailbox_get_path() and friends can now return an error.
An upcoming "index" mailbox_list backend uses mailbox GUIDs as the directory
names. Doing a name => GUID lookup may fail, so the path lookup may fail.
This is a somewhat annoying change and perhaps it can be removed in future,
but for now it looks like it can't be avoided. |
94f84d1c3f786d1b92dd2a1507f83a2dad887c56 |
|
26-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Cleanups to mailbox mkdir() related functions. |
feaa6a3d82ea61496ced1f83a726ff33047c7da2 |
|
25-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_get_path_to() wrapper for mailbox_list_get_path().
Changed the code to use as much of mailbox_get_path_to() and
mailbox_get_path() as possible. |
268b72128fc3400912e9a6b83faf4950a367c2ff |
|
25-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_storage_copy_error() |
5f44975ec6c5755dd74bcd4c47a123a7242ecab3 |
|
15-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved index_mail.data_pool to mail_private.data_pool |
d9076f5939edf5d20a261494b1a861dcbb0d32e2 |
|
15-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
Replaced "decomposed titlecase" conversions with more generic normalizer function.
Plugins can now change mail_user.default_normalizer. Specific searches can
also use different normalizers by changing mail_search_context.normalizer. |
f318b3dbe2acc177b8ee1c160e4b5b14e7f2cd41 |
|
13-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage API change to allow using it from C++ code |
7a2d48763b43c4fd8bc17c444271f0b802113a5f |
|
13-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved mail_storage_settings_to_index_flags to mail-storage-private.h
This is mainly to allow #including mail-storage-settings.h from C++ code
without having to #include mail-index.h from mail-storage-settings.h |
71e88fae3be360e9a93b3398e743f99a6f05d2ed |
|
10-Sep-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed rename_children parameter from mailbox_rename()
The children are now always renamed. The only reason this feature was added
in the first place was to make dsync's job easier, but this is no longer
needed. |
99695d99930b35c2bac85d52e976b44cf8485d83 |
|
23-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved per-mail data in struct mail_save_context to separate struct.
This fixes previous save leaking metadata to the next save. |
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] |
306b3f41b05da642d87e7ca7a1496efce9f5902f |
|
11-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
IMAP BINARY extension supports now FETCH BINARY command. |
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. |
0177594fa5217b02001f4ec8752154fd2b05c545 |
|
21-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
lib-imap-storage: imap-msgpart rewrite and API change.
The new API allows first parsing the validity of section strings and later
relying on them being valid without having to re-parse it. The
implementation also fixes a few things and adds "partial fetch cache". |
02f884382018f4435407374a059407caa44c9239 |
|
20-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_move(), which is basically copy+expunge. |
5da1aa5197a43d83f0fb3eeb83125c7cd73d1b62 |
|
11-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
shared mailboxes: Per-user flags can now be stored in private index files.
This can be enabled by adding e.g.:
mail_location = mdbox:/var/shared/mdbox:INDEXPVT=~/mdbox/shared |
d81131d3bbb4f0befb62a661d1785cf8c84a17e2 |
|
09-May-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added a mailbox.synced flag, which is set when mailbox sync has succeeded. |
d938e9e4ec4c0f326dffd5ebe42c1ad893ce7e52 |
|
28-Apr-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Allocate MAILBOX_METADATA_CACHE_FIELDS from a new metadata mempool. |
33b469d1ca66dd2cc496d2d990b8b98e72952a29 |
|
19-Apr-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_delete_empty(). |
9617ac7078a17bd346fed69526861c3e7fd9d809 |
|
30-Mar-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_save_set_pop3_order() and implemented for Maildir. |
6ae329de09afb7214c906d762320847e05469d53 |
|
22-Mar-2012 |
Timo Sirainen <tss@iki.fi> |
quota: Added a kludge to avoid recalculating quota. |
900bb5e316d030cdebff7ee128ce65881dfb27f7 |
|
02-Mar-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mail_transaction_commit_changes.changed=TRUE only when something actually changed. |
9438ecaf1caee1bb33c8d7f638742875ac42c4e5 |
|
26-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed min_timeout parameter from mailbox_notify_changes()
It's now internally taken from mailbox_idle_check_interval setting. |
00aaafa8619b4e6aaf23f15d30c36f06ccb820bc |
|
06-Jan-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_save_using_mail() |
abec3f4c5ec486c393e1513950f2d4819dcbc30f |
|
06-Jan-2012 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Renamed mail_save_context.copying to copying_via_save. |
6469cf211a57433335641725dc236ebb2b9fdd3b |
|
30-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added struct mailbox.set_subscribed() virtual method. |
eb1572d7c44ebc7b0b039d085c3dbab2ef7043dd |
|
02-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
Moved autocreate plugin functionality into lib-storage.
The autocreate plugin is still used for backwards compatibility.
Mailboxes can be configured like:
mailbox Sent {
auto = subscribe
}
mailbox Spam {
auto = create
} |
eecb235c14b49c01774134ea593c266f2d2c2be1 |
|
23-Nov-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Track storage's all mailboxes to make it easier to debug if one isn't closed. |
ecd69c4e8371853667e01b0c16d436ef7f7393e2 |
|
12-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_log_update_wanted_fields() |
6df0ab0c1ab91f06b6418cb30eff44405a1b8f02 |
|
04-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_get_hdr_stream() and use it where possible.
This makes it clearer for backends when it needs a message body instead of
only message header. |
93ec3b0c4b911e2cc79a99f4a300e488d2d694d3 |
|
02-Oct-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Mailbox list index's ext_id shouldn't be cached in mail_storage.
It's mailbox_list-specific, not mail_storage-specific. The easiest fix was
to just cache it into mailbox rather than create a new index_mailbox_list. |
b3484b5b1f47e4cf112f0e371478a2d7794b31bb |
|
05-Sep-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox.disallow_new_keywords and use it for mailbox_status. |
421d30619384e72a27e2a5d13ff6525aff4d17fe |
|
31-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
Redesigned mail precaching APIs.
There's no longer a one monolithic mailbox_sync(MAILBOX_SYNC_FLAG_PRECACHE)
call, but rather one mail_precache() call for each mail to be precached.
This allows the callers to show the progress and in general is cleaner. |
2d01cc1880cf2afd4fb1c8ad7fa6ce78e562e71e |
|
25-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved all transaction stats_* to struct mailbox_transaction_stats. |
1eaaa2c9003cf3fbf672d597473e3f84e70d2ee6 |
|
16-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved stats_* from mail to transaction.
With the API changes to search, having them in mail doesn't make sense
anymore, since mailbox_search_next() can return multiple different mails
with different stats. |
47d5cc09738defd0020c797866e2a25a344aa65a |
|
15-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mailbox_list_get_permissions() now returns struct mailbox_permissions.
Also added new file_uid and file_gid fields to the mailbox_permissions. |
bd4e36a8cd7257cca7d1434c49a1e343ed7c5100 |
|
11-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_alloc_guid() for opening mailbox by its GUID. |
fcfe85637e1ee14a9fc39c41fd6ceca106301542 |
|
11-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added struct mailbox.generation_sequence.
This can be used for caching struct mailbox pointers and checking later if
two struct mailboxes + their generation sequences match. If they do, it's
the same struct mailbox. |
cff1f182205e674285cf3ff446a0dcf7afea277d |
|
29-Jul-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added auto_boxes parameter to mailbox_exists(). |
7631f16156aca373004953fe6b01a7f343fb47e0 |
|
28-Jul-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mail->saving was set too late, which could have caused crashes. |
64b61cd24d630223478ccbe1934b9f60f0881f59 |
|
14-Jun-2011 |
Timo Sirainen <tss@iki.fi> |
Moved the main functionality from "doveadm index" to MAILBOX_SYNC_FLAG_PRECACHE
This also allows plugins to hook into the sync and implement their own
precaching easily. fts indexing is now done this way rather than kludging. |
b59960aed0923004f21f2a00bc1c945084d2f851 |
|
23-May-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Export a list of permanent flags via mailbox_status().
Removed mailbox_allow_new_keywords(), since it's now included in the status
structure. ACL plugin may limit what flags are permanent according to ACLs. |
c7e14824e4e1ca9dc5d48d1eddc4a38d3041218f |
|
05-May-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_parse(). |
7370fb9ff75b674f99059adf24502ee9ae7a47bc |
|
05-May-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_is_cached() |
045aa2f81225ceffbffe71a088dabb8881c65512 |
|
04-Apr-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed struct mail_private.extra_* fields.
There isn't much point in keeping them separated. |
e15b305e90c9834734ccf35ed78f0ad29d570ee9 |
|
31-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
Search supports now prefetching data for returned mails. Dropped imapc's own prefetching.
mail_prefetch_count specifies how many mails can be kept open and issue a
prefetch.
This works using posix_fadvise(POSIX_FADV_WILLNEED) for maildir, sdbox and
cydir backends. Apparently only Linux supports this.
imapc backend also implements this internally by sending wanted IMAP
commands to remote server. The command pipelining helps with latency. This
change also makes it actually possible for imapc backend to first check if
wanted data is already cached in local index and avoid sending unnecessary
IMAP commands to remote server. |
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 |
4590a0c0a2606a0ad29d1e6e513ef2ba99abc926 |
|
25-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Fixed mailbox_get_expunges() to return GUIDs with all mailbox formats.
Also added mailbox_get_expunged_uids() for use cases that don't really need
GUIDs. |
1460ef7a18c53216ddb4a94bb62fba96076aae8e |
|
24-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved index_mailbox_context.save_*() methods to mailbox_vfuncs. |
7baab0b0b60df7ce9093d0881cd322dff1e79491 |
|
04-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
sdbox: Fixed creating mailbox with given GUID. |
1c288c40f4dce2e43daa6bc33b96f1618c94119a |
|
04-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
sdbox: Fixed creating mailbox with given GUID. |
c29216637957d4b3126c6929ac5ba98138256ce1 |
|
12-Feb-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mailbox_exists() can now return if it's selectable or non-selectable. |
c0d069950af1dbc6a4e5c3de3bf2e437796e3ae0 |
|
09-Feb-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Return STATUS replies from mailbox list index only when it's fully up-to-date. |
dfaefeabae939803ceb8c503101e86b5496541d1 |
|
01-Feb-2011 |
Timo Sirainen <tss@iki.fi> |
imapc: Don't force a root directory to exist. |
e29f8a6a52ca72fc6010132fb86dd00e9d96432a |
|
31-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved setting "wanted fields/headers" fields for sort program from imap-specific code.
Also separate between fields that are actually wanted to be fetched from the
fields that sorting wants to temporarily use. |
c0a87e5f3316a57e6f915882fa1951d0fbb74a61 |
|
20-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes.
All storage_name <-> vname conversions now go through the same two
mailbox_list methods. This has many benefits, such as:
* listescape plugin is now much simpler and bugfree
* allows changing lib-storage API to use UTF-8 mailbox names in future
* allows creation of "mailbox aliases" plugin |
306cfd77100131c08b243de10f6d40500f4c27c6 |
|
20-Jan-2011 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Replaced mailbox_list_get_name_status() with mailbox_exists(). |
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. |
d3280fe317a4598c0868cc440e7a1191c06d0db3 |
|
29-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mailbox_get_status() can now fail.
It might have failed earlier also, but the errors were hidden from caller. |
b62140c5849297a800fee942026d9c3cb8c60206 |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved mailbox.save_is_attachment() to mail_save_context.part_is_attachment() |
a4f09749814b93e8ad3ec8a0dc18885b874d6f8c |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Unvirtualized mailbox_header_lookup_*() |
dbe64f3893616a4005c8946be75d2dc8f6823d72 |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Unvirtualized some methods from struct mailbox.
There was never any point in overriding or hooking into them. |
499fec3443374cc89fb8c83b8027c1614097d7a3 |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
Moved fts/virtual plugin communication functions away from lib-storage. |
4182d8cd818e76856a5a1e25b343fe5ddf69fd8e |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Simplified mailbox_keyword*() APIs.
They are no longer struct mailbox methods, because they're always implemented
as being wrappers to lib-index APIs anyway.
Also mailbox_keywords_ref/unref() no longer take mailbox parameter. |
c000c8eca8f24b2a0c76393ec4bbf76a505a4983 |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed mailbox.backend_readonly. Backends set it internally lazily now. |
8a13b020f90e080570658b18c042e7e352c8b14f |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved box->private_flags_mask to mailbox_get_private_flags_mask()
This allows getting it lazily only when it's actually needed. |
df00412606a00714a6e85383fa87fbdc7cc1fb5b |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Don't allocate index until mailbox_open() |
ca98892a6b8a30ffc1fe26fcf02c7d59e3204e7e |
|
06-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Lazily look up mailbox path and permissions. Added functions to get them. |
c04f9a724a7b3cc649485a61b0a540868d25d71b |
|
05-Dec-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed struct index_transaction_context.
All of its contents are now in struct mailbox_transaction_context. |
7f735cb86b2d8abd8f230089065eacfc24e9e5d6 |
|
23-Nov-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: If disable_reflink_copy_to=TRUE, disable hardlink/refcount copying. |
4ba9a1d3facc515b3feb5238a16bcf91f76fac61 |
|
04-Nov-2010 |
Timo Sirainen <tss@iki.fi> |
virtual: Set MAIL_STORAGE_CLASS_FLAG_NOQUOTA to storage's class_flags. |
6564208826b0f46a00f010d1b5711d85944c3c88 |
|
20-Oct-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added istream_opened() method to struct mail.
This can be hooked into by plugins that want to do something with the
message's stream in the message file, rather than the virtual resulting
stream visible to client. For example when using dbox attachments, this stream
contains only the data in the dbox files without any external attachments. |
b9f564d00b7a115f465ffd6840341c7b8f9bfc8a |
|
19-Oct-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added support for saving mail attachments separately via filesystem API.
Currently this works only with sdbox and mdbox backends. |
6b0d8106ae51ffc6ce45636b34d2e21cbefca7fd |
|
24-Aug-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Allow mailbox_mark_index_deleted() to be called multiple times within same mailbox alloc. |
eb64c3586d854cddd693f0b811d897399076a441 |
|
06-Jul-2010 |
Timo Sirainen <tss@iki.fi> |
Fixes to INBOX sharing.
NAMESPACE_FLAG_INBOX was split to two flags: _FLAG_INBOX_USER (this namespace
has the user's own INBOX) and _FLAG_INBOX_ANY (namespace has INBOX, either
user's own or another user's).
--HG--
branch : HEAD |
de9d79337eca11a7f9c1cd476c74dfe4f09a4bd7 |
|
30-Jun-2010 |
Timo Sirainen <tss@iki.fi> |
Removed mail_update_uid() / mail_index_update_uid().
It was working properly only with mdbox and there wasn't really a need for it.
--HG--
branch : HEAD |
036626b19f14bef582f96e556913ae91b1d67881 |
|
23-Jun-2010 |
Timo Sirainen <tss@iki.fi> |
Added mail_max_lock_timeout setting.
This could be useful inside lda/lmtp protocol sections to avoid them from
spending too much time waiting for locks, since they can easily just
return "try again later".
--HG--
branch : HEAD |
539977f9257bd8985be5a8093658da266ae9cd19 |
|
07-Jun-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Plugin API changed to run plugin functions in correct order.
Previously the hooks were run in correct order, but the functions they
overrode were run in reverse order. This caused problems when multiple
plugins were used.
--HG--
branch : HEAD |
b83deefd2cf1e293373673eefb4d5cf60907978c |
|
07-Jun-2010 |
Timo Sirainen <tss@iki.fi> |
Mailbox deletion: Delay marking its index deleted until ACL has had a chance to abort the deletion.
--HG--
branch : HEAD |
5d202fa7788e500f5b2bab2aa6f6327c8c7461dc |
|
26-May-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed unnecessary struct mail_save_context.saved_physical_size
--HG--
branch : HEAD |
3ed2d0f6b5e67e2663d44489d9da3176823789a8 |
|
14-May-2010 |
Timo Sirainen <tss@iki.fi> |
Use IO_BLOCK_SIZE macro to specify how large read/write syscalls to use.
--HG--
branch : HEAD |
61e27995aadbc2f97927d3635f98d1d4ac4751e0 |
|
13-May-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed struct mail.get_index_mail(). get_real_mail() is basically the same.
--HG--
branch : HEAD |
9af6cc9ebc9986c1275ebdfa29c39e152af1557e |
|
12-May-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mail_get_real_mail() that returns physical mail in a virtual mailbox.
--HG--
branch : HEAD |
4fc52b7b25c3d3f42348903e0154840f8761f306 |
|
13-Apr-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added search query building from human-friendly input.
--HG--
branch : HEAD |
20b2d47ed762ca2c009aa37e360af6f223ac71bd |
|
13-Apr-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Rewrote search query building code to be more modular.
--HG--
branch : HEAD |
420040a5930a2b497e79ff0b5f59ba4b764a5b39 |
|
07-Apr-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Panic if deiniting storage before closing its mailboxes.
--HG--
branch : HEAD |
c0225f7f6b43d34dc58c17d3304f0fd60ab89894 |
|
27-Mar-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: mail_get_parts() no longer returns const pointer.
The struct message_part contained context-pointer and other APIs were using
it, so the pointer really couldn't be const without casting it away
sometimes.
--HG--
branch : HEAD |
cd83124e5d070a016c590bb0b1096d7828c7b6ad |
|
19-Mar-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved index transaction/view from index_transaction to mailbox_transaction.
--HG--
branch : HEAD |
b58aafbd21b365117538f73f306d22f75acd91f1 |
|
19-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added support for plugins to specify message's physical size when saving.
Changed dbox to save this value to metadata, and use when present.
--HG--
branch : HEAD |
029c8542982001bf1386aee0ea9cb9843e5ab62d |
|
15-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed INBOX auto-creating from backend code. Added bool box->inbox.
--HG--
branch : HEAD |
e03d986a74128f5ba30fcfda9f6e36578f5d8dec |
|
15-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox.free() method. Use it instead of close() where necessary.
--HG--
branch : HEAD |
2649b237dd4690575e75a30b2bf3b39ebd37b835 |
|
14-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Mailbox renaming API changed.
--HG--
branch : HEAD |
e5fd6dfd0a492e4708d4dbb7971d7fc5d7b8fd85 |
|
12-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Removed input parameter from mailbox_alloc(), added mailbox_open_stream()
--HG--
branch : HEAD |
fbd918f47f591f8084fd52b207ef29515ddd11b9 |
|
09-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: STATUS_GUID moved to mailbox_get_guid() that can fail.
--HG--
branch : HEAD |
3f91e60401495a4046c73992fabaa5e77200a451 |
|
09-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
Mailbox deletion: Fixed race condition where a mailbox couldn't get deleted.
--HG--
branch : HEAD |
61b0637759146621cbb7edcbd0b03a71cfd66dfe |
|
09-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Mailbox deletion API changed.
Mailbox deletion should now be free of race conditions. The actual file
deletion code is now responsibility of mailbox_list backend.
--HG--
branch : HEAD |
d22301419109ed4a38351715e6760011421dadec |
|
07-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: *_mailboxes don't descend from index_mailbox anymore, it's now a context.
--HG--
branch : HEAD |
ca98d6a1bbe73499da758a36bfab2963375c8d06 |
|
07-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved struct mail_index_* from index_mailbox to mailbox.
We're relying more and more of all mailboxes being used via lib-index, and
this change makes accessing the indexes easier.
--HG--
branch : HEAD |
3c493c276f599d9b9cd10764876d648003046954 |
|
07-Feb-2010 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved mailbox directory creation code to mailbox_list backend.
--HG--
branch : HEAD |
2584e86cc2d8c31ba30a4109cf4ba09d1e37e28a |
|
17-Dec-2009 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Changed mailbox_sync() and mailbox_sync_deinit() APIs.
Although we're already in beta stage, this is simple enough of a change that
it shouldn't matter much. Having syncing also return status information made
the API ugly and the status information wasn't even wanted all that often.
--HG--
branch : HEAD |
5666a3d6a7ea89362b8d9e8b39b15424cd9d6388 |
|
04-Dec-2009 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Plugin hook API changed to support per-user plugins within a process.
--HG--
branch : HEAD |
f3bb2fbe87425dc89a839908985af496f7f65702 |
|
18-Nov-2009 |
Timo Sirainen <tss@iki.fi> |
mailbox_search_next*() API changed to return bool.
If search fails, it'll be noticed anyway by mailbox_search_deinit().
--HG--
branch : HEAD |
30d9ebeb1b74629f1ada541011fd41b8416ea2e0 |
|
05-Nov-2009 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Moved mail_generate_*() to be public functions.
--HG--
branch : HEAD |
225e82df5dd1e765f4e52b80c954558f00e5a7df |
|
01-Sep-2009 |
Timo Sirainen <tss@iki.fi> |
Added pop3_save_uidl setting.
When UIDLs are sent to client, save them to dovecot-uidlist. This allows
changing pop3_uidl_format without messages getting re-downloaded. It's also
useful with virtual POP3 INBOX when UIDLs are based on IMAP UIDs that may
not be as stable as in non-virtual INBOX.
--HG--
branch : HEAD |
4d527c363482be2b65dd0573d878ecda86cbb0bb |
|
28-Aug-2009 |
Timo Sirainen <tss@iki.fi> |
mailbox_copy() now sets mail_save_context.copying=TRUE.
--HG--
branch : HEAD |
573f0491a5733fe21fa062a455acb4790b4e0499 |
|
13-Aug-2009 |
Timo Sirainen <tss@iki.fi> |
Use separate read block sizes when reading only message header vs. full message.
--HG--
branch : HEAD |
0c3cde7382518b486092bfae64bb6a948405854a |
|
31-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
Removed mailbox_guid_is_empty(), use mail_guid_128_is_empty() directly instead.
--HG--
branch : HEAD |
eb0816090cf5a549280ad783b9aa6fec199d36ba |
|
31-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
index-storage: Simplified the way transactions are are created/finished.
Removed also mail_storage.class_init/deinit since they're no longer used
for anything.
--HG--
branch : HEAD |
c820b702d1eabfd5b029ac168fe769265e541561 |
|
29-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
Removed MAILBOX_GUID_SIZE macro, use MAIL_GUID_128_SIZE everywhere.
They were required to be the same size anyway.
--HG--
branch : HEAD |
ad48319996942463675b53877092ab7e13a7a75a |
|
29-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
Added ability to specify message's minimum modseq value.
--HG--
branch : HEAD |
bddd52cb7f3e5a894c080f60750aa76b5aeaf103 |
|
28-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
Added ability to change existing messages' UIDs with mail_[index_]update_uid().
--HG--
branch : HEAD |
96308127e006bb3b1108093bcf4cc1fd9481cb7a |
|
24-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
mailbox_transaction_commit_get_uids() changed to _get_changes() with more generic API.
Saved UIDs are no longer necessarily in a simple x:y range.
--HG--
branch : HEAD |
5785cfd5183086cbf18c6f1796021de92542e874 |
|
18-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
mail_guid_128_is_empty() is now a public function.
--HG--
branch : HEAD |
0f83592ccc280a29bdf01c4475805f6a4bad9abd |
|
16-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
mail_generate_guid_128_hash() is now a public function.
--HG--
branch : HEAD |
0c909e3461607eadcd66f4eac69b7f34e37fccf1 |
|
14-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
Keep track of expunged messages' GUIDs and expose them via mailbox_get_expunges().
The message GUIDs are stored in expunge records to transaction log. Before
doing the final expunge, Maildir and dbox verify that the GUID in expunge
request matches the current actual GUID. The GUID is stored in 128 bit
field. If the real GUID isn't 128 bit, the bits are taken from SHA1 of the
GUID.
--HG--
branch : HEAD |
64b5dcc136d6eb7ad90463e6cba9e16880ab52ad |
|
07-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
lib-storage: Added mailbox_get_vname().
--HG--
branch : HEAD |
0cce885512b836ce021260a58e7b4f099b36d0f1 |
|
30-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Mailbox saving: Allow setting IMAP UID, POP3 UIDL and save date.
Most of them aren't yet implemented by backends.
--HG--
branch : HEAD |
e156adefc1260d31a145df2f5e9b3c82050d4163 |
|
28-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Whenever file's group changing fails, show the group origin in the error message.
--HG--
branch : HEAD |
17ad2164c747cedbf81dae1893063e71a3df0356 |
|
26-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Added support for creating/updating mailboxes with given metadata (guid, uid validity, etc).
--HG--
branch : HEAD |
84ed9f8f3d0e5ed47607ef417618e49e4f865557 |
|
22-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Added reference counting to struct mail_keywords and related APIs.
--HG--
branch : HEAD |
1d2b188f0eedc3cab6e27ceac5425a037f38042e |
|
15-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Mailbox opening and closing APIs changed.
--HG--
branch : HEAD |
14ab4610b6038da6c5d0814fecabc6b74bc81a6b |
|
05-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Added mailbox_keywords_create_from_indexes().
--HG--
branch : HEAD |
de58be41126e5d68008d2ea706d62ccdc1f29337 |
|
05-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
mailbox_header_lookup*() private API changed.
--HG--
branch : HEAD |
ee116df08d0fdab703483e18fe8076b2ef9fd9d7 |
|
05-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
struct mail_storage.callbacks is no longer a pointer.
--HG--
branch : HEAD |
563273bdac80393af63b9520cbf4d24cc0efd028 |
|
03-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
mail storages can now be shared between namespaces.
--HG--
branch : HEAD |
2615df45a8027948a474abe5e817b34b0499c171 |
|
03-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
Initial commit for making mail_storage:mailbox_list to be from 1:1 to n:n.
This will allow namespaces to share the same storage and a single namespace
to have multiple storages (multiple mailbox formats). Neither works
currently, and this commit probably breaks some things.
--HG--
branch : HEAD |
1eb17e61d3d38372674aa0c55caedb0185a985f5 |
|
29-Apr-2009 |
Timo Sirainen <tss@iki.fi> |
Split struct mail_private.stats_dentry_lookup_count to open/stat counts.
--HG--
branch : HEAD |
b0a901f1dbe9e05ac1c92a0974af6bce0274f31a |
|
29-Apr-2009 |
Timo Sirainen <tss@iki.fi> |
struct mail_private now contains all kinds of statistics about file accesses.
--HG--
branch : HEAD |
ebe6df72f1309135f02b6a4d2aef1e81a073f91c |
|
29-Apr-2009 |
Timo Sirainen <tss@iki.fi> |
Added struct mail.lookup_abort, which can be used to abort lookups that can't be done using cache.
--HG--
branch : HEAD |
65f8fb656051f1059f7b5a2da9c5555adcc30439 |
|
17-Apr-2009 |
Timo Sirainen <tss@iki.fi> |
Moved MAIL_READ_BLOCK_SIZE to mail-storage-private.h
--HG--
branch : HEAD |
3e564425db51f3921ce4de11859777135fdedd15 |
|
10-Apr-2009 |
Timo Sirainen <tss@iki.fi> |
Added mail_storage_purge() for dbox. dbox no longer calls it automatically at logout.
--HG--
branch : HEAD |
e050e5c9b1688765f1fdfce9b7141f7b614383fd |
|
10-Mar-2009 |
Timo Sirainen <tss@iki.fi> |
Maildir and Cydir: When saving mail, expose ostream to mail_save_context.output.
This would allow plugins to hook into it.
--HG--
branch : HEAD |
70ead6466f9baa8294e71fc2fba0a4f54f488b5e |
|
26-Feb-2009 |
Timo Sirainen <tss@iki.fi> |
Added mail_user_get_temp_prefix() and mail_storage_get_temp_prefix().
--HG--
branch : HEAD |
aa247243412a49f9bdebf7255e131dc6ece4ed46 |
|
25-Feb-2009 |
Timo Sirainen <tss@iki.fi> |
Mail copying: Avoid updating cache file because of copying.
The mail is being opened in any case, so it's unlikely to help anything.
--HG--
branch : HEAD |
3c52b294054995d62bd1851c5c42b975fd8c22c9 |
|
25-Feb-2009 |
Timo Sirainen <tss@iki.fi> |
dbox: Initial support for saving multiple messages per file.
--HG--
branch : HEAD |
bd4d0a1a7c0626452b8d82f37e3ec07267ac9896 |
|
06-Feb-2009 |
Timo Sirainen <tss@iki.fi> |
Mail copying API changed to be based on save API. This allows extending it easily in future.
--HG--
branch : HEAD |
a64adf62fa33f2463a86f990217b0c9078531a40 |
|
28-Jan-2009 |
Timo Sirainen <tss@iki.fi> |
Initial commit for config rewrite.
--HG--
branch : HEAD |
9e9f0cf3cc3ce546e8a433990c92dd9be6665df6 |
|
05-Dec-2008 |
Timo Sirainen <tss@iki.fi> |
Improved "Permission denied" error handling. It'll now show also the uid/gid name.
Also moved the code to mail-error.c and used it when listing mailboxes.
--HG--
branch : HEAD |
d54ab8987e482a8df250615b44f41fa040c38741 |
|
30-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
fts: Hide "Searching .." notify while indexing.
--HG--
branch : HEAD |
f4616f1875297fb2f583d913c0f01b075bdecd5b |
|
30-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
Give more correct "* OK searched n%" notifications with fts and virtual mailboxes.
--HG--
branch : HEAD |
b8835b8a21c617ceb82ddc5a176243faf36aa8f7 |
|
30-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
fts: Added support for handling multiple namespaces.
--HG--
branch : HEAD |
3852872e6954b7132e637294132005e86b8ebd4a |
|
29-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
Finished making full text search indexes work fast with virtual mailboxes.
--HG--
branch : HEAD |
ecdce39e5ef4b62eefa9f5818f17d153fd5d710a |
|
23-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
Initial support for getting full text search working nicely with virtual mailboxes.
--HG--
branch : HEAD |
310767ca33e7636d40ec45dee68a2c319a5fa3c0 |
|
23-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
Added wanted_fields and wanted_headers fields to struct mail_search_context.
--HG--
branch : HEAD |
bd1b2615928a1e8be190cb0405754f0aec8cac2f |
|
22-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
mail_storage.search_next_update_seq returns now bool. It was never failing.
--HG--
branch : HEAD |
04870054863757edf048c81dcce3c5e7dec453cd |
|
16-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
ACLs: Initial support for "post" right.
--HG--
branch : HEAD |
4321f6c969e7b8f6b243ff5bb6b8d297921676f6 |
|
15-Nov-2008 |
Timo Sirainen <tss@iki.fi> |
Implemented imap-response-codes draft.
--HG--
branch : HEAD |
cfb86adbda733e4945db44c6be27f8fda142c0a3 |
|
25-Oct-2008 |
Timo Sirainen <tss@iki.fi> |
Make mailbox_header_lookup_ctx's list of headers available.
--HG--
branch : HEAD |
f1743785713e7632459d623d5df2108f4b93accb |
|
23-Oct-2008 |
Timo Sirainen <tss@iki.fi> |
Fixed shared mailboxes to work with plugins.
--HG--
branch : HEAD |
d23c747de9d33966483fbdd41f08ad7766da7c5c |
|
12-Aug-2008 |
Timo Sirainen <tss@iki.fi> |
Added struct mail_user and fixed the code to support multiple users per process.
--HG--
branch : HEAD |
b19a1420da0618a10edf67c2cfd13c8c8633057a |
|
07-Aug-2008 |
Timo Sirainen <tss@iki.fi> |
Added the concept of Global UIDs that are preserved across copies.
They can be fetched, searched and specified for the save API. dbox format
supports them correctly, but with maildir the base filename is used so
maildir_copy_preserve_filename=yes is required to preserve GUIDs when copying.
--HG--
branch : HEAD |
e3aeeb634245e80d4f643f8d2eea11d6b72336d8 |
|
07-Aug-2008 |
Timo Sirainen <tss@iki.fi> |
mailbox_save_init() API was split to multiple functions.
This allows adding more parameters easily in future.
--HG--
branch : HEAD |
e3796bfd2bc0fd5ba664893d346df9334a5b3af0 |
|
21-Jul-2008 |
Timo Sirainen <tss@iki.fi> |
Added mailbox_keyword_is_valid().
--HG--
branch : HEAD |
cf942dce0253075911a96cff323b5f30eb654ae0 |
|
20-Jul-2008 |
Timo Sirainen <tss@iki.fi> |
mailbox.save_init() API now takes ** pointer to dest_mail, so multiple
plugins can safely specify it. ctx->dest_mail also gets updated then.
--HG--
branch : HEAD |
f95b3d29bc56f139c18c880aa574a0ca72b0cffb |
|
19-Jul-2008 |
Timo Sirainen <tss@iki.fi> |
struct mailbox_header_lookup_ctx can now be referenced/unreferenced so it
can be shared among multiple struct mails.
--HG--
branch : HEAD |
48270badadd82279bfe50ae3d187aea8b0b2b30e |
|
21-Jun-2008 |
Timo Sirainen <tss@iki.fi> |
CONDSTORE: STORE UNCHANGEDSINCE conflicts are now checked atomically.
--HG--
branch : HEAD |
d7a56951e519c28ac9b1fd5810a455a9ba238327 |
|
09-May-2008 |
Timo Sirainen <tss@iki.fi> |
Added hook_mailbox_index_opened.
--HG--
branch : HEAD |
408e5be344c9131fdebe771718a5bf49f88cc51c |
|
07-Jun-2008 |
Timo Sirainen <tss@iki.fi> |
Added mailbox_get_uid_range().
--HG--
branch : HEAD |
5afa8e2edf4f313cd56e5909f92f39c3b5b7b4d3 |
|
07-Jun-2008 |
Timo Sirainen <tss@iki.fi> |
Renamed mailbox_get_uids() to mailbox_get_seq_range().
--HG--
branch : HEAD |
3dd0679b6f24be0287cc42d7a60bbf59cdf8b637 |
|
05-Jun-2008 |
Timo Sirainen <tss@iki.fi> |
Implemented CONTEXT=SEARCH extension.
--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 |
ea4f28398a0e4fb46be074307d512925c1fe7fc1 |
|
14-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
struct mail can't necessarily be casted to struct index_mail. Added a new
get_index_mail() method to return it.
--HG--
branch : HEAD |
f86e4521d7864d385e3397a58eaa4b9c8ed178d8 |
|
14-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Added transaction flags to struct mailbox_transaction_context.
--HG--
branch : HEAD |
01404d41657a104c5ea1c12bb87f9c321e9c1ac4 |
|
14-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
struct mail can't necessarily be casted to struct index_mail. Added a new
get_index_mail() method to return it.
--HG--
branch : HEAD |
194603b35061fea1ee8d171a7104b6985c610966 |
|
14-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Added transaction flags to struct mailbox_transaction_context.
--HG--
branch : HEAD |
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1 |
|
15-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Initial CONDSTORE support.
--HG--
branch : HEAD |
838e367716bbd5e44b4a1691db9cbf72af53e9f0 |
|
14-Feb-2008 |
Timo Sirainen <tss@iki.fi> |
Added mail_set_cache_corrupted() to rebuild the cache file and force
recalculating the given field.
--HG--
branch : HEAD |
277506e6e05cdac79bacfb57e629e2fa0aa1ffdc |
|
14-Feb-2008 |
Timo Sirainen <tss@iki.fi> |
Added mail_set_cache_corrupted() to rebuild the cache file and force
recalculating the given field.
--HG--
branch : HEAD |
b42697a5749b85659a24316d97f1c208d469e4e8 |
|
20-Jan-2008 |
Timo Sirainen <tss@iki.fi> |
If mail storage or mailbox can't be accessed because of EACCES, log an error
message that clearly shows where the permission problem is.
--HG--
branch : HEAD |
a757f31393b9d6fc7760a9dec8363404ab3ae576 |
|
09-Dec-2007 |
Timo Sirainen <tss@iki.fi> |
Added mail_get_keyword_indexes()
--HG--
branch : HEAD |
32ee977e189266744ef69ac4e832fd3111d6f949 |
|
11-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Delay creating directories until we really need them.
--HG--
branch : HEAD |
4bbd396aa6198c84f3f7763b6e8a63a26e97e141 |
|
11-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Moved mailbox_deleted to struct mailbox. Added and used
mailbox_set_deleted() which also sets an error message to storage.
--HG--
branch : HEAD |
47001341950b8588c5f3a96b75864dab48e279ae |
|
21-Oct-2007 |
Timo Sirainen <tss@iki.fi> |
Moved mail_create_mode/gid from struct maildir_mailbox to struct mailbox.
--HG--
branch : HEAD |
63f36c2b47217fc2dc4ed49cfc1907311d5ed366 |
|
30-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
mailbox_transaction_commit*() doesn't sync the mailbox anymore, so it
shouldn't take mailbox_sync_flags parameter either.
--HG--
branch : HEAD |
43d32cbe60fdaef2699d99f1ca259053e9350411 |
|
16-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
--HG--
branch : HEAD |
c25356d5978632df6203437e1953bcb29e0c736f |
|
16-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Changed .h ifdef/defines to use <NAME>_H format.
--HG--
branch : HEAD |
61f5256ef248d35459b53534ae428bf6d016e1c5 |
|
02-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Changed mail_keywords creation APIs to take mailbox/index instead of
transaction.
--HG--
branch : HEAD |
cb05ecbd96ddb5e53c1850d27434541138a3f284 |
|
02-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
mailbox_keywords_create() checks keyword validity now and returns failure if
any of them are invalid. Added mailbox_keywords_create_valid() that only
drops invalid keywords. Removed mbox and IMAP-specific keyword checks, they
all use the same checking now.
--HG--
branch : HEAD |
0d86aa0d47f7393c669c084b34c0537b193688ad |
|
13-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Added mail.close() virtual function.
--HG--
branch : HEAD |
83bb013a99f0936995f9c7a1077822662d8fefdb |
|
12-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
mail_*() APIs changed to return int and return the actual data as pointer.
Changed some code to do error handling a bit better.
--HG--
branch : HEAD |
c979eeda1f46483d9c963e265786b701d7683d77 |
|
12-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
mail_index_view_sync_next() and mailbox_sync_next() returns now bool.
Renamed void mailbox_index_view_sync_end() to int
mailbox_index_view_sync_commit().
--HG--
branch : HEAD |
73b50eecfc31750a312e2f940023f522eb07178c |
|
12-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
mail_index_lookup*() can't fail anymore. Changed several APIs not to return
failure anymore.
--HG--
branch : HEAD |
88187ee880b4829443e0d55ea7d145d9d5880217 |
|
12-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Removed explicit locking from views and maps. They were already locked all
the time when they were used. Because of this change several functions can
no longer fail, so they were changed to return void, and a lot of pointless
error handling was removed.
--HG--
branch : HEAD |
ccec5f82349eae44087900c0e64ed1fd5a1a6fca |
|
12-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
mailbox_transaction_commit_get_uids() now returns also UIDVALIDITY. It's the
only usable way to get it returned correctly. Removed maildir-specific
mailbox_get_status() handling, it's supposed to return the current state of
the mailbox, not the latest state. It was useful only for returning non-zero
UIDVALIDITY for newly created mailboxes, and that's no longer needed.
--HG--
branch : HEAD |
dce5a2719df4fc64a8762d2aa94ba98dcf9cd6fe |
|
19-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Added mail_get_first_header_utf8() and mail_get_headers_utf8().
--HG--
branch : HEAD |
d3442384ca53d4b18a493db7dd0b000f470419cf |
|
18-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Moved mailbox list index sync stamp checking and updating to
storage-specific code.
--HG--
branch : HEAD |
f23ede27743c1aa03eacbfc634d6a10de9110c91 |
|
17-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Moved private_flags_mask to struct mailbox.
--HG--
branch : HEAD |
2dd39e478269d6fb0bb26d12b394aa30ee965e38 |
|
15-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
mail_storage.create() now returns error message string. Also fixed handling
"/" and empty root paths.
--HG--
branch : HEAD |
910fa4e4204a73d3d24c03f3059dd24e727ca057 |
|
13-May-2007 |
Timo Sirainen <tss@iki.fi> |
Added MAIL_ERROR_EXPUNGED. Set the error whenever expunged message is tried
to be accessed.
--HG--
branch : HEAD |
ff7056842f14fd3b30a2d327dfab165b9d15dd30 |
|
13-May-2007 |
Timo Sirainen <tss@iki.fi> |
Error handling rewrite.
--HG--
branch : HEAD |
cb44b8fd1fa5cac5a451c39245c878e1307c332c |
|
13-May-2007 |
Timo Sirainen <tss@iki.fi> |
lib-storage doesn't need the ability to return syntax errors. They should be
checked before lib-storage is called.
--HG--
branch : HEAD |
4d2211dac61c615c5bdfd501ea54d46c89d41b0f |
|
17-Apr-2007 |
Timo Sirainen <tss@iki.fi> |
Added mailbox_transaction_commit_get_uids() which returns the UID range for
saved/copied messages.
--HG--
branch : HEAD |
4b41116563110d00330896a568eff1078c382827 |
|
17-Apr-2007 |
Timo Sirainen <tss@iki.fi> |
Call sync_notify() once at the end of syncing. Allow accessing mails even
while syncing, as long as it's safe to do so.
--HG--
branch : HEAD |
5137d2d80255938a0f5fb8f3c1a21b34cf11ada3 |
|
17-Apr-2007 |
Timo Sirainen <tss@iki.fi> |
Added sync_notify() callback to struct mail_storage. It's now called for
expunges and flag/keyword changes (except with cydir).
--HG--
branch : HEAD |
e8490a52a1bc71bc53034e68f464435684ad810f |
|
03-Apr-2007 |
Timo Sirainen <tss@iki.fi> |
Moved namespace handling to lib-storage. Beginnings of namespace support for
non-IMAP parts of Dovecot.
--HG--
branch : HEAD |
7ff5401b623d3a6da5e82b63da97587d65f73349 |
|
30-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Removed virtual mail_storage.get_last_error(). The implementation is always
the same.
--HG--
branch : HEAD |
f81f4bc282cd1944cec187bae89c0701a416ed2a |
|
30-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Moved notify settings to struct mailbox. Removed the parameters from
notify_changes(), they're now set before calling it.
--HG--
branch : HEAD |
1108376e39a19912e8394e64e19b1bc6f6691cf6 |
|
30-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Moved all storage destruction code to mail-storage.c and made destroy()
optional. Removed set_callbacks(). Made autodetect() optional.
--HG--
branch : HEAD |
0a3b01714dadf97dcc7439ad4eeba690ab044966 |
|
30-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Removed mail_storage_create_with_data(). mail_storage_create() with
driver=NULL behaves the same way. Removed parameters from
mail_storage.create(), they're now put into the storage structure before
calling create().
--HG--
branch : HEAD |
f7539a17ea306191b53b8f5e752e228937df9ec3 |
|
30-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Added virtual mail_storage.alloc() function and changed create() to work
differently.
--HG--
branch : HEAD |
ccc895c0358108d2304239063e940b7d75f364ab |
|
30-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Removed struct index_storage abstraction. It's pointless.
--HG--
branch : HEAD |
8e371a3ce32bd64288786855b8ce0cb63f19f7d1 |
|
29-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Better type safety to module_contexts arrays. Already fixed some bugs.
--HG--
branch : HEAD |
b039dabf4c53f72454e795930e7643b6e0e625f9 |
|
29-Mar-2007 |
Timo Sirainen <tss@iki.fi> |
Moved delete/rename operations to mailbox_list API. Fixed mbox/maildir to
work with either fs/maildir++ directory layout. They can be changed by
appending :LAYOUT=fs|maildir++ to mail_location.
--HG--
branch : HEAD |
c5ab90cfad9cc3e33bcb1baeb30ffc82a7b7053a |
|
21-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Moved storage callbacks to struct mail_storage. If searching takes over 10
seconds, start giving estimates about when it's ready.
--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 |
d9fdacd5fb3e07997e5c389739d2054f0c8441d8 |
|
06-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Lock handling changes. Everything goes through file-lock API now and there's
only a single enum listing the different lock methods. This change exposed
some unneeded (or possibly even wrong?) unlock calls in index file handling
which were fixed.
--HG--
branch : HEAD |
7931dfb5a1d28278f2b7fe4f0d72fce26c501714 |
|
01-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Removed get_mailbox_control_dir and get_mailbox_index_dir virtual functions
from mail_storage, since they're already in mailbox_list.get_path(). Updated
mbox to override that function to return index/control dirs with the
".imap/" in the middle.
--HG--
branch : HEAD |
5fb3bff645380804c9db2510940c41db6b8fdb01 |
|
25-Nov-2006 |
Timo Sirainen <tss@iki.fi> |
Mailbox list indexing and related changes. Currently works only with
maildir and mmap_disable=no. This allows doing STATUS to synced mailboxes
without opening their index files at all.
--HG--
branch : HEAD |
57a8c6a95e4bce3eeaba36985adb81c07dd683ff |
|
18-Nov-2006 |
Timo Sirainen <tss@iki.fi> |
const fix
--HG--
branch : HEAD |
a27e065f1a1f91c7fbdf7c2ea1c387441af0cbb3 |
|
16-Nov-2006 |
Timo Sirainen <tss@iki.fi> |
Initial code for separation of mailbox accessing and directory layout
handling. It's not yet possible to change the default layouts though.
--HG--
branch : HEAD |
e63bdfedcf61e1a9ee21990140cbd0d0638da7e1 |
|
17-Sep-2006 |
Timo Sirainen <tss@iki.fi> |
Moved some search parameters to public struct mail_search_context and added
module_contexts array.
--HG--
branch : HEAD |
b811d88426068f2b959642e20348bfeeb9a6356d |
|
17-Sep-2006 |
Timo Sirainen <tss@iki.fi> |
Added mail_storage_get_mailbox_index_dir().
--HG--
branch : HEAD |
15b9759df8e4f6fb00c115353827a2aebbebfebc |
|
11-Jul-2006 |
Timo Sirainen <tss@iki.fi> |
Added hook_mailbox_opened to make it easier to hook all mailbox opens.
--HG--
branch : HEAD |
90adcaa0a00eba29b7fbd50ca66be11c8d086d6a |
|
29-Jun-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Added mail_get_save_date() and some cleanups.
--HG--
branch : HEAD |
d6badc27cd6e8d3398877b6766cb0aaeef3a7800 |
|
28-Jun-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Beginnings of joining mail-storage API more closely to mail-index, so that
mail-index could be directly used if needed. Currently only transactions
are joined.
--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 |
5505efe43cc7d5058561cda8882487b7971f8ad9 |
|
17-Jun-2006 |
Timo Sirainen <tss@iki.fi> |
When creating a mailbox, limit the number of hierarchies (to 20) and the
length of the mailbox name within a hierarchy (to 200).
--HG--
branch : HEAD |
a04cd96888653891272a512f7735121193af7b35 |
|
08-Jun-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Changed mail-storage API to do the mail sorting internally. Optimized it
internally to keep a 32bit sort_id field in index for each used primary sort
condition. Practically this should mean less disk I/O, memory and CPU usage
when SORT command is used.
--HG--
branch : HEAD |
a12399903f415a7e14c2816cffa2f7a09dcbb097 |
|
15-May-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Added mail_set_uid() to select a mail by UID.
--HG--
branch : HEAD |
2ebeb22b9a8a8bb7fbe2f2e2908478a220792b87 |
|
09-May-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Changed mailbox_save_*() API a bit: Moved the struct mail *dest_mail to
save_init() instead of being in save_finish(). This way you can request
wanted fields from the mail while it's being saved.
With maildir the message is being parsed at the same time as it's being
saved, and the results are stored into cache file.
--HG--
branch : HEAD |
a3ee5ce6ecc8e228ee69300fdd562d7ac8be89a7 |
|
14-Apr-2006 |
Timo Sirainen <tss@iki.fi> |
Optimized searching a bit for cases where we can restrict search range by
simply looking at sequence sets. Also optimized some deleted/seen flag
searches where no results would be found. Added search_next_update_seq()
virtual method which allows plugins to restrict the search range (eg.
allowing indexed text search plugins).
--HG--
branch : HEAD |
e4c90f0b88e40a8f92b8f5e1f1a3ea701e5c965c |
|
27-Feb-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Moved mailbox_list_flags to struct mailbox_list_context so plugins can see the flags more easily.
--HG--
branch : HEAD |
4981827cb5e32cf767b7b0e3070137e6b36f42af |
|
22-Feb-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
mailbox_save_init() supports now returning failure. Quota plugin now checks
if mail is too large in mailbox_save_init() hook. APPEND fails before giving
"+ OK" reply if mailbox_save_init() failed.
Also fixed some APPEND failure cases where the next command was eaten away.
--HG--
branch : HEAD |
defb12ecd360df672ffb2f4dbf4d1218a0a9549c |
|
22-Feb-2006 |
Timo Sirainen <timo.sirainen@movial.fi> |
Make life easier for plugins:
- Added MAILBOX_OPEN_SAVEONLY flag for mailbox_open(), which is set when mailbox is opened only for append/copy
- Added a couple of MAIL_STORAGE_ERR_* string defines that should be used when giving visible errors to clients
- Added failed-flag for mailbox_list_context, which plugins can directly set to make mail_storage_mailbox_list_deinit() return failure
- Added mail_storage_get_mailbox_path() and mail_storage_get_mailbox_control_dir() to return locations for mailbox directories
Also be more strict when validating mailbox names.
--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 |
e05a4c4136fec723f019bee8383103080203f127 |
|
10-Dec-2005 |
Timo Sirainen <tss@iki.fi> |
Added module_contexts to transactions.
--HG--
branch : HEAD |
c13f3df87bc8ec1fb279fc0ffa6e8517f74dc07c |
|
06-Oct-2005 |
Timo Sirainen <tss@iki.fi> |
Added flags and keywords parameters to mailbox_copy() in case they're wanted
to be changed while copying.
--HG--
branch : HEAD |
ab0155cbec1286e1cd00a0e01d78e0f3ca34cea6 |
|
29-Jul-2005 |
Timo Sirainen <tss@iki.fi> |
Added separate "temporary error" flag for mail_storage_get_last_error().
--HG--
branch : HEAD |
bf661a542d17273066e720b4f75868a1ff975a4c |
|
03-Apr-2005 |
Timo Sirainen <tss@iki.fi> |
Moved several getenv()s from lib-storage to main code. deliver binary was
missing several getenvs..
--HG--
branch : HEAD |
87460b08cb97b31cde640d4975a6aa2c1d0e7226 |
|
29-Mar-2005 |
Timo Sirainen <tss@iki.fi> |
Renamed mail_get_header() to mail_get_first_header() and mail_gets_headers()
to mail_get_header_stream(). Added new mail_get_headers() which returns
NULL-terminated string list of all found headers.
--HG--
branch : HEAD |
04ab375449dd97eed50ada88dd0df2abab01cfee |
|
29-Mar-2005 |
Timo Sirainen <tss@iki.fi> |
Added input stream parameter to mailbox_open(). With mbox it now allows
opening a read-only mbox using a stream.
--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 |
faed8babca9914257f34fb2e603d74016d563b2d |
|
05-Feb-2005 |
Timo Sirainen <tss@iki.fi> |
Internal changes in how keywords are handled. struct mail_keywords isn't
automatically freed anymore, added *_keywords_free() for that.
--HG--
branch : HEAD |
41e1c7380edda701719d8ce1fb4d465d2ec4c84d |
|
10-Jan-2005 |
Timo Sirainen <tss@iki.fi> |
Keyword fixes.
--HG--
branch : HEAD |
8d630c15a8ed6f85553467c3a231a273defca5f6 |
|
29-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
Added mail_debug setting. Moved full_filesystem_access from global variable
to flag in mail_create*() functions.
--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 |
b2c1349cf07410aefab0f5b17153af9e5cfcf48f |
|
29-Aug-2004 |
Timo Sirainen <tss@iki.fi> |
Added sync flags parameter to mailbox_transaction_commit(), so EXPUNGE can
do a full sync with dirty syncing enabled.
--HG--
branch : HEAD |
a423d985ba7261661475811c22b21b80ec765a71 |
|
21-Aug-2004 |
Timo Sirainen <tss@iki.fi> |
Changed mail saving API to be nonblocking.
--HG--
branch : HEAD |
84f80d9231b6ddc80ebfae425fd3674620fdf746 |
|
22-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Moved namespace and hierarchy separator handling to imap-specific code. LIST
now shows non-hidden namespaces in the LIST reply.
--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 |
d756ebcfa96bd7cff02097c8f26df9df368b81b1 |
|
12-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Broke mailbox_sync() into iterator.
--HG--
branch : HEAD |
b3b4f3875850099c9292ad74d08bb385c3988f8f |
|
22-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
get_last_error() wasn't virtualizable
--HG--
branch : HEAD |
345212e8f61ebf14ff4f80df26df9e655eb5121e |
|
20-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
mailbox_save() and mailbox_copy() functions can now return the saved mail so
it can be immediately queried. Implemented UIDPLUS extension using it.
Maildir implementation missing, so it crashes with it for now.. APPEND with
mbox now doesn't require resyncing the mailbox since it updates indexes
directly.
--HG--
branch : HEAD |
d8b77aef97e89f1ccc5cbdaef77be9052279e35f |
|
02-May-2004 |
Timo Sirainen <tss@iki.fi> |
s/custom flags/keywords/
--HG--
branch : HEAD |
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834 |
|
27-Apr-2004 |
Timo Sirainen <tss@iki.fi> |
importing new index code. mbox still broken.
--HG--
branch : HEAD |