f45f472bcb3664232bf21a1ae07ebb0efc3e3b53 |
|
17-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm sync/backup: Don't override BROKENCHAR if it's already set
This allows migrating invalid mailbox names by specifying BROKENCHAR.
Previously it would always try to use \003 control character, which isn't
valid character in mailbox names so the mailbox creation would fail. |
ac581db9a4ff22c5f99cf1666a0a1a7f7889e0a2 |
|
31-Jan-2018 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
global: start relying on ssl_iostream_destroy(NULL) being a no-op
Cleanup performed with the following semantic patch:
@@
expression E;
@@
- if (E != NULL) {
- ssl_iostream_destroy(&E);
- }
+ ssl_iostream_destroy(&E); |
bfa8b471b376f4748be56421b0279a4142237d38 |
|
30-Jan-2018 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
doveadm: dsync: Switch ioloop for input/output streams while making TCP connection.
This task is performed in a sub-ioloop, and when returning from that ioloop, the
output stream would sometimes still have an object on the sub-ioloop that was
just destroyed. |
7f0dcac9942910c2934ceab1230e539043167601 |
|
05-Jan-2018 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
doveadm: Add NOREPLICATE error when "noreplicate" user flag is used
It will be only understood if -U flag has been used |
bcb4e51a409d94ae670de96afb8483a4f7855294 |
|
01-Jan-2018 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
Updated copyright notices to include the year 2018. |
3c1077b110ef7cfb5fe3bd2aa32b0ebd90dac02e |
|
28-Nov-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm-server: Fix potential dsync-server panic at deinit
If the ostream is still used (e.g. for logging) after dsync is finished, it
crashed with:
Panic: file ostream.c: line 276 (o_stream_sendv_int): assertion failed: (!_stream->finished) |
ebcf7d6c9222f2c96053516e0c90994bff62dd55 |
|
07-Nov-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Replace ssl_iostream_context_init_client() with ssl_iostream_client_context_cache_get() |
15d19d6e4daf460d8d2c82b981e23996dbdf7ba5 |
|
07-Nov-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Rename ssl_iostream_context_deinit() to ssl_iostream_context_unref() |
1b7459fda7de40f963e64da1886af68ad05fd10d |
|
02-Nov-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm: Send hostname without ":port" as TLS SNI name for outgoing SSL connections. |
6fc40674e5a33787ae7fcd47a77a77ea20977994 |
|
28-Oct-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
global: Rename client_connection_type to doveadm_connection_type |
e16f28d4b75e86b5e2d2ca8d3fd248f35f5051ef |
|
24-Oct-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
doveadm: mail: Removed redundant cur_username field from struct doveadm_mail_cmd_context. |
2ff59d50fe18864f3532004fbbcd98f371a6e22f |
|
24-Oct-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
doveadm: mail: Removed redundant cur_client_ip field from struct doveadm_mail_cmd_context. |
1b58508a918279d773ef32518f5d5d933023c252 |
|
24-Oct-2017 |
Stephan Bosch <stephan.bosch@dovecot.fi> |
doveadm: Changed command contexts to contain the input, output, and connection type values directly.
Before, it used a direct pointer to the connection.
It used also flags to indicate the connection type, which is now consolidated in the connection type enum. |
1ef9fe877817de76eb38883ccf3833fae60e6865 |
|
05-Oct-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
global: stop including fd-set-nonblock.h & fd-close-on-exec.h directly |
69a71891361b2b27ff68ed84b29278486628464a |
|
27-Sep-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
dsync: Add hashed_headers setting
This makes it possible to configure them |
c79c8c1d0f76165cf94e32264785ac76a8f8f5e9 |
|
27-Sep-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
dsync: Fix typo, it's ibc not icb |
5f1d689131a75c39f064cbd4202373e7edf78f18 |
|
19-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
global: start relying on io_remove{,_closed}(NULL) being a no-op
Cleanup performed with the following semantic patch:
@@
expression E;
@@
- if (E != NULL) {
- io_remove(&E);
- }
+ io_remove(&E);
@@
expression E;
@@
- if (E != NULL) {
- io_remove_closed(&E);
- }
+ io_remove_closed(&E); |
7b032348d7bbb93ff96188289d3dfc1899b9abb3 |
|
19-Sep-2017 |
Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi> |
global: start relying on i_close_fd(-1) being a no-op
Cleanup performed with the following semantic patch:
@@
expression E;
@@
- if (E != -1)
- i_close_fd(&E);
+ i_close_fd(&E); |
7785296a7f51d88c0a0be15f6ac60c0c43a30a79 |
|
04-Jul-2017 |
Thomas Reifferscheid <thomas@reifferscheid.org> |
dsync: fix splitting login from host
Using strchr() was splitting login and host at the first
occurrence of '@' which leads to troublesome behaviour.
When calling strace one would notice the misbehaviour:
execve("/usr/sbin/ssh", ["ssh", "-lthomas", "domain.org@10.8.13.2"
using strrch() however splits login and host at the last occurrence
of '@'.
Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org> |
a76faea3eb26c4cd67886fbe02c604f74d54be8c |
|
17-May-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dsync: Try to commit transactions every dsync_commit_msgs_interval messages
This was first attempted to be implemented by
ec0cc8fa647794e44a1afaa448f495a713048dc4, but it was later partially
reverted by 5973d496b16721af6d2c1fa90b016aacddf13554. This current
commit should fix its problems. |
b3c095d1fb0bb86695d92c2045eb09e985623934 |
|
22-Feb-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
global: Fix ssl_set usage
Remove verify_remote_cert, as it's always TRUE now.
Set allow_invalid_cert to TRUE if verification is
not required. |
07af8ef14821e8733c381850fd61d3ccf93ffea2 |
|
17-Jan-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm: Outgoing dsync TCP connections leaked socket
If doveadm-server was running with service_count>1, each dsync run leaked a
socket. |
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 |
0eb3485b45b0233eb089c0337858a195cb341f0b |
|
11-Dec-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dsync: Improve process title during initialization
If something is hanging, this should make it clear what exactly it is. |
4f7951e71128c120d8a502d6406cc603fcc8eb0b |
|
01-Dec-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dsync: When logging "Mailbox changed caused a desync", log also the reason.
The reason is usually somewhere in the debug logs, but it's difficult to
find from there. |
096e109f9f332bc758ca5e22ec64337379c5f231 |
|
18-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: Replace some settings_parse_line() calls with settings_parse_keyvalue() |
2fc91862fa8b14dba1ab18c7c7a88e451df46ed0 |
|
03-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: Fix doveadm search query parsing to use timezones correctly.
When using a date string, e.g. "senton 25-Mar-2007" it should work the same
way as IMAP does and show all mails whose sent date is on 25th, ignoring
whatever the timezone is in the Date header (or in case of received/saved-date
it would be using the timestamps in server's local timezone, again just like
IMAP).
When search with an exact UNIX timestamp or a time interval (e.g.
"3 days"), it should be using UTC times for doing all comparisons. |
0f5dc4da3982053036be65190e44bf28a67b1ca2 |
|
02-Nov-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib: API change - var_expand*() now returns error string.
This allows callers to fail properly if the format string is invalid. |
ee8294dbc7bb549557f6ba1264d66b55fbef69b6 |
|
10-Oct-2016 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
doveadm-sync: Add end-date support |
a11612ec22e9286cf9753e56279fcd4ea8a74601 |
|
10-Oct-2016 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
doveadm-sync: Document start date |
f538498d8ad0c7781c7aef6c08483b3ea1bea2cd |
|
27-Sep-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dsync: Renamed "max sync size" parameter from -S to -I.
-S can't be used because it was already used for the generic socket path,
so it didn't actually work. |
11566139fe3dbe44404f5be8f2bfa0f3f97da69e |
|
11-Aug-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm sync: Fixed -S parameter parsing to actually work. |
ae949831f1f668b5501b4b125e7f7b1767fb109b |
|
11-Aug-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm sync/backup: Added -S <max size> parameter to skip too large mails. |
afd6d387ea65843b59fb6051fb567719d2a5279c |
|
08-Aug-2016 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
dsync: Add support for features
Add empty_header_workaround as first feature |
034375aa3a0b51df052261a6064af31e3b54578a |
|
29-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
dsync: Add session ID to log line prefix. |
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] |
e93184a9055c2530366dfe617e07199603c399dd |
|
06-Jun-2016 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
lib: remove autoclose parameter from [io]_stream_create_fd
Use [io]_stream_create_fd_autoclose() for autoclose. |
0175d37a5ae5a4d146ca41b684bd38d9b03683cb |
|
30-May-2016 |
Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi> |
Remove t_malloc in favour of t_malloc_no0
Using either t_malloc_no0 or t_malloc0 makes it clear whether the
allocated memory is zeroed or not. |
61d3fd14828b68d789f3df73d1dbed56e37b7931 |
|
30-May-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-storage: mail_storage_service_next() now returns error string. |
53c42948d25b1593c1d16a71799c0ffe8d80aa79 |
|
06-Apr-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm sync: -R parameter shouldn't switch to "doveadm backup -R" behavior.
Just ignore the -R parameter for doveadm sync, unless -1 parameter is also
used. Alternatively we could also fail the command, but maybe that's
unnecessary extra work. |
eba17ecf3a70c10010cd893f3c1a0c1ddd9c5bc0 |
|
06-Apr-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm: Reverted 7a3b52b8f - doveadm sync -1 -R is useful. |
7a3b52b8f9c6261ea912d9c96b20d815f782be5b |
|
16-Mar-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
doveadm sync: Don't allow -R parameter.
-R implicitly enabled doveadm backup mode, which wasn't supposed to happen. |
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/' |
975c2cdc1b09131553c3849b96d30b2e89dd0e24 |
|
07-Dec-2015 |
Timo Sirainen <tss@iki.fi> |
doveadm: Fixed reseting getopt() with glibc when processing multiple commands in a single process.
This means commands run with doveadm batch or multiple commands in a single
doveadm-server connection.
glibc's getopt() man page says that optind=1 should reset it for scanning a
new argument vector, but this doesn't actually seem to work. Setting
optind=0 does work though, so use it everywhere. |
814bf67459ad405a157af0b8940602024d7fadfe |
|
23-Sep-2015 |
Teemu Huovila <teemu.huovila@dovecot.fi> |
Remove now-unnecessary direct stdlib.h #includes. |
36f8309eee951bb860a8682d844951f00fcb6942 |
|
27-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Fixed running with tcp/tcps destination. |
1a1d00fd04bfcf8436b00b58d527e46b23523c9d |
|
27-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Added -D parameter to disable mailbox renaming.
The renaming logic is annoyingly complex and there are some bugs left in it.
With this parameter renames are never even attempted, but instead a rename
would be done (slowly) with mailbox delete + create + fill.
Although with imapc protocol mailbox renames are rarely detected anyway. |
8c2c9a8647e5b18e97174967bcdeb11dc9237c90 |
|
27-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Fixed again waiting for remote process wait to die.
We can't rely on stderr getting closed. It doesn't happen if the remote
process crashes. Now waiting for SIGCHLD in ioloop should solve this and
still log all the error messages at exit. |
c892c8b591fa4e5d79e63ef9ffd9f4ca7c4aefbc |
|
26-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Make sure we print all the stderr output from remote processes at deinit.
Earlier the final messages may have been lost, especially if debug logging
was enabled. |
1ff34185c13dffaab10e7691844ad7aec7c716d2 |
|
26-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Added -T parameter to specify the I/O stall timeout. |
f43b035d7f97bf89115d422755c14356b06ea737 |
|
24-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
doveadm backup: Fixed assert-crash due to duplicate 'R' in getopt args. |
7fbad92f3bb7a8e3d144aac81449608661211ab4 |
|
07-Aug-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Renamed -F parameter to -O to avoid a conflict
doveadm mail commands already had a generic -F parameter. |
85dd5fe0b93fe37581ba9e3689ef480fad13c464 |
|
16-Jun-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: If we stop because of a signal, log a warning about it. |
344bb4abc3acb63d04131cb63f1503a6ca01fb40 |
|
08-May-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Stop running if SIGINT/SIGTERM is received. |
eef454740ca28ea82cbabbb8407a6b11a997f89b |
|
02-Apr-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Improved error message when remote dsync-server couldn't be started. |
ce0e25f26d6e67480ee39b5ca0ad634fa60c4605 |
|
18-Mar-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Use storage's mail_error to choose the doveadm exit code.
Instead of always assuming that all errors are EX_TEMPFAIL. |
5dc8572f1d05e65d562759dd86028d286da0a088 |
|
26-Feb-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: If we get disconnected from remoset server, exit with EX_TEMPFAIL
Instead of 1000, which gets truncated to 232. |
32c779d5d0b3dabc697408e6b5d9d2e652180b33 |
|
15-Feb-2015 |
Timo Sirainen <tss@iki.fi> |
doveadm: Added support for mail commands to read an input stream (from stdin)
This is done by calling doveadm_mail_get_input() from the command's init()
function. Currently it reads the entire input into a seekable istream with
hardcoded 5 minute timeout. The input stream sending works also through
doveadm proxying.
This could probably be used by dsync at some point to support proxying over
doveadm proxies, but that would require some more work. Especially a flag
for commands to specify that they allow non-blocking input streams. |
2e652d2651b2800f99a17dcb3014a009fe4660d3 |
|
20-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Added -F parameter to sync only mails with[out] specific flag. |
70df8f39fb3db7c49b18c855178f8172176a037a |
|
20-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: If same GUID already exists in storage, try to copy it instead of recreating the mail.
This way most mailbox backends can reduce disk space by only doing a
reference count update.
This feature isn't enabled by default. A virtual "All Mails" mailbox needs
to be configured using the virtual plugin. Then you need to give this
mailbox as -a parameter, e.g.:
doveadm sync -a "Virtual/All Mails" ...
Currently this is implemented by reading through all the GUIDs in the
virtual mailbox. This of course isn't very efficient for things like
incremental replication. An upcoming conversation plugin will keep track of
all the mails' GUIDs, so in future replication should be able to have this
functionality efficiently as well. |
3561c7bb472a78af74d755219cc0fc71c85ff5c2 |
|
19-Jan-2015 |
Timo Sirainen <tss@iki.fi> |
dsync: Added -t <timestamp> parameter to save only mails newer than <timestamp>
If one side has old mails that don't exist on the other side, they are
ignored (not synced and not deleted). |
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> |
cb091e2f74c4e13840cc4dcdabea31142b6352e8 |
|
28-Oct-2014 |
Timo Sirainen <tss@iki.fi> |
dsync: Fixed notifying replicator (-U parameter) if it didn't answer instantly. |
75fe5f1b406c2b61a0eb52e9745b6d0f25facdc5 |
|
05-Oct-2014 |
Timo Sirainen <tss@iki.fi> |
doveadm sync/backup: Updated usage string |
54f559f2e69ea1498e3ccfa7b65d16d9a622c391 |
|
15-Sep-2014 |
Timo Sirainen <tss@iki.fi> |
dsync: Moved doveadm-specific code to doveadm directory. |