bcb4e51a409d94ae670de96afb8483a4f7855294 |
|
01-Jan-2018 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
Updated copyright notices to include the year 2018. |
ad9afb64630511d5e25bc5bc11c5304986156928 |
|
30-Oct-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Replace o_stream_nfinish() with o_stream_finish() whenever possible |
67bbcd664bebce9a507a49c67273be4814d07c97 |
|
12-Oct-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Add mail_index_cache_optimization_settings |
2454dfa32c93c20a8522c6ed42fe057baaac9f9a |
|
01-Jan-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
Updated copyright notices to include the year 2017. |
efe78d3ba24fc866af1c79b9223dc0809ba26cad |
|
24-Dec-2016 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
global: Replaced all instances of memset(p, 0, sizeof(*p)) with the new i_zero() macro.
Used the following script:
C_FILES=`git ls-files *.c`
H_FILES=`git ls-files *.h`
for F in "$C_FILES $H_FILES"; do
echo "$F"
perl -p -i -e 's/safe_memset\(&\(?([^,]*)\)?,\s*0,\s*sizeof\(\g1\)\)/i_zero_safe(&$1)/g' $F
perl -p -i -e 's/safe_memset\(([^,]*),\s*0,\s*sizeof\(\*\g1\)\)/i_zero_safe($1)/g' $F
perl -p -i -e 's/memset\(&\(?([^,]*)\)?,\s*0,\s*sizeof\(\g1\)\)/i_zero(&$1)/g' $F
perl -p -i -e 's/memset\(([^,]*),\s*0,\s*sizeof\(\*\g1\)\)/i_zero($1)/g' $F
done |
f883b315ca72073b58020798e6d907340b327228 |
|
03-Aug-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: If mail_debug=yes, log cache compressions. |
f0339f522dc9c8e2e8a29ef9a3f937c431c6bd1b |
|
06-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Use only explicit int -> bool conversions
These were checked with a patched clang. |
5b47087754f4008e88c93386d524e07db535c132 |
|
23-May-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Fixed assert-crash caused by previous cache compression change.
We can't call mail_cache_map() when cache file isn't open or we'll crash:
Panic: file mail-cache.c: line 468 (mail_cache_map): assertion failed: (cache->need_compress_file_seq != 0 || MAIL_INDEX_IS_IN_MEMORY(cache->index)) |
230586a1660d3c09dc9becd0f77b683a81330720 |
|
23-May-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Make sure cache compression doesn't clear the file unneededly.
This probably never happened with current code, except when the cache file
was already broken.
mail_cache_compress() unmapped cache when map_with_read==TRUE, but we never
mapped it back. This would cause cache copying code to think cache was
unusable and not copy anything. |
f330b7d9e14255fc06bc82908d9bc5a12cccb424 |
|
20-Apr-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: If opening a cache file fails, try again later.
The previous code would never retry opening the cache file within the same
session. |
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3 |
|
12-Jan-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: freshen copyright
git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-5]/$1-2016/g;s/ (201[0-5]) Dovecot/ $1-2016 Dovecot/' |
46b823ac3bce2c0f9f0fc73911e48d3a77b04fbe |
|
08-Sep-2015 |
Timo Sirainen <tss@iki.fi> |
Replaced unlink() calls with i_unlink*() wherever possible. |
7cb128dc4cae2a03a742f63ba7afee23c78e3af0 |
|
05-Jan-2015 |
Phil Carmody <phil@dovecot.fi> |
global: freshen copyright
Robomatically:
git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-4]/$1-2015/g;s/ (201[0-4]) Dovecot/ $1-2015 Dovecot/'
Happy 2015 everyone!
Signed-off-by: Phil Carmody <phil@dovecot.fi> |
0f833d18af36bf307cd69f235eb3fb779245b478 |
|
07-Oct-2014 |
Timo Sirainen <tss@iki.fi> |
lib-index: Delay unlocking cache compression until changes to transaction log are committed.
This should fix race condition with two processes compressing the file at
the same time with same file_seq and becoming confused. |
cfd0e35fce37786f1bb186386ebe29aeef7dbf31 |
|
07-Oct-2014 |
Timo Sirainen <tss@iki.fi> |
lib-index: Try to minimize race conditions while compressing cache.
There are some unavoidable race conditions, but try to keep their time
window as small as possible. |
a8c5a86d183db25a57bf193c06b41e092ec2e151 |
|
04-Feb-2014 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2014. |
8ae72ad7d0c69e972cfa65d1e2ce4e3e9a8b765c |
|
24-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
Replaced all -1U and (unsigned int)-1 with UINT_MAX.
It's somewhat clearer this way. Also clang's -fsanitize=integer gives
runtime errors about -1U (but not about explicit casts, so no need to change
(type)-1 casts). |
5a580c3a38ced62d4bcc95b8ac7c4f2935b5d294 |
|
02-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
Oops :) Update copyrights to 2013 without breaking all .c files. |
cca4ba2a504d70a9fe9fee37f8433997359de52c |
|
02-Feb-2013 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2013. |
de9b2ee7878a73346ba0eee34798abb22ffcfcb6 |
|
19-Dec-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: If map_with_read gets disabled, reset the cache buffers properly. |
f0ff961282e618945dfe997dc45ff95d656e5790 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Replaced cache's deleted_space with deleted_record_count.
This way when expunging messages we don't need to actually read through the
cache file and calculate how many bytes will be freed, we can simply
increase the deleted_record_count by 1. We'll still compress the cache file
approximately after 20% of the space (records) has been deleted.
This also converts the old "hole offset" header field to tracking the number
of records in the cache file. Otherwise we'd have to assume that all of the
messages in mailbox have a cache record, but that isn't true for users who
have only temporary cache fields. This "hole offset" cannot be trusted
completely, because nothing prevents old Dovecot version from simply writing
a hole offset there and messing up the record counts. Because of this there
are a couple of extra sanity checks for it. (Unfortunately there wasn't any
easy way to simply add a new field to header without breaking backwards
compatibility.) |
920b9f0fdfa5a5d7763e05736601a31bcb291a53 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added minor version to dovecot.index.cache file header. |
330d54e9e3bf076efe91f101c562d1268160b128 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: If a cache record is larger than 64 kB, don't add it to cache file.
This shouldn't affect anything except mails that probably shouldn't exist in
the first place. |
18d92dbbb752c79dc461514e52f7ef11847e636b |
|
18-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added MAIL_INDEX_OPEN_FLAG_SAVEONLY to do only minimal reads from cache file. |
82ed69779f49bd71ef1b570ce8aca67d357dbee8 |
|
18-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: mail_cache_map() API cleanup |
289064eb21595d3e4460439eccdc48232d13f5e1 |
|
04-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Simplified writing to dovecot.index.cache file.
The old method was basically:
- write max. 32 kB to internal buffer
- flush it by writing to reserved areas (with no locks)
The reserved areas were acquired by doing (whenever needed):
- lock dovecot.index.cache
- reserve data from dovecot.index.cache for writing, potentially increasing
the file size by writing 0 bytes. the reserved area size varies.
- unlock dovecot.index.cache
This worked, but if multiple processes were writing to the cache file it
could have left incomplete reserved areas as holes. The holes were attempted
to be filled if they were large enough.
The new method is:
- write max. 256 kB to internal buffer
- lock dovecot.index.cache
- append the buffer to dovecot.index.cache
- unlock dovecot.index.cache
No reserved areas, holes or anything else weird going on.
Ideally no data would be overwritten in the dovecot.index.cache file, only
appended. Unfortunately currently some data is still overwritten:
- mail_cache_header.{deleted_space,continued_record_count}
- mail_cache_header_fields.next_offset when writing a new one
- mail_cache_header_fields.{last_used,decision}
- mail_cache_record.prev_offset
The changing headers could eventually be moved to dovecot.index. This
however is a backwards-incompatible change. The record's prev_offset could
maybe simply just not be written in those (somewhat rare) problematic
situations. |
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] |
4307c886579381dbb1897ea1388ae6978c96f560 |
|
27-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Changed i_close_fd() API to set the fd to -1 after closing. |
cb78bd2ad54e402c1f53930b41e2295683bda90b |
|
25-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Replaced (void)close(fd) and close_keep_errno() with i_close_fd().
i_close_fd() preserves the errno and logs an error if the close() fails. |
31a574fda352ef4f71dbff9c30e15e4744e132c0 |
|
25-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Added array_append_zero() to write a zero-filled record to an array.
Replaced (void)array_append_space() calls with it. |
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. |
e2a88d59c0d47d63ce1ad5b1fd95e487124a3fd4 |
|
24-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Added o_stream_nsend*() and related functions to make delayed error handling safer.
Once o_stream_nsend*() is called, o_stream_nfinish() must be called before
stream is destroyed to finish checking if there were any errors. If
something failed and the stream is just wanted to be closed,
o_stream_ignore_last_errors() can be called.
For streams where errors don't really make any difference (network sockets)
you can call o_stream_set_no_error_handling() immediately after creating the
stream. |
6cb2c6ecddcdbeac9e6c73a292244747e12a793e |
|
24-Jun-2012 |
Timo Sirainen <tss@iki.fi> |
Added file_dotlock_delete_verified() and changed file_dotlock_delete() to return void. |
5f5870385cff47efd2f58e7892f251cf13761528 |
|
12-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2012. |
008a83e9f680f04f69789fb702232416eab2a86c |
|
10-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
lib-index: Allow updating cache's last_used field with mail_cache_register_fields() |
128ea07dab8d67124ea74bcc085a478784b6358a |
|
30-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-index: Changed mail_cache_view_close() API to take pointer-to-pointer. |
2e37d45867d081db150ab78dad303b9077aea24f |
|
04-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2011. |
183bea41fa640dc8117f3eb45ff935cd81377a84 |
|
04-Mar-2011 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2011. |
b780aa272b742a43579cdb523cc79cc8d4521306 |
|
25-Jun-2010 |
Timo Sirainen <tss@iki.fi> |
Renamed fsync_disable to mail_fsync=optimized|always|never.
--HG--
branch : HEAD |
b879ed8dd4b5850987e6b89a92f794d87c6be7d7 |
|
05-Apr-2010 |
Timo Sirainen <tss@iki.fi> |
Small code changes to make static analyzer happier.
--HG--
branch : HEAD |
e59faf65ce864fe95dc00f5d52b8323cdbd0608a |
|
25-Jan-2010 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2010.
--HG--
branch : HEAD |
66ecc94150cbce23aad3240135e0782e0a74d479 |
|
30-Jul-2009 |
Timo Sirainen <tss@iki.fi> |
index: Removed duplication of mail_index_open_flags from struct mail_index.
--HG--
branch : HEAD |
1f80b32fc28f7a723ff07c1694230a090808b506 |
|
01-Jun-2009 |
Timo Sirainen <tss@iki.fi> |
index: Handle better errors where a new file's group can't be changed.
--HG--
branch : HEAD |
45312f52ff3a3d4c137447be4c7556500c2f8bf2 |
|
06-Jan-2009 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2009.
--HG--
branch : HEAD |
25c22e54d1071d120641e9eecd0023e7373e65ff |
|
18-Oct-2008 |
Timo Sirainen <tss@iki.fi> |
Fixes to handling "out of disk space/quota" write failures.
--HG--
branch : HEAD |
d0bbbc7057aa33b52ee378196dee7d773437468f |
|
11-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
Mail cache compression: If we can't get lock immediately, do it later.
--HG--
branch : HEAD |
5724e7103eed12fe36b55a7b5a8653284a2184b9 |
|
11-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
Mail cache: lock_method=dotlock could have caused a process to deadlock with itself.
--HG--
branch : HEAD |
6e07b4251bf6a3cf34019c351a32a65c08392e58 |
|
29-May-2008 |
Timo Sirainen <tss@iki.fi> |
Added mail_index_ext_reset_inc() to atomically increase extension's
reset_id. Added clear_data parameter to mail_index_ext_reset*().
--HG--
branch : HEAD |
b8d232d88018c5cafd2f3be5a181d318137a45f2 |
|
27-May-2008 |
Timo Sirainen <tss@iki.fi> |
Avoid using shadow variables. Unfortunately -Wshadow also complains about
index variable conflicting with index(), which is used in way too many
places to change.
--HG--
branch : HEAD |
ddbad7a661c0663fafd2b79393efa85f840d6af6 |
|
04-Jan-2008 |
Timo Sirainen <tss@iki.fi> |
Fixes to handling when fields are dropped from cache file.
--HG--
branch : HEAD |
76b43e4417bab52e913da39b5f5bc2a130d3f149 |
|
01-Jan-2008 |
Timo Sirainen <tss@iki.fi> |
Updated copyright notices to include year 2008.
--HG--
branch : HEAD |
cc3ccdab8a510d88fecedf95187465bf84833711 |
|
29-Dec-2007 |
Timo Sirainen <tss@iki.fi> |
Don't drop fields whose decision has been forced.
--HG--
branch : HEAD |
a04b6515c20b431294626400e173d81f3d25889b |
|
27-Dec-2007 |
Timo Sirainen <tss@iki.fi> |
Compiler warning fixes on 32bit systems.
--HG--
branch : HEAD |
956f7778e413d3184d69e7b96e4a6b3cd5570bcd |
|
22-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
mail_cache_field_want_add(): Return TRUE for temp fields only if we're
adding the field to a new enough message.
--HG--
branch : HEAD |
813eec200fe5456372a9d3218930f6d52754c6a0 |
|
22-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Removed wrong assert
--HG--
branch : HEAD |
bc564f1d3d953cf724828322b11ae89e0f59ffc9 |
|
18-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
NFS cache flushing APIs changed and backend implements it a bit differently.
Hopefully this works now more correctly.
--HG--
branch : HEAD |
f1700e6d755306a2b137fad88ea5bf8b9fc6ec4f |
|
16-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Update cache->st_ino and st_dev after compressing.
--HG--
branch : HEAD |
959a66f100887ce0acf442a397cfaec89570436a |
|
08-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
We don't really care if we lost a cache file or if it gets broken, so don't
ever fsync it unless mail_nfs_index=yes.
--HG--
branch : HEAD |
6157a322f2ac1ea1332d9003ecb0b11466aa8fe7 |
|
06-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Don't write fields to cache file with last_used=0. If fields were just
added without being used yet, this makes sure that they're not dropped too
early by compression.
--HG--
branch : HEAD |
fe6cf42464c36ab281c0e0740f0255be77453670 |
|
05-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
When adding new fields to the cache file, add all the fields we currently
know about to avoid adding them one-by-one.
--HG--
branch : HEAD |
c53e8ee216904ffe6de4f6518d9f9f5107b7610e |
|
04-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Added MAIL_INDEX_OPEN_FLAG_READONLY.
--HG--
branch : HEAD |
8d77ab87a57ae98532c62e5d1548bd131dee3074 |
|
03-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Don't drop all fields if day_stamp is still 0 in index header.
--HG--
branch : HEAD |
3da614c39dd29f536c485089e67839b4cf89fed3 |
|
03-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Renamed mail_index_lookup_uid_range() to mail_index_lookup_seq_range(), made
it return a bool and added mail_index_lookup_seq(). Cleaned up the code to
use these functions.
--HG--
branch : HEAD |
f8523f81a8f5fafbb30bb09c0fbeb4d4625be5d5 |
|
30-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Fixes to NFS read cache flushing.
--HG--
branch : HEAD |
89a126810703c666309310d0f3189e9834d70b5b |
|
16-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Replaced my Copyright notices. The year range always ends with 2007 now.
My name was replaced with "Dovecot authors". In many cases I didn't really
even own the copyright, so this is more correct.
--HG--
branch : HEAD |
0f66f12eb4cdbf47670975044c88d8f388bf92df |
|
15-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Changed buffer_free() and buffer_free_without_data() APIs to take ** pointer
which is set to NULL instead of hiding it with a macro.
--HG--
branch : HEAD |
3140537477eecdc5ea0a99f77df233c297dae58d |
|
27-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Minor memory usage optimizations.
--HG--
branch : HEAD |
fd44baee6e92f13d42ff711895d6510067f70955 |
|
13-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Change "permanent" cache decisions to "temporary" when compressing. They'll
get updated back to permanent later if needed.
--HG--
branch : HEAD |
9a583c7a827f7a4d89ee43774f2d51ea6a214543 |
|
13-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Drop fields that haven't been used for 30 days when compressing.
--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 |
93fa87cf1a96c4f279ec4f5c311820313ba12c34 |
|
02-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Split o_stream_create_file() to _create_fd() and _create_fd_file().
--HG--
branch : HEAD |
fe363b433b8038a69b55169da9dca27892ad7d18 |
|
24-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Removed memory pool parameter from iostreams. Default pool was almost always
used, and the stream usually required destroying anyway so it didn't even
make freeing memory easier.
--HG--
branch : HEAD |
6237f743bbaf74de5a2d2051672baed87023657b |
|
14-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Make sure the file_seq always grows.
--HG--
branch : HEAD |
c18e2301f4c81f2819711661890db7796d4450c3 |
|
14-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
need_compress_file_seq=0 nowadays when file doesn't exist, not -1.
--HG--
branch : HEAD |
51b979b6414b940f04677a7e2d064be119345954 |
|
12-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Flush NFS caches when needed if MAIL_INDEX_OPEN_FLAG_NFS_FLUSH is enabled.
--HG--
branch : HEAD |
df6478c4cf605bd81b3891c148b84c14eb6c4035 |
|
12-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Don't create cache file until something is actually being added to it.
--HG--
branch : HEAD |
2d49f150b4bce6f2f59a84e268e4777901c3e42c |
|
28-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Handle indexid changes better.
--HG--
branch : HEAD |
7d75b95c260e58ee5039fa3afd79e9fda3bc8002 |
|
14-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Code cleanup / optimization
--HG--
branch : HEAD |
6b85bc4b03e552cfaeeae872d63c2d8ac5fcb7c4 |
|
14-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Changed mail_cache_foreach() to be an iterator: mail_cache_lookup_iter_*()
--HG--
branch : HEAD |
c740209eb3db031022c6fd436fa2ef1aa0ec46b8 |
|
14-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Declare a global uint32_t array type.
--HG--
branch : HEAD |
7ca9da144f79317f9a0d3b0b5cc1fe21e44a5bf4 |
|
22-May-2007 |
Timo Sirainen <tss@iki.fi> |
When compressing cache file, update the cache file offsets using the
existing sync transaction.
--HG--
branch : HEAD |
48c13fba1b118a65b95eb7d1e7b814f2d6d8f075 |
|
18-Jan-2007 |
Timo Sirainen <tss@iki.fi> |
debug: Don't bother warning about cache compressions. It has lived its
usefulness.
--HG--
branch : HEAD |
369a1084c500a9df7448ffa9409ce32e42060bc2 |
|
17-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Added fsync_disable setting. Also added missing fsync()ing to dbox when
saving mails.
--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 |
d24b032280fa6b59d06d391878d659c41085a35e |
|
12-Nov-2006 |
Timo Sirainen <tss@iki.fi> |
Removed code which is never called.
--HG--
branch : HEAD |
e192a3b1ca8ae857e7d87298ea507d32977ba570 |
|
13-Oct-2006 |
Timo Sirainen <tss@iki.fi> |
Don't use time_t anymore in cache file. uint32_t is large enough and makes
cache files compatible between 32bit and 64bit systems.
--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 |
58be9d6bcc3800f5b3d76a064ee767fbe31a5a8a |
|
03-May-2006 |
Timo Sirainen <tss@iki.fi> |
Don't compress cache file if it was just compressed by another process.
--HG--
branch : HEAD |
cd56a23e21f1df3f79648cf07e2f4385e2fadebb |
|
25-Feb-2006 |
Timo Sirainen <tss@iki.fi> |
Added i_stream_destroy() and o_stream_destroy() and used them instead of
*_stream_unref() where possible. Fixes at least one problem with io_remove()
being called after socket was closed, which caused problems with epoll.
--HG--
branch : HEAD |
d5cebe7f98e63d4e2822863ef2faa4971e8b3a5d |
|
14-Jan-2006 |
Timo Sirainen <tss@iki.fi> |
deinit, unref, destroy, close, free, etc. functions now take a pointer to
their data pointer, and set it to NULL. This makes double-frees less likely
to cause security holes.
--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 |
811f2e26d9782d9cb99fdf82e18ffa0a77564fe2 |
|
06-Jan-2006 |
Timo Sirainen <tss@iki.fi> |
Moved uoff_t and time_t compatibility checks to cache file, since they're
not needed for index/log. Only index file incompatibility check is now
endianess flag.
--HG--
branch : HEAD |
a817fdcc43aedf423e2134091d5f83f91d64bcc9 |
|
30-Sep-2005 |
Timo Sirainen <tss@iki.fi> |
Unlocking cache file can also corrupt it since it modifies it. Added a
return value for it and checks to handle the failure. Fixes a crash in some
error situations.
--HG--
branch : HEAD |
d5ac54ef50db16b50689b5c8b7bb64d344190832 |
|
25-Sep-2005 |
Timo Sirainen <tss@iki.fi> |
Removed null4 and replaced the few uses of it with buffer_append_zero().
--HG--
branch : HEAD |
325d4ad220bd13f6d176391d962a0e33c856a7f6 |
|
27-Aug-2005 |
Timo Sirainen <tss@iki.fi> |
Removed fcntl() text from some locking error messages, because if
lock_method=flock, it was done using flock().. Also did several s/it's/its/
in comments and one error message.
--HG--
branch : HEAD |
4b231ca0bbe3b536acbd350101e183441ce0247a |
|
29-Mar-2005 |
Timo Sirainen <tss@iki.fi> |
In-memory indexes work again. Just pass dir as NULL to mail_index_alloc().
--HG--
branch : HEAD |
13c6532dc104d23061e6901783ceb1ff8872c206 |
|
16-Jan-2005 |
Timo Sirainen <tss@iki.fi> |
Changed dotlocking API.
--HG--
branch : HEAD |
9945ad9e528188521d876b80f08a648072ffa207 |
|
07-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
mail_cache_merge_bitmask() was broken, cache compression could have crashed
or produced broken results.
--HG--
branch : HEAD |
365435901c22df7e5838f574c950b0e32e77f78a |
|
07-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
Cache compression didn't work with lock_method = dotlock.
--HG--
branch : HEAD |
6fdf8b5e4e71a69f5974f59eec2b8c19bc421fe2 |
|
04-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
Locking fixes and cleanups
--HG--
branch : HEAD |
df4018ae2f0a95be602f724ca70df7e0e3bd6a7d |
|
29-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Removed view->messages_count, view->hdr.messages_count is enough. Also fixes
assert crash in mail_index_bsearch_uid().
Renamed .._get_message_count() to get_messages_count() to be more
consistent.
--HG--
branch : HEAD |
b20fb5b1df9d604a7541f5118fc5b4b466d211ef |
|
24-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Changed mail_index_get_header() to return the header as return value because
it can't fail anymore.
--HG--
branch : HEAD |
d22390f33eedbd2413debabc0662dde5241b1aa6 |
|
11-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
dovecot-shared file was supposed to show permissions/gid for files created
in the maildir, but it didn't work for indexes.
--HG--
branch : HEAD |
7c95b03620a03a43dd72d39608cea5fc77393ad6 |
|
11-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Allow specifying to transaction if it's external. Make mail saving
transactions external to avoid problems with uids.
--HG--
branch : HEAD |
1098fc409a45e7603701dc94635927a673bee0c1 |
|
08-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Cache file works now with mmap_disable=yes. Still needs a few optimizations.
--HG--
branch : HEAD |
6a19e109ee8c5a6f688da83a86a7f6abeb71abdd |
|
06-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Removed cache_offset from mail_index_record and changed it to use extension
instead. Added possibility to register sync and expunge handlers for
extensions. Changed the way extension resets work: all extension updates
which were committed without having seen the reset are ignored.
--HG--
branch : HEAD |
4b058f90f9e8a2c6b2eed275de4eb8cc5195a71d |
|
08-Oct-2004 |
Timo Sirainen <tss@iki.fi> |
Buffer API change: we no longer support limited sized buffers where
writes past limit wouldn't kill the process. They weren't used hardly
anywhere, they could have hidden bugs and the code for handling them was too
complex.
This also changed base64 and hex-binary APIs.
--HG--
branch : HEAD |
4823da41d112ff9f5e8f088b0e60d1636e01ff92 |
|
07-Oct-2004 |
Timo Sirainen <tss@iki.fi> |
Added asserts
--HG--
branch : HEAD |
7797aa2479e99aeb71057b7a2584b2cb72e4d3f8 |
|
26-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
Renamed "extra record info" and variations of it to "extension" or "ext" in
short.
--HG--
branch : HEAD |
7416b94f38e82381abd9cee660efdcf3e7b773af |
|
20-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
Memory leak fixes
--HG--
branch : HEAD |
afa6ac39d1d6df246d4e7352288c2a0388276a24 |
|
12-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
bitmask merging code was corrupting the cache file
--HG--
branch : HEAD |
72e9e7ad158101d46860b42c4080e894485c78c3 |
|
12-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
fix
--HG--
branch : HEAD |
4edf90751f075cc6ab3d6f53fc78b656efa80922 |
|
12-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
ID mapping fixes.
--HG--
branch : HEAD |
a13dd0ece98f62f61c64bff9c9c29ed3f3d82d54 |
|
11-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
Use global null4[] now.
--HG--
branch : HEAD |
dd4b5f14b71b01a84af942e720a2d6e5f15ee1a7 |
|
04-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
Added support for bitmask type.
--HG--
branch : HEAD |
44ff75ca53188056ff5a3e50428e3f2078800b3c |
|
31-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Transaction log file is now read-lockless.
--HG--
branch : HEAD |
4bbee99b3aef449a9a2a11a5b5cf1ca486915c49 |
|
20-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache fixes. Decisions are saved again.
--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 |
aff7542e1d2f48b030560a4f01096a2cc3f671ce |
|
08-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Fixed compression.
--HG--
branch : HEAD |
992a13add4eea0810e4db0f042a595dddf85536a |
|
08-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache file fixes, API changes, etc. It's still in somewhat ugly state, but
getting better..
--HG--
branch : HEAD |
2ca4cb08680aebb1474d762738cf436871f095fb |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Make sure we don't set cache_offsets to old cache files.
--HG--
branch : HEAD |
1171f0abf442638bac1827bb24a0b6b8eb682a82 |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache API updates. Don't return direct pointers to mmaped cache file anymore.
--HG--
branch : HEAD |
72cbf33ae81fde08384d30c779ff540752d9256c |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache updating is done now by first reserving space where to write, and then
writing to it whenever buffer gets full. There is no persistent cache file
locks anymore because of this, but it also means that the same cached field
may be written multiple times to the file by different processes. Also since
we reserve more space than we actually need at first, it some space can be
wasted if multiple processes are updating the cache.
--HG--
branch : HEAD |
a40d26f83af808a0ea1e212c001d682a96d870b0 |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Caching fixes and optimizations. Removed all network byte ordering code -
it's not worth the trouble and would require massive changes in indexing
code as well to be useful. Changed next_offset to prev_offset which is
updated while syncing index.
--HG--
branch : HEAD |
fd2f5fbc1f07aa93e2214a28cdf02437fb7d06c8 |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache file compression works now and compressed cache file is reopened.
Several other cleanups related to opening - cache file isn't created
immediately anymore.
--HG--
branch : HEAD |
275b5e9ddb9679c5667493834d4579821994089b |
|
29-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
Temporary: never compress cache file as it's broken now.
--HG--
branch : HEAD |
8aacc9e7c84f8376822823ec98c2f551d4919b2e |
|
28-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
Added some smartness for deciding what to cache. Cache compression code compiles, but untested.
--HG--
branch : HEAD |
da5d50534cfca45d0aaaf0bdac17b287b4588809 |
|
20-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
Beginnings of getting cache file working again. Easy to break currently, but
basics seem to work.
--HG--
branch : HEAD |
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834 |
|
27-Apr-2004 |
Timo Sirainen <tss@iki.fi> |
importing new index code. mbox still broken.
--HG--
branch : HEAD |