commit 5345f22c94b1bf02904bbb36b4c1807050ad91e6
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Fri Dec 11 18:34:47 2015 +0200

    Released v2.2.21.

commit 6b7309aae91673579ef01c32b898953240f46ad5
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Fri Dec 11 17:39:05 2015 +0200

    dovecot-config: Fixed setting LIBDOVECOT_LIBFTS[_DEPS]

commit c4eda2aa3bda09cf14599cdae883f6eeac520ea4
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Fri Dec 11 16:33:43 2015 +0200

    director: Don't mark the host desynced if director is alone in ring.

commit c0ac695d27efc381dbafd7d93744acfa3f226988
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Thu Dec 10 14:40:01 2015 +0200

    director: Don't trigger a ring resync if only last_updown_change has changed.

commit f43b59ad4e8e6a2c9a702ca80a8eea02f8779116
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Thu Dec 10 11:14:26 2015 +0200

    Makefile: Make ChangeLog depend on .git/index instead of .git/ORIG_HEAD
    ORIG_HEAD doesn't necessarily exist, so maybe index is good for this.

commit 1ce79f02a5076a8ecaeb2f99f53a608ac196ad33
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Wed Dec 9 19:40:18 2015 +0200

    Switched .hgignore to .gitignore

commit 97bede2bb2de175e4f938564b6240e64b94f6034
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Wed Dec 9 19:40:10 2015 +0200

    Removed .hgsigs and .hgtags

commit d0044d145abfe45b265f8a532d1c56fe72c163fe
Author: Timo Sirainen <timo.sirainen@dovecot.fi>
Date:   Wed Dec 9 18:38:00 2015 +0200

    Makefile, update-version.sh: Switched from hg to git.

commit 827b07103c69885bce057a2ad55afaa82900573f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 9 17:36:49 2015 +0200

    acl: Empty lines and comments in dovecot-acl files weren't handled correctly.

commit d9e60ea0a11ca739e1fa8ef526aababe13371570
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 9 15:31:37 2015 +0200

    virtual: Fixed assert-crash when opening virtual mailbox triggered backend mailbox autocreation.
    Fixes assert:
    
    Panic: file virtual-storage.c: line 335 (virtual_mailbox_opened_hook):
    assertion failed: (!bbox->open_tracked)

commit 02b51cddfb244fbe3972b12fb3e05183e38879d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 9 13:51:35 2015 +0200

    lib-storage: Fixed mail_search_args_simplify() with empty args.
    This fixes assert-crash in doveadm mailbox list.

commit cfce7cc47258f4b9b3095280a059d5eb7e440a1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 9 13:02:19 2015 +0200

    doveadm director update: Tag can't be changed - don't allow -t parameter

commit 983e2bc911abe97cd9fded72beb0c6b91d2bff28
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 15:47:28 2015 +0200

    fts: When indexing header names with lib-fts, add them using "data" language.

commit 6d4758b1aa2b9d184cfd9b76bb2d661c26ae0d9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 13:28:01 2015 +0200

    fts: Fixed searching for HEADER "" with lib-fts

commit dfeae309e396ff899da87e3bde6bea35cb0cdbf8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 13:23:19 2015 +0200

    lib-storage: mail_search_args_simplify() handles now ALL better.

commit b6cf97df5231cc0def535c34af957803f8077aad
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 13:13:24 2015 +0200

    lib-storage: mail_search_args_simplify() code cleanup - allow merging first arg

commit f14696cabeb468191851e1c0b0022b07551e598b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 13:13:10 2015 +0200

    lib-storage: Fix to a776ee107aa2 - merged-flag wasn't reset between all args.

commit 4b9d7fc69899fdc4930b337c40f9cbd81c243881
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 12:55:40 2015 +0200

    lib-storage: Code cleanup - moved BODY/TEXT "" optimization to mail_search_args_simplify()

commit 191a22ee13135fd752fcf03a43ef2f1b070937f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 8 10:17:10 2015 +0200

    lmtp: Memory leak fixes on handling some RCPT TO failures.

commit fae14d3ca9a27e88da3d689c4ba12403c1c2416e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 7 21:09:47 2015 +0200

    Added signature for changeset f833b8160e39

commit 08672b160459cb4ecdc194fce3d30ba5ed458725
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 7 21:09:38 2015 +0200

    Added tag 2.2.20 for changeset f833b8160e39

commit 5124ce635d323efe99be739458fb2226410bb612
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 7 21:09:35 2015 +0200

    Released v2.2.20.

commit 78c27af9d04b830afe3df6495d7a1efee556ecb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 7 16:06:15 2015 +0200

    lib-ssl-iostream, login-*: Hide unnecessary "EVP_PKEY_get1_EC_KEY:expecting a ec key" errors.

commit 975c2cdc1b09131553c3849b96d30b2e89dd0e24
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 7 11:29:29 2015 +0200

    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.

commit bc314720009449ca9da54bd69365edad2fcf4e60
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 7 11:21:59 2015 +0200

    doveadm-server: Reset getopt() before calling non-mail commands.
    This fixes parsing their parameters when using multiple such commands within
    a single doveadm connection.

commit dea8bfa31729dbdde1b12718f1ef98fac4e99db9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 20:48:55 2015 +0200

    lib-storage: mail_search_args_simplify() handles now "(a OR b) AND (a OR c)" -> "a OR (b AND c)"

commit 071543cc13df9600d2e97aa35f28907be5a79477
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 20:46:52 2015 +0200

    lib-storage: mail_search_args_simplify() refactoring
    Removed parent_arg from mail_search_args_simplify_extract_common_and() in
    preperation for the next changeset.

commit 8d3af185ae454653fad60e41c5f36edb1d45c868
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 19:27:45 2015 +0200

    lib-storage: mail_search_args_simplify() handles now "a AND (a OR b)" -> "a"

commit c89ceadf661bde22e1cd9dc2eac09c19202e65ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 19:26:44 2015 +0200

    lib-storage: Make sure mail_sesarch_args_simplify_sub() is called enough times.

commit 387f9e3b4120273ad0213206a0e9cc2dc0e62cca
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 19:25:20 2015 +0200

    lib-storage: Minor test-mail-search-args-simplify unit test improvements

commit 632018810af689442569cbb0139c55868923ccfe
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 18:14:08 2015 +0200

    lib-storage: mail_search_args_simplify() handles now "(a AND b) OR (a AND c)" -> "a AND (b OR c)"

commit 27e859cee42654bff801ba96677cfc4e4e0108c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 18:12:24 2015 +0200

    lib-storage: mail_search_args_simplify() handles now "a OR (a AND b)" -> "a"

commit 78f8407de32c9a51f2db00f4edb466f4279fa456
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 18:09:17 2015 +0200

    lib-storage: Made mail_search_arg_[one_]equals() public.

commit 914e08a6f3131dd4b304d1e3b8e399bfc3b96e21
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 18:08:20 2015 +0200

    lib-storage: mail_search_args_equal() ignored some differences.
     - fuzzy flag
     - MAIL_SEARCH_ARG_FLAG_USE_TZ
     - INTHREAD thread type

commit 86da76e8fed67bd3f6ad30550cc9a2ee5a23f1e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 18:06:45 2015 +0200

    lib-storage: mail_search_arg*_dup() didn't preserve fuzzy-flag.

commit 5d3422197af9bee5b2b33855c51e8b9e74915a6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 16:46:30 2015 +0200

    lib-storage: SEARCH BODY "" wasn't properly being translated to SEARCH_ALL.
    Instead if the next parameter was "" this happened (which could have been an
    accidental space in doveadm search-query).

commit 8abe00d5cd79eea426b621fe2ef0120ef11f0eda
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 16:09:55 2015 +0200

    lib-storage: dovecot.index.pvt* ignored several settings.
    mmap_disable=yes, dotlock_use_excl=yes and nfs_flush_index=yes weren't used.

commit bcecb676b4f8ee1c8e16c47a711fee86859d84bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 15:39:53 2015 +0200

    quota-fs: File count limits with NetBSD shouldn't be multiplied by DEV_BSIZE

commit 8a0ef83121a9ae375448efb2e1f08e136bf04e22
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 15:10:10 2015 +0200

    lib-charset: Added UTF-7 state checking unit test.
    This was an idea of a way to test for a bug in FreeBSD iconv(), but nobody
    reported if it did anything. So lets add it here and see.

commit 170834eda87ac8e6b8b6577738ef373fc68f117d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 14:57:22 2015 +0200

    lmtp: quota_full_tempfail=yes didn't work with lmtp_rcpt_check_quota=yes

commit 98449946caeaf8a3b413a0d93128315b158cbffb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 6 14:27:46 2015 +0200

    sdbox: Fixed assert-crash when message with external attachments was copied between storages.

commit 23b586b2cf5760527529f9963c04875c8566a24d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 14:17:45 2015 +0200

    fts: Fixed FTS search query generation after earlier per-language tokenizer changes.

commit 231629a38dbfbf5dc56180425de3e883310ad853
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 13:46:00 2015 +0200

    lib-http: Give a better error message if request times out.
    Instead of just giving the configured timeout, log how long the timeout
    actually took for the oldest request in wait list. Also if the request was
    retried, log how many times the request was sent and how long the request
    took in total.

commit 7c38d250253a668152475879a179438c07dc690d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 13:27:28 2015 +0200

    doveadm fts lookup/expand: Don't assert-crash if fts isn't configured.

commit a8319b1f667a808f335447e9fa10ff66b99705c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 12:29:12 2015 +0200

    lib: Removed t_str_trim() for now due to collision in Pigeonhole v0.4.9

commit 89fd04f723ecf452ced3816f80ec4d719e415175
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 12:15:49 2015 +0200

    imap: Fixed assert-crash if client disconnected at a specific command state.
    If there was a command with state=CLIENT_COMMAND_STATE_WAIT_SYNC and output
    stream was already detected to be closed, we crashed with:
    
    Panic: file imap-client.c: line 841 (client_check_command_hangs): assertion
    failed: (!have_wait_unfinished || unfinished_count > 0)

commit 6e1a910370a55db38b97e12026cd69b2dab38bef
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 11:38:00 2015 +0200

    lib-index: mail_transaction_log_file_map() didn't properly check start_offset
    If it was too high, it still returned successful mapping. This could have
    caused an assert-crash later on when the start_offset was actually attempted
    to be used.

commit c892cc1606ba39f253e14cef687472a21b18c791
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 10:52:52 2015 +0200

    lib-ssl-iostream: Fixed compiler warning when OpenSSL didn't support ECDH.

commit c5b642067ab1fb48b3f07a0a3fd08abe6aacd611
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 4 09:52:26 2015 +0200

    fts: Error handling fix for previous per-language tokenizer change.

commit 63964d0943d75c9e0e81287b53e9e0bc362f1a59
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 15:31:48 2015 +0200

    Added signature for changeset c35e62a9e710

commit b96c3a910b2a2c8f74eb01d5cf9a448542d3236b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 15:31:41 2015 +0200

    Added tag 2.2.20.rc1 for changeset c35e62a9e710

commit 732f68ad37300496f9f3cb186ba250b63dfbc8d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 15:31:39 2015 +0200

    Released v2.2.20.rc1.

commit dbf26a3ea43cd79fe88f01ec99c7d9440679b996
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 14:24:06 2015 +0200

    fts: Added support for per-language tokenizer settings.
    fts_tokenizer_<lang> now overrides fts_tokenizers setting.
    fts_tokenizer_<name>_<lang> now overrides fts_tokenizer_<name> setting.

commit 0ebd8300f18e159ab59dfbb3f42ab282dbf2eace
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 12:22:24 2015 +0200

    lib-ssl-iostream: Moved openssl_iostream_*error() to -common.c
    login-common code only links with this file, so that's required for the
    previous changes to actually work.

commit cc6dfdfaf4912ba2a7de93003bd93f8288d6a9b2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 12:19:12 2015 +0200

    login, lib-ssl-iostream: Clear errors caused by manual EC key selection when there was no EC key.
    EVP_PKEY_get1_EC_KEY() would return an error, which should be ignored
    instead of being logged later on.

commit 2e492d0d1b25a1da998231b1fe3bfbada0df7d65
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 12:13:11 2015 +0200

    lib-ssl-iostream: Check for SSL_CTX_set_ecdh_auto() failure.
    This shouldn't happen though.

commit 8b5d186ec2f8b56ded72a7f45a70b7542caad9d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 12:02:56 2015 +0200

    login, lib-ssl-iostream: Deduplicate code with shared openssl_iostream_use_certificate_error()

commit 771df0fdca4e8c4a2a43f1e61009624c2a729fbe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 11:58:11 2015 +0200

    login-common: Use openssl_iostream_*error() to avoid code duplication.

commit 1deb13e4a4e8beafa2d0d5b99edecaf408a000b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 11:55:33 2015 +0200

    lib-ssl-iostream: Fixes to error handling.
    Copy behavior from login-common/ssl-proxy-openssl.c:
     - Handle stacked errors.
     - Improve errors with ERR_TXT_STRING flag.

commit f82dcfb64fc65fe20e04b152ed425f32b6834078
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 3 11:41:58 2015 +0200

    lib-ssl-iostream: Don't ignore errors on SSL certificate loading.
    Patch by Sebastiaan Hoogeveen.

commit 5b79409cf50bf77dcb23083e69e04afc310c7f64
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 1 17:31:08 2015 +0200

    mail-log: If uid field is used, make sure newly saved mails actually get an UID.
    With Maildir the UID is otherwise assigned on mail deliveries only if
    dovecot-uidlist happens to get locked.

commit 1b7cb001c0ddbb632d42cfa124424901d9227ba5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 1 16:45:37 2015 +0200

    lib-mail: test-rfc822-parser unit test fix
    We didn't check that all the output was necessarily verified. Also this
    makes static analyzer happier.

commit 0f9c90871e9e291dbcca0240aeec9da8ffc1d077
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 21:39:56 2015 +0200

    director: Minor code cleanup - removed unnecessary code.

commit d9218b8c5d108ecac4f46b9d40c2c153dc070db2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 21:39:34 2015 +0200

    director: Include tag also in the hosts_hash.

commit 764178ebbd355dc0d1b383e495ce8532ae6606cd
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 21:39:07 2015 +0200

    director: Fixed recent tag reimplementation to actually work.
    We still just created one large vhosts pool for all tags containing all the
    hosts.

commit 75aae86dfbad237872e214d595530ffa62a49fda
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 21:36:51 2015 +0200

    director: Don't treat empty hostname the same as having it.
    This could have caused "host not given" errors if an empty "host=" was sent
    to login process, even though hostip was also sent.
    
    Fixed this in two places, although either one should have been enough.

commit a99dcacb7cb6e0288f8642483f395f8e4a7aa79c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 21:32:26 2015 +0200

    director: Fixed "doveadm director status user@domain" not to hang due to missing LF.

commit e99bcf69a330388423c85f60952f7127c52b7723
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 13:15:44 2015 +0200

    lib-imap: Added unit tests for imap_append_[an]string()

commit efb00f1b47d7219f77d89a963c9f3584583b207e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 13:14:29 2015 +0200

    lib-mail: rfc822_parse_content_param() was unescaping already unescaped parameters
    This caused all Content-* parameter parsing to be unescaped once too many
    times, resulting in somewhat broken BODY and BODYSTRUCTURE replies if any
    <\> characters were used. Also MIME boundaries were parsed in case <\> was
    used in them, but this probably didn't practically happen.

commit 7dd67cf142c243c735c00d640b7c85015b7da50a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 30 12:22:22 2015 +0200

    doveadm fetch: Added date.sent/received/saved.unixtime

commit f43734e772a94c8d2b684b59c212fecf66122d15
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 28 23:50:14 2015 +0200

    lib: Created t_str_trim() functions to trim characters from beginning and end of string.

commit 9de023162f23831de3033425f7d6fa4324975f95
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 28 13:36:14 2015 +0200

    Makefile: Added missing mail-autoexpunge.h

commit c2cda8cd0043443566efc5da30f79865508a1947
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 15:50:44 2015 +0200

    lib: Added extra assert to i_stream_read()

commit c051fa1a87d352295dbd522a7a90729ba8d6eacf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 15:49:58 2015 +0200

    fts-solr: Fixed sending empty parameters.
    Solr probably doesn't do anything useful with them, but we shouldn't get 400
    Bad Request errors.

commit 422af31adb6c3c61ead51f8bf5339ca6e383a3f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 15:26:31 2015 +0200

    Compiler warning fix for 32bit systems

commit ebcb8cc4fe8862e364f03dcbc05e3db8aac98230
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 15:24:41 2015 +0200

    fts-solr: Fixed escaping query parameters.
    Solr documentation says that "quoted string" would already work without
    escaping, but that doesn't seem to be true (we were also missing the \"
    escaping there). So we'll now escape all the special characters without
    quotes around it, which seems to work. Also added '/' to list of special
    characters, which is used by Solr 4.0.

commit ac99facd4975eb62d36636f346bec9f9cad16445
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 14:57:03 2015 +0200

    zlib: Fixed copying causing cache corruption when zlib_save wasn't set.
    dovecot.index.cache entries were broken/missing if:
    - The zlib plugin is enabled;
    - The zlib_save/zlib_save_level options are NOT enabled;
    - The source message being copied is compressed;
    - The mail_log plugin is logging "copy" events;
    - The mail_log_fields setting includes at least one message header;
    - The destination mailbox folder has an index file that is recording the
    logged headers;
    - The source mailbox folder does NOT have an index file recording the
    logged headers.
    
    Found by Robert L Mathews.

commit a071ae737f338f94d2e72c54930b51a1dc336815
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 14:42:43 2015 +0200

    lib: Fixed compiling unit test in systems where NULL isn't of type void*
    For example Solaris.

commit ae23befb6e5295971400e3d96c1cfe42e2fb19d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 14:39:32 2015 +0200

    auth: Fixed test-auth-request-var-expand unit test on big endian CPUs

commit a9934b12e2f00b8606e2c99827fa6bdc7ab12aba
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 14:24:23 2015 +0200

    Compiler warning fix for 32bit systems

commit 4e3bcf7fdaeef92dd07a2acb1ded58422a907e87
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 14:11:57 2015 +0200

    lib-storage: Don't add first_saved to mailbox list index unless autoexpunge is set.

commit 1001bda65e9f592d852a26ddd6a993f7973050bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 14:01:14 2015 +0200

    imap: Free mail_user only after client is disconnected.

commit 1ae5d61ec366fdb2f3c5b150ca378d6141b0f4bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 13:59:22 2015 +0200

    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
      }
    }

commit fe779565bda49a0ed0476724819c6e3c1340c94b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 27 13:06:01 2015 +0200

    imap: SETMETADATA didn't set ostream output handler back
    This caused hangs afterwards when receiving long replies (e.g. FETCH).

commit 8705e45564a2e87d32bd825e0e997a8177846f77
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 26 15:42:35 2015 +0200

    quota-clone: Avoid assert-crash when quota recalculation is triggered.
    Quota recalculation opened all mailboxes and got us back to
    quota_clone_flush(), which caused another dict transaction to be opened,
    which caused a crash with some dict backends.

commit 7c1ce38a29ecdc17480aacb5bac184f42ac05786
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Nov 25 15:09:52 2015 +0200

    lib-fts: Move ICU transliterator creation to fts-icu.h
    This allows others to use transliterators without so much code duplication.
    The transliterator still has to be destroyed by the user, with utrans_close().

commit e467b295e44fb659ec28e9b6b3f05e71335b85e3
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Nov 25 15:09:52 2015 +0200

    lib-fts: Fix compilation for systems without libicu.
    The earlier patch, 194e3622d5e6, did not consider both library dependencies.

commit 850b419efb5818358f36896b8ae0346da2f23804
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 24 13:42:58 2015 +0200

    imap: When logging command disconnection info, log the oldest command's info (not newest)

commit 117bc062ec4a3770f6e4291e4697895d66d0f18a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 24 13:41:58 2015 +0200

    imap: Added extra assert checks to make sure command states are consistent.

commit 76c6c1127ce9b7c079c8bdb8f2598b91432598d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 24 13:40:12 2015 +0200

    imap: IDLE may have called client_continue_pending_input() unnecessarily.

commit 952148e3d09fc29992f1b509b5fa4fdadb80755e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 24 12:56:35 2015 +0200

    imap: Fixed crash at FETCH deinit caused by b638e19d3bd4
    imap_fetch_free() would have been called twice, which caused problems.

commit 6116f4cd50f66ea3d1793e6d4da63373c5736115
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 24 11:50:15 2015 +0200

    imap: Fixed hanging if a pipelined IMAP command was waiting for previous command to sync.
    ..And the previous command was waiting for the next command to finish before
    it would start syncing. For example FETCH+LOGOUT pipelined.

commit ae32667c54480d329eed994b3defab89cd76c077
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 24 11:15:47 2015 +0200

    director: Fixed backend selection when multiple tags were used.
    The previous algorithm was causing an uneven load for backends.
    
    This change breaks compatibility with older director servers that were using
    tags because of the different selection algorithm. The new director code
    refuses to run within a cluster with old directors if tags are used.

commit 092f7388ecf19748f360163118c14d2d55162032
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 23 19:47:08 2015 +0200

    director: Code cleanup - renamed hosts_unsorted to vhosts_unsorted

commit e3751d40053ce9ad5001284f1bc8a0e5ba42ce10
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 23 19:44:50 2015 +0200

    director: Code cleanup - rename tag to tag_name in mail_host_*() parameters.
    In preparation for the following changes.

commit 093b42b11c1236a687d3da564b26a324e2189ae6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 23 19:41:38 2015 +0200

    director: Code cleanup - access host->tag via mail_host_get_tag()
    In preparation for the following changes.

commit 87842f621233257b7a7945d994ba931508b34877
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 23 19:38:31 2015 +0200

    director: Code cleanup - make most mail_host_*() list parameters unnecessary.

commit 570153aa925e893dae97d7e097d95eac3a982b86
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 23 19:35:03 2015 +0200

    director: With director_consistent_hashing=yes hosts_hash wasn't always calculated right.
    If different servers had added hosts in different order, the hosts_hash
    would have become different, which caused errors and resyncs.

commit d965f1c171b714f1460d87bac597ec3e015fae83
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Nov 18 16:33:26 2015 +0200

    lib-fts: Fix compilation for systems without libstemmer.

commit 5455a917515f774fcaad35558f149536b796b531
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Nov 18 16:33:26 2015 +0200

    fts: Remove default filters and tokenizers.
    There aren't any specially good defaults that work for all the languages,
    so it's better to just enforce explicit settings.

commit 0b0285689239ac08a324aff4b160ff2e920af4be
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 19 17:43:47 2015 +0200

    fs-posix: Added mode=auto parameter to copy mode from parent directory if setgid-bit is set

commit 3718da94157b9fa8d98c9f62f50133df504c7486
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 19 17:19:19 2015 +0200

    fs-posix: Code cleanup - don't store dir_mode permanently.
    Cleanup in preparation for mode=auto.

commit 83bd5fa0e765cbca38c98a9d397f1f6517a188ae
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu Nov 19 17:39:46 2015 +0200

    lib-fts: Silence clang warnings.

commit 31493ba1b6a0ecbcb11c47181ade2ee9b118a872
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 19 14:47:27 2015 +0200

    fts plugin: Install fts-storage.h

commit 3d2d3501736ff917f2de8a38f253c741c6f84e1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 19 14:46:54 2015 +0200

    lib-fs: Added fs_stats_get_read/write_usecs()
    These can be easily used to sum up all the timings for read and write
    categories.

commit 3e3cc37a780546844d1a3b17e2375534f36aa5f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 21:06:17 2015 +0200

    indexer-worker: Use provided session-id only as a prefix for a unique session ID.
    Fixes stats process's "Duplicate session ID" errors when LMTP delivers to
    multiple recipients.

commit 1959accd3886d99efccd9f98247f21e8fd54da66
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 21:03:41 2015 +0200

    lib-storage: Added mail_storage_service_input.session_id_prefix
    This should make it easier to pass through the original session_id to worker
    process sessions. Especially if these sessions are somewhat short-lived it
    can be useful to assign them a unique session ID while still being able to
    match it to the parent's session ID.

commit a5b6819fac1ecf8c1369a85c47fec7dd468aefe0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 20:50:55 2015 +0200

    stats: Improved logging on invalid CONNECT input.

commit 7059b9f2c4bb1caf27c739c487b08637a77b5259
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 19:15:36 2015 +0200

    stats: Forced sending of UPDATE-SESSION every 5 minutes wasn't working.
    This caused stats process to forget about idling (imap) sessions if they
    didn't do anything for over 15 minutes.

commit abb242daeee0311e60c173efee02f70a19a60e9f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 18:54:51 2015 +0200

    stats: When logging UPDATE-SESSION stats, log also the session ID.

commit c85e266e4d7214adb6f7c65fbbc7d312c5a35dcb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 18:10:46 2015 +0200

    lib-storage: Create ioloop context for users even if log prefix changing is disabled.
    This fixes stats plugin to work with lmtp, imap-urlauth and doveadm-server.

commit 03baa1c4c51f7b08fb285e82b528fcb00ac09ebf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 17:45:35 2015 +0200

    lib-master: master_service_is_master_stopped() now returns FALSE if running standalone.
    The only caller of this function was stats plugin to see if it should send
    stats updates. So this fixes dovecot-lda, doveadm and other standalone tools
    to send stats updates.

commit ce4d4d77309a7ca28006fc0539effe2ccc8e7908
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 14:15:32 2015 +0200

    lib-master: Fixed timeout leak at deinit when we couldn't connect to ipc-server

commit ac5a1d01fb6fe3bc842e78bcfbb09c46dd523093
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 13:12:23 2015 +0200

    pop3: When creating session lock file, prefer to write it to the index root dir.
    This is especially important for mail storage backends that don't have a mail
    root directory.

commit def59847005dd515d35fe67df57abe016095d5a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 13:08:57 2015 +0200

    pop3: Send "OK Logged in" before reading mailbox.
    This way if the reading takes a long time, the client still sees that the
    login itself was successful. This is especially useful to avoid unnecessary
    errors logged by proxies.

commit 24929126390ac65358b06c9e8c8deeae7bb9720c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 12:40:42 2015 +0200

    imap: Disconnection log message incorrectly logged "input/output" even if only "input" was set.

commit 848bc013ae3fd85ee29a39c1e7a44882e58dba73
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 18 12:39:13 2015 +0200

    imap: When disconnected during FETCH, include the last byte counts in disconnection log message.

commit fdd858ac68b637fc449c1a426ffadee33db00d72
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 17 19:02:13 2015 +0200

    lib-fs: Improved fs-metawrap's fs_stat() error message.

commit dbe1f7e1c04dbe920d73da9463aeb4aa01278c90
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 17 19:01:29 2015 +0200

    lib-fs: Fixed fs_stat() for fs-metawrap

commit 8ce3071e80b9973230048ecadfcb073fb82cc69f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 17 17:26:56 2015 +0200

    *-login: Added postlogin_socket=path passdb extra field.
    By default e.g. "imap" or "pop3" is the post-login socket, but this can
    override it. This could be used for example for per-user debugging (e.g.
    setting executable to be run via strace or valgrind).

commit 9498baa8f374be5b878c0571d07e8ad060a1fdec
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 17 17:23:31 2015 +0200

    lib-master: master_auth_request_full() now supports per-request path.

commit 2d8e25bef14245b078868a64396da025f547ad27
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 17 17:11:05 2015 +0200

    lib-master: Added extensible master_auth_request_full() call.
    Only the API was changed, no changes to functionality.

commit 3b4b517a554cdaa004c583b6f330893b94188d5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 17 16:30:16 2015 +0200

    lib-fs: Added asserts to fs_set_metadata() to make sure key and value are non-NULL
    Otherwise the bug would be noticed only much later when trying to
    dereference NULL pointer.

commit 6dd785e6857866657d6ef7a88af6d46ed0133801
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:51:45 2015 +0200

    fts: Added fts_library_init() and _deinit()
    Replaces calling three different functions on init and deinit.

commit 4b26f71b46fc718be27933dfaa26905b993d87fa
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:50:16 2015 +0200

    lib-fts: Added fts_language_register() to register more languages in plugins.

commit 3e9ed1717506dc7092e2edf28b2a0e637365d423
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:46:49 2015 +0200

    dovecot-config: Added LIBFTS.

commit 963e17327ac1e7ee3096d4e3deade5474eb32dba
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:45:44 2015 +0200

    lib-fts: Explicitly state encoding used for stemming.

commit c6b75b700351b77b151796a3f3cb85b807b7cdad
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:45:24 2015 +0200

    lib-fts: Removed TODO comment.
    The call to uni_utf8_get_char_n() already does easy cases first.
    Adding more special code paths is not necessary.

commit 9c34a19b60871463270e61a38aae8050a7633513
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:44:53 2015 +0200

    lib-fts: Minor code cleanup - Rename some internal functions.
    Maybe the names are more logical this way.

commit 3ec8b0d282d46d1f698b1f2aa27922cb8f26cb97
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:44:19 2015 +0200

    lib-fts: Add Norwegian.
    Norwegian has two main dialects, Bokmal(nb) and Nynorsk(nn). They
    are detected separately by libexttextcat, but the stemmer only
    knows Norwegian. Thus they are treated as a single language,
    Norwegian (no). This might also make more sense in everyday
    use of mixed writing style Norwegian.
    
    Caveat: The default normalizer filter does not modify U+00F8
    (Latin Small Letter O with Stroke). In some configurations it
    might be desirable to rewrite it to e.g. o. Same goes for the
    upper case version. This can be done by passing a modified "id"
    setting to the normalizer filter.

commit 48afa4224df2a6bcfe75fec11a59c224426dcdc1
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:43:58 2015 +0200

    lib-fts: Add comment to language names.
    Languages are defined by their ISO 639-1 code, which is a two letters.
    It is possible, that some languages with only a three letter code, ie.
    a ISO 639-2 code, could be added in the future.

commit c5effa0f13da8f45991c89a9d8c9d2109db66039
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:43:28 2015 +0200

    lib-fts: Add Swedish (sv) to supported languages.

commit fd15d61d05bf628fdd3359a0fec47ffae3609cab
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Nov 17 11:42:59 2015 +0200

    lib-fts: Add l' contraction to French unit test.

commit 687fd73a7aa1bcb11470d6af0955dbbc14783c72
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 16 14:47:18 2015 +0200

    pop3-migration: Fixed memory leak in unit test.

commit 0989e8ba44ec35dc9322e424b5213b96596319e7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 16 14:46:40 2015 +0200

    lib-mail: Fixed istream-header-filter when callback excluded multiple headers.
    This only affected pop3-migration plugin.

commit 87c3028e9f3bcb2dbf60a7f7ccc6ba82baaf5c03
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 16 14:16:00 2015 +0200

    dovecot.m4: Run valgrind with --trace-children=yes
    Some of the unit tests are run via shell and we want to check the unit tests
    instead of just the shell.

commit 40569d0f6eeab33e111175a86cf3fe6a489d4df0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 16 14:15:02 2015 +0200

    Added Valgrind suppressions file for ignoring any bash memory leaks.
    Some of the unit tests are run via shell.

commit 431eebad01b13e5fa4cff1c660099d12aeb20b6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 16 12:40:22 2015 +0200

    dovecot.m4: Added --leak-check=full to valgrind

commit 19ed8f08b23d6ed204e6b27e5d1c0c6fe6bb11dd
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:29:51 2015 +0200

    various - remove 8-bit characters from literal strings in test cases
    C has a portable way of expressing characters not in the basic character
    set, namely \xNN escaping. Otherwise, the interpretation of the raw utf-8
    is implentation dependent. This has the benefit of making some tests'
    expected output more obvious, such as "=c3=a4" matching "\xC3\xA4", even
    if it hinders the readability of some natural-language-based tests.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 087272dde587c41c2605fe59340d7fa7021b6892
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:29:21 2015 +0200

    lib: fix memory leak of iterator in str_table_deinit()
    The deinit function uses an iterator, but never cleared it up. Found by
    Valgrind.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fddfa139c8f7621bd13d44537698ba58d1965078
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:29:09 2015 +0200

    lib: make test-istream-failure-at not leak memory
    This permits Valgrind to run without complaint.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 2bee4c37862d33fe09544d865225d140bd533225
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:27:03 2015 +0200

    lib: fix memory leaks in failure-at streams
    The parent wasn't getting unref'ed, and would hang around for ever.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ded6d682080c7b9c3698a7d066904c445f51ae70
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:26:50 2015 +0200

    lib-master: stop tests from leaking memory
    This permits Valgrind to run without complaint.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5968fa8151eecd191b1973b44dd8bec9b75810a6
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:26:32 2015 +0200

    lib-http: free resources used in the tests
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 269627263964a42f4fb9f9f540aa7a1fe673f2fa
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Nov 16 12:26:06 2015 +0200

    lib-http: ref/unref input stream in http message parser
    To prevent assidental disappearance of the stream while it's in use.
    Also, the caller can create and forget - we'll do the cleanup later.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0de8aaf4e265a0663380a6ae28ed571a37aee015
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 16 12:24:53 2015 +0200

    imapc: Treat literal8 input the same as regular literal.
    This is mainly for migrating away from broken servers (a patched Cyrus) that
    send literal8 if a (corrupted) message contains NULs.

commit 02889f5ce6bf0b825e0dec25404e3781e11bd3f2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 12 18:27:54 2015 +0200

    imap: When client disconnects during a running command, log the command wait state.

commit 53c1549e64b1f655b4f84e307ef8b558f9cc8d74
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 12 12:28:58 2015 +0200

    imap: If IDLE or FETCH notices a disconnection, log the running command statistics.

commit 56eaa07a3ecacb44c06720621b930394d0f83608
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 12 12:17:04 2015 +0200

    imap: When client disconnects during a running command, log the IO input/output wait status.
    This is mainly useful for debugging to make sure that the hang isn't
    happening because of a bug (missing io) in Dovecot.

commit 7f52e276c1bf13b4809344492023b90e46c3ac5d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 12 12:14:20 2015 +0200

    lib: Added io_loop_find_fd_conditions()

commit bb1c6e2b0337990c8125e214534fcdf8165646e7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 12 11:29:29 2015 +0200

    quota: When recalculating quota, don't try to access nonexistent autocreate-mailboxes.
    There's no need to physically create them, since they're empty anyway.

commit 56dcb49a477ccb1c7916c03d55862bafb7a460fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 11 17:40:23 2015 +0200

    login proxy: If writing to ostream fails, log the ostream's error string.
    Although for now it's always just based on the errno anyway.

commit 9940125bee5440a185c1fe1befa804f5cce8d0ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 11 17:35:10 2015 +0200

    login proxy: Include some extra information in disconnect log lines.

commit fb3178a1924dae52151d88c4d4ded879df43dd3f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 11 13:15:30 2015 +0200

    auth: Added hardcoded 5 second timeout to LDAP connect()
    Although it doesn't look like the timeout is exactly 5 seconds always due to
    OpenSSL's internal workings, but this should be good enough.

commit 2f57edb01195bb64fe19f155880f5a9e4f72b04a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 10 10:00:11 2015 +0200

    push-notification: Removed unused code.

commit 8f90ef65db62946aabe1969755edcdefb4eb430a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 9 14:49:26 2015 +0200

    virtual: Include mailbox name in "Backend mailbox added by another session." error.

commit 54a1b3574acab5f778843f7f1e04d2d26d61a852
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 9 14:11:12 2015 +0200

    auth: Don't crash when trying to use CRYPT scheme when crypt() doesn't support DES

commit 265cb53cf8d5cb35edd4c4ff086ca6165605b708
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 9 13:16:50 2015 +0200

    lib-storage: Support %{userdb:*} variables in mail_home and mail_chroot settings.

commit 1d562be5fd1f411b66ba1a83dcc9612a51b1ee83
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 9 13:02:56 2015 +0200

    lib: Removed unnecessary includes from bits.h
    All of them are already in lib.h, and bits.h gets included from lib.h.
    This also solves a compiling problem for systems where stdint.h doesn't
    exist.

commit 4544c7cf1719ce4c4683c8ba26626534d4af7488
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 9 09:31:48 2015 +0200

    replicator: Send initial status notification to master before listing all users
    To avoid master process from killing us after 30 seconds if the user listing
    takes longer than that.

commit c30bcc83aca4e0082c0d28abea72ec309984b06f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 5 11:41:52 2015 +0200

    auth: Fixed crash when using %{passdb:} or %{userdb:} functions when escape_func was NULL
    Patch by Michael Slusarz.

commit 8dd4464c062fdea6846e8700e57daeb2f4378db6
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Nov 4 11:39:58 2015 +0200

    lib: test-istream-crlf - fix expected output strings, add more coverage
    Fix an out-by-one which was missing trailing carriage returns in _lf mode.
    
    Debug: input = [19]:``...........N.N....R''
    Debug: output= [19]:``...........N.N....R''
    Debug: data  = [18]:``...........N.N....''
    test-istream-crlf.c:78: Assert(#20) failed: size == str_len(output)
    
    Add some randomised tests to get better coverage of all possibilities.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1265ab7fdd2e88a1f4b1057593c5e0dbe3fb757a
Author: Michael M Slusarz <michael.slusarz@dovecot.fi>
Date:   Tue Oct 27 21:54:26 2015 -0600

    push-notification: Fix linking against notify plugin

commit 1c1e591e42f6c3cdfeeed26164f5c85d85d01877
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 29 15:29:24 2015 +0200

    imap: Fixed crash in NOTIFY when there were watched namespaces that didn't support NOTIFY.

commit 5b945a474088d82a552694e6af3802dc84382f2d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 29 15:06:16 2015 +0200

    dsync: Fixed handling of deleted directories.
    We may still know about the directory node even if it doesn't exist, and we
    still want to delete it.

commit d3b2c07f93399cdeceb35f99c5006d72fe9381bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 29 14:09:52 2015 +0200

    auth: Avoid a crash by not trying to save empty delayed credentials.

commit e293d46ffe09252ae50704b2a53be6e5b9bdc778
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 29 12:55:20 2015 +0200

    acl: acl_object_list_*() now duplicates rights at init to avoid them changing during listing.
    Depending on the calling code the acl_object could have been refreshed
    during the listing and caused bugs/crashes.
    
    This fixes a crash at least in mailbox deletion during attribute deletion
    where iter->idx was higher (2) than the number of rights at the time (0).

commit 3cad7d3634afa649561921c54e7769528e7813f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 28 12:28:12 2015 +0200

    auth: Typofix for error message.

commit 0401fa677246fc79ff5f17cb626c3d41adf3272b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 28 12:25:08 2015 +0200

    auth: nopassword field is specific to a single passdb, remove before next passdb is processed

commit 00a50d6dc74e15b5b83afcb8c12c2109a2ca376d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 27 23:56:48 2015 +0200

    lib-mail, fts: Put application/xhtml+xml MIME parts through html parser as well.

commit 8c6884ab66c38f87d2198b840662a5546ca5d024
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 26 17:20:49 2015 +0200

    acl: If mailbox is autocreated, assume it already exists and don't require "create" ACL

commit fca5548c51bf3887a202089549b9f87cf94cf212
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 26 16:28:51 2015 +0200

    acl: Fixed handling mailbox deletion when only "delete" right was available.
    So especially when there were no "lookup" or "read" rights.

commit 75b4cc30566e22675b9e7b19b15a7fd929d8f54c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 23 15:21:15 2015 +0300

    auth: Fixed userdb changing username via auth-worker

commit 2f564433c979a41ade84b75fa10c7b46fb9781ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 22 16:59:01 2015 +0300

    notify plugin: Don't access already freed memory.
    In the same changeset I even added a comment just above that it shouldn't be
    accessed..

commit 6b0e35b29f65a95fe8ae22ed8b5f0f36720c9f45
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 22 13:55:27 2015 +0300

    quota-dict: Added "no-unset" parameter.

commit 453278403dbd2083b0c9a7aa5edb68d3f82ad4f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 21 19:12:45 2015 +0300

    LAYOUT=index: Fixed error handling in mailbox creation race condition.
    If two processes create the same mailbox, the other one ends up being
    deleted on failure. However, if the deletion itself also failed the state
    becomes a big ambiguous. We don't want to return MAIL_ERROR_EXISTS in that
    case, because the caller may try to open the mailbox with the inconsistent
    state and fail. So we'll instead return the original mailbox_delete() error
    to the caller.

commit e03c02db6a1e7ce04db5182bc87d378535ed2428
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 21 15:50:31 2015 +0300

    login proxy: Separate admin kicks, director kicks and shutdowns in log messages.

commit ea6bcfde34e4cced9b42f1b4f5140a47752cb0ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 21 13:32:58 2015 +0300

    ssl_options: Added support for no_ticket

commit 3d8059535db10bacdb96025533d43e826f6762eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 21:23:03 2015 +0300

    doveadm fs: Log also the exact reason for "file doesn't exist"

commit 6477a2edb6bc684ca53df1d8e6f41fedb9fb07f2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 20:15:20 2015 +0300

    dict: Show number of clients in process title

commit a7d68c0a692085f4404a9845516f5f09f6773a3d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 18:43:32 2015 +0300

    lib-index: tail_offset wasn't updated as often as it should have been.
    ctx->last_tail_offset was being increased for every non-external transaction
    and at the end we checked if head was larger than it. This logic didn't
    really make any sense, since non-external transactions specifically were
    supposed to update the tail_offset.

commit 8da3322030fa2525e1e835ce66f815c71c481531
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 18:22:53 2015 +0300

    lib-imap-storage: Mark METADATA transactions as external.
    We never write the metadata values to any storage backend, so they also
    don't need to be explicitly synced.

commit 2d33429390199b9dfbbdaace1b48626cc3a7a42b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 17:07:20 2015 +0300

    mysql: Added connect/read/write_timeout settings. Default to 30s read/write_timeout.

commit e180615c1db31c8a6f6a586ae40b1cfc2d6ee725
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 16:57:34 2015 +0300

    mysql: Fixed client_flags parameter

commit 9250f1bc4abcd8619b65321a8f75434065e6cb38
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 16:56:23 2015 +0300

    mysql: Use the correct way of setting a connect timeout.
    I'm not sure if this didn't exist earlier, or if I just somehow missed it.

commit 14b1d2a2634e75b988078baee1e8ad678de28a04
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 15:29:07 2015 +0300

    dsync: Added DSYNC_BRAIN_FLAG_NO_NOTIFY to enable MAILBOX_TRANSACTION_FLAG_NO_NOTIFY
    It's arguable that this should be enabled by default, but people might like
    to keep mail_log notifications for dsync.

commit 8ccb1a013b07e7ca37b7281732b78c042f128388
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 15:27:42 2015 +0300

    lib-storage/notify: Added MAILBOX_TRANSACTION_FLAG_NO_NOTIFY
    This flag could potentially apply for other things as well, not just notify
    plugin. In general anything that could do external notifications shouldn't
    do anything for transactions with this flag.

commit 4ca910c09e72af7d45a02222cd0fd4fde9d8cde3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 13:12:24 2015 +0300

    dict-sql: Fixed async iteration with MySQL and SQLite

commit 5f7fcc523deee2259146846d5fc9fa61f0299d85
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 00:25:14 2015 +0300

    lib-charset: Added UTF-7 iconv() unit test
    Possibly crashes on FreeBSD? Not verified yet. But a good test in any case.

commit e9257b0d30aa68dc968b6347d9f3f5ac4c8b5c00
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 20 00:23:56 2015 +0300

    lib-charset: Run iconv unit tests by giving iconv() new data 1 byte at a time.

commit d464e2ef8699b5c6991f57c979114beeb6e5cc33
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 19 14:29:10 2015 +0300

    imapc: Set storage's error to "internal error" if we detect mailbox state corruption.
    This fixes "unknown internal error" in at least syncing code when an
    expunged message reappears.

commit a03a29b0b12b9a071995a7e94e74c46c993d5013
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 19 14:05:26 2015 +0300

    lib: net_gethostbyname() now supports [ipv6] style bracketed addresses.

commit a05375f235446e0d4132157e9e1d4a11e3664e4c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 19 14:04:46 2015 +0300

    director: Fix to previous change - mail_host_dup() wasn't strdup()ing hostname.
    This could have caused a crash at deinit.

commit 9de5eb9e1ac3a07c4197a60fdefd412d6cc78eb2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 19 13:49:54 2015 +0300

    director: Remember backends' hostnames and send them in login reply.
    This allows login processes to verify the remote server's hostname in SSL
    certificate.

commit c5279d575d40f7c4c6cd4b44dbf8fba55e156d90
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 19 13:40:52 2015 +0300

    director: Small code cleanup - make it easier to add parameters to HOST

commit 616c36034fa23aac238aa9aebbd4db49d8d6977d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 19 13:37:25 2015 +0300

    man: Changed "pattern" to "string" in doveamd-search-query(7)

commit 47dba7db73ded86c3c1f43b07b6752895b523bd6
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Oct 15 14:44:03 2015 +0300

    lib-mail: fix html2text parser
    Silly typo. Fixes bug reported on dovecot list by Akash on Oct 14.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit dad72548f2ad3afc4b051afdd6dc548cc4d8540b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 14 17:34:23 2015 +0300

    dsync: If rename algorithm seems go to an infinite loop, log an error and stop.
    Ideally we would of course fix the algorithm (especially to not require this
    kind of looping).

commit 63a5701073286e20da09b14b118747fbac699506
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 14 17:28:11 2015 +0300

    imap/pop3-login: If LOGIN/USER is used with plaintext auth disabled, remember the username for logging.
    It's still useful to see the username that was sent in the logout message.
    This won't work for AUTHENTICATE PLAIN, but hopefully the clients that use
    it understand the LOGINDISABLED capability better.

commit 1128c114416bdc4df0b41d3e15429a1522e5cfe4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 14 14:06:35 2015 +0300

    cassandra: Added read/write/delete_fallback_consistency settings.
    The fallback is attempted if the primary consistency can't be satisfied.
    One useful use case for this is to have:
    
    write_consistency=each-quorum
    write_fallback_consistency=local-quorum
    
    Which means that during regular operation all writes go to all data centers
    before they are finished, but if one of the data centers go down we'll
    switch to just waiting for local data center writes to finish.

commit ce79dd49609e84c01f79e2efa73365e86aca1879
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 14 13:32:02 2015 +0300

    dict-sql: dict_lookup_async() didn't call callback on query build failures.

commit 4cce36128569c68a999e98c9034bfb1bc177f1ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 21:57:29 2015 +0300

    lib-storage: Support latest cache fields in struct mailbox_metadata.precache_fields

commit c24ef1e78c42bf90d56041a4dbd0689179ff4961
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 21:40:33 2015 +0300

    imap: APPEND crashed if invalid keyword was given as parameter.

commit 9e56d7403c4c52f471f40f13fe5263473a6c5e69
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 21:21:48 2015 +0300

    auth ldap: If tls_* settings are used, pass them to LDAP library even if tls=no
    Most importantly this allows using the settings for ldaps URLs. And they
    hopefully won't hurt anything if neither STARTTLS nor ldaps are used.

commit 72fc989c43a0dc94ec2f114b5e221beeab45519b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 20:41:36 2015 +0300

    lib: uri_parser_init() wasn't using pool parameter for anything.
    Now everything is allocated from it instead of from data stack.

commit b0c9213ef64937fb5eb2deac6a8dfed024e1393a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 20:40:38 2015 +0300

    dict-sql: Added support for value_type field, which deprecates value_hexblob.
    value_type=string|hexblob|uint are supported now.

commit b096ecf3188cdb9162460ed7ae885c03f3161462
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 20:39:50 2015 +0300

    cassandra: Added support for returning "int" type values.
    It looks like we need to explicitly convert all types to strings.

commit fb1927dad988a34040afe4a1e51a5dbe3c085c8f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 13 13:44:48 2015 +0300

    auth: passwd-file now stat()s the file max once per second.
    It's quite unnecessary to do it more often.

commit 1126bfe4ebe4e2c00ce56292df7c8eb2bfbd9c5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 12 17:12:17 2015 +0300

    fs-dict: Implemented hex-encoding for values.

commit 9054b5f92a7e5666c6beaa04916699a1408bf021
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 12 15:57:42 2015 +0300

    director: Log a warning if directors' clocks are too much out of sync.

commit abe29107f5dce932d28a00912d2d75a01021bef1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 12 15:47:46 2015 +0300

    director: Detect if directors' hosts have become desynced by sending hosts_hash in SYNC parameter.
    Also fix up such a situation by resending all HOSTs.

commit 1574df6b0bc965212f1152e480e7a762cdaa8226
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 12 15:41:55 2015 +0300

    director: Use mail_hosts_hash() to improve debug log messages.

commit 131cb5910775213d5bc0dcf75e4fddda6f8c5a11
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 12 15:41:25 2015 +0300

    director: Added mail_hosts_hash(), which identifies the current mail_hosts configuration.

commit 417885782ef6501d0d9c2fb52208df4fcb1e2b4f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 12 15:39:36 2015 +0300

    director: Added another debug log message.

commit dd81d88575909f2bd99eafffb13c48c3b8cf9529
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 11 18:45:58 2015 +0300

    director: Small code cleanup - make it easier to add parameters to SYNC

commit 28789c7ce1aa66ab21798bfb73ec64308b9a4de8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 10 18:32:56 2015 +0300

    director: Don't allow doveadm to update backend's state if the state is already being changed.

commit 8752573c44bcd139ae3ecc6d8e917c2c60bcb89f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 10 18:32:06 2015 +0300

    director: Don't become desynced if two directors change the same backend in incompatible ways.
    This would have caused "User hash .. is being redirected to two hosts"
    errors, which wouldn't easily go away as the directors have a different view
    of what hosts currently exist.

commit fc61333d29f122122e27c11f20d7efd5fe8a97cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 6 18:17:45 2015 +0300

    lib-http: Minor improvement to "disconnected during payload read" error message.
    The same error is also used for http-server for parsing client input, so the
    message shouldn't say anything about reading the input from server.

commit 7387c86ae0297703ac398addbf0ff3904361fd3d
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Oct 6 18:14:05 2015 +0300

    lib-http: client: Fixed handling of response timout if there is no payload going to the server.

commit 2988b4cbf3540a0c02a9ddf185cafec5938c0cac
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 4 21:52:29 2015 +0300

    lib-index: Removed some unnecessary fields.

commit 1937094f528e693c1fcc0d638f43264154349f81
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 4 21:51:55 2015 +0300

    lib-index: Fixed checking when we want to update dovecot.index
    This has been broken since 76f576fc28dc. After that dovecot.index was
    usually updated only when dovecot.index.log was being rotated.

commit 44d77d20cbe158306fcc2d4b49aa883b8f8dbc83
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 4 21:49:08 2015 +0300

    lib-index: When writing new index, rotate the log file first before writing it.
    This way the index contains the new log's seq+offset instead of having to
    recreate the index almost immediately afterwards.

commit 568920fe55cc21d9c2a8f317fb2ea55b262b6330
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 19:02:47 2015 +0300

    Added signature for changeset d7e14d388a7e

commit 487191a51e0922f16cb29ff5dbb17234a1147842
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 19:02:43 2015 +0300

    Added tag 2.2.19 for changeset d7e14d388a7e

commit bff2170a9231be2389b245297b14a2cba237f926
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 19:02:42 2015 +0300

    Released v2.2.19.

commit d54067d8e67de5aa2bcfc35619514541342d0690
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 18:30:22 2015 +0300

    pop3: Fixed buffer overflow with handling pop3_deleted_flag setting.
    This has been broken since v2.2.10, although the setting wasn't working
    completely correctly before that version either. Afterwards it should have
    become obvious quickly enough that the setting is broken, because it started
    crashing POP3 sessions in normal use quite soon. So I doubt there are any
    installations that are accidentally exploitable.

commit 630c1df5b6aaec452b0ef040df56cffd978fe9c3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 12:23:22 2015 +0300

    push-notification: Use setting_get_time() parsing for cache_lifetime OX driver setting.

commit 923e217843af1d821b008826e176039fc710cadc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 12:16:11 2015 +0300

    push-notification: Compiler warning fix.

commit fe1fb4c867cd78b1d20fa59f8e656fef257ec00b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 12:10:41 2015 +0300

    push-notification: Allow drivers to set only "key" without "=value" to parameters.

commit 0f58da3fd10d43bf701eba068cb3b84a216f89f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 12:09:30 2015 +0300

    push-notification: Added timeout_msecs and max_retries parameters to OX driver.
    For configuring HTTP lookups.

commit 101becc1042f7b3633324aa91d9b39c4537bfe0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 11:46:30 2015 +0300

    push-notification: Don't allocate cached metadata from memory pool in OX driver.
    It slowly keeps increasing memory usage over time.

commit f61bbf70eb2ead907c0e3cc190bb556b93306b48
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 11:17:53 2015 +0300

    push-notification: OX driver error handling fix - garbage metadata was returned on failure.

commit 8b4073f4a7fd6423cb73b1cddf72acbec04598c6
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Thu Oct 1 21:02:55 2015 -0600

    push-notification: Add cache lifetime config parameter to OX driver

commit 41dc355b0d4e20037a36ec05206e7880f49f4ca9
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Thu Oct 1 20:49:20 2015 -0600

    push-notification: OCD fix for lining up function parameters

commit 33cbadf0114f3a5cb83bdb5a8bc07035f807e466
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 2 11:13:14 2015 +0300

    push-notification: Removed optimization to init drivers only once.
    Different users may have different drivers. And the previous
    metadata-caching change especially isn't working without this change.

commit da2423165d31474f5384833fdaa6dc4c0cee28f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 1 13:48:24 2015 +0300

    push-notification: Free all events at plugin deinit.

commit cad784f10db7b8f53661246fbbab1d4789e1a25a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 1 13:45:17 2015 +0300

    push-notification: Allow OX driver to use "user" from METADATA only if user_from_metadata is set.
    Otherwise users could send push-notifications to each others' if
    imap_metadata=yes.

commit dfebce6840b843e8ae76f632537db4cfd29041fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 1 12:49:25 2015 +0300

    push-notification: Cache the metadata lookup in OX driver.

commit 3e13cdffb51ff975f70f347d143c89c19f46091f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 1 12:34:43 2015 +0300

    push-notification: Don't crash at ox driver cleanup if init() hadn't been called.

commit e7e9ca33af09b6ab77633bcafe27d751adf09c93
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Wed Sep 30 18:22:52 2015 -0600

    push-notification: Improved struct naming of driver list data

commit f6fb60c7dcfc88895c8c45514c3fc424d3126336
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Wed Sep 30 17:59:07 2015 -0600

    push-notification: On-demand initialization of transaction data

commit cf93f9d7d747a14db76c1d1fd21dad9e0a102088
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Wed Sep 30 17:49:24 2015 -0600

    push-notification: Fix infinite recursive loop in OX driver

commit 3cbb235b07a41dfe005fda389d722247605495d5
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Wed Sep 30 17:45:49 2015 -0600

    push-notification: If other drivers triggered a non-MessageNew successful event, don't assert

commit 4ee5a85e75d520497bd43dbfcc6fc273f3e57cea
Author: Michael Slusarz <michael.slusarz@dovecot.fi>
Date:   Wed Sep 30 17:43:20 2015 -0600

    push-notification: Fix distinguishing between IMAP APPEND and MTA deliveries

commit 7d56dc75f70aaea4369f4bfcffb0cd1b5abe1ca9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 30 18:50:09 2015 +0300

    doveadm fetch: Added "storageid" field.

commit 5eb85ec9546bac4eea7d78de8997920ba3debd30
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 30 18:49:39 2015 +0300

    lib-storage: Renamed MAIL_FETCH_UIDL_FILE_NAME to MAIL_FETCH_STORAGE_ID.
    Keep MAIL_FETCH_UIDL_FILE_NAME for backwards compatibility for now.

commit b5f00248abe7d826911abd796c5e6b7111ac4abf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 30 18:11:53 2015 +0300

    dict-sql: Added support for "uint" field type.

commit 3e59d33934adf97c221369c7720564701aede9b1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 30 17:38:12 2015 +0300

    dict-sql: Added support for extensible field types.

commit 43da9b96171251e7e88f3a0523f9dc51d528580b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 29 21:02:37 2015 +0300

    fts-solr: Removed Content-Type header from "select" requests to fix Solr v5.1.

commit 36af6ff6b0249d0fb98b2c16c2ab8755e9394214
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 23:39:31 2015 +0300

    lib: s/EDEADLOCK/EDEADLK/
    It felt wrong since the beginning, but my first attempt at EDEADLCK didn't
    work and EDEADLOCK did. Of course, not everywhere.

commit d228839c194a6bfb5abd4df1564dc8e69eca324f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 17:26:04 2015 +0300

    Added signature for changeset 7a5726201e40

commit 93ca503c9907598396599395f8646e99b9767c8c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 17:26:00 2015 +0300

    Added tag 2.2.19.rc2 for changeset 7a5726201e40

commit d664d6bfe4efc3320e5f6bac9a98449499e52a67
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 17:25:59 2015 +0300

    Released v2.2.19.rc2.

commit 9d44feefe824e808fce433edd5a7a3b20c6f4b58
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:37:37 2015 +0300

    quota: Fix to previous commit - counting quota-disabled-storages may have returned random failures.

commit 9e99739b14df2035477ee58668b91a800dfee260
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:20:02 2015 +0300

    quota: Fixed "count" backend to ignore storages that have quota disabled.
    For example virtual mailboxes shouldn't be counted in quota.

commit d46f8fb3c628fd267c4a5705e6209497eb740f5d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:17:13 2015 +0300

    quota: The new quota counting code was counting only the last mailbox.

commit adbaf368e2e27777ac01811b19bfffe554f7e911
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:15:00 2015 +0300

    virtual plugin: Fixed assert-crash on mailbox_status() if virtual mailbox wasn't opened yet.
    We no longer require that mailboxes must not be auto-opened.

commit ca203035ecc37b94ba6b4ee3eb786cdafb46503a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:13:00 2015 +0300

    virtual plugin: Fixed crash on mailbox_status() if virtual mailbox wasn't opened yet.
    mbox->backend_boxes is initialized only when mailbox is opened.

commit ddd7c3b36893263c7de0df139a266daf75bcca60
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:07:12 2015 +0300

    quota: doveadm quota recalc works now for "count" backend by rebuilding vsize header.

commit 88b06199c3b87b14c41a636219a19156a5df2485
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 16:06:43 2015 +0300

    quota: Code cleanup - abstract out iteration of mailboxes related to a quota root.

commit 8e0eb6a0cfc2cb66385bdf05a70a38d753bc1e24
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 15:51:45 2015 +0300

    lib: Using istream-timeout with timeout disabled caused excessive CPU usage.

commit c9ac17980cf2eec9575f891a566841d0c7902ee9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 15:10:29 2015 +0300

    lib-storage: Added assert - mailbox has to be open when starting vsize header update.

commit 07ddf7a928d6195e58dcc8810aabde97a9dfdf08
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 15:10:02 2015 +0300

    lib-storage: Don't try to update index vsize if syncing failed.

commit 1492e7c2c39a6d99db654b8476a2a8e25e107ed8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 15:00:04 2015 +0300

    lib-http: Don't silently truncate response payload if server disconnects during it.

commit 8e7ea029100177d5f4077d4062f18998ca5a1e27
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 14:59:04 2015 +0300

    lib: Added i_stream_create_sized_with_callback(). The callback returns the wanted error string.

commit 5e0607406dc14f5c577a78f6c68ecd062fab4de4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 14:41:15 2015 +0300

    lib: When destroying istream-sized stream, it seeks the parent input at the end offset.
    This is also how istream-limit works.

commit d08e49550aa890e71a5f10b7de43347ec44473ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 14:34:05 2015 +0300

    lib-http: When receiving unexpected input in HTTP response, include a longer snippet of it in the error.

commit e9228a3918aa0243eff4aae1ff5462bd3198417f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 13:54:28 2015 +0300

    lib-http: Added asserts to all refcount increments.
    These could catch situations where an already freed object's refcount is
    attempted to be increased.

commit 76beac266ef81cf885fac676d6005b641f546a04
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 13:53:22 2015 +0300

    lib-http: Avoid crashes when server is already disconnected.
    I'm not sure if this is the nicest fix, but seems to work for now at least.

commit e312e229f27f3c4bfeccc17bfa008e90e29253df
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 13:51:49 2015 +0300

    lib-http: Disconnection from HTTP server could have caused accessing already freed memory.
    Freeing a request could have freed the connection.

commit 169b679209f7b3e97888704ad3693c709265ef24
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 12:33:33 2015 +0300

    quota: Avoid crash in quota_root_iter_init() if mailbox has no quota enabled.
    This allows quota_get_mail_user_quota() to be called even when quota doesn't
    exist. Cleaned up all the code using it to now check for the NULL result.
    
    This fixes a crash in quota_clone plugin.

commit f39a06c378f6ea80a4ae9d257f0d79221a945a57
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 28 12:19:20 2015 +0300

    quota-clone: Memory leak fix when mailbox had no quota roots.

commit 6b88b35aa0d6edbcb530bc737f33356589f17996
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:48:34 2015 +0300

    push-notification: Log about unexpectedly failing mailbox functions.
    Found by Coverity.

commit 81623c8ecd826296f580346fb59e8465d8e50c93
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:42:17 2015 +0300

    Added NULL-check asserts to make static analyzer happier.
    These shouldn't be happening.

commit a030246e8c2a7fda00e8ab3dbce7d382d5140002
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:34:48 2015 +0300

    lib-storage: Removed unnecessary code - nnode is never NULL at this point.
    Found by Coverity.

commit bd78cb1d7e05956b08a2031b8618b8fb97c9991c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:33:30 2015 +0300

    dsync: Removed unnecessary code - cur_mail is never NULL at this point.
    Found by Coverity.

commit 948b685d8df8f0e7b62aac21c9ab89959fa2d926
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:30:56 2015 +0300

    imapc: Fixed crash if imapc_host or imapc_password setting was missing.
    Instead of giving a nice error message about it.
    Found by Coverity.

commit 7fb4bc0355c372419b3957d297b7cb4341bd6b45
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:28:25 2015 +0300

    dict-client: Avoid crash if server disconnects during transaction commit.
    Found by Coverity.

commit a7d14da6cef3cfe26df5d039088ddd186c8aaedf
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 21:25:59 2015 +0300

    *-login: Session ID generator wasn't encoding remote port number correctly to it.
    The upper 8bits of the port number were always written as 0.
    This could have lead to duplicate session ID strings in some rare cases.
    Found by Coverity.

commit 37ed92c2cac57b88e062b876c7f1c587ef8cf186
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 20:47:20 2015 +0300

    lib-http: Avoid compiler warnings in printf() strings.
    Cast fields explicitly as long, which should be large enough.

commit a326f9da3c18a4ccfb28e72f87161eaf3624eaf2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 20:46:29 2015 +0300

    Fixed compiler warnings in some systems.
    major() and minor() are unsigned ints nowadays, but in Solaris it's major_t.
    Cast them explicitly to avoid compiler warnings, and use unsigned longs
    instead of unsigned ints just in case.

commit 648a6034e304c1ffa7fa8c291e03a0bca3c20288
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 19:03:31 2015 +0300

    Make static analyzer happier.

commit 9229d5ecc3ebaa38f102eb9e16808bcc7e37c91d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 27 18:58:08 2015 +0300

    lib-http: Removed "pure" attribute from http_header_field_find_unique().
    It's a bit questionable if returning a pointer via parameter is allowed for
    a pure function. Also having this attribute seems to confuse clang static
    analyzer, because it gives false positives for code using
    http_header_field_find_unique(). It's not important for performance anyway,
    so better to avoid using it.

commit e7b5b71497bb14a97d0e9b8c6c22bad2ede02815
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 25 18:16:56 2015 +0300

    dict-sql: If value isn't a hexblob as expected, log an error instead of killing the whole process.

commit be59f9ae981dbe4bdd264053e9febd4ea5dad75b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 20:58:04 2015 +0300

    cassandra: copy&paste mistake - use monotonic timestamp generator, not server side..

commit f9eee365367f37b1692c07db6c23d30243844aaa
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 20:51:16 2015 +0300

    cassandra: Added "version" parameter to specify a protocol version.
    Mainly to avoid warnings logged when connecting to an older Cassandra
    server.

commit 4d10133c64cc762cc41ea0e1adb192f29e03c8d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 20:28:51 2015 +0300

    doveconf: Don't if _password value is empty, don't hide it.

commit f0e416aa42058e7ccc0dc6deec0d4f4a19ee6ebe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 19:40:41 2015 +0300

    cassandra: Use a local monotonic timestamp generator.
    Otherwise we run into race conditions on server side timestamps, which cause
    problems.

commit dd37e2ff291fbebac1b94e8aad50f3bdf7531049
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 19:27:10 2015 +0300

    virtual plugin: Auto-close mailboxes by hooking into backend's mailbox_open()
    This is a more reliable way of doing it. The earlier version had problems
    that all the backend mailboxes could be opened when doing a search on the
    virtual mailbox (for getting the GUID of the mailboxes).

commit 9cb0fe28ae6f59b9f075e1edfc30f417e846c4a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 19:07:12 2015 +0300

    virtual plugin: Fixed assert-crash when closing a virtual mailbox consisting of many real mailboxes.

commit 38f51958dc9dc5954c4212c9b370fd42d47197ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 18:42:58 2015 +0300

    dict-client: Verify that the correct transaction ID is returned for commit reply.

commit 54a8bb6e9b852d9a96a8cdda1bb55a85ce0e10da
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 18:41:48 2015 +0300

    quota: Avoid triggering quota recalc in dict transaction commit callback.
    This mainly causes trouble if it again does more dict accesses.

commit ccd8afd85a9a56c32b38c53ba38e13f0d95c3ff3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 16:41:10 2015 +0300

    pgsql: Avoid crash in multi-command transaction if one of the queries couldn't be sent to server.

commit 1693511477f47c4a1da85a74fc2635ecb8e94709
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 16:30:23 2015 +0300

    indexer: Use a slightly different session ID than the session that requested indexing.
    Required to avoid "duplicate session ID" errors in stats process.
    
    Alternative would have been to change the stats protocol a bit and always
    send the service name along with session ID, and use those two together as
    the primary key. Maybe this could be done in future if we get more of these
    kind of processes.

commit 154ee35634e460cfa6b99faf3c2bda86f65af19f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 16:16:43 2015 +0300

    doveconf: Unless -P parameter is used, hide all keys ending with "_password"
    A little bit ugly way, but implementing a proper SET_PASSWORD type was
    getting too difficult with the current config code. Then again as a bonus
    this also hides plugin { *_password } settings, if there are any, which
    wouldn't have been possible with SET_PASSWORD.

commit f67a12c7a2dd33b69b303a7cab85c7ed82ba4d85
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 15:19:53 2015 +0300

    lib: Fixed __builtin_object_size() usage in buffer.h
    With type=3 size for unknown objects is set to 0, which causes a compiler
    failure. With type=1 it's (size_t)-1, which passes the check.

commit f990dde096949bd2b76aab28936211689bd6cadc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 12:32:24 2015 +0300

    Don't try to pass through void function's return value
    I wish gcc or clang complained about these.

commit 9366a287ae1bafa03f815e6f17d0c3891368e263
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 10:11:29 2015 +0300

    push-notification: Added missing newlines to end of files to prevent compiler warnings.

commit b087ad415f7870342835054fec3c5d9efcb98784
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 01:13:36 2015 +0300

    master: stdlib.h wasn't supposed to be removed from systemd's sd-daemon.c
    It's not using our lib.h

commit d1a0845aed2bbbe9435e96bd10bd774ed194ca4b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 01:04:00 2015 +0300

    pgsql: Fixed committing a single sql_update_get_rows() transaction.
    The rows weren't being set.

commit e8db44d3d542a8d29500ddfc0e7b51004345af36
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 01:02:32 2015 +0300

    pgsql: Fixed committing multiple transactions.
    This code is quite horrible and could use a larger redesign. But it appears
    to be working for now..

commit 191eb75dd8c688dc1669492b842233decaf9cacc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 24 01:00:45 2015 +0300

    lib-sql: sqlpool needs to change transaction queries' transaction pointer
    Otherwise query->trans points to the sqlpool's transaction, while our
    backends want it to point to the backend's transaction.

commit 563b8bb42d1ab5aec0ecb69c8bad9057a270a51f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 23:01:27 2015 +0300

    dict: Include PID in the log prefix.

commit 2333ef65e41644e9d4fea1f8aef2ee625caf3b00
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 23:00:30 2015 +0300

    dict-client: Improved broken iterate reply logging.

commit 9e7a30991415f714b609f650105596371a58216d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 22:59:55 2015 +0300

    dict-client: If dict iteration was aborted, the rest of the connection state became broken.
    We never continued skipping over the rest of the iteration, instead the
    iteration replies were treated as replies to the following commands.

commit 7e74fadc6668d85c2bfd630f215770808d73d1a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 22:57:55 2015 +0300

    dict-client: Catch more invalid protocol replies.

commit feac4d832101e7090a134ed4edb16610877c07c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 22:49:41 2015 +0300

    dict-client: Disconnect from server on unexpected errors.

commit 76f6d8b6ca11f559ff8f9ddff409d96becf2bada
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 16:10:27 2015 +0300

    Added signature for changeset 60057d955db3

commit 18ceb7ad3620c610df672331528e33209aebf42a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 16:10:24 2015 +0300

    Added tag 2.2.19.rc1 for changeset 60057d955db3

commit 782ad0e4b9f2d4160d8e310de0b5bb32e9ca8310
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 16:10:24 2015 +0300

    Released v2.2.19.rc1.

commit 504337186520df7012315687fc0f88c945775471
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 16:09:47 2015 +0300

    virtual: The virtual index may have sometimes been unnecessarily deleted.
    Due to uninitialized broken_r value.

commit 2d07c751bde36f1c06cb8c6c1cb2f118ea065470
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 23 16:08:33 2015 +0300

    example-config: Added imap_hibernate_timeout

commit 814bf67459ad405a157af0b8940602024d7fadfe
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Sep 23 14:52:45 2015 +0300

    Remove now-unnecessary direct stdlib.h #includes.

commit d3fa9b61b810943ac30d927329d14e4caefd1caf
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Sep 23 14:52:44 2015 +0300

    lib: Include stdlib.h in lib.h.
    It's already included in so many files that we might as well include it in
    lib.h for everything. This is especially needed to be able to use sort.h,
    which currently is included in lib.h anyway.

commit 51ed197520dd9ea534fbc3bc1790ebe3cb5421e2
Author: Michael M Slusarz <michael.slusarz@dovecot.fi>
Date:   Tue Sep 22 22:33:41 2015 -0600

    Added push-notification plugin

commit 13bdd67aa0781d562cd2030da5092df1107d91f3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 22 21:16:51 2015 +0300

    lib-http: client: Tunneled https peer addresses were not compared properly.
    The https_name field was ignored in that case.

commit 8192e6fcab193e174a3258457e967a6fcc60b05e
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 22 21:16:34 2015 +0300

    lib-http: client: Fixed bug that caused queues to be duplicated over time when host has multiple IPs.
    The peer address comparison did not account for the fact that the initial
    queue address has no IP assigned.

commit 7b572cf527dc0d9d9c7344041e50aef16f419571
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 22 21:15:45 2015 +0300

    lib-http: client: Improved hash function for peer addresses.

commit c981098a515c62fdfb3261e532b5d6163a0f8946
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 16:40:58 2015 +0300

    lib-storage: If stats plugin is enabled, set fs_settings.enable_timings=TRUE.

commit 12d31981c521a7e5520423b2960acc602fb669b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 16:38:59 2015 +0300

    lib-fs: debug and enable_timing settings weren't being permanently copied to fs->set

commit df5b253f17492d95582d166977f7e92a39d2f4e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 16:09:41 2015 +0300

    lib: Added timing_get_sum()

commit bda082b4c7d06cd8ed83794318930385673b7eee
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Sep 22 14:33:33 2015 +0300

    imap: Fix typo in error message.

commit ab0eb4b10d25bd74cc2058ffb2a08fa10919519a
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Sep 22 14:32:51 2015 +0300

    auth: Remove redundant if

commit 9549f50a9d53bad4fb8f33e063ecc6341b22cd96
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 14:26:25 2015 +0300

    Make static analyzer happier.

commit 68d7af0bb1d5f9da9dffda7d0616e99624d784e6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 14:26:08 2015 +0300

    quota: Make sure the limit return value is initialized when quota_get_resource() returns 0
    Later on a debug log message in quota_over_flag_check_root() was accessing
    the limit, which wasn't necessarily initialized.
    
    Also initialized value return value just as well to be safe.

commit 086dacad037a033f783be55842918ba40bbf4ed4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 13:53:47 2015 +0300

    lib-master: Slightly improved "process_limit reached?" error message.

commit 013c0431b58809e16fd0afea0429d0b7bb1ef8a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 13:50:08 2015 +0300

    virtual plugin: Disable caching via mailbox list indexes.
    Otherwise e.g. STATUS can give stale replies.

commit cb44fd2f888be7da34b5d3db2f4d3e88b989f0fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 01:05:09 2015 +0300

    lib-http: Optimized http_client_request_send_payload() fix
    Badly copy&pasted my original fix, instead of noticing that Stephan's fix
    was slightly different. Probably shouldn't have made actual difference
    other than for performance.

commit 47ff1eaf3bc13a702c8491d248d8d34d08796937
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 00:55:15 2015 +0300

    lib-http: Avoid crashes on failing http_client_request_send_payload() calls
    It HTTP server connection died, ioloop might not have anything to do
    anymore:
    
    Panic: file ioloop-epoll.c: line 187 (io_loop_handler_run_internal): assertion failed: (msecs >= 0)

commit d9e3a9484eb98b3363a2188a8b1efec5415950ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 22 00:40:14 2015 +0300

    Makefile: Added missing sort.h

commit ec8eacaa2c8ca78cbf8ee8c83ab6ec521b67f354
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Sep 21 19:52:32 2015 +0300

    lib: timings - added quantiles
    Just sub-sample the stream. On the assumption that the samples come from
    one distribution, then any randomly selected subset will share the same
    distribution. Therefore the quantiles should be at approximately the same
    value.
    
    However, that's a big assumption, as there will almost certainly be time
    dependency, and periodicity (24hrs, 7 days).
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 2c886f02dd195e44ca67532fa34f88b89a4ba603
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Sep 21 19:51:05 2015 +0300

    lib: extract sort-helpers into separate sort.h file
    The macro definition was nothing to do with strings, and we can put
    trivial common-type comparators here. They didn't need to be static
    inline, as they can never be inlined anyway, being only used via
    function pointers, but that preserves the closest equivalent to
    the current code.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit e716e8ef3da79022243910c2db73b2a4bd555c78
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 17:03:19 2015 +0300

    lib-storage: Forgot to add index-mailbox-size.h to e29d2f7fe53f

commit a8dcd4e2332c73087e9b148d34259230a77edb28
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 17:01:05 2015 +0300

    fts: Send session ID to indexer and indexer-worker for logging purposes.

commit c4db1218645ed8ec8b5ae67c05bc5d7a80c1b8ae
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 16:36:05 2015 +0300

    quota: Added "count" backend, which simply sums up mailboxes' vsizes.
    In a way this is similar to the simple "dirsize" backend, but much more
    efficient. As long as mailbox_list_index=yes, the quota can typically be
    looked up only by reading the dovecot.list.index* files.
    
    This backend enforces using quota_vsizes=yes setting to keep the performance
    good, because physical sizes don't have a similar optimized vsize header.
    There's also no especially good reason why this backend should support
    physical sizes - they were originally mainly used to allow quickly stat()ing
    Maildir files.

commit 9963bef626fd9ea227fb606e8b1694cdb1ab39aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 16:32:27 2015 +0300

    lib-storage: Update mailbox vsize header on save/copy/expunge.
    This allows always efficiently looking up maiboxes' vsizes after they're
    initially calculated.
    
    The expunge handling is unfortunately done currently in quota handling code,
    so it works only if quota is enabled. Ideally this would be solved in v2.3
    with some lib-storage core changes.

commit 93f1642397e46497894e6695749e5c52fda61774
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 16:24:30 2015 +0300

    quota: Added quota_vsizes=yes setting to count quotas using virtual sizes instead of physical sizes.
    This doesn't work with all the quota backends.

commit 93eb96e09c0fd00a77b3fba185b043cc2c011444
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 16:12:43 2015 +0300

    quota: Commit expunge transaction instead of rolling back.
    This likely won't make much of a difference, since it should have accessed
    only expunged mails. But it's a bit cleaner this way.

commit a4922fa0c7de2aa332bc1361abf6f93f001fc02e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 16:09:37 2015 +0300

    quota: Code cleanup - extract default init() handling to quota_root_default_init()

commit c9b76ca218d93dc97e27d6ec04a645e8dc6f228b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 15:41:49 2015 +0300

    imap: If client disconnects, log the in-progress commands' input/output bytes.

commit fa5c3e6ebdcebde921ddbbe43219774ceaf081f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 15:32:02 2015 +0300

    imap: If client disconnects, log how long the in-progress commands were running.

commit f56f01d9c184c97e5a45f41d445ca776f72b7947
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 14:18:51 2015 +0300

    Compiler warning fix.

commit 266d72b0b32d5b105de96aac0c050d5a4c0ed3a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 14:02:47 2015 +0300

    imap: Improved command timing information reporting.
    We now report also the time we spent waiting on ioloop. Also fixed reporting
    command timing information when multiple commands were running in parallel
    (e.g. SEARCH + FETCH). If multiple commands are running in parallel they all
    report the same ioloop wait time, because there's no easy way to know which
    one of them caused the wait.

commit fb4bd85e7d254f65570d3c860b34fc3e963b25b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 13:59:41 2015 +0300

    lib: Added io_loop_get_wait_usecs()

commit b7c841fd6dc508d87db8b1b64ea1a8f4cb0b8971
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 21 13:59:22 2015 +0300

    imap: When running SEARCH on "background", run it through command_exec()
    Otherwise all the timing information isn't right and the pre/post hooks
    weren't being called so stats counting was also wrong.

commit 5fb7f20862718b2546e9d154d8924510d3f02729
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 20 22:25:11 2015 +0300

    lib-index: Added mail_index_sync_have_any_expunges()
    This can be used to quickly check before mail_index_sync_begin() if there
    are likely to be any expunges that will be synced.

commit 4ac2e38bdb450d13b62be41638b12df9e0658009
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 20 21:49:51 2015 +0300

    auth: The mechanisms configured using the auth_mechanisms setting were not enforced.
    The login service would check whether the mechanism is supported by auth,
    but auth performed no such check of its own. This means that any
    implemented mechanism was accessible from a login, even though was
    presumably disabled.

commit 3d2fd3816b79caf8048582f1e951019187ee9d9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 20 01:04:50 2015 +0300

    lib: file_wait_lock*(): Improve the panic log message on EDEADLOCK.

commit 48eb19f796671260c0c77d3c61a5aeb33c9a63b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 17 07:33:22 2015 +0900

    lib-fs: Fixed compiling with some OSes

commit db6fe1b4c478231f9b63cca9069e2ab8fc70da2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 17 07:33:01 2015 +0900

    lib-fs: timing_deinit()s was called too late - fs was already freed.

commit 37e8420b32a0fa3442c405616980e45beb494104
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 17 07:26:49 2015 +0900

    cassandra: With debugging, log also how many rows were iterated.

commit 2ccb478c35972517721ce415d81fcbd11a73fad3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 17 07:24:28 2015 +0900

    cassandra: With debugging, log also how long result was used for before it was freed.
    This includes the time spent on SELECT query's iterator.

commit 3e8842470a4a17017529d43b39c40a7549c2ecf2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 17 07:20:32 2015 +0900

    cassandra: Don't crash if connection to Cassandra failed.

commit de5f478d9e7ae7b8e58082e0b30b6ce1f034236a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 17 07:07:57 2015 +0900

    cassandra: If log_level=debug, log also how long the queries take.

commit caa1546576e3b813afc4769bd028629fb1dd2615
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 16 10:46:44 2015 +0900

    lib: file_wait_lock_error() assert-crashes now on EDEADLOCK
    It's always a bug and a crash can help debug it.

commit 1c244f6fdbb509cca857982368f5d426e999f2d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 16 05:01:40 2015 +0900

    lib-fs: Track operation timing statistics if enable_timing setting is set.

commit 273a7cf98c20a3794990e2a6fe09cbb63f4ece26
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 16 04:44:37 2015 +0900

    lib: Added a simple timing.h API for tracking min/max/avg for events.

commit 4db61af2cfe2b206113bcc4b6153521679702bb4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 15 15:20:08 2015 +0900

    cassandra: Added delete_consistency parameter.

commit 33c7e05213e802495887c2d4a94c22c68d4d0c84
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 13 16:42:32 2015 +0300

    lib: file_create_locked() may have leaked memory on some race conditions.

commit 03ba8492752997e27e3d8a41c7dc01e07f642c56
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 12 13:00:58 2015 +0300

    doveadm mailbox metadata list: Fixed not giving the prefix parameter.

commit d993d49e833076824bd73b2ed667d2a1c45b9733
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 11 14:02:21 2015 +0300

    doveadm mailbox attribute list: Prefix parameter was ignored.

commit 42f2d982a0f2f883fc0e84f204e12cda5f5ef768
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 11 14:02:01 2015 +0300

    lib-storage: Fixed iterating attribute prefix that matched the attribute itself.
    So if attribute key was "foo", iterating "foo" returned garbage because it
    skipped over the trailing \0.

commit 27f5066c781a8a5ca4eaa5e928c43171f2d986d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 11 01:20:28 2015 +0300

    master: systemd's sd_listen_fds() error handling was wrong.

commit ec937f21abdd9500a450a8c16091337672e54488
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 9 11:31:41 2015 +0300

    lib-storage: Fixed crash in mailbox list index notifying caused by fa979ccfa34c

commit d6bbf85809664a810726b5c711c7213874d8df57
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 8 19:28:31 2015 +0300

    lib: test-strnum - do not invite undetectable errors
    The very numbers which could cause a broken parser to over-run, the ones we
    are testing, are the ones which will be parsed as having a value similar to
    'value', so check that no value was returned by using a number completely
    dissimilar to that. Otherwise, there might be an accidental mis-parse that
    overwrote value, but left its value the same.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 275cc4c040899c132b2acbe2fcac48ba4c1abbcf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 19:12:26 2015 +0300

    lib-storage: Replaced some unlink()s with i_unlink*()s where we could.
    This changes some mail_storage_set_critical() calls to i_error()s, but
    because these unlink() failures don't actually fail the operation it doesn't
    matter.

commit 39087f589d24f3072f220c2ed4528ee323f129ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 19:11:45 2015 +0300

    lib-index: Replaced some unlink()s with i_unlink*()s where we could.
    This changes some mail_index_set_error() calls to i_error()s, but because
    these unlink() failures don't actually fail the operation it doesn't matter.
    In fact it may be even better that it doesn't overwrite the existing
    index->error if it exists.

commit 46b823ac3bce2c0f9f0fc73911e48d3a77b04fbe
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 19:07:02 2015 +0300

    Replaced unlink() calls with i_unlink*() wherever possible.

commit 8dc04cf60ea2f2d176ce4e5ca36c050e4c0a858b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 18:49:00 2015 +0300

    lib: Added i_unlink() and i_unlink_if_exists()
    These log the error message on a failed unlink(). They also include the
    source code file and line number to make it easier to find which unlink()
    actually failed if the path itself doesn't already clearly identify it.
    This can be especially useful if the path is (null), "" or contains some
    corrupted garbage.

commit b1415399592c7d46a7fa9683986931cbc18b0b53
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 18:45:57 2015 +0300

    lib-storage: Mailbox deletion shouldn't fail when trying to delete read-only attributes.

commit 5e09e28395b98fa7c9ef08fce644ce10a99d5458
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 18:45:28 2015 +0300

    lib-storage: Use MAIL_ERROR_NOTPOSSIBLE if mailbox_attribute_*set() fails for read-only attribute.
    MAIL_ERROR_PARAMS indicates that there was something wrong with the
    parameters itself. But the caller can't know (at least with current APIs)
    if it's a read-only attribute it's trying to change before actually doing it.

commit 1228d57525281527b34e7836b1e96a8af16f8674
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 13:41:21 2015 +0300

    lib-storage: If mail_attribute_dict is set, ignore non-authority rank internal attributes.
    This way dsync can still sync things like Sieve scripts, but it doesn't
    attempt to sync anything that actually requires dict.

commit 6fef776b1a92b62e0475feb774ed5927f0755413
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 8 13:30:21 2015 +0300

    example-config: 10-mail.conf: Added example configuration for the new settings relating to IMAP METADATA.

commit bb353b0b1840f7eec0a29c2f6ba08b835d6842d3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 8 13:27:41 2015 +0300

    example-config: Added more detailed documentation for mailbox settings.

commit 87b4215acbf020aa5b8dea686b23fc664140cda0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 8 13:26:38 2015 +0300

    lib: strnum: Fixed test suite failure on 32 bit systems.

commit 0e731a17eb66e67b2280b7788295bf469b1bcccd
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 13:18:58 2015 +0300

    acl: Log which ACL groups are enabled with mail_debug=yes

commit 64d895bcca177ee840268180ca7a4e3841295613
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 13:07:59 2015 +0300

    lib-charset: Fixed assert-crash with some iconv() versions.
    Older glibc iconv() versions seem to skip over invalid characters, at least
    with some charsets, while newer versions don't. We were assuming that the
    skipping never happened, so if the invalid character was at the end of the
    string we could have wrapped size to (size_t)-1 and caused a crash later on.

commit 186c198e258401b0d2d9374d7ac7e248dc4d7377
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    imap: METADATA: Implemented mailbox and server comment entries and the server admin entry.

commit 1b0c12018b46c2195a1f036a6d7c057c818b7b67
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    imap: Implemented /private/specialuse METADATA entry for SPECIAL-USE capability.

commit 4a272f5b8bacf2852c2e53f3aa8e899e0d5c604f
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 8 01:27:18 2015 +0300

    lib: Added some tests for the new strnum _hex() and _oct() function variants.

commit 0348cf684428f25fdc0aa14bb4cc661627a32445
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 01:20:51 2015 +0300

    lib: Added assert to Solaris sendfile() return value.

commit 738e548a4b1c7d214626e875491a48fcf1cddd1c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 00:51:30 2015 +0300

    doveadm: Fixed hiding titles' tabs with tab formatter (-h -f tab)

commit 25f959d63f5379702f44f5ae125eb3b70a6a47d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 00:46:11 2015 +0300

    Make static analyzer happier.

commit 0139e1e636c3b8837bbf374febb30f93b32f6d5f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 00:34:14 2015 +0300

    lib-charset: Added more asserts to checking iconv() results.

commit f9291653e3d42d630b9212ceb9290c974e51597a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 00:33:21 2015 +0300

    lib-charset: Updated test-charset unit test to check for iconv() E2BIG result

commit 9dd7c6f7fc78a26a5d27457ed9415de1f924848b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 8 00:07:55 2015 +0300

    lib-storage: Mailbox list notifications didn't work for INBOX.
    Because of some earlier optimizations that changes to INBOX aren't written
    to dovecot.list.index.log file.

commit e27db67b4549773e5015643e776bda9e7025719f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 23:55:31 2015 +0300

    Mailbox list notify API changed to return multiple events at once.
    This fixes some issues where a single event could actually trigger multiple
    different kinds of events.

commit 8868eddb51d450f46255fa938939347eb8a1299c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 23:08:44 2015 +0300

    imap: NOTIFY (SUBSCRIPTIONS) assert-crashed when subscriptions hadn't been refreshed.

commit 25fb397382c6f7d39bfeee85774e7675f02bfb3c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 22:35:30 2015 +0300

    Various passthrough istreams didn't preserve readable_fd.

commit 158e0bc894a55722e337d1ebdffc90fd9d6d2b7f
Author: Sebastian Wiedenroth <sebastian.wiedenroth@skylime.net>
Date:   Thu Jul 16 14:41:24 2015 +0200

    lib: Fix hang in safe_sendfile on SmartOS
    The call to sendfile on SmartOS can fail with EOPNOTSUPP. This is a valid
    error code and documented in the man page. This error code needs to be
    handled or else dovecot will retry the sendfile call endlessly and hang.

commit 5bf4e28d6d2c25c54ee201943ac5398a74481360
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 22:14:18 2015 +0300

    imap: Fixed assert-crash in NOTIFY when using multiple namespaces.
    I'm not sure why the original code was trying to add it to multiple
    namespaces. A single mailbox name should be matching only a single
    namespace (visible one at least). In any case we can't use
    mail_namespace_find() with only partial namespaces-list, because it'll
    assert-crash if it can't find a namespace for the mailbox.

commit 4439a1780afc06fe644ead3df6f0b3f77f9cb867
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 22:06:16 2015 +0300

    lib-storage: Fixed assert-crash when reading binary streams.

commit fb6168354f0c90c1d3a9a487e186ba84c741f9b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 21:54:20 2015 +0300

    doveadm: Added new "auth login" command to simulate an actual client login.
    This performs both passdb and userdb lookups and prints their results.

commit d1d04674fb0906d0895ae0f958f4cdbe487aa8ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 21:24:01 2015 +0300

    auth: If userdb lookup was found from auth cache, don't clear the earlier userdb fields.

commit 2373c8449902a2a6bd6603ccbdb3f5c3badc7b21
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 21:02:51 2015 +0300

    auth: If multiple userdbs are used, default_fields was ignored for all but the first one.

commit 3e10cd470988298dc2b37f548ad03da4d7c11ffa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 20:24:25 2015 +0300

    director: Added director_user_kick_delay setting.
    This replaces the hardcoded 2 seconds delay. This setting specifies how long
    to wait for after user has been kicked from all directors before letting the
    user login to the new server. This timeout should be large enough that the
    user's existing processes in the old backend should be finished.

commit c9d685897f9e7f0d5e27c00d4b03281d6049ccd1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 18:50:24 2015 +0300

    login proxy: Added delayed disconnection of clients on server mass-disconnect.
    login_proxy_max_disconnect_delay setting (default 0 = disabled) controls for
    how long time period the disconnections are spread to. The idea behind this
    is to avoid load spikes due to client reconnections when a backend server
    dies or is restarted.

commit 3a3f0bb25ba19fd61246d3dab686d26dd625ab5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 17:10:19 2015 +0300

    auth: Ignore first passdbs that contain skip=unauthenticated.
    They can never match anything.

commit 3c7dbe9bd199bb88a9261136876a2d683680d405
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 16:39:28 2015 +0300

    lib-storage: Added mailbox_attribute_register_internals()
    Just for making it easier to register multiple attributes.

commit e8f12bf524412d1ca2e60cc694a2b9487ed206d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 16:23:40 2015 +0300

    lib-storage: Allow MAIL_ATTRIBUTE_INTERNAL_RANK_DEFAULT to use get=NULL
    This is useful for registering internal attributes whose only purpose is to
    be able to set/get them via dict. (Because normally the dict access would be
    denied completely.)

commit ab5269901fa285cf66bc55dd068979d4fdbb4c23
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 16:22:11 2015 +0300

    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.

commit 72baffa319d909f6e496f7f475f83e5b37b62deb
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 16:38:24 2015 +0300

    lib-storage: Added MAIL_ATTRIBUTE_INTERNAL_FLAG_CHILDREN
    This also adds the key to get() and set() functions, so they can know
    exactly what key is wanted to be accessed.

commit bf79967ee56a3f7c99012997c1834452594fed41
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    mail-storage: Added registration API for builtin mailbox attributes.

commit 326c86b1cdb555957b236958e17142e82e34074e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 15:07:55 2015 +0300

    lib-storage: mail_user_init() wasn't always expanding %h correctly to settings.
    This mainly affected users autocreated for accessing shared mailboxes.

commit 69e0311cb068f20b0f285a30263068f87bc78ce3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 15:06:40 2015 +0300

    lib-storage: Updated MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() to not allow private server attributes.

commit ffe2ea046556858d8f685f3bda10630129c48234
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 14:16:39 2015 +0300

    dovecot.m4: Added LIBDOVECOT_ACL_INCLUDE

commit 8affeb8ace3c979dd2635fd03db0e0ec291d3f14
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 14:08:52 2015 +0300

    auth: Fixed passdb skip_password_check / result_success=continue-fail handling
    If passdb returned success, but result_success=continue-fail, it means that
    the authentication didn't succeed. So we still want to check the password
    again and in general treat the request as unauthenticated (especially for
    the passdb { skip } setting).
    
    So the current logic means that there are 2 ways for the request to be
    treated as authenticated and skipping any password checking:
    
    1) passdb lookup succeeding, with result_success=continue, continue-ok,
    return or return-ok
    
    2) passdb lookup not succeeding, with result_failure=continue-ok or
    return-ok
    
    It's a bit questionable though if 2) should be allowed.

commit c07fb2247951f6bc9421d816bb7599efcd84da2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 13:40:41 2015 +0300

    imap: Don't allow IMAP METADATA to access Dovecot's private server attributes.

commit 1310fa409770e8861c8708498e45e00fa581e3e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 7 11:40:08 2015 +0300

    auth: Aborting auth request didn't abort a pending proxy DNS lookup.

commit 691f802ef6ec2105079d420ba26b21088402c6da
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 6 22:28:07 2015 +0300

    lib-storage: Store pointer to mail_storage_service_user to mail_user if it exists.

commit 95dcc0f8e80cc8c9278c904c3cd06dcc4a6d2d33
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 6 22:27:29 2015 +0300

    lib-storage: Added mail_storage_service_user_get_service_ctx()

commit 7b31f9fe68ab95389e4c44b5a427a707415bd859
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 13:00:25 2015 +0300

    acl: Install most of the header files.

commit 1f6186dbcff2fe8727c174ca37dffa712c8137a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 13:00:14 2015 +0300

    acl: acl_object_list_next() should return -1 if acl refreshing failed earlier.

commit 83766160023816a21496a7c8614f0f7b15c9b29e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 11:21:39 2015 +0300

    dsync: If remote disconnects, log the last sent/recv state.

commit 0443351f9d817ae71e9d055be17ca5380f8b4a37
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 11:17:30 2015 +0300

    dsync: If we disconnect with I/O timeout, log the last sent/recv state.

commit d87f5ce4f01e465f60ee76c717667095523259bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 01:23:28 2015 +0300

    login proxy: Code cleanup - separate login_proxy_free_final()

commit 772f054b4dbde6af22a9106527a6c8010878eafb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 01:21:28 2015 +0300

    login proxy: Always keep proxy->state_rec available.

commit 623eaaf530b2bd9cddbaeb88a211873ec9dee436
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 01:18:04 2015 +0300

    login proxy: Added asserts to track that num_waiting_connections are correct.

commit 40f7b31e69de15f52d5fe897c4c6c6de4da7dd23
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 4 01:10:29 2015 +0300

    login proxy: Small code cleanup

commit 57c5e11941482d3603fc03482f78e07fa0f81ee5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 22:12:14 2015 +0300

    dsync: Assert-crashfix
    Fixes:
    
    Panic: file mail-storage.c: line 1897 (mailbox_save_alloc): assertion
    failed: (!ctx->unfinished)

commit 1fb5e50695bbbc0da082e5a6f19f29d2bb2f6531
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 21:37:09 2015 +0300

    cassandra: Handle async queries internally - don't use sql pooling code.
    There's no need to create multiple Cassandra instances, since the single
    instance is capable of doing multiple asynchronous requests in parallel.

commit 9a02f482ef1edd49c9c1899ab11ff2f3d354d13d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 20:55:18 2015 +0300

    lib-storage: Another fix to using index_storage_mailbox_close() without an opened view.
    Calling mail_index_close() without mail_index_open() caused it to
    assert-crash.

commit ac00e30516d93d289c71bd59f338c26693329e67
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 20:54:27 2015 +0300

    dict: Various reference counting and other fixes related to using freed memory.

commit d206a491a53d1ffb4beb4470373c6ab56059ec0a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 19:59:16 2015 +0300

    dsync: Crashfix in certain situation.

commit 40feca9b85a53e76d966c4eae44579f3407347bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 19:58:39 2015 +0300

    lib-storage: Allow index_storage_mailbox_close() to be called without an opened view.
    Some failing mailbox_open() call may leave it in such a state.

commit a4502a71879d6018bd2c64f13614bb619911dd9f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 16:04:26 2015 +0300

    doveadm director update command added.
    The difference to "doveadm director add" is that if the IP doesn't already
    exist, it's not added.

commit 3ba70a3fa363850cc513d3cf28d1916e2469b90f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 3 14:10:36 2015 +0300

    Removed SET_IN_PORT_ZERO - SET_IN_PORT now always allows zeros as well.
    A zero in all the port settings means that the port is disabled, which is
    also the default. So it shouldn't be an error to explicitly set it to zero
    in the config file.

commit d5c4431318851850f83d6a2a0c44119d0ebe4213
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Sep 3 14:01:57 2015 +0300

    lib: strnum - simplify hex and oct overflow code
    uintmax_t is defined to have modulo-2^n semantics, and therefore the bottom
    bits of (uintmax_t) are guaranteed to be all set. Therefore the checking of
    the next character read is unnecessary, as it's already done in the loop
    control statement itself. (This is not true about the bottom digit base 10,
    which is why the check remains in the decimal case)
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7be9203e66c8b0cc473b78923e45adf230659d05
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Mon Aug 31 22:31:19 2015 +0000

    man: doveadm-sync.1: Added description for option `-T secs'.

commit 84b2c459e4b048bca2416b2f06f4d759d7e5b888
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 20:30:07 2015 +0300

    dict-sql: Fixed iteration with blob fields.

commit ac1e5c22ec7e4b245f0b36639dc8a7ac9e623dd2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 19:46:36 2015 +0300

    dict-sql: Implemented support for binary fields.
    Example:
    
    map {
      pattern = shared/blobtest/$key
      table = blobtest
      value_field = value
      value_hexblob = yes
    
      fields {
        key = ${hexblob:key}
      }
    }
    
    Now you can access both field and value as hex data. For example:
    
    doveadm dict set proxy::sqldict shared/blobtest/746573746b6579 7465737476616c7565
    
    This adds "testkey" and "testvalue" to key and value fields blobs.

commit b87761f9bbef949f31dae297e619ac3f5e9c2b2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 19:43:26 2015 +0300

    lib-sql: Implemented sql_escape_blob()

commit 61f39b0358a72ebc693d84ba5bac74489ee7df41
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 19:42:45 2015 +0300

    cassandra: Implemented support for binary values.

commit efa1a91c5eb82e49edb00b4a194f6fc11de5641c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 19:41:23 2015 +0300

    doveadm dict iter: Added -V parameter to return only keys.

commit ce06a5036933a4655b660e5f69afa303c7c35d60
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 19:38:35 2015 +0300

    dict-sql: Fixed iteration with DICT_ITERATE_FLAG_NO_VALUE

commit 02a0277d897dbf5172937158f3d828f981ff230d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 18:42:01 2015 +0300

    dict-client: Prefix relative socket paths with base_dir.

commit 30d76359cf7552a95690455feb8e1540c2aa0349
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:51:23 2015 +0300

    dict: Added dict-async service.
    This allows running separate dict processes with separate settings for async
    and non-async backends.

commit fa04cb1e62a94aed0d318e75cac7c2095ce8f60b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:37:16 2015 +0300

    dict-sql: Added support for async operations.

commit 1a883718249b8db128a105ee7f03293873f1f9c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:36:47 2015 +0300

    dict: Use the new async APIs for everything.
    If the dict backend supports async operations, this means that dict service
    can now be configured with client_count>1.

commit d694b6009574ee6e3cfaee3834cbdbcd431affb0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:34:43 2015 +0300

    lib-dict: Added async API for lookup and iteration.

commit 32afa834487ff44e3891a1934076d14b096a039c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:28:41 2015 +0300

    dict-sql: Code cleanup - added sql_dict_transaction_has_nonexistent()

commit dce02dcdf224bbad77552b59e999d663a1619c2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:27:09 2015 +0300

    dict-sql: Code cleanup - use a common sql_dict_transaction_free()

commit 1f97851936d73a4aa3f9e826cffc130bad295e20
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:26:08 2015 +0300

    dict-sql: Fixed memory leak when committing/rollbacking unchanged transaction.

commit 743d40073ef128c777d2549dc41622d42f642430
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:23:45 2015 +0300

    dict-sql: Code cleanup - separated SQL query building function from sending it.

commit c02488b7f2d1eac2b4a8db0b6644bb00de32422e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:21:06 2015 +0300

    lib-dict: Code cleanup - give name for enum dict_protocol_cmd/reply

commit a916985b7ea0dfe629928f7a88ff71610a3d52d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:20:02 2015 +0300

    lib-sql: Mark Cassandra driver as pooled.
    Otherwise all the asynchronous operations will assert-crash, since all the
    auto-connecting code is in the sqlpool code.

commit 1856c361aad526948d56d8aafd576bca94516b92
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:19:08 2015 +0300

    lib-sql: Debugging help - Added assert before clearing sql_result.callback.
    If result is unrefed too many times, this still allows accessing the
    callback from a debugger.

commit b457d2ecf97fb52064f9dd563fd4e8065af39dfb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 2 17:16:41 2015 +0300

    lib-sql: sql_result.free() should never be reached from the query callback.
    This code was probably added before sql_result refcounting.

commit f5d5b8aab8c7c19e1a8a995ef8fda56b0f281e89
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 1 16:25:11 2015 +0300

    lib-imap-client: If connect() fails immediately, log an error and retry the next IP.
    Only if all IPs fail return a full failure. This is mainly intended to skip
    IPv6 addresses when IPv6 connectivity doesn't work.

commit ecc01266b8eaf4cc9a034ef6a507ab5851c121ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 1 00:11:37 2015 +0300

    auth: Added ":protected" suffix to passdb and userdb field names.
    This means that if the field is set only if it hasn't already been set.
    Usually an earlier passdb/userdb would have set the field and this is
    setting a default (e.g. per-user settings override per-domain settings).

commit 6c0d8dc7cad70a336b01bd1978b3eee84a63b3b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 23:54:24 2015 +0300

    lib-fs: Added "dict" backend, which is a wrapper to using lib-dict.

commit 2bc963ea051ddacefe0fa5e26280e8ef853fd6c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 23:46:05 2015 +0300

    imap-hibernate: Use sockets' st_dev and st_ino to verify that the passed fd is correct.

commit fa2e547a3298fb7855d096db5825b3624ebb5560
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 23:25:12 2015 +0300

    lib: Added str_to_ino()

commit 11ea98b552d6d0f53ed8b5fff37bb54cf8dd0969
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 23:11:17 2015 +0300

    imap: NOTIFY SET STATUS didn't send HIGHESTMODSEQ in STATUS reponses when needed.

commit ce0d9d3daec7cbc2bd2c677999cb2b4ff22e5514
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 22:45:17 2015 +0300

    *-login: mail_max_userip_connections=0 was broken by f8ab4f979e92

commit 6ea145a99eeee923602f04d3c9183bbdba6cd190
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 22:25:57 2015 +0300

    cassandra: Changed default consistency levels to local-quorum.
    It is a much safer default than "one".

commit ce74395e2a932342e04fb682395bcce111574969
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 31 21:31:46 2015 +0300

    cassandra: Split consistency setting to read_consistency and write_consistency.

commit 87af299c8a8bbca798a479896f361163c9539437
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Aug 31 20:23:32 2015 +0300

    lib-fts: Add missing "j'" to French contractions.

commit 0004409e743fceb77bc8dec3dba0199d7e19216e
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Aug 31 14:24:54 2015 +0300

    Earlier in_port_t fix was ineffective due to one small detail.
    The new SET_IN_PORT_ZERO did not actually use the new net_str2port_zero() function.

commit c8eaee2ad6cc96e2ef42657f89d4404e674680b7
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Aug 31 13:33:26 2015 +0300

    lib-fts: Add UTF-8 unit test for lowercase filter.

commit 440b625484f3cc9d3ec0a7ba36fe3583aa90172d
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Aug 31 13:33:26 2015 +0300

    lib-fts: Add prefixing contraction filter.
    Filters away prefixing contracted words, e.g. "l'homme" -> "homme".
    Tokens to be filtered must be lower case. Only supports French in
    this initial version.

commit 4d811490cfd534bce54edddeefc7f488cc7c680f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 30 01:00:30 2015 +0300

    aggregator: Allow replicator_port=0 setting (fix to previous in_port_t changes)

commit 84296542cb39dd452da2c64b84f3d48422cb42fd
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Aug 30 00:46:32 2015 +0300

    Earlier in_port_t fix created problems with service listener configuration.
    Listeners are disabled with port=0, which was not allowed anymore.

commit 08c518f050eb243cd35ad5c10027cf1720edc503
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 30 00:42:16 2015 +0300

    lib-master: Compiler warning fix

commit ede750711f27ca9d9037a7ab9f016411b57f1ad9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    http-client: Added support for using an HTTP proxy running on a unix socket.

commit e48f289d2e5b2546a2c5dcc90f7ab624cc58cca2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Aug 29 14:42:49 2015 +0300

    Removed all invocations of strtoll() and friends.

commit 7b58c089a0711e5e874fbf24c03d890ed2eebd62
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Aug 29 14:31:51 2015 +0300

    strnum: Implemented many more numeric string parsing functions.
    Created macros for most of the implementation to avoid further code
    duplication.

commit c93aca832ee532010ead91b85fa9f614132e1be2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Aug 29 14:30:37 2015 +0300

    Removed all invocations of atoi().

commit 009217abb57a24a4076092e8e4e165545747839e
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Aug 29 14:26:30 2015 +0300

    Changed type of internet port values to in_port_t everywhere.
    Created special SET_IN_PORT setting type for internet port values.
    Created net_str2port() for parsing internet port values.
    Removed several atoi() invocations in the process.

commit b116c06e4d3609f07f1d9582a932ad3ea9ce7e15
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Aug 29 14:21:27 2015 +0300

    ioloop-epoll: Fix fatal epoll_wait() error occurring when there are only ios with no fd.

commit 62812c68a2086b900466efbbbdd49b1cdb7a38b3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Aug 29 14:20:57 2015 +0300

    lib-http: client: Added proper handling of 408 response status.
    This is treated as a special server connection close event, rather than a
    response to the last issued request.

commit 23152672e3ad7f3512c11df43e8dabba4fe6407d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 28 15:44:34 2015 +0200

    lib-storage: Added %{userdb:*} expansion to mail settings.

commit fd3994922cf234a59a83500933a0ac8f132c308d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 28 15:43:45 2015 +0200

    lib-settings: Added settings_var_expand_with_funcs()

commit 654b46078129456bda90c5eb18014fb2858c302e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 28 15:07:35 2015 +0200

    lib: If var_expand_with_funcs() function returns NULL, it should be treated the same as ""
    The previous behavior was to return "%{foo:bar}" as "foo:bar}".

commit 2dfd08e8aa16dfcc975d8a62bc8d20b2ef849d71
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 28 14:43:35 2015 +0200

    *-login: Added %{passdb:*} fields to login_log_format_elements

commit 89f9c7bf3cc041de11974af9ac45f543e9761444
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 18:39:58 2015 +0200

    doveadm fs delete: Support giving multiple filename parameters.

commit 414b2d3b63412c4bef6a4caa7a7222f3abbdbaba
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 17:38:12 2015 +0200

    dsync: Include mailboxes' full path in debug messages.

commit d1d6887e8cbbdc7c67904d18a15ee0c8ec401ed4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 17:35:17 2015 +0200

    imapc: Don't crash with mailbox_list_index=yes

commit 9b3565b09683b48f66de51aebb52786934d1c324
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 17:34:52 2015 +0200

    lib: Try fixing ec6e672a6e32 (ioloop timeout fixing)
    Previous code was broken at least when moving a timeout between ioloops.
    This is now tested and works.

commit 36f8309eee951bb860a8682d844951f00fcb6942
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 15:46:23 2015 +0200

    dsync: Fixed running with tcp/tcps destination.

commit 66e5a5a1bee411991ad08b6ee938e14d75941943
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 15:28:21 2015 +0200

    dsync: Fixed another crash with recent end-of-list changes.

commit 9c0c600b351ec8043f538026937d4273d11812a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 15:07:35 2015 +0200

    Reverted ec6e672a6e32 for now due to some bugs.

commit 1a1d00fd04bfcf8436b00b58d527e46b23523c9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 13:38:44 2015 +0200

    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.

commit 8c2c9a8647e5b18e97174967bcdeb11dc9237c90
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 27 12:33:47 2015 +0200

    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.

commit 72a7c4f2ba93a723e23c941369a2985d75f240c9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Aug 27 10:39:26 2015 +0200

    ioloop: Delay actual start of a new normal timeout until the next io_loop_run() cycle.
    This makes sure that timeouts will not expire before they get a chance to
    run.

commit ae9b70a446dccba3160fb0df332f84ef98825604
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 17:00:55 2015 +0200

    imapc: Fixed handling escape-char
    The current code should now handle all kinds of mailbox names correctly, including:
    
    ~/foo
    %7e/bar

commit d3e5a14ea363264dcc7640ca7226249d0c27a793
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 16:59:47 2015 +0200

    lib-storage: mailbox_list_[un]escape_name() can now be called globally

commit 33409f3448d16690d151aa86e13cfcb4704286b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 16:59:07 2015 +0200

    dsync: Earlier end-of-list change broke single-process dsync.

commit c892c8b591fa4e5d79e63ef9ffd9f4ca7c4aefbc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 15:44:45 2015 +0200

    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.

commit 1ff34185c13dffaab10e7691844ad7aec7c716d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 15:19:27 2015 +0200

    dsync: Added -T parameter to specify the I/O stall timeout.

commit 7abb6c8948a45a64ef0a37616099339ac241db40
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 15:05:06 2015 +0200

    dsync: If mailbox export deinit failed, the failure state may not have reached mailbox importer.
    The "end of list" was sent to the importer side dsync before export noticed
    the failure. This could have caused import to complain about missing mails.

commit 189f639bdf2845b1e8587db5dfb2aedc1c573aa7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 26 13:38:52 2015 +0200

    dsync: Added assert to make sure end-of-list isn't sent when brain has already failed.

commit 83228b3f9f6ee8c62a61902e0203af9760f7b9b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 23:20:49 2015 +0300

    imap: If mailbox state couldn't be exported for hibernation, log also the mailbox name.

commit c12d96f12cac9af464ab2e59046bd59b0c06b4ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 23:12:51 2015 +0300

    login_log_format_elements: Added %{listener} variable to expand to the listener socket name.

commit e64b3633c9d6338ce659744030ba4323140953ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 22:39:16 2015 +0300

    example-config: Updated mail_attribute_dict comment

commit f3fa33be556fd5199dcc856b02b58128bdf693a5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 18:32:23 2015 +0300

    imap: Fail silently if selected mailbox format doesn't support GUIDs.

commit b4318afaa66e64be5edecef710d66f896d4fc296
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 18:27:44 2015 +0300

    imap: Fixed hibernation to work with non-TCP connections.
    Mainly meaning UNIX socket connections from login processes, which are
    proxying TLS connections.

commit 03435aae7b6634f84102e57d131e7dfd13f12b83
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 17:03:19 2015 +0300

    lib-http: Added more debug logging.
    Patch by Stephan Bosch.

commit 639ba5ff2ba668b41b8a8102ce626d0b58d384ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 16:57:57 2015 +0300

    lib-imap-client: Allow reconnecting to IMAP server even if there had been no idle moments.

commit 1e95710be50faaf98cc8645901413b7909677035
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 16:55:00 2015 +0300

    lib-imap-client: Removed unused pending_box_command_count

commit 14fd61e73569f356c57ccc253cfbbb6d77cccdf9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 16:50:17 2015 +0300

    imapc: If FETCH commands fail, have imapc_mail_fetch() always return failure.
    Earlier it may have returned success and imapc would later complain about a
    missing FETCH field.

commit a350c75b6e22e6e8f246964924d9a4715d16af08
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 25 01:07:04 2015 +0300

    lib: Fixed io_loop_extract_notify_fd() to compile with kqueue.

commit 13f4d4d4a69d7dff2f71363d189d048abb04b6c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 18:06:42 2015 +0300

    lib-master: struct master_service_connection.name must never be NULL, use "" instead.
    Fixes crash at least in auth process when there are inet_listeners without
    names.

commit 472f3cbaaa2ba84e2241da0747630d391e120c84
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 15:33:36 2015 +0300

    dsync: Compiler warning fix to previous change.

commit eb729968680f4a36616ce8c60848c3b6c407f791
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:59:52 2015 +0300

    dsync: Fixed memory leaks when importing attributes whose values were in istreams.

commit f43b035d7f97bf89115d422755c14356b06ea737
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:40:11 2015 +0300

    doveadm backup: Fixed assert-crash due to duplicate 'R' in getopt args.

commit 8b9a69edc162362d47922521161e2cfa07218688
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:32:52 2015 +0300

    imap: Compiler warning fix to imap-hibernate commit

commit 5ef28f68edef46f69961b19b7c1dcd8ec5a955e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:13:02 2015 +0300

    Added imap-hibernate process for gathering IDLEing imap processes.
    imap_hibernate_timeout setting controls how quickly the connection is moved
    from imap process to imap-hibernate process.
    
    Some IMAP extensions like NOTIFY, SEARCH=CONTEXT and COMPRESS aren't
    supported yet.
    
    There's also a new X-STATE command, which can be used to export the current
    IMAP connection state to a string and later on imported to get back to the
    original state (a quick resync feature for IMAP clients). However, this
    command is disabled for now due to the current code being unoptimized for
    untrusted input.

commit 179d6dfa02211b7508238bd017f0ec4297011d95
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:14:59 2015 +0300

    lib-storage: Added mailbox_watch_extract_notify_fd()

commit dad206f8341603837b7de4309a7c195da26cf9aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:02:52 2015 +0300

    lib: Added io_loop_extract_notify_fd()

commit b2fa9f195447423e4a55ce1e7850d33c3a100c91
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 14:01:04 2015 +0300

    lib-storage: Added mailbox_recent_flags_set_uid_forced()
    This allows adding recent flags to mails whose UID is lower than the
    existing recent mails.

commit 192488b417fd4411210c616eaf50f6e8c0c5f916
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 13:57:03 2015 +0300

    lib-storage: mail_storage_service_user_free() needs to update log prefix if current user is freed.

commit 872876c29ab50b4d3b4aeaac65546f21bfaa71f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 12:56:07 2015 +0300

    lib-storage: mail_user_var_expand_table() may not have returned %{auth_username} correctly

commit c5f932968281763df360b9c97cef60f5f80d5e3d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 12:14:40 2015 +0300

    Use io_stream_get_disconnect_reason() instead of duplicating its code all over the place.

commit b554101f70e3f16380903c9a4ee87a2c96c1d322
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 12:10:08 2015 +0300

    lib: Added io_stream_get_disconnect_reason() to iostream.h

commit 8d54ab986cb47be90ffe4542393659a5b68369bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 24 12:04:55 2015 +0300

    lib: connection_disconnect_reason() now returns the full iostream error string.

commit ef8187766609974091c2e92ed375a4bcfd1d28c3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 20 16:04:48 2015 +0300

    imap: Fixed memory leak in SELECT QRESYNC error handling path.

commit 695332dede7f4d0b17b13321acd867602b63b021
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 21:41:55 2015 +0300

    imap: Code cleanup
    Keep client_add_input() functionality separate from
    client_create_from_input(). Also this way temporary buffer doesn't need to
    be created to add the input in login_client_connected().

commit fefe9afdb0fb4cfc70afe3006ec88ba09ab3762d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 21:31:56 2015 +0300

    lib: Log notify IO leaks when ioloop is destroyed.

commit f6845101f2d6b8068e352a0b5a0d4bb04e20ad74
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 21:24:50 2015 +0300

    lib: io_add_notify() wasn't setting struct io.source_linenum

commit 495a74cd17afdb584ef2c6bd50ea77a8d0905121
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 20:49:12 2015 +0300

    imap: If command has no imap_parser, don't crash when freeing the command.
    All the current commands have a parser though, so this doesn't actually fix
    anything.

commit 85e2264f7d3b1a336ac5066c99130414dfc77902
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 16:50:10 2015 +0300

    lib: inotify doesn't need to watch for IN_CLOSE
    This doesn't indicate that the file was modified. We don't care if some
    reader accessed a watched file.

commit 7e2671b295927b461adc8b6c4ed6a1c4761fb323
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 15:12:09 2015 +0300

    lib-storage: Moved index/index-mailbox-check.c code to mailbox-watch.c
    This changes the API, but adds backwards compatibility macros.

commit 88e52b9ca10bdf02766f79925ec182fc1dd06bd1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 14:47:51 2015 +0300

    Removed support for dnotify.
    Everybody should be using inotify by now.

commit bb464f79a131e13bb1d10ef0c7640dd1496a86a6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 14:33:09 2015 +0300

    pop3: Added %{deleted_bytes} variable to pop3_logout_format

commit febb892a3182cc4df14e1a6c91dd2acb75a17c77
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 14:30:09 2015 +0300

    pop3: If transcation commit failed at QUIT, don't log any messages as expunged.

commit f3739947c8a5f8584fe630ec138058c5bd53184f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 13:41:54 2015 +0300

    lib: kqueue notification should trigger also on file renames.
    For example if dovecot.index.log is renamed to dovecot.index.log.2, we
    should notice that since there's now a new dovecot.index.log containing new
    changes.

commit a24e1400bd82c2a56598135aec08eb5074a18a51
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 13:40:35 2015 +0300

    lib-storage: Code cleanup - Don't keep a separate notify_ios list.

commit 817d027593510c3ba70ad542ce0011f5f6916d1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 12:56:55 2015 +0300

    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.

commit aeba69ffaab7f2c435974193cde89624719b9956
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 19 11:34:36 2015 +0300

    *-login: Removed dead assignment to make static analyzer happy.

commit 2e51f501c907baeb52cddb234a2769f59f5350ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 23:20:35 2015 +0300

    fts-solr: Flush Solr indexing HTTP requests every 1000 mails.
    This avoids the HTTP request from becoming too huge.

commit 1a115c1eb46e9103f81228dde272852cb78ed4b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 23:20:07 2015 +0300

    fts-solr: If HTTP request fails, log the status number as well.

commit 0685853771a658d42174ed82763acc1626222032
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 23:17:47 2015 +0300

    fts-solr: Fix to previous memory leak fix - second request was failing.
    Duplicated data was sent to Solr because string wasn't truncated.

commit 5e19da15f5d430275c859ae97f870d4146e5c5f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 23:07:19 2015 +0300

    fts-solr: Fixed memory leak when indexing multiple mailboxes in one update context.

commit 3d1edb8e3a07d91860cc6b4b3cec8282caa70891
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 23:02:01 2015 +0300

    lib-http: client: Fixed handling of request timeout.
    It was inappropriately active when the client needed to take action.
    This showed particularly with large payloads sent using
    http_client_request_send_payload().

commit acff3d8f00432763d57ee540f667a7df4c828bdb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 21:10:41 2015 +0300

    lib-http: Previous test-http-client safe_memset() change broke in some systems.
    Since there's no easy way to fix this in Makefile.am, just do it by actually
    using safe_memset()..

commit 5c46ec74169e03b76ab1e55739aa5386c4f6f107
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 20:59:25 2015 +0300

    lib-http: test-http-client may have failed to load SSL library plugin.
    safe_memset() wasn't necessarily compiled into test-http-client. This is a
    bit kludgy way of just adding it. Another possibility could have been to use
    -Wl,--whole-archive with GNU ld, but it's a bit tricky here.

commit 6a62f58e2b95944e0b427f58843e1a8749c946bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 20:54:47 2015 +0300

    lib-http: test-http-client double-freed memory

commit 4356563bc3261a4043ec736cb1009373d37a617c
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http: url: Implemented http_url_clone_authority() to clone authority part of existing HTTP URL.

commit 92c2272787b74eb000f05a926e9103a25a6a0dc0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http: url: Implemented functions to copy/clone URLs including the userinfo part (normally skipped).

commit d01c7c7dfbcbb350ac9e23c3434ef85a7de6b7df
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http auth: Implemented cloning/copying of credentials struct.

commit 4c4c4a740bbb1b674d4b0dae009d1919f8ad96b7
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http client: Implemented proxy authentication using Basic scheme.

commit 91a4eaad6cae9b59820a1fa3ad42ef7aea7d1e67
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http client: Added inline function to check whether request is directed at a proxy.

commit 30f35cf5d1e1374d7fab4231e86144fc106a8e79
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http client: Implemented simple authentication using Basic scheme.

commit fb2098157791f20fca11e1673cdf5386806fd885
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http client: Removed useless assignment of request->authority in http_client_request_redirect().
    It is assigned again in http_client_request_do_submit().

commit 8aa91c0f70ea2893d82a16a8b8d0171caccce74c
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http client: Minor whitespace cleanups in struct http_client_request.

commit af6baaa25891ccba938ad16519a388ee84308c72
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http: url: Make sure destination url struct is cleared in http_url_copy().

commit 79fa0267d03997f5b9d86a38949119f46c11a35f
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http auth: Implemented client-side handling of basic authentication scheme.

commit 68adc380ccd09c5acabb6d3a6d85d4264b193729
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http auth: Fixed assertion on the validity of the token68 encountered during conversion to string.

commit 06c6330d64196161cfce3efa0f6c90bbf4e348ad
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http auth: Made second argument of http_auth_create_challenges() const as it should be.

commit 77f3d7fc65d4335e85faf088f056d462df17ffd5
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 18 20:39:24 2015 +0300

    lib-http auth: Fixed segfault occurring in http_auth_challenge_copy() when there are no parameters.

commit 8761992b5aa05862e7ec3a460cdc17af41a4a0f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 20:39:06 2015 +0300

    lib-master: Added support for HAProxy protocol.
    Patch by Stephan Bosch - with some small changes.

commit 71056e0f5e1f68cb9ac002a7827eb98435c40d62
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 20:23:45 2015 +0300

    master: Changed passing of listener settings from master to process to be more flexible.
    This is needed to allow adding new listener settings, such as `haproxy'.
    Patch by Stephan Bosch - with some small changes.

commit a05fec120ecd8c4ed6331c42100cba42adf22893
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Jun 15 18:50:53 2015 +0200

    lmtp, *-login: Use ip/port values from struct master_service_connection instead of from the socket.
    This way, a proxy protocol like HAProxy can transparently override these
    addresses with what is seen by the proxy.

commit 72f21884c0bb9bb26edad63623427ac2120901ea
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Jun 15 18:50:53 2015 +0200

    lib-master: Added local and real IP addresses and ports to struct master_service_connection.

commit 8ab32a83ca0ead65c5670f337ca3a4d7a0fd0ed1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 18 20:03:28 2015 +0300

    lib-master: Moved connection accepting code to its own functions.
    No functional changes.

commit 42562240cadb78223a6463755711141532353538
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 17 19:31:42 2015 +0300

    lazy-expunge: If MAIL_FETCH_REFCOUNT fails because mail is expunged, ignore the error.

commit 0f277a064942b89141caa40a8b2184fe83dc6fe7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 17 19:28:55 2015 +0300

    lazy-expunge: If MAIL_FETCH_REFCOUNT fails, log the storage error.

commit 7b3f0e0a464ec0632b9a831b58bce16c2f85ea1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 17 14:25:59 2015 +0300

    lib-fts: Minor cleanup - initialize err with U_ZERO_ERROR instead of 0.
    They're the same though.

commit 3a54211bd6c4dc3f8687c16020770551cf83a548
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Aug 17 13:18:03 2015 +0300

    lib-fts: Add Unicode TR29 rule WB5a setting to tokenizer.
    Splits prefixing contracted words from base word.
    E.g. "l'homme" -> "l" "homme". Together with a language specific stopword list
    unnecessary contractions can thus be filtered away.
    
    This is disabled by default and only works with the TR29 algorithm.
    Enable by "fts_tokenizer_generic = algorithm=tr29 wb5a=yes"

commit bcc55b1547f2b23fc98a1d0ef3c9b1f85912a902
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Aug 17 13:15:11 2015 +0300

    lib-fts: Add note about possible additional apostrophe.

commit d1623103c73ed7dd8b15b2060ad656fddbed7b46
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Aug 17 13:14:44 2015 +0300

    lib-fts: Update comment on tr29 rules.

commit ff32ec7f6c1b59bc1afe24fe0e68045bf715c9f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 17 12:56:25 2015 +0300

    indexer: Removed counting worker processes as service clients to prevent idle-kill.
    lib-master handles this internally now. Also if the max client count was
    reached, we assert-crashed:
    
    indexer: Panic: file master-service.c: line 672
    (master_service_client_connection_created): assertion failed:
    (service->master_status.available_count > 0)

commit 2f94ca6b0f70641fe31c8e1f93404ca0df8bb289
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 17 12:53:52 2015 +0300

    lib-master: If idle-die callback returns FALSE, notify master that we don't want to die.
    This avoids the master thinking that we're ignoring its idle-kill signal and
    logging an error.

commit b17d7bbd284df42e6aeb74f8de0f73ee07cfccb6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 17 12:51:43 2015 +0300

    lib-master: Code cleanup - split master_status_update() to two functions.
    No functional changes.

commit a578aaf5712cc1e9897e1879b4a7a82f92b2c50d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 16 13:22:14 2015 +0200

    lib-fs: Moved enum fs_op from fs-randomfail.c to fs-api-private.h
    These are useful for other purposes as well.

commit 8f8858ba3f4b14d3f651e091b5790f633e7f9fe5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 16 13:17:06 2015 +0200

    lib-fs: Fix to earlier write_stream_finish() commit
    2f1378beeef6 accidentally reversed == and != check.

commit 1445b15b4d2d69a74ffa1cbe47e8e6558d72f8b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 16 13:14:11 2015 +0200

    lib-fs: fs_copy*() didn't update metadata_changed correctly.
    It was supposed to be (only) set when the copying actually finished.

commit 825e349a826ee2a984069edf394460bed5bc3426
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 16 13:10:48 2015 +0200

    lib-fs: Small code cleanup for handling write_stream_finish()

commit b76b97a5b240ecfdd38d34645caa930d0de2ff27
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 16 13:07:21 2015 +0200

    lib-fs: fs_write() didn't update stats.write_count correctly.
    If backend implemented asynchronous write(), the write_count was updated multiple
    times. If backend didn't implement write(), then it was counted twice.

commit 1132d309c687c9a02c79b816d75b7a5e1ae7275a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 15 12:14:35 2015 +0200

    dsync: Fixed syncing a recursive delete of mailbox with children.
    For example if 1/2/3 exists in both sides and then 1/2/3, 1/2 and 1 are
    deleted from one side, the next dsync would delete 1/2/3, but leave 1/2 and
    1 undeleted.

commit 34256c0245613363d07db47d3916fc50547fe401
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 15 12:05:34 2015 +0200

    dsync: If mailbox is already deleted locally, don't attempt to delete it again.
    This only caused an unnecessary desync warning / exit code.

commit 3a63761473624fa4c126f6928b27195134a32b1d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 12 12:52:06 2015 +0300

    pop3: Added pop3_delete_type setting with values "default", "expunge" or "flag".
    This is related to pop3_deleted_flag setting. The main behefit here is that
    you can now hide messages from POP3 by setting pop3_deleted_flag, but
    without changing the actual deletion behavior by setting
    pop3_delete_type=expunge.

commit f1306b3d242963588c97b35d16973c4198bcae7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 11 14:27:01 2015 +0300

    lib-fts: Install headers on make install.

commit 67e599e108ac863de494d594d1418ec9d8aa6195
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 10 15:39:50 2015 +0300

    rawlog: Removed unnecessary/duplicate 'o' from getopt_args
    This caused assert-crash at startup after ff17864ba6e0.

commit 809751b9a91fa0d864125026433e6b4e3afdbee8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 10 15:35:43 2015 +0300

    lda: Removed unnecessary/duplicate 'k' from getopt_args
    This caused assert-crash at startup after ff17864ba6e0.

commit 48ed692c47e9493c37040a30e674887fcbc784ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 9 21:54:33 2015 +0300

    man: doveadm-import -s description updated
    The previously mentioned subscriptions-file is specific to Maildir format.

commit 22b88a9dd1e60537373bf11606a22ba648572136
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 15:32:28 2015 +0300

    doveadm: Make sure we can't accidentally add duplicate getopt args.

commit 9b0f6b90ff8d1d6efd718b0d7cbe01b2454e9fd6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 15:32:14 2015 +0300

    lib-master: Make sure we can't accidentally add duplicate getopt args.

commit 2759d14523ad89edde4d524ca25b0e13a533b9c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 15:30:26 2015 +0300

    stats: Added session=<ID> filter to doveadm dump session|command

commit 7fbad92f3bb7a8e3d144aac81449608661211ab4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 15:13:34 2015 +0300

    dsync: Renamed -F parameter to -O to avoid a conflict
    doveadm mail commands already had a generic -F parameter.

commit e99ffa6abd201ca6ebfdf609bb24e48327a86450
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 13:32:02 2015 +0300

    fts-solr: "highest UID for mailbox" lookup was actually returning "highest UID for user"
    If the default operator was OR instead of AND. This affected indexing mails
    in newly created mailboxes.

commit 29cda2d6eb57b7fb65a55115ea8bcb6ab6938477
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 12:58:30 2015 +0300

    lib: istream-timeout could have triggered timeout too early after long-running code.

commit 146f6f85db29296edb42cfbee135cd816117b876
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 7 11:31:29 2015 +0300

    fts: If Tika returns 500, retry it a couple of times and then fallback to ignoring the problem.

commit 6b757d07f76e4bdcdd59f1dc5c36398d5c00ba0c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 6 22:36:20 2015 +0300

    lib-storage: Make sure tryagain_r is never randomly set in mailbox_search_next_nonblock()
    This infinite looping in some fts plugin failure situations.

commit 38db7268f7331d0c857a6b748f8af71cd6683028
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 6 12:17:45 2015 +0300

    stats: If process was used for multiple sessions, some of the fields weren't set correctly.
    For example the second user's disk_output was increased at startup by the
    same amount as what the previous user's last disk_output value was.

commit f0d09be40bd0c4423873128ae2f88a4020075dc4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 4 11:31:17 2015 +0300

    lib-storage: escape_char and broken_char settings weren't copied on mailbox_list_create()

commit 668f92ab0ef7aa42445716d653c5673ed874ab65
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 20 10:33:39 2015 +0300

    lib-storage: Another fix for doing multiple changes via mailbox_attribute_set/unset

commit 5199b576507dab5a82100e450920899ea21b3e43
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jul 19 16:45:23 2015 +0300

    lib-mail: Fixed message_part_to_idx()

commit cd889f59cdd1be8eb55c2d0ec2b66dfc0efc88d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jul 19 16:21:04 2015 +0300

    pop3-migration: Compiling fix in some systems

commit 4a9bbf81af2eba25653bbc4f744cc35e7bc9bb34
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jul 19 10:57:26 2015 +0300

    lib-storage: Fixed doing multiple changes via mailbox_attribute_set/unset()
    Only the last change was committed and the earlier changes were just leaking
    memory.

commit b3070aca2aa0dbdcc7f30e6e2bb1f0455127a343
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 16 19:37:22 2015 +0300

    pop3-migration: Fetch physical sizes instead of virtual sizes so pop3c uses LIST
    4bebfbb32410 caused the fetching to break entirely.

commit 7e8bfb5b0af9606f131fc440e61f3752da335ac9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 16 18:10:12 2015 +0300

    pop3-migration: Use LIST instead of RETRs to get the messages' sizes.

commit bca734e149473b13bb4d454865e9e23d7a05ca10
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 16 18:09:17 2015 +0300

    lib-mail: Updated test-message-header-parser unit test

commit e18e90938ffd9e31c796c405404be0b7dcd5c807
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 16 18:08:40 2015 +0300

    pop3-migration: Truncate header if there's line containing only CR(s).
    This fixes matching IMAP <-> POP3 messages when the servers behave
    differently.

commit 7faf475a2faea9ac291898a6593870b01fbc30d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 14 15:08:24 2015 +0200

    pop3-migration: Show the first message's number and UIDL which wasn't found from IMAP.

commit e048e63fec8d21d4af0fd9d27dd3fe5dcedf18e6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jul 11 12:16:56 2015 +0300

    lib-storage: If mailboxes' vsizes are used, keep them updated also in mailbox list index.
    This allows looking them up quickly without opening the actual mailbox
    indexes.

commit c16bf6335c393c00465903f7a46ce2b7ceb6726e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jul 11 12:14:48 2015 +0300

    quota: Use MAILBOX_METADATA_PHYSICAL_SIZE for recalculating mailbox's size.

commit dae42444ac716f397a41f6f72c2581f304bb6e5b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jul 11 12:11:48 2015 +0300

    lib-storage: Added MAILBOX_METADATA_PHYSICAL_SIZE
    If backend always uses the same virtual and physical sizes, this is
    implemented via the MAILBOX_METADATA_VIRTUAL_SIZE code. Otherwise it
    searches all the messages and sums up their physical sizes.

commit 382f23541ce657be87b079abd6784d376fb4eb43
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jul 11 12:06:44 2015 +0300

    lib-storage: Moved vsize_hdr_ext_id to struct mailbox for more global access.

commit 2c70086138fe7ac9abf52cd4223c224fe0bbb488
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jul 11 12:03:56 2015 +0300

    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.

commit 2c759e5193bb1013513eb96768f43693d2ffc963
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jul 11 12:00:38 2015 +0300

    lib-storage: Moved mailbox vsize calculation code to its own file.
    No functional differences.

commit 67d4da9d5d78bb83b3413acff77f560382fe85df
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 3 13:55:17 2015 +0300

    quota: Even if quota counting fails, commit the mailbox transaction.
    The only changes in the transaction are changes to dovecot.index.cache file
    and we don't want to rollback those.

commit e7c8048ee5e707cf7c287f0e3ab60343fadfdf58
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 3 13:54:18 2015 +0300

    quota: Fixed error handling in quota counting code.
    Errors weren't logged and some error checking was missing.

commit c5c244da999da01465faea813031c96f96ff1c9f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 2 11:06:04 2015 +0200

    mdbox: Make sure rebuilding doesn't try to add a copy of the message too many times.
    Currently it just silently overflowed the 16bit refcount, which caused
    problems later.

commit 5a3ff8dc39b2a63b2b214a9365dc77d881b1ebe9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 30 14:26:00 2015 +0300

    istream-zlib: Don't overwrite parent istream's error on gz header/trailer read errors.

commit c4d1ceab4458cf894d83d5634059bc1fc7c680ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 30 13:58:15 2015 +0300

    doveadm: Added doveadm_username to specify the username for authentication.
    The default is still "doveadm" and the server side doesn't currently support
    anything except "doveadm".

commit 2c0f1cb7a0564d48ec43c7315ea46ea38d2abd19
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 30 12:18:08 2015 +0300

    istream filters: If parent's i_stream_stat() fails, copy the stream_errno.
    This doesn't actually change any functionality yet, since most
    i_stream_stat() callers aren't using i_stream_get_error().

commit e17d72cec1c75554483d692edd687b411526f312
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 30 12:17:35 2015 +0300

    lib: istream_file.stat() fails, set stream_errno and error string.
    For now we'll also keep logging the error since everybody isn't using
    i_stream_get_error().

commit ffc2b0165fdad6f4cf1c68f813b4b2c3685bfce2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 30 11:26:47 2015 +0300

    master: When sending SIGTERM/SIGKILL to processes, log which services they were sent to.

commit 0a9d52be3f50f9440e59c2797ad440e37b3ed8f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 29 20:25:15 2015 +0300

    imap/pop3-login: If auth failure reason already begins with [resp-code], don't prefix it with another one.

commit 5291b4f7a2691bb04d151c4a8137401fa98af355
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 29 13:36:38 2015 +0300

    lib: Fixed unit test with big-endian CPUs.
    Patch by Michal Hlavinka / Redhat

commit 55e8c2dec7a38c71a6f38a8057846706c5743644
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 29 13:06:03 2015 +0300

    lib: Fixed read buffer overflow in wildcard_match*()
    Patch by Hanno Böck.
    
    Note that input to wildard_match*() is always coming only from trusted
    sources, like config file or doveadm commands.

commit 29ffe706625d0d592b05855fe4e99311c916701b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 29 12:05:25 2015 +0300

    indexer: Properly fix crashing at deinit when there are pending requests.

commit d03ffc6497b6e6c84bfce0915446e9f856fa0ac9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 29 12:00:05 2015 +0300

    indexer: Reverted 5945ba000a45 - it didn't really help

commit 1d69f58dbad41e31e2196d6e26bec6da6f81150d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 29 11:44:00 2015 +0300

    indexer: Fixed crash at deinit if there were still queued requests.

commit 2d0c822bc1541a01f046a3f5d013644df2db71d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 24 07:54:35 2015 +0200

    imapc: Fixed check to see if prefix!="" in previous commit.

commit db3325d02737da0df7460c9ae56c0d37e8e6466d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 23 11:31:21 2015 +0200

    lib-storage: Set MAILBOX_SELECT/NONEXISTENT for namespace prefix even if no flags are wanted.
    This fixes doveadm commands attempting to access such nonexistent mailbox
    prefixes.

commit 7882e10fda89fa20148b23415110123819b6662b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 23 11:30:27 2015 +0200

    imapc: Don't return mailbox list entries that would result in name="".
    So basically don't return namespace prefix if imapc_list_prefix="".

commit 9a717bf84366bdd2ee25f95c49ffc911999dbd1f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 23 11:12:38 2015 +0200

    imapc: If login is aborted at deinit, don't log an error.

commit c1a2ab40974dc48ca68b9fc58799b01bbcb9520b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 23 11:02:20 2015 +0200

    imapc: Don't automatically login to IMAP server for list=no namespaces.

commit 2ff548b46061f984def8d36736745333b8405a31
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 18 11:10:05 2015 +0300

    lib-http: http_client_request_send() failure returned already-freed error string.

commit 976459a13f69fab7eabf6dbf0442a5fb697a61b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 16:37:37 2015 +0300

    fs-posix: Hide temporary files from fs_iter_*()
    Those could exist just because another process is just using them to create
    new files to the directory. Although they could also be older files caused
    by earlier crashes. It would probably be a good idea to have fs_iter_*()
    delete the old temporary files automatically.

commit 96d85fb3606d13a38dac1b2def55eff414b2b31e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 14:25:48 2015 +0300

    virtual: virtual_uids weren't always set to all mails, causing missing mails and crashes in search.

commit a5a4433751bb3dce9c870ea95e1b69efe697d417
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 14:24:06 2015 +0300

    virtual: Added more asserts when DEBUG is enabled.

commit cc7e2c3903f8fadb7474f09665b2280463850beb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 14:23:38 2015 +0300

    virtual: Added more asserts.

commit d4fbb3317303ce8e2b2371ec186762a3d5ed5a41
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 14:04:42 2015 +0300

    fts-solr: Avoid sending too large queries to Solr due to listing wanted mailboxes.
    This is mainly a problem if there are a lot of mailboxes and "All Mails"
    virtual mailbox. For now hardcoded to send max 10 mailboxes in the query,
    afterwards it just returns matches in all the mailboxes and we'll filter out
    the unwanted mailboxes.

commit 57cefeb34a23755f5fbd8ea35d36e621f1200a15
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 13:55:37 2015 +0300

    fts-solr: Removed assert to fix indexing multiple mailboxes.
    fts plugin may want to do last-uid lookup for a new mailbox while we still
    have posting open for the previous one.

commit ae19dcf6100757e3efd850c766ad5e89b2af5b52
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 13:12:37 2015 +0300

    fts-tika: Fixed crashes when indexing larger attachments with fts-solr.
    We were mixing ioloops without switching back to the original ioloop in the
    middle. Also io_remove() at deinit caused another timeout to be added, so
    this needs to be done while original ioloop is active or we'll just leak the
    just-added timeout in io_loop_destroy() and crash later.

commit 30605b7bd82acb92cca47b080636757bf9d02a73
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 12:22:17 2015 +0300

    lib-fs: Removed redundant o_stream_nfinish() calls

commit 4244105be4eee427a90983d17070b438f6e2cdec
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 12:21:52 2015 +0300

    lib-fs: Call o_stream_nfinish() automatically for all backends in fs_write_stream_finish()
    Otherwise each backend needs to do it internally. fs-metawrap for example
    was missing this and causing assert-crashes.

commit 03e0be24656823c795dfadccf68bbeeefa6fb772
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jun 17 11:42:53 2015 +0300

    lib: test-data-stack - simplify #if-ing out of DEBUG-only fatal test
    With no canaries, nothing can be tested, so just reduce this to a trivial
    1-line return on the non-DEBUG case.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f4a820824229d5b25736fe3a2794e4767d8b2cfa
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jun 17 11:42:30 2015 +0300

    lib: test-data-stack - ensure t_push() and t_pop() are balanced in fatal tests
    If the t_pop() unexpectedly succeeds, we won't want to do another one upon
    entering the function again.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1cd595423d8bd54a22c376ee3db5c2f50a96f462
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 17 11:31:02 2015 +0300

    auth: Added allow_real_nets setting.
    The difference to allow_nets is that it matches against the connection's
    "real IP" rather than what the connection told was the original client's IP
    address (%{rip} vs %{real_rip})

commit 4487c66123ca4830f8afbf4efcd7a260848d0e05
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 17:19:12 2015 +0300

    lib: Added unix_client_connect_msecs setting to connection API.

commit c1d99776b50ef1d65b59c6c14b328a84abc1157e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 16:56:08 2015 +0300

    lib: Compiler warning fix for test-ostream-failure-at.

commit 5a441a6d97225cbdc67dad7bdd80de3c7bfedaab
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 16:40:29 2015 +0300

    lib-fs: Added "randomfail" driver.
    Using this in front of fs drivers allows randomly injecting failures. For
    example:
    
    mail_attachment_fs = randomfail:all=10,read=30,read-range=2000-3000:sis posix
    
    This means that all FS operations have a 10% chance of failing, except reads
    have a 30% chance of failing. If the read fails, it'll fail somewhere
    between offsets 2000-3000 (the default is 0, so it'll fail at the start of
    file).
    
    The supported operations are: wait metadata prefetch read write lock exists
    stat copy rename delete iter. "all" applies to all of them.
    
    The supported ranges are: read-range, write-range, iter-range.

commit 9294b9ad2eb112258c247906b53010664f84e57b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 16:22:18 2015 +0300

    lib: Added o_stream_create_failure_at() to inject EIO at given offset in ostream

commit 289bb39856d74484c1622d096922acf126dd90fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 16:21:56 2015 +0300

    lib: Added i_stream_create_failure_at() to inject EIO at given offset in istream.

commit 85dd5fe0b93fe37581ba9e3689ef480fad13c464
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 14:12:59 2015 +0300

    dsync: If we stop because of a signal, log a warning about it.

commit eff34528733a7893b2914a26023aac227ef4ae7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 14:12:33 2015 +0300

    doveadm: Added doveadm_killed_signo()

commit 44ca7644e6df9e5ce7e7d0cc3767f63153c10bd7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 00:29:07 2015 +0300

    fts: Avoid expanding mail_search_args multiple times (for optimization & crash-avoidance)
    Primarily this fixes the crash:
    
    index-search-result.c: line 132 (index_search_result_update_flags):
    assertion failed: (result->search_args->args == &search_arg)
    
    It could be triggered by:
    a search return (update) body body seen
    b store 1 +flags \seen
    c store 1 -flags \seen

commit 0084f25dd9c184f68e7a06dd2e01d4a0d31a7a93
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 16 00:16:42 2015 +0300

    fs-posix: fs_copy() didn't work with prefix= parameter

commit 15595e862bca2898610565a0a0fa69e9dad37ab8
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:55:03 2015 +0300

    lib-stats: fix tristate-int vs. bool return value confusion
    -1 was being silently converted to true. However, this was an error condition.
    
    The callers don't need anything more complex than a bool, so kill the int.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 085a87d32bef6e3d565b4f9f157eccc96929a193
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:55:01 2015 +0300

    lib-fts: use NULL rather than 0 to shut up sparse
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ff060dcf76798701c0d1386717096062ff5cf9a8
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:54:58 2015 +0300

    director: explicitly mark _disconnect() helper static to match proto
    No functional change, compiler would not have exported the symbol, this
    just shuts up sparse.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit b5439deff8f1e1529220a6cb348c83963ab6a433
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 15 14:51:46 2015 +0300

    fs-metawrap: If written file unexpectedly shrinks, return error instead of assert-crash.
    This shouldn't be happening, but we can't fully control it so an error is
    better.

commit 4107ad482be1200251ae1d4c40ca5c54120af855
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 15 14:49:46 2015 +0300

    fs-metawrap: Don't assert-crash when writing an empty file.

commit 998e17137dc747de4daf4ab56a12f9a237cf3cb6
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Jun 15 14:35:25 2015 +0300

    lib-fts: Fix comment in fts-filter.h

commit 8549b59aa3499ddf0b7b59bc2e083933ebbb4f1f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:31:19 2015 +0300

    lib: test-failures - tests get/set handlers and the various log levels
    Also indirectoy tests the new lib-test test_expect* family.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1b3a9b9e7e51e526065a9858b806b35c81cb4b6c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:31:19 2015 +0300

    lib-test: test_expect_error_string() to match a single known message
    This gives us very fine control over what is acceptable as an expected warning.
    Alas you have to do it for each message individually.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7d442a685dd22588aceb75e630b69e28357acaae
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:31:19 2015 +0300

    lib-test: let tests invoke i_warning/i_error behaviour
    Error-handling paths should be testable too. Permit a test case to register
    that a known number of warnings/errors are to be expected, and to verify
    that those warnings did occur afterwards. Too many messages will fail the
    test exactly as it did in the past, they're unexpected messages. However,
    too few messages will also cause the test case to fail.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 04e7cfc5e641c9431d3deb718b1064ad56fb0bc2
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:31:19 2015 +0300

    lib-test: flush test-assert failure messages
    Diagnostic output to stderr may overtake these stdout logs if the streams
    are combined by the shell or on the console. fflush() might help realign
    them.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fdc468280e23ddd3a91a0539e7a48ba9c8a60d27
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 15 14:25:07 2015 +0300

    lib: array - permit array_swap with uninitialised arrays
    Before initialisation, all fields are blank, so the element_size field
    is not the actual size, and the i_assert would fire.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ea91861234475257f436dc07925f80cf4ac32b71
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 13 17:05:49 2015 +0300

    lib-index: Added mail_index_ext_register_resize_defaults()

commit b50234708ad651e98a4198e1b910106b279aae32
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 13 16:46:06 2015 +0300

    cassandra: Commit failures returned an already freed error string.

commit 98add73ebcec199c04a9b243190f244c216c30e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 13 15:10:23 2015 +0300

    lib-fts: Removed unnecessary data stack frames from test-fts-filter.
    They are already added by lib-test/test-common.c

commit 0df566822360dd8ca963864a51a8bd56054c3331
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 13 14:36:43 2015 +0300

    config: Added hook_config_parser_end for plugins.

commit 28c669e01da03d36cef8f64a0eddc000c47befd8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 12 15:14:52 2015 +0300

    doveadm mailbox delete -r: Delete all mailboxes when empty mailbox name is given.

commit f07e311812e0bc77760f321e3b6329ba5f41ce53
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 12 13:02:08 2015 +0300

    lib-fts: Don't crash if fts_icu_*() are used after fts_icu_deinit()

commit b356019bca27927bed2995e55aa6bfea756cc776
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 11 19:21:16 2015 +0300

    lib-index: Avoid writing tail offset update to transaction log if it's not necessary.
    This should avoid extra writes that do nothing but update the tail offset.
    mdbox's map requires this behavior, so disable it for it. For others it
    might cause the next sync to read more data unnecessarily, but it should be
    worth the extra cost of write most of the times.

commit e1ba963457988db73650fbf972398e1d0e2318b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 11 19:08:13 2015 +0300

    doveadm fetch: Added "refcount" field.

commit e22ec7998afd426c53c658483ce66b6e404e27c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 11 16:19:05 2015 +0300

    cassandra: Error handling cleanup.
    Probably doesn't fix any actual bugs.

commit 6b4b3e5fe8d9e84f4b1356ee898ca76996a11fe1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 11 15:28:46 2015 +0300

    cassandra: Minor code cleanup to make sure we don't try to access freed transaction memory.

commit b23a8d3514760899ac1094f2a8103a057ae6416d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 11 15:28:05 2015 +0300

    cassandra: Don't access freed memory when doing an assert-check.

commit 01c4df2aded7cb44bbaf69d61bd6d9e496b919a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 11 15:19:53 2015 +0300

    doveadm fs delete -R: More fixes to handling errors without crashing.

commit 2010ab3fb1f5b758dae4c5e4e033c617d552985b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 10 20:29:35 2015 +0300

    lmtp: Fixed assert-crash on anvil lookup failures.
    If anvil_client_query() fails, it immediately calls the callback and returns
    NULL. So we need to increase anvil_queries even before calling
    anvil_client_query()

commit 2f9266ae8753b5f47c6995e8f04a9df774c0b77a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 10 19:50:29 2015 +0300

    doveadm fs delete -R: Fixed hang when some of the deletions failed.

commit 48ce7a375ada1b80545bc6767adb8e8fb23699a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 10 16:18:10 2015 +0300

    cassandra: If log_level=debug/trace, log each query and its result.

commit b650f04c3b2e7dea2295bdbe3239eb82ec03ada0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 10 16:09:13 2015 +0300

    cassandra: Added extra asserts and sanity checks to make sure query errors are caught.

commit f0e811f0e306bb20d3da9c26353bdd5669132f29
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 10 16:08:28 2015 +0300

    cassandra: Don't crash on failed queries.

commit bda46f9a6e268334e7557b0e7bbdc58e1b850a3a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 9 19:32:09 2015 +0300

    dict-sql: Don't try to optimize finding a matching map by using the previous match.
    In some setups multiple maps can match and it's important that the matching
    is done in the same order always, otherwise the results could become
    somewhat random.

commit 091932d9b9c6bfee3e2b70dbe30a04c236619062
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Fri Jun 5 16:37:24 2015 +0300

    man: doveadm-pw.1: Fix typo.

commit 74befaa48db51acd254dcda9e5f06ea3aff84d33
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Thu Jun 4 21:03:42 2015 +0000

    man: doveadm-pw.1: Added a note about quoting password hashes.

commit fe3f637ef0b9544a567b54f3743cf8e3649d8d0f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 4 21:57:32 2015 +0300

    fts: lib-fts search arg expansion wasn't done for non-TEXT/BODY searches when fts_enforced=no

commit be1126eef34743095ddbee3fecbafe0574d54eac
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 4 00:45:11 2015 +0300

    fts: Added "doveadm fts expand" to show lib-fts search query expanded.

commit 9bafaf2bea0bee1945a4ce3bab39ea3558e9f6d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 4 00:44:42 2015 +0300

    lib-storage: Added mail_search_args_to_cmdline()
    This isn't entirely correct yet, but it's only going to be used for
    debugging for now.

commit 2e3e24888f9ce3da3116ee1d6a60f42394b6026c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 23:56:32 2015 +0300

    fts: Added "doveadm fts lookup" command.
    This is mainly useful for debugging lib-fts. It doesn't perform any of the
    lib-fts tokenization / filtering so you can do raw lookups.

commit 12952c18d10fa83be65059471139c2fdc8a00c3d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 22:39:52 2015 +0300

    lib-fts: fts_tokenizer_reset() didn't reset the entire state.

commit 218095792e0af7c1609da4901cfb60e78139595e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 22:30:05 2015 +0300

    indexer: Improved handling multiple indexing requests to the same mailbox.
    If a request arrives for a mailbox that we were already indexes, the
    previous code simply sent the indexing request to the existing worker
    process. This could have caused a lot of requests to be buffered to the same
    mailbox if the indexing took a long time, which could have taken a while to
    process even though they weren't really doing anything indexing work.
    
    The new code instead just keeps track in memory that when the earlier
    indexing is finished, it's done again once to finish any pending changes.

commit be98c0c6da8ee8c00ed731bcb833f491daf76757
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 22:26:05 2015 +0300

    indexer: Try to always flush as many requests from queue as possible.
    I don't think this changes the behavior much. It's mainly a code cleanup.

commit 7fb611afeb56b9647c57e3f56772b2a3ebf9541e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 22:25:28 2015 +0300

    indexer: Use array.h API instead of writing our own.
    The space savings aren't worth the extra complexity.

commit 4462eb835e9681dd1110e10f557d4dea3bf61f78
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 21:50:40 2015 +0300

    fts: If mail indexing fails, don't log a "BUG: Unknown internal error"

commit 07fcb647e58d930cc601fdecc94ff2da9ec44882
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 21:49:52 2015 +0300

    fts: If reading mail fails, log an error.

commit fcf9e8a625f7bfda6a108b074c420d4085d21ad3
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Jun 3 16:47:25 2015 +0300

    lib-lda: Fixed crash in mail_deliver_get_log_var_expand_table().
    Discovered by clang static analyzer. This caused crashes with older versions
    of Pigeonhole.

commit 471167b9701fcc99b66f7a8bcae07bc4ac0dbbd4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 01:04:49 2015 +0300

    lib-fts: Added "english-possessive" filter.

commit e8ee7a23b194516087ba27f1af09213991af0b30
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 01:04:07 2015 +0300

    lib-fts: Use UTF8_IS_START_SEQ()

commit 3b02371c120dcd455a09148abc5a3f520880fef2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 01:03:52 2015 +0300

    lib: Added UTF8_IS_START_SEQ() helper macro

commit be7085921228e1c1333dbf7aa2daca41115c3f23
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 00:46:23 2015 +0300

    lib-fts: fts-filter API changed to have a non-pointer vfuncs variable.
    The main benefit being that the fts-filter implementations can save a few
    lines of code.

commit 9a5ff31ae3164cce08162f7a24a20617f05a0a1c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 00:43:51 2015 +0300

    lib-fts: fts-lowercase can now use the default destroy function.

commit bc180e646844ad8ad8d0228016389434433fd405
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 00:43:28 2015 +0300

    lib-fts: Implemented default create/destory functions for fts-filters.

commit 5a2910119ec0b878a0d7ca91918b97e9d40a936d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 3 00:39:11 2015 +0300

    lib-fts: Moved IS_APOSTROPHE() to fts-common.h

commit a1f6236191e91289f4d63b474c0ef7827a09b573
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 23:46:28 2015 +0300

    example-config: Updated deliver_log_format comments

commit eda4028322b1dd73df846cdb4c6ed7d82c5bbc5d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 23:43:05 2015 +0300

    lib-lda: Added %{to_envelope} to deliver_log_format

commit 7a0d7177394b790cba1ff64417df42cb83bfad12
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 23:35:23 2015 +0300

    lib-fts: Compiling fix without libicu

commit 266c879b43bce714aa5cd6a59b7f709d74451ccb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 23:28:35 2015 +0300

    lib-fts: Avoid compiler warning when building without libicu

commit 014cfdf92b145bc7ff4d1393ca24dfef5c109b0f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 22:47:21 2015 +0300

    imapc: If auth fails due to connection failure, don't treat it the same as failed login.

commit b5440e0ae7f0827154998efae81bbf4a07475ccb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 22:20:03 2015 +0300

    lib-fts: Fixed compiling without libicu

commit 0894188da371241a9dd10ca0126342e408479ebb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 22:16:46 2015 +0300

    lib-fts: Added more supported languages.
    This includes now all the ones that are currently supported by both snowball
    and exttextcat.

commit 1b8da092e7ac34e81b917db7bdaba484acf1921c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 22:01:07 2015 +0300

    lib-fts: Optimized truncation of partial trailing UTF-8 characters in tokenizers.

commit c8b49c07999af06d368ea4b37c54919f46d94844
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:56:29 2015 +0300

    lib-fts: Use fts_icu_lcase() for fts-filter-lowercase if possible.

commit 887b04f7b235dbc18a5f787ac95ddc86e653ab6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:56:03 2015 +0300

    lib-fts: Added string_t *token to struct fts_filter
    This makes the work a bit easier for simple filters that don't need any
    state but want to use a string_t.

commit 37dfa8907f8216aa73e3880f3f98aba634458e42
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:54:52 2015 +0300

    lib-fts: Added fts_icu_lcase()

commit d3acad538059ba27f269d390516be7e9fb44294f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:49:46 2015 +0300

    lib-fts: Do all the ICU cleanup in fts_icu_deinit().

commit 3e462730eb79d8a7289edc138cf80cf79a737268
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:45:46 2015 +0300

    lib-fts: Include fts-filter.h in fts-filter-private.h
    This avoids having to always include them both.

commit 87607475daa6723d536d314fc735b4a66b973b8e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:43:27 2015 +0300

    lib-fts: Renamed variable.
    This is a lowercase-filter, not a normalizer.

commit db451bddb5f7e36d4f3f2448102c032d10afe29a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 21:41:46 2015 +0300

    lib-fts: Removed unnecessary array.h include from fts-filter.h

commit 3448096d5b1cd324ed5132045de0345cd7120a25
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 20:50:23 2015 +0300

    lib-fts: Fixed tr29 tokenizer to delete last character correctly when it's preceded by non-ASCII

commit cd97e999be2a2de8e2455f34540b81e60c080447
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 19:59:45 2015 +0300

    pop3-login: Added support for Zimbra proxy's XOIP command.

commit c2c6342dbf982adddf24058366582ce6eab2ed7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 19:52:37 2015 +0300

    fts: If we fail while indexing headers, return failure immediately.

commit 3d00e356f156bb5d105de228fac7ed8f28851638
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 19:52:15 2015 +0300

    fts: Error logging fix.
    1) We were logging the error after it was already freed from data stack.
    2) We were logging uninitialized error string when fts indexing was the one
    that failed.

commit 6634e45500e81cfa36932203ee69c81745efd3e6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 2 02:39:20 2015 +0300

    fts: Fixed memory leak at deinit when using multiple fts plugins at the same time using libfts.

commit 88f5dbec21b26b80371961d5d6320bb2aa92384c
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Jun 2 02:26:44 2015 +0300

    lib-fts: Correct comment in filter internal API.

commit 093e68f3c0669886b0a351d0fda5f72d86e7f89e
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Jun 2 02:26:44 2015 +0300

    lib-fts: Call libicu u_cleanup.

commit 6aadd1c52e6b291d47b47b4f4063e9bc8ccf0784
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 1 22:16:19 2015 +0300

    various: use new uni_utf8_get_char*() interface
    No need for additional uni_utf8_char_bytes() calls if you can parse and
    know the size with one call.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit cf755ce29d2c2499b0da66868c3b15840078d0ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 22:14:19 2015 +0300

    lib-fts: Use new uni_utf8_get_char*() interface

commit 2c8b34a5fb85c2f6711f603efc934512af758654
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 22:11:55 2015 +0300

    lib: Improved unit test for uni_utf8_get_char() return value check.

commit 304a9d2db2669ad910577e00dce2f81bfd0d5d39
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 1 22:08:43 2015 +0300

    lib: API change - have uni_utf8_get_char*() return _char_bytes
    Often the two functions are called in close proximity (both ways round). As
    _get_char*() calls _char_bytes() early on the success path, we may as well
    return that value to the caller for immediate use.
    
    The callers which call _char_bytes() first are simply rejecting the truncated
    case quickly - all other invalid cases still call both functions, and all
    other valid cases (which should be the fast path) likewise call both.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit d69318e501febc40a383c93d4337c5ead314f763
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 1 22:08:27 2015 +0300

    fts-solr: laxer check of uni_utf8_get_char_n() return value
    If uni_utf8_get_char*() were changed to return the number of bytes in the
    character on success, then all we care about is it being > 0 (i.e. not
    error, not truncated).
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7c1b72e1a0b35aa27d4f74e9dd49fc3156eb4fa9
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 1 22:07:44 2015 +0300

    lib: test-unichar - test invalid utf8 encodings
    Chop trailing characters off valid encodings, and watch them fail.
    (There's no need to do this on most of the test characters, as they're
    truncated to the same byte sequence - only do 1 in 64.)
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5fea87f050d4a6a8c8a3b259a25541fc78e5f2cd
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 1 22:06:44 2015 +0300

    lib: test-unichar - streamline the unichars test
    It's doing 2 kinds of tests, split them into separate test cases.
    
    And the first part has started to get expensive, so just make sure
    all code paths are tested by skipping most values. Only 3 from each
    set of 64 (lowest 6 bits) are tested.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 83172e28d4ac684dfed83f7c9db933493d7c5922
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:59:02 2015 +0300

    lib-fts: Added unit testing for unicode apostrophe handling.

commit b6b06530d654f0436bfbaefc1e988d53fff0cbee
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:58:30 2015 +0300

    lib-fts: tokenizers - Fixed removal of trailing character in truncated tokens.
    If the token is truncated, we don't want to remove the trailing character
    since it's not actually there.
    
    Also we don't want to remove trailing apostrophes from a truncated word,
    because they're not actually at the end of the (untruncated) token there.
    This doesn't make a big difference, but it's slightly more correct.

commit a2b6f7f91c904706acbaa0e900df01de6d046861
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:51:33 2015 +0300

    lib-fts: Optimize tokenizers - Rewrite of apostrophe handling.
    We parse through the UTF8 characters only once now, not twice.

commit 67360bc4d7c3fbcedcf7364ea2290406c8e0d082
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:49:18 2015 +0300

    lib-fts: tr29 tokenizer - rename variable in preparation for the next patch

commit 202468f94e6c6c8b5d3d98ee74e01bb0d0bb04aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:48:59 2015 +0300

    lib-fts: tokenizers - don't include removed apostrophes as part of the token size

commit 3fe4e251c34ba63c4b50df72813e2781dccb562e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:35:39 2015 +0300

    lib-fts: simple tokenizer minor cleanup - removed unnecessary token length > 0 check
    fts_tokenizer_generic_simple_current_token() will check it in any case.

commit 05031501650185cde7150fd538d35ce66d87b526
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:33:11 2015 +0300

    lib-fts: tr29 tokenizer cleanup - Avoid unnecessary goto.

commit dfc9cfd5b80c8a4240841e12425eb23636ce674e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:28:42 2015 +0300

    lib-fts: simple tokenizer optimization - don't check unicode word breaks for ASCII chars.

commit e3f8b4fd89a11442c3208cd3210cfaccd4835386
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:27:09 2015 +0300

    lib-fts: simple tokenizer cleanup - make prev_letter updating more explicit.
    It was now hidden inside one of the functions, which didn't make the
    prev_letter very consistent when a word break was found. It didn't actually
    matter what the prev_letter was at that point, but now the behavior is more
    consistent.

commit 8acf0a8559c8e969a9079e65bf021a89cebaf10a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:19:47 2015 +0300

    lib-fts: simple tokenizer cleanup - removed unnecessary variables

commit bf8b21a6647479bd9b2ccc8866ad6b077ed9af41
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:16:35 2015 +0300

    lib-fts: tr29 cleanup - consistently call valid chars "token" and "non-token" chars.
    Instead of word/token/text.

commit afb62c7a52713b079efa16fef6e4de62cf1bf853
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:11:55 2015 +0300

    lib-fts: tr29 cleanup - Avoid i++ in the for loop to avoid extra calculations

commit 3deb8a4df8b4fec55170d518db6cf4c963baf5c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:10:11 2015 +0300

    lib-fts: tr29 cleanup - token can never be empty by the time it's being returned.

commit b15ff9096eab230fa041996d9340b96ac7343c0d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 1 21:08:27 2015 +0300

    lib-fts: Optimization for tr29 - we don't need to track last_size explicitly

commit 73e7fedf77599bb30644bd2e089ce5a8b3a65532
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Jun 1 18:35:58 2015 +0300

    lib-fts: Correct internal helper function for tr29.

commit fdf70410de49eadfbb77997bb60ebba19aee4752
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Jun 1 18:35:58 2015 +0300

    lib-fts: Fix unit tests for TR29 full stop change.

commit 65a2c8fef977bcf4625fdb5e2f524b42667cb501
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Jun 1 18:35:58 2015 +0300

    lib-fts: Change TR29 tokenizer to break at full stop (and others).
    Diverge from the TR29 rules and always break at MidNumLet letters.
    This fixes tokenizing first.last@domain.tld email addresses.

commit 38ceb710e2bc957a66a75c68957cb87746682a75
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 21:39:33 2015 +0300

    auth: Added %{passdb:field} and %{userdb:field} variables
    The field expands to either the passdb or userdb extra field.
    
    You can also use %{passdb:field:defaultvalue} where if field doesn't exist,
    it's expanded to defaultvalue. Note that an empty value means that the field
    still exists and it's not expanded to defaultvalue.

commit 9b9db49ad333b71d472d8f2c84e5390fb4bb79bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 20:56:13 2015 +0300

    auth: Added unit test for auth %variable expansion.

commit de2cba085b9b231135be953d7f34f74fefb82725
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 20:55:58 2015 +0300

    auth: Make sure %{mech} and %{session} is escaped in %var expansion.
    %{mech} is already very trusted and %{session} should be only from trusted
    sources as well, so this doesn't fix any actual security holes. They are
    also unlikely to have ever even been used in anything that requires
    escaping.

commit 4b7957c5e995f2c1820891d77a292a4886d52a43
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 19:55:47 2015 +0300

    auth: Moved var_expand() related code to its own file.

commit a1044a46a8f3512173f4ea2684ef1fc3e61645c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 19:11:50 2015 +0300

    cassandra: Added log_level parameter to connect_string.
    Available values are critical, error, warn (default), info, debug and trace.

commit 372a9dd989813eb1a08e07b39987731e33045375
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 18:22:17 2015 +0300

    lib-fs: Updated fs_write_stream_*() comments related to ostream corking and nfinish.

commit 9750790dae6365365366e6fcaa3ab0c2e76b0507
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 17:51:21 2015 +0300

    lib-fs: fs_write_stream_abort() now ignores missing o_stream_nfinish() call

commit 04f70d9dc154761eb262f485415f27ed0345ece4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 11:50:18 2015 +0300

    fts: If precaching fails, stop precaching the rest of the mails.
    If there are a lot of mails to be precached, this could mean that the
    precaching is attempted for a long time and every one of them fails the same
    way.

commit 2a0c3f9a662ad61b0ab9b34299016289e696c841
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 11:08:29 2015 +0300

    dovecot.m4: If run-test.sh fails, print the failing command to stderr.
    Currently otherwise the way Dovecot tests are run it's not clearly visible.

commit 68aaffc9d7c5e2d040f0d6d3738f54aaa25f8905
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 10:43:38 2015 +0300

    dovecot.m4: If NOVALGRIND environment is set, don't run tests via valgrind in "make check"

commit af8e9722500efbba1bb58a96302a71977e1dbe92
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 07:03:15 2015 +0300

    lib-fs: fs_write_stream() now automatically corks the ostream and uncorks at _finish().

commit e7f8009c974ed6a6a5a0e88633d98fff2867fa92
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 29 05:43:25 2015 +0300

    fts: If last-uid lookup fails, return "Internal error" instead of "BUG" to client.

commit a6bb10d402b5f28af4c31a4daa07e47146a3f897
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 25 11:50:48 2015 -0400

    lib: Avoid race conditions in mkdir*() if directory is being deleted at the same time.
    Mainly this allows the call to return failure silently without logging
    unnecessary errors.

commit da3aebb67683adc7399de1fea5ca4218f9c746d3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 25 11:35:53 2015 -0400

    log: read() errors weren't logged.

commit fc4f5358a5563de675ebfe0d490234ec767f18ce
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Mon May 25 14:27:22 2015 +0000

    systemd service: Fixed typos in the comment section.
    The settings for the file descriptor limit is LimitNOFILE.
    Removed quotes around the value infinity. Otherwise systemd will
    fail to parse that resource value.

commit b00fbdb63291f718d4cb8d39b0bece85b640ad7f
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun May 17 11:54:42 2015 +0000

    systemd: Small improvements to the unit configuration file:
    
       * Added Documentation URIs
       * Added ExecReload, to reload the config instead of restarting
       * Added a comment for modifying/extending the unit file.

commit 96df95e610c1e67a06871677a126bbeddcfc2482
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 17:55:33 2015 -0400

    doveadm user: Don't change privileges when looking up users.
    We don't need to and it might fail.

commit b4277135f30f053a32d292a945ad452bfcbaa68d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 17:50:26 2015 -0400

    lib-storage: If no namespaces were defined, the autocreated namespace settings were a bit wrong.

commit d6601a0bc4fd60e58bedbddf2481abd82cba76d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 17:40:53 2015 -0400

    lib-storage: If session_id isn't given, generate a new one.
    This is useful for tracking logs written by services that aren't directly
    related to any specific user session.

commit 3079d05c4f6dd5c0d452fdb4abf15d1a5ee2c9f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 16:13:57 2015 -0400

    lib-index: Unit test fix.

commit cac6b8b1a2bcf672fe43d3fb91a7278877f8cf09
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 13:40:46 2015 -0400

    lib: file_lock_try_update() comment updated.
    It should possibly be removed entirely from the API.

commit 715fa0c143cf457c94bbac7554767c28413cf680
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 13:24:19 2015 -0400

    lib: file_create_locked() lock method is now configurable

commit 799b19bb4f69f7a5491b4c4c3fcfc7b346297762
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 24 13:22:56 2015 -0400

    lib: file_create_locked() was leaking fds and locks.

commit 6307daf9356b03d757ed674a5a65042647c6eecc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 23 19:21:10 2015 -0400

    lib: file_create_locked() no longer logs an error if temp file is deleted under it.

commit d32fce86c0667b5e9028c141305d0bbe7f3f9166
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 23 16:51:52 2015 -0400

    lib: file_create_locked() wasn't deleting the temp file after successful link()

commit a63907c14bd96eec1493eb893a043137c1799485
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 23 16:41:34 2015 -0400

    lib: Added file_create_locked()

commit e9b69732e4c5126aa840e4bd4e9523aa0b6c7dea
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 22 19:07:56 2015 -0400

    auth: Don't crash if trying to add password with TAB or LF to auth cache.
    This would happen only if the passwords were stored as plaintext in passdb
    and the valid password actually contained TAB or LF.

commit 01e29d9d23a1844b4582592a473a3b3eac56b36b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 22 16:37:07 2015 -0400

    lib-index: Added asserts to make sure invalid extension records aren't written to log.

commit 2e5170d1dce33cf055cfc2f6fa4b4a61df35d1c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 21 22:41:43 2015 -0400

    fts: Fixed fts_enforced=yes when it has to wait for indexing to finish

commit 0211537cbf53ad17348408103fdb0c06de56ed5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 21 22:20:10 2015 -0400

    fts: Added fts_enforced setting to disable fallbacking to slow search on errors.

commit 3e786e2a411dc973a2359bc213fcf827e6c314d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 21 22:03:10 2015 -0400

    lib-fts: ICU normalization changes some characters to spaces - remove them.
    We don't really want to add spaces to our index. It would be nice if the
    words between spaces were actually split to different tokens, but that's
    more of the fts-tokenizer's job and at filter stage that's probably not
    wanted anymore.

commit 091a2dea9d89734a7c1225eed511b3851693a757
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 21 08:38:56 2015 -0400

    lib: Cork connection output while handling input

commit 72c4ef3b44c50c662b37bba93b463b0caeb63a4f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 21 06:35:59 2015 -0400

    lib-fts: Fixed handling tokens that contain only apostrophes

commit 0c5854b6891c59c1c3f443569bc823d7db571582
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu May 21 06:29:15 2015 -0400

    lib-fts: Fix simple tokenizer apostrophe handling.
    Apostrophes and quotation marks are now treated as word breaks,
    except U+0027 between non-wordbrek characters. The characters
    U+2019 and U+FF07 are transformed to U+0027 before processing.

commit 6018cfb92a352878c468fedd61c7703c4e2ea30b
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu May 21 06:17:32 2015 -0400

    lib-fts: Fix tr29 tokenizer apostrophe handling.
    U+0027, which is called Single Quote in tr29, was not properly
    handled as a word boundary.

commit 98ed0b24d615ba88a1d89c4b71fc0a5da721b751
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 14:53:52 2015 +0300

    lib-fts: Partially reverted d097a9779c37 - don't use lib_atexit()
    Because fts is loaded as plugin lib_atexit() is called after the plugin is
    already unloaded, so it crashes.

commit a5ddfd7a8b473f73135b93d5e081e470a87f0f7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 07:49:15 2015 -0400

    director: Added "up" vs "down" states and doveadm director up/down commands.
    These commands are intended to be used by automated watchdogs that detect if
    backends are up or down. This way the vhost count doesn't get forgotten
    after server goes down. It also means that admin can manually take down a
    server by setting its vhost count to 0 without the watchdog automatically
    bringing it back up.

commit f3779c0540f0dc8700fd2aef922d69dcc6b0194e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 13:56:07 2015 +0300

    lib-charset: test-charset unit test - Don't use invalid UTF-8 text in source code

commit b4598553665bac4e0b89ed36a16f1ee1648ee172
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 06:53:20 2015 -0400

    lib-fts: Fixed memory leaks in test-fts-filter unit test

commit 156027ee3a689893bf22271d1cea8c97f9813cb9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 06:51:24 2015 -0400

    lib-fts: Call u_clean() at deinit to free up all of libicu's memory.

commit 5ae97456417a137a85c236a3db32f51fb592e474
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 06:46:32 2015 -0400

    lib-fts: test-fts-icu memory leak fix

commit 6eca434b47b7b700f7df80a0e1ce31d0fd45d1fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 06:37:28 2015 -0400

    fts + lib-fts: Fixed crash with some search queries that contained uninitialized search args.

commit e614fad7013a21d9111f0f185781f929ecb96bbf
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 06:36:56 2015 -0400

    lib-storage: Added mail_search_init/deinit_arg()
    For forcibly initializing/deinitializing search args.

commit 8d5eb4f8089c319d555edaa42d1c09da951f66ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 18 06:21:50 2015 -0400

    lib-storage: Cleanup - separate search arg values that are set by mail_search_init()

commit 2d7ec47e669516fe224e61a4f778b8db48fd55ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 17 00:51:50 2015 +0300

    lib-mail: Make sure iconv state is reset between MIME parts.

commit bf698b98d3a3a1eced66cc682c449f23bf2b67d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 18:47:20 2015 +0300

    lib-fts: Rewrite ICU handling functions.
    Some of the changes:
     - Use buffers instead of allocating everything from data stack.
     - Optimistically attempt to write the data directly to the buffers without
    first calculating their size. Grow the buffer if it doesn't fit first.
     - Use u_strFromUTF8Lenient() instead of u_strFromUTF8(). Our input is
    already supposed to be valid UTF-8, although we don't check if all code
    points are valid, while u_strFromUTF8() does check them and return failures.
    We don't really care about if code points are valid or not and
    u_strFromUTF8Lenient() passes through everything.
    
    Added unit tests to make sure all the functions work as intended and all the
    UTF-8 input passes through them successfully.

commit e915ba86f157549b7d127f92312bc487b249df7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 18:41:44 2015 +0300

    lib: Added buffer_get_writable_size()

commit 0983b2432833a98dd35674b7106069a601b846e3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 18:20:08 2015 +0300

    fts: Avoid excessive data stack usage with lib-fts

commit b1b3d99b2bc0fe56cd2d0c0a197bb3c63cec6d39
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 13:50:48 2015 +0300

    lib-charset: Fixed compile warning caused by earlier commit.
    This UNICODE_REPLACEMENT_CHAR_UTF8 part of the change was actually supposed
    to be a separate commit..

commit c8b84f03c71e18f07940d1b60a77a4caf5e7c23b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 13:20:22 2015 +0300

    lib: Added UNICODE_REPLACEMENT_CHAR_UTF8

commit 04e66ac3d010906f4359a5e89ed7cfb0496a2d0c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 12:51:08 2015 +0300

    lib: Added p_memdup()

commit 9366765479f32a4df248d015c595d0f46cbf83b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 12:46:38 2015 +0300

    lib-charset: Added a minimal unit test

commit 461b1f9c779f5b43ec153177f6d90512d5951624
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 16 11:47:09 2015 +0300

    imap: Fixed crash in FETCH RFC822* caused by earlier commit

commit 5c4d9baec18057c65a656bd6216f84658171c14e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 21:36:07 2015 +0300

    replication plugin: s/transction/transaction/ in debug log messages

commit db8ca445e2082fe0b17d593f1f842cf8c40dd6a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 16:50:27 2015 +0300

    doveadm director flush: Unless -F parameter is used, do the flush by moving users.
    User moving causes the users to be properly kicked out of the old backends
    before new connections are made to the new backends. This way the user isn't
    accessed simultaneously by different backends.

commit 8a1e199862549ee3092db0de2f78c3a48c3ab1db
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 16:46:14 2015 +0300

    lib-master: Added data stack frames to handling IPC input.

commit 7bccaece91a0b1bc61111c30443d6bad6b22c6d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 16:45:14 2015 +0300

    director: Added HOST-RESET-USERS command to move users to their hash-assigned hosts.

commit 5c1733e9e572e242598b8b2f12a0068897caf5b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 16:44:45 2015 +0300

    director: Moving a user to another host sometimes caused the move to fail.
    It could have given "User hash .. is being redirected to two hosts" error
    and afterwards moved the user back to its original host.

commit 760245ee05c5685122ca29427dffedbeed4b24bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 14:55:21 2015 +0300

    imap: Added %{deleted}, %{expunged} and %{trashed} to imap_logout_format

commit defeb23b40f1c1af0535a84529383825e5ef8dfe
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 14:35:01 2015 +0300

    Added %{fetch_hdr/body_count/bytes} variables to imap_logout_format

commit bbb5807edb9c8e71b94102ea91319f11ef63fb6e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 14:34:54 2015 +0300

    lib-imap-storage: Added imap_msgpart_contains_body()

commit 8065a71a0a23c079a6866ed17cc04c5634b738e6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 14:03:02 2015 +0300

    Added signature for changeset 917d027836d0

commit 6673337cc9e58f9b4c685a0cb8e3ad54ca1d5416
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 14:02:58 2015 +0300

    Added tag 2.2.18 for changeset 917d027836d0

commit f2a1dbe029b706ecfc1985ca0d6ac95f299dcb35
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 14:02:58 2015 +0300

    Released v2.2.18.

commit cf5533e38e40da0b9046c8ca09b96fedf0387e99
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 13:55:46 2015 +0300

    replication plugin: Fixed handling EAGAIN errors when writing to replication-pipe.

commit 5b994364bd4636e3a565289dad038fc54c9208be
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 13:54:49 2015 +0300

    replication plugin: Added debug logging when mail_debug=yes

commit c9ed5cae523840fa3f71c95262bf172ffac2bad6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 13:48:45 2015 +0300

    replication plugin: A small optimization to check the user's "dsyncing" status only once.

commit af98c413eebe0c8c49fbe785fc34915c92ebe8c1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 13:27:29 2015 +0300

    pgsql: Don't crash at disconnect/deinit if there's an unfinished query.

commit a99b64f7d63812806ee40c2e8a347343fa3b84a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 13:07:27 2015 +0300

    pgsql: Log a warning if DNS lookup takes too long. Don't include it in connect timeout.

commit a5563dc790a44bb58860d74479a24349f593d68f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 12:48:07 2015 +0300

    Reverted d592417ec815 which added unnecessary code to Makefiles.
    The original problem it tried to solve was properly fixed by 46969c4cc57e.
    make will actually wait for processes to finish creating files before it
    continues to the next program that wants to access the file. As long as the
    dependencies are correct.

commit 06d1238dd2a6b87af5ad1fad53d7b9b74ad93bfa
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 12:43:13 2015 +0300

    quota: Fixed dependency tracking in Makefile
    The earlier fix attempt was done by creating a .tmp file first, but that
    didn't really solve anything.

commit 2a77044395c864cc791cecd34b03002094f4973b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 15 11:15:50 2015 +0300

    sdbox: When hardlink-copying a mail in alt storage, keep it within the alt storage.
    Also make sure that the alt-flag is set correctly no matter where we copy
    the mail.

commit d4e8dbd07007fc558697c9b579f999ef535d5157
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 14 23:49:12 2015 +0300

    lib: Use /dev/zero instead of /dev/stderr in test-istream-unix unit test
    Some distros don't seem to allow opening stderr.

commit 4aeb50a8311a86fd8e5d3bb71d56f2e3094f19df
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 14 21:44:50 2015 +0300

    lib-imap: Fixed crash in IDLE for non-TCP connections.

commit e0d0e7f377f263d721c6385b2453f80da1e01bf5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 14 14:02:13 2015 +0300

    lib-fts: Fixed test-fts-filter when building without libstemmer

commit 69b435cb9f43d60239c2a96174aa7db736630e14
Author: Matti Hamalainen <ccr@tnsp.org>
Date:   Thu May 14 12:36:38 2015 +0300

    configure: Use consistent quotation for AC_DEFINEs as per autoconf recommendations.
    Also fix one minor typo.

commit 1d132fe27d010b73aacc605b4c6257b0079f9e97
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 14 13:33:59 2015 +0300

    pgsql: Include connect state string on connect failure errors.

commit 629cb309f6f1bfce4ce0037c0ef089b66281f482
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 14 11:27:04 2015 +0300

    lib-lda: Added missing include file.
    This fixes building Pigeonhole in some systems.

commit 973c8fc1d7e9f982f7caf6385adb78dfacd9fb80
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 14 11:26:00 2015 +0300

    director: UNIX auth sockets were wrongly detected as doveadm or ring sockets.
    A workaround would be to use login/director-auth socket name instead of
    login/director.

commit e5fcfef143e64887fc6779588efe7f02cd5fc13e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 21:35:56 2015 +0300

    fts-lucene: Removed dead code
    Found by Coverity

commit b9495c944b49d71e8235c772c2dc035fdab282cd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 20:47:35 2015 +0300

    lib-fts: Makefile compiling dependency fix

commit 642f95b8135ee8ec28b6e9bd6d1c0cd46e4f106b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 19:45:11 2015 +0300

    Added signature for changeset 166106aaefc5

commit 28ce7d89c8f791ebfdd6f005bd2728382cc378fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 19:45:07 2015 +0300

    Added tag 2.2.17 for changeset 166106aaefc5

commit 17c41e50cdaada6cd642f11b62bf8d8d16d4376c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 19:45:07 2015 +0300

    Released v2.2.17.

commit 7fb35b357a0271f6bd07e1be74ce8347b6dd8dce
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 19:36:29 2015 +0300

    lib-lda: Don't crash if postmaster_address is given as command line parameter.

commit f2b4fd3caed59dd24781d6905a3bc5675ff42b80
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 19:26:45 2015 +0300

    mbox: If we notice our internal state is wrong, avoid further corruption by returning error.

commit fcc2880f80385e29924aa926a1eefc5f0f41fa45
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 19:24:55 2015 +0300

    mbox: Fixed corruption in some usage patterns.
    Something like:
     - first mail is being expunged
     - other mails are being rewritten and they get their space from the
       expunged mail
     - there's not enough space for the last mail to get space
     - we add more space
     - we'll now need to use up the space. We can't just decide to mark the
       mails dirty.

commit f7fa93fb42a5b9d4a7e2f0367f03f920ef7ec443
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 17:16:21 2015 +0300

    fts-solr: Fixed memory leak at user deinit.

commit c9445d17bfb97440cf47c5363993518a943f7010
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 16:54:27 2015 +0300

    fts-solr: Crashfixes

commit d2f1759dd94528fda229b5f630d947c7828be744
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 16:46:14 2015 +0300

    fts-solr: Don't update "last indexed UID" if we couldn't actually add the mails to Solr.

commit db3b95d5a33ddce552d41136ae68d7331f8bf5fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 16:22:27 2015 +0300

    director: Added "authreply" socket type.
    This allows defining a socket, which receives auth replies. Director then
    adds the "host" field to it if it's missing and returns back the original
    string. The idea is that eventually a director ring could be running
    independently from Dovecot proxies.

commit 4ae5f4a10f80de061e03d6823f5c14ff020306c4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 15:59:48 2015 +0300

    director: Removed accidentally committed debug log message

commit cf89092dff3defce94f1860a04b3ce8bfaf4a712
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 15:47:14 2015 +0300

    lib-master: If executing doveconf, use master_service_settings_input.service for filter
    Instead of hardcoding to the master_service->name, which may be different.
    This fixes reading protocol sieve {} settings when if managesieve was
    reading settings via doveconf (= executed from command line).

commit 6468191d64827a2d1481c091ec499874583c834e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 15:33:27 2015 +0300

    director: Cleanup for director socket type configuration.
    It's now possible to use any type of a socket for inet listeners by
    specifying the name for the listener. The available types are: auth
    (default), userdb, ring (= director<->director connection), admin/doveadm.
    This change should be backwards compatible with previous configuration.
    This setting also deprecates director_doveadm_port setting.

commit 7f1b897201d80c83c96b0d663f2a14c517d48f14
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 15:32:54 2015 +0300

    lib-master: Added master_service_get_socket_name()

commit 2cc34f340d31125b16f58948bed8cc6a86911fcf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 13:57:24 2015 +0300

    director: Minor code cleanup - allow access to auth connection's ostream directly.

commit 2cd04598af2b69120948e29f2a0dd1710bebbe1b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 13:15:57 2015 +0300

    director: Reverted previous e178413a905d commit after all - do it a bit differently.

commit 1f2f38f518ea14d1042c98ab039e6df053f7b285
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 12:24:02 2015 +0300

    Added quota-clone plugin.

commit b816cad28f0f0fd2b12dc028970665ba25b09f10
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 05:34:16 2015 +0300

    lib-sql: sqlite and cassandra libs were mixed up in the Makefile

commit 0388fd5e0bf6654ea25299fd63f2ee8e5ce2913f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 05:25:31 2015 +0300

    director: Added a new DIRECTOR-LOOKUP command that auth connections can use.
    The parameters are the same as what auth lookup would receive from auth
    process. So the idea is that a proxy could do an auth lookup, then forward
    the reply to director, which would return back the updated reply with the
    host field added.

commit 336cdc9993838d967bbaf214a671975c2e7e5942
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 05:22:22 2015 +0300

    director: Don't send DIRECTOR command infinitely in loop if that director got disconnected.

commit ece0a20249ce26208db3415ba2e79423678856f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 04:11:34 2015 +0300

    director: Include useful statistics in process title.

commit 34115224152b94328ffe3ec4ff4f30927c8f9aa1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 04:10:53 2015 +0300

    director: Fixed crash if director sent invalid data too early.

commit d3ee83b4c24529fac4be5c1f30e254295e7addd9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 04:10:18 2015 +0300

    director: If we disconnect a director, pass the reason all the way to deinit's debug logging.

commit 447653aca14335b7096fb2dd2c7103631b336094
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 04:07:46 2015 +0300

    director: Improved debug logging about connecting to another director.

commit ac393b4b88ec0ce12172b240aaa39a3474ed7a7a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 13 00:33:18 2015 +0300

    Make static analyzer happier.

commit 0ac5243480d973d8730c079dd70721c7ece18d44
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 23:06:33 2015 +0300

    Added signature for changeset 2c1ce55de520

commit 331e44985f51e29d1be563753b621cf4ba5b50e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 23:06:30 2015 +0300

    Added tag 2.2.17.rc2 for changeset 2c1ce55de520

commit adaa511dff52374634db464da4002f502f92445c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 23:06:30 2015 +0300

    Released v2.2.17.rc2.

commit cb3ab2fd5668700a89b274a43595cfbfa1616e4b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 21:58:03 2015 +0300

    lib: connection API: Added delayed_unix_client_connected_callback setting.
    092a51d80bad commit changed this functionality first to fix lib-http code,
    but it broke other code. 1fac17a2bc53 reversed the original behavior.
    This change allows either behavior optionally.

commit f79ba7136a322a10309e5dad9a22d568fe89fb59
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 21:52:07 2015 +0300

    doveadm fs: Improved error message logging.

commit 90de1644a1c74411ec010319470b01a8b6e4f667
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 19:43:48 2015 +0300

    doveadm dict iter: Added -1 parameter to enable DICT_ITERATE_FLAG_EXACT_KEY

commit 062ee0039b06c80ed44ef13576f6f01714a61d85
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 19:43:25 2015 +0300

    dict-sql: Fixed non-recursive iteration.
    If path has e.g. "a/$var/b/$var2" and we're iterating "a/", we shouldn't
    return anything under "a/*/b/".

commit 7fa451bfbbe759379b4f8d3f289c77a0d51b8d07
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 19:14:13 2015 +0300

    cassandra: Leave consistency to default if it's not specified in config.

commit 038b90b6d8f7929ab1273b983b982340b636c7cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 19:13:31 2015 +0300

    lib: connection API was unnecessarily delaying client_connected() calls for UNIX sockets.

commit eee37857404ee76763762483a3e6e83618e16e62
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 19:12:34 2015 +0300

    doveadm: Register builtin dict drivers always at init

commit 8ed4757c20ee2796a654473ba52a62d255889bae
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 19:12:11 2015 +0300

    lib-dict: Allow registering builtin dict drivers multiple times.

commit e07677bb15404a3c18ad205efae86d6db31c3150
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 18:16:54 2015 +0300

    lib-sql: Don't crash in Cassandra if connection to it failed.

commit bd69de668ce14051ad7a6c55f95ed4187a202b27
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue May 12 16:44:45 2015 +0300

    lib-fts: ICU normalizer code cleanup.
    
    Fold some long lines. Rename the internal struct to be more
    aligned with the other filters.

commit 91d2e560eb95a9ab7f2c194d5bf14179aff6023b
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 12 16:12:29 2015 +0300

    lib-fts: autogenerate C arrays using perl
    
    The sh script had bashisms, the awk script crashed mawk, so let's try perl...
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 37a2e365577cb941a4943d32d1d38d6aa05d9265
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 12:45:34 2015 +0300

    fs-compress: Added NOPLUGIN_LDFLAGS to Makefile for helping with linking

commit 3756060476f110e7a8cb7069ea1319665815e845
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 12:30:40 2015 +0300

    lib-fts: .sh scripts weren't executable - changed them to be run via bash directly.
    Better to avoid relying on the executable bit.

commit 5d8dad014bc0a18e79286953a92f7fae7684ee9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 12 12:20:56 2015 +0300

    lib-fts: Reverted e80969ea8684 which replaced .sh scripts with awk
    Bugs in older awk versions (used at least by Debian squeeze & wheezy) caused
    awk to crash while processing the script.

commit 412bd45e0cabee1284a56482578eb347d626bd4d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 22:38:38 2015 +0300

    Makefile: Fixed build concurrency issues with lib-fts

commit 644e991973c99703e9994851fe365960ab1bc089
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 22:37:21 2015 +0300

    lib-fts: Replaced word-boundary/break-data.sh with more portable awk scripts
    Patch by Michael Grimm.

commit b772ddf3cfb606dddaa465b317a0dc01bf06c6e4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 21:55:42 2015 +0300

    lib-sql: Added support for Cassandra CQL as lib-sql backend.
    Implemented using DataStax's cpp-driver.
    
    Many things are still unimplemented. Column name specific functionality
    isn't even  supported by the Cassandra library. So this can currently mainly
    be used as one of the dict backends for some simple functionality.

commit 2e53e088b590c37965099a8fbbee62665248b019
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 21:48:45 2015 +0300

    dict-sql: If DICT_ITERATE_FLAG_EXACT_KEY is used, use only the first found map.

commit 76b4207273534f71365bc7f900c23a5160692802
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 19:12:45 2015 +0300

    lib-dict: Added DICT_ITERATE_FLAG_EXACT_KEY flag.
    This is mainly useful with SQL for iterating through a result that has
    multiple rows.

commit f5b6f113bfbdf57b3335118e9b0387a9fb760bd2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 16:01:13 2015 +0300

    lib-fts: Fixed/improved test-fts-filter unit tests for previous changes.

commit bb726ed3291c23a554c34d1a9eedfd3f3fab9238
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 16:00:53 2015 +0300

    lib-fts: normalizer-icu no longer returns empty tokens.

commit 4d44a03eb1b6f60fc9320b6ed47b3a9593a75f75
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 16:00:21 2015 +0300

    lib-fts: Added assert to fts_filter_filter() to make sure input token isn't empty

commit 759c11290d4bedad20cd1e22fe1007cc0893f079
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 14:42:18 2015 +0300

    lib-fts: Fixed assert-crash in fts-tokenizer-generic

commit b04e76cbc807707d299055be79500f8ff131da43
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 14:35:49 2015 +0300

    lib-fts: Test trailing "number." for TR29 in test-fts-tokenizer

commit 62fc0b4f07eb6f18a3bff4b1fccb636e6fae3cf4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 14:34:50 2015 +0300

    lib-fts: Improved test-fts-tokenizer to run multiple text inputs

commit 47fb62a01078a49815be71f9ce13edbaddfad280
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 14:22:05 2015 +0300

    lmtp: Earlier compiler warning fix broke compiling completely..

commit 9bbc62421e4000b04563eb5f93272fc51b893fb2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 14:10:24 2015 +0300

    lib-fts: Added asserts to make sure we don't return empty tokens.

commit f87938eab9249ad84681f4fa747aab7b9a719670
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 12:28:58 2015 +0300

    Compiler warning fixes

commit de05e7b6a2fae2e2a799f4bd94803fcb1290d463
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 11 12:27:39 2015 +0300

    lmtp: chdir() to base_dir shouldn't fail - log an error if it does

commit 45b0d8d0b97be14d10e3a3c12c169e4b352b2aac
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 10 12:28:09 2015 +0300

    lib-index: If header is corrupted after syncing, log the reason why.

commit 9bee6caa05bcdb38a631d56708792ff79768a0bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 10 12:05:06 2015 +0300

    fts: Fixed crash when not using lib-fts

commit 0d7dc1d6ca80cb99a61f2bb44a04c6279c7c107f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 10 11:20:37 2015 +0300

    lib-http: http-server now always creates a payload istream, even empty one.
    This simplifies the caller's logic so that it doesn't need to explicitly
    check if payload is NULL everywhere.

commit ba57ea2c696f9e9aae909f073069848876a641f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 21:22:50 2015 +0300

    pop3-migration: Added more debug and error logging.

commit 8b9e2a7ec6e5e371d292d9d8cf0d6283dee7c931
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 20:29:55 2015 +0300

    Added signature for changeset da685736985a

commit 157db8463b4309940655050dea0ae466878d3e0d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 20:29:52 2015 +0300

    Added tag 2.2.17.rc1 for changeset da685736985a

commit 44a0465eddceebaa199444149c88b78006e34532
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 20:29:52 2015 +0300

    Released v2.2.17.rc1.

commit ba40be5b23bf26ea2035e44e514c5e7dd0e3dac9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 20:26:06 2015 +0300

    Moved fs-compress to a separate plugin directory.
    Mainly because I couldn't figure out how to make automake dependencies work
    on "make install" stage. It was trying to link fs-compress.so using
    -ldovecot-storage, but libdovecot-storage.so was also concurrently being
    installed.

commit 8409959d66804dc963bc6fcdcc9a01da0d56a978
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:58:59 2015 +0300

    Make Coverity happier.

commit 9c0cd052c03799d764938ffe500cf510bf9eb464
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:57:28 2015 +0300

    quota-dict: It wasn't possible to use multiple quota settings.
    Found by Coverity

commit 7f29b324658de9e42e75af45e2a198f3ba300031
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:50:14 2015 +0300

    anvil: Penalty tracking was moving last checksums wrongly with memcpy().
    Depending on the OS/etc this could have caused the checksum tracking to go
    wrong. Found by Coverity.

commit 90f953632098557bed44dde527bf84533c4222cb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:41:45 2015 +0300

    doveadm-server: Fixed potential crash if doveadm client disconnected
    Found by Coverity

commit e4ba52b8290d366b5763df03be6709af3da0bc57
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:39:39 2015 +0300

    doveadm: Removed unused doveadm_mailbox_find_and_sync() function

commit cbccc33187d4b80938942341cad5fa46fa67f1f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:35:31 2015 +0300

    imap: Don't crash if APPEND command is given with invalid parameters.
    Found by Coverity.

commit 9bc1a7f4aa77af2f78e71be129cefd1406fb5e9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:31:17 2015 +0300

    lib-mail: Improved istream-attachment-extractor error logging.

commit 2be6479ae960b4df1407cefb7946b1a675e2d685
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:31:05 2015 +0300

    lib-mail: Fixed crash in istream-attachment-extractor error handling path

commit 73a7078395e91baebd7f1be197e844624c62b476
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:28:46 2015 +0300

    indexer-worker: Don't crash if we failed to get mailbox path.
    Found by Coverity

commit 8b1a9a4d63b0abccdf7cb1acb8359d5396dd657b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:26:01 2015 +0300

    lib-fts: Changed fts_tokenizer_next/final() to return error string.
    The current tokenizers can't fail, but if we're doing tokenization via
    external services they could fail.

commit 56a21d5d4ff6e1e7b70425b6680bb3626c4ce1dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:21:45 2015 +0300

    lib-fts: Minor code cleanup - avoid functions always returning same value
    Makes it clearer to see in the code that the function can't return any
    failures.

commit a9b3887f4d9ed75a76fed964c1930432bf84f4f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:14:07 2015 +0300

    lib-fts: fts_language_list_init() API changed to return errors.

commit 0eef579fa2714c8b6b6bc2e54c545d291e657f8f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:04:11 2015 +0300

    virtual: Don't crash if trying to save mail to a virtual mailbox without configured save-mailbox.
    Found by Coverity

commit a052f297c2ec37c66c647c1b1078ff9d36c85fa2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 19:00:36 2015 +0300

    lib-fs: Minor code cleanup
    Both temp_output and super_output are NULL so it doesn't matter which we
    use, but this change makes it use the intended variable.

commit bfcd4302925510e8fdcbd82cd56119bec8d09ab9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 18:53:02 2015 +0300

    lib-compression: Fixed dependency tracking in Makefile

commit e7f1247b5ae1290974f9e078ad46c2b6809b2636
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat May 9 15:29:21 2015 +0000

    man: Added description of option `-F file'.

commit 568fec5b1e629f25d288b48007485b9aa4a018b1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 18:28:04 2015 +0300

    lib-fts: Various improvements to test-fts-tokenizer

commit 16dd1fd16f0c6dbd4a057327370b432684e301ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 18:00:58 2015 +0300

    lib-fts: Added fts_tokenizer_final() as a convenience wrapper.

commit 868aa947baeabd4328ca70525b9dd678ea389bf2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 17:34:59 2015 +0300

    lib-fts: Fixed token truncation.

commit 4a692dfa35bc05ad67a43dd7e6504fb0133ca9d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 17:07:32 2015 +0300

    lib-fts: Fixed compiling without libicu

commit 041cb02052c651cbaf6c2368bab34e24015b3392
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 17:06:42 2015 +0300

    lib-storage: Run each storage hook inside its own data stack frame.

commit fe0dff63d6b53d22ae16ac53ab183e9355a64a32
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 17:05:17 2015 +0300

    fts: Renamed filter and tokenizer specific setting keys.
    Having the plural in the name didn't make a lot of sense, so all the
    settings are now:
    
     fts_filters = name1 name2
     fts_filters_<lang> = name3 name 4
     fts_filter_<name> = key1=value1
     fts_filter_<lang>_<name> = key2=value2
    
     fts_tokenizers = name1 name2
     fts_tokenizer_<name> = key1=value1
    
    So this also removes the confusion in settings if there existed a filter
    with one of the language names.

commit fac865bad1ba10e85d80b63dedfd3493a65510d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 17:00:12 2015 +0300

    fts: Simplify error messages a little bit to be more consistent with other such errors.
    Only the setting name is really important.

commit 0ebeb1831a56e020b0958ed1ced50e86ee9347ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 16:58:09 2015 +0300

    fts: Use key=value instead of "key value" settings for tokenizers and filters.

commit 07dabfd18e418c92b4de84c133f105835779bebe
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 15:11:48 2015 +0300

    fts: If fts_filters setting doesn't exist, use built-in defaults.

commit 57dc9669d34de7d08a44be9d7d3c9f6a0c34cc87
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 15:10:17 2015 +0300

    fts: Prefer language-specific filter settings over global fts_filters setting.

commit 2bb1ef0b669901fb91ff961e7fb074439ef769ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 15:07:13 2015 +0300

    lib-fts: Minor code cleanups

commit 34c7e8b10f94e9b76bd5b64b146c0c7e1a65e0f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 15:06:45 2015 +0300

    lib-fts: fts-tokenizer-generic-private.h had content that didn't really belog there.

commit 61eb91ed6d69e2e4c4ce0c9231244af37b5fe075
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 15:00:28 2015 +0300

    lib-fts: Removed supports() function from filter API
    I think the original idea was that this could be used to automatically
    create filters for many languages, but this probably won't be needed or
    wanted.

commit f5c0d5cada4da23a167c38426d0c481a3e1d5583
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:56:33 2015 +0300

    lib-fts: Removed tokenizer name macros from fts-tokenizer.h
    The tokenizers can be directly accessed via their class structs.

commit a46abae27d4b00f77e5932ed8f7595c054fe0280
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:55:47 2015 +0300

    lib-fts: Store pointers to fts_tokenizer classes instead of copying the data.
    The same reason as for doing this for fts-filter.

commit b1965419f329eb7cf78ee39e7c5942462eabb256
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:53:46 2015 +0300

    lib-fts: test-fts-tokenizer cleanup - moved tokenizers_init/deinit() to be done globally

commit a7d8afaadae968db20eb979052111d76a3086cd7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:50:10 2015 +0300

    lib-fts: Removed filter name macros from fts-filter.h
    The filters can be directly accessed via their class structs.

commit 1ef271d30011acf79e8e2a42b7b9baae8a2264d3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:49:20 2015 +0300

    lib-fts: Store pointers to fts_filter classes instead of copying the data.
    Doesn't really matter, but it's a bit cleaner when fts_filter_find() returns
    the same pointer as the fts_filter class originally was.

commit 60ba197d17023594231d9805d889817782e41859
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:41:05 2015 +0300

    fts: Lowecase non-human language input while indexing.

commit acfcf88e4dd529e4b2409f43bc9713cbc0169347
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:26:42 2015 +0300

    lib-fts: Added "lowercase" filter.
    For now it handles only ASCII characters, but that's enough for our use.

commit eac88e31b791d6a099e0e497ac2a29aa041f05b2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:09:37 2015 +0300

    lib-fts: Removed "simple" normalizer.
    It translated input to titlecase, which wasn't suitable for snowball
    stemming that wanted lowercase input. Since that doesn't work, there's
    probably no good for the existence of this (perhaps in future it's replaced
    by unicode-aware lowercaser).

commit 5916f19b49cae37c888109f6fdff3224f81d33ae
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 14:19:48 2015 +0300

    lib-fts: Minor unit test cleanups

commit 5ea079cebbcf12cde7070a9174b33e1bbab72465
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:57:41 2015 +0300

    fts: Reset tokenizers before using them
    This is mainly needed if the previous tokenization had failed.

commit 2730605833442b5ddcb261f90b8375fc98201e35
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:52:37 2015 +0300

    lib-fts: Added fts_tokenizer_reset()

commit c4b772bfbdafe68ac1a0076eab26cd681f8e5046
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:46:37 2015 +0300

    lib-fts: fts-tokenizer-address didn't reset state properly when input ended.

commit 0c827d2094e80ede4c089fc00260d7ffcc764636
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:31:14 2015 +0300

    fts: When tokenizing a search word, give "search" parameter to all the tokenizers.

commit aaed9e3ce98759e0cb1258fc14e1076b71791445
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:30:41 2015 +0300

    fts: Don't crash if search arg string expands to empty token list.

commit 505bba1d21a851fb9e719bbf381f8be592afa50a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:20:29 2015 +0300

    lib-fts: Use case-sensitive settings comparisons in fts-tokenizer
    Dovecot in general doesn't allow case-insensitive settings.

commit d1356a777d42a820218c05fc2c16095ed3e07dbd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:19:21 2015 +0300

    lib-fts: Minor unit test fix - use case sensitive checks for word comparison.

commit 1cc4d4d1a2ca48a82434da470872392c1bdcb651
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:15:43 2015 +0300

    lib-storage: mail_search_arg_dup() is now a public function.

commit e4bf76afb82ea28ec9d06823fa7deed5f8277183
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:15:09 2015 +0300

    lib-fts: Implemented "search" parameter to fts-tokenizer-address.

commit 98fe03ecad7fcf0973584b9ab0b4dc4848881d56
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 13:01:45 2015 +0300

    fts: If filtering fails during search arg expansion, fail the fts search.

commit 1d8bcf118d6d1b26477d4e27383492143a2847e4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:50:54 2015 +0300

    lib-fts: Compiler warning fix when building without libicu

commit 3743d05a3349885a16ab4d1c390a3f7dfef953b1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:50:11 2015 +0300

    lib-fts: Minor fts-tokenizer-address cleanups

commit 908c417cc19ec4a2a01db542498c13ade3943601
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:48:13 2015 +0300

    lib-fts: Removed explicit no_parent setting from fts-address-tokenizer
    It was used only by unit tests and we can check it without the setting as
    well.

commit 12bc47bcae87a1f954b98420929eaf90922aa605
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:41:59 2015 +0300

    lib-fts: Use rfc822-parser in fts-tokenizer-address instead of duplicating its code.

commit 173d34afe822575f4cd71b2abcd77394323692f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:39:21 2015 +0300

    lib-fts: Don't treat empty domains as valid addresses.
    This actually pretty much reverts the previous patch and just fixes the
    original code's chars_after_at() to work correctly. Also renamed the
    function to make it a bit clearer what was intended.

commit 81fd40df7ba295e2af88d7ed460919303a83aef0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:32:46 2015 +0300

    lib-fts: Removed unnecessary code from fts-address-tokenizer.
    chars_after_at() was only used to check if local-part was empty, but it was
    checked at a state where it never could have been empty.

commit 20f03fe09bb80a207592d59fba369c2c51075e10
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:01:42 2015 +0300

    lib-fts: Various fixes and cleanups to stopwords filter.
    Most importantly words added to hash table needs to be allocated from the
    pool and not data stack.

commit 927f6e67f9478f9b298fb85b18de990d9b80c337
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 12:04:56 2015 +0300

    lib-fts: Assume that fts_language.name is always lowercased and has two letters.
    Anything else just unnecessarily complicates the code.

commit b58ad1c4a4ef561b0081d6daa47c2dd7b223aeac
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 11:57:40 2015 +0300

    lib-fts: Fixed test-fts-filter unit test to handle errors a bit better.

commit 6111370718708a3a966c60a1941ea303a4e0c759
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 11:46:09 2015 +0300

    lib-fts: Changed filter's internal APIs to return error_r directly.
    It's not very safe to store strings allocated from data stack to any
    permanent structs.

commit c5c58fbb11c4a40708ba943274ee5dbccf3baf56
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat May 9 11:33:45 2015 +0300

    lib-fts: Snowball's sb_stemmer_stem() can only fail because it runs out of memory.

commit ade9b3596a1f2555846a093572069a59d1427b13
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:17:03 2015 +0300

    lib-fts: Improve using max_length in tr29 tokenizer

commit 78f87ea1d30f3f54bdf8560ea947ab7ee094283a
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:16:22 2015 +0300

    lib-fts: Fixed using max_length setting in simple tokenizer

commit 50f659bc47b06939dcb7694c928c9f8aa7f56229
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:15:50 2015 +0300

    lib-fts: Default to simple tokenizer algorithm

commit dfb9243af1c95de27c7b3a783629ad901c085927
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:15:34 2015 +0300

    lib-fts: Delay stopwords filter full initialization until it's needed.

commit 55be4b0677a92a3ecbf674a57dd5b7ca3d067f85
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:14:51 2015 +0300

    lib-fts: Delay snowball filter initialization until it's needed.

commit 1d0f568e26ce5cbf18cd7bb335c6eea20a7e3770
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:13:49 2015 +0300

    fts: Improve filter error handling.
    
    In lib-fts:
    Move error storage to the generic filter struct level. Change make_utf8
    helper to void also.
    
    In fts:
    Add the error argument to _filter() calls.

commit a53953d8bd472645a36f5b221024ab86426e873a
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:10:31 2015 +0300

    lib-fts: Removed make_uchar() return value.
    It was already de facto meaningless, so best we remove it.

commit f65a6ee214adc07e473d443ccd49a5bb99ed60a0
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:09:37 2015 +0300

    lib-fts: normalizer-icu now delays initialization of libicu.
    This way the normalizer can be quickly created even if it's never even used.

commit db090e2a48bcc5ce162af0c36eef04407421379d
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:06:45 2015 +0300

    fts: Change filter API to be able to return errors
    
    Modify fts_filter_filter() to return integer status codes. It returns
    1 if a token was returned, 0 if it was filtered away and -1 on error.

commit 3dc5a231160859c9627157dc53a94d5e4494fe9f
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:05:04 2015 +0300

    fts: Change tokenizer API to be able to return errors
    
    Modify fts_tokenizer_next() to return integer status codes. It returns
    1 if a token was returned in *token_r, 0 if more input is needed and -1
    on error.

commit 957b0b4c9aeff7153bb9ebf91d8aea550bd07865
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:03:21 2015 +0300

    fts: Replace '-' with '_' in tokenizer-specific fts_tokenizers_* settings

commit 4ef1f9f3293965734e6e3c38c191ceb2246a721f
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 11:02:22 2015 +0300

    fts: Create tokenizers differently
    
    Create tokenizers earlier. Create separate tokenizers for search
    and indexing. Enable configuration of tokenizers. Add some helpers
    in fts-tokenizer.h api. Change tokenizer unit tests to match
    those changes.
    
    lib-fts: Refactor lib-fts settings a bit
    
    Turned address tokenizer settings into "boolean" values. Changed
    have_parent to "no_parent" and added "search" setting. Added
    documentation in fts-tokenizer.h. Change unit tests accordingly.

commit 09aed882b99e865ff6d7140ae2f77a42c9e7d1a7
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Sat May 9 10:53:25 2015 +0300

    fts: Create filters earlier
    
    This builds on the assumption that early initialization will be made
    less costly, in a coming change.

commit 6f29823de4afa30129d70e6f9e1ceb19599a5c20
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 8 16:00:16 2015 +0300

    fts: Fixed handling NOT when using lib-fts

commit 344bb4abc3acb63d04131cb63f1503a6ca01fb40
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 8 14:47:26 2015 +0300

    dsync: Stop running if SIGINT/SIGTERM is received.

commit 3ee40ecd55d40fdb0214e73bf26f73c812b7c64f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 8 10:44:18 2015 +0300

    Moved fs-compress from lib-fs to lib-compression.
    This solves build ordering issues.

commit 29b8c2bd69b2b2d688fdbf6b8383c7abff0f276b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 20:35:23 2015 +0300

    lib-fs: Fixed fs-compress code to actually build and run.
    It's a plugin (because it depends on extra compression libraries). We want
    to register it only when it's explicitly attempted to be used, not before.

commit d0c3964c88496a3c476a649c21f2abf8d81fd7ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 20:25:44 2015 +0300

    lib-fs: Added fs-compress wrapper.
    Future TODO could include automatically detecting the format of the input
    file, but this should be optional.

commit 441f0e0d84082eb498e620327ebf4de509052d15
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 18:21:35 2015 +0300

    lib-storage: Fixed LAYOUT=imapdir to work again
    Patch by Jason Gunthorpe

commit a56fcfa52e89601d96376a29cd392a671fe25713
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 18:04:33 2015 +0300

    director: Fixed "doveadm director status <user>" lookup to return "Current" correctly.

commit 2f41b2ceffdf7ddb08252621484c8e8b0e6c5457
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 17:29:55 2015 +0300

    example-config: s/Recipient:/Received:/

commit 8f2af06e45c842548475fd4c4360de2b7b047616
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 17:29:00 2015 +0300

    exmaple-config: Added lmtp_hdr_delivery_address setting.

commit f0ecd925c7feb815c4b9acf84772fcd56c02319b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 17:18:44 2015 +0300

    auth: Added assert to make sure previous change is correct.

commit 3db05c8c00faca6ab9ac8391e1d6977365f4d1b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 11:27:55 2015 +0300

    auth: Fixed credentials lookups via auth-workers when no actual password was returned.
    For example LDAP lookup with auth_bind=yes should still return any extra
    fields.

commit 0a66c12342ea04294de790b930dec9227df5623a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 11:21:33 2015 +0300

    ldap auth: If password is already verified (e.g. master user login), skip LDAP auth binding.
    This happens only if auth_bind_userdn isn't set, i.e. it only makes sense if
    the LDAP DN lookup also returns some extra fields.

commit 867c109fc5133a7f2d142b231f35030cb1fcd6ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 00:01:16 2015 +0300

    mbox: Added an extra assert

commit f76f483f08e91c0a7a4c6816004c24a50934abcf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 7 00:01:08 2015 +0300

    mbox: Fixed crash/corruption in some situations when the first mail was expunged.
    This could be reproduced with default mbox settings, IMAP session that does
     - STORE 1 +FLAGS \DELETED
     - EXPUNGE
    
    With mbox containing:
    
    ===
    From root@example.com  Tue Jan 13 10:18:16 2015
    
    a
    
    From root@example.com  Tue Jan 13 10:18:20 2015
    
    a
    
    ===

commit 6ba5d739f779de5fda827e8f722bb50142653e1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 19:50:23 2015 +0300

    imap: Don't advertise SPECIAL-USE if there are no such mailboxes configured.

commit d12ea923bd1d532c6f7fee44304dde8d0f321dd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 16:16:11 2015 +0300

    dsync: Don't try to rename namespace roots.
    It'll just cause an assert-crash.

commit 24072b49beff674d7c04c60e088a29a28882d727
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 16:01:45 2015 +0300

    doveadm: Changed -U to -F
    Otherwise -U collides with doveadm sync -U parameter. -F isn't currently
    used by anything.

commit f7141101e27d766b695ef27726f755117332a58e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 15:45:43 2015 +0300

    doveadm: Added -U <file> parameter for executing the command for all the users in the file.
    This is similar to -A parameter, but instead of getting the list of users
    from userdb they are read from the file. The file contains one username per
    line.

commit 98e8f95ffee4eacca72b1bcf082f2c735592301b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 15:42:31 2015 +0300

    doveadm-server: Invalid parameters for some commands caused crash at deinit handlers.
    deinit() can be called even if init() was never called.

commit 95d41d210790d6c544537d2ef10c5f3cf86055e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 14:14:09 2015 +0300

    script: Another comment update about protocol - the previous one was wrong.

commit 7439b55b88ec777baf00b8aa24a99017ab4ecb01
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 6 11:10:09 2015 +0300

    script: Updated comment to describe the current script protocol.

commit ab1e085cf10b68a7e6a8889156493a3369a194e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 23:07:03 2015 +0300

    doveadm fs delete: Fixed function return type

commit e0f57c552d2f436458163f722a7d0cc9a95d0709
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 16:24:07 2015 +0300

    lib-storage: After mailbox_list_init_fs() is finished, notify fs about it.
    Creating a separate fs_init_finish() would perhaps have been clearner, but
    it's a lot more work and usually isn't even necessary for most backends.
    So I simply chose to use fs_get_properties() which is a fast call in all fs
    backends and the few ones that actually care about the initialization finish
    can then do their work in there.

commit c0273594fd114be5262298019b7392bdd6d0e537
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 16:18:21 2015 +0300

    fts-lucene: Removed lazy initialization code.
    This is no longer needed after the previous fts commit.

commit 11f12ca1c97583b551a4286fa6cd1ab33aa67680
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 16:17:14 2015 +0300

    fts: Initialize fts backend in mail_namespaces_added(), not in mailbox_list_created()
    This way the storage has already been created by the time fts initialization
    starts, which simplifies things.

commit a41f6dd2a2434206d2a445ac73c79861d3496a2a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 16:14:07 2015 +0300

    lib-storage: mailbox_list_fs_get_list() shouldn't crash if fs wasn't created by mailbox_list_init_fs()

commit 917b4e1a9e1f06124f47d0de9c0a060b23e9c0e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 14:16:31 2015 +0300

    auth: If passdb has non-matching allow_nets, don't fail the other passdb lookups also.
    We might want to use e.g.:
    
    passdb {
      driver = static
      args = password=secretmasterpass allow_nets=10.1.2.3
    }
    passdb {
      ...
    }
    
    If allow_nets didn't match in the first passdb, we should just ignore it and
    continue to the next passdb.

commit f942b7b96a5c3c6756a6ea7bc3de0cd01bcb07fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 13:35:52 2015 +0300

    doveadm fs delete: Another attempt at fixing recursive deletion.
    I'm not entirely sure anymore what the original infinite looping was, but
    this fixes all the potential problems that I see.

commit f86f7ec83f6626701137ad86fc7c7d431367ea83
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 13:30:38 2015 +0300

    doveadm fs delete: Reverted last two patches - they were all completely wrong..

commit f98a0796910657153726088fb936737cc585cd63
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 5 13:13:42 2015 +0300

    doveadm fs delete: Recent changes broke it completely.

commit 7f0fad65a36fab61739a50ea110e243b225d5d18
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 23:27:42 2015 +0300

    lib-storage: Fixed setting/getting server metadata.
    Also added a MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() macro to make it a
    bit easier to check if a key should be accessible to a user or not.

commit 146f9076cd456ea1e9b3f8536456d9d3c962fadb
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon May 4 19:53:53 2015 +0300

    mail-storage: Moved mailbox attributes API to separate module.

commit 70f202ae74b6981ced5776a69b1070274313c6c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 19:15:10 2015 +0300

    lib-fs: Forgot to initialize refcount in previous commit

commit e853125eceafe8c3e286ce9b4176f6df4b806ace
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 19:06:11 2015 +0300

    lib-fs: Added fs_ref() and fs_unref() for reference counting.

commit c01e993599a6870558de9dd3bba9a9e333b3fb92
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 18:44:29 2015 +0300

    imap: FETCH BODY.PEEK[HEADER.FIELDS (..)] didn't set wanted_headers optimization.
    Primarily this fixes imapc's prefetching.

commit 50ffc12831eff618d35a8ee7537b61eaa95a4ade
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 18:31:27 2015 +0300

    imapc: Various optimization fixes to fetching messages' virtual size.

commit 7ac6e63e07b4e260a39ab057c366845bae52cfff
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 18:15:00 2015 +0300

    imapc: imapc-features=rfc822.size didn't work for fetching mail's virtual size.
    Physical and virtual sizes are the same for imapc.

commit baf4695c4249fa98228503ddd1d1c65d0b74288d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 12:07:16 2015 +0300

    configure: When compiling with sqlite3, don't forcibly link with zlib.
    Looks like -lz was originally added when it was copy&pasted from some other
    code. Hopefully this isn't actually needed by any (current) system.

commit c8c6f2fda3d01bde72100c26a30d8f62ea2f31bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 4 11:55:11 2015 +0300

    man: Fixed -Dv parameter position in doveadm-sync.1

commit e2e6f40d58b85041ca77338026a17d6708f324ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 3 17:07:02 2015 +0300

    acl: Log more debug info with mail_debug=yes

commit 971f89b14c748f2338091c82ad377e93c58598c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 3 16:26:46 2015 +0300

    lib-mail: Removed quoted_printable_decode*()
    quoted_printable_q_decode() was still left in quoted-printable.h, but maybe
    it should be moved to qp-decoder.c as well.

commit 1a6a2a1317965035bec89ffbbc0e408fc8652621
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 3 16:23:41 2015 +0300

    lib-mail: Switched message-decoder to use qp-decoder.
    This probably doesn't fix any actual bugs, but allows getting rid of the
    quoted_printable_decode*()

commit 76adf7943137e72c20b2a0913ce2fc53548a19f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 3 16:22:55 2015 +0300

    lib-mail: Fixed various istream-qp-decoder bugs by switching to qp-decoder API

commit 722702762c77bf1c02f25f8b870dda988f15d539
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 3 14:50:01 2015 +0300

    lib-mail: Added qp-decoder, which is a rewritten quoted_printable_decode()
    The main benefit is that qp-decoder allows feeding data to it in smaller
    pieces. It can also give better error reporting.

commit f0d8efc20cfcb38c132d333704bb08de2e9c62f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 17:45:30 2015 +0200

    director: Log error if auth sends invalid lip/lport/port parameter.
    This also fixes compiler warnings.

commit 77f05ffe7beed18670d703ca2a07381a94a31fc1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 17:43:13 2015 +0200

    lib: Added unit test for net_ip2addr() and fixed net_is_in_network() test.

commit 68ae5d6615e80f46d5565735a700ea69869d46a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 17:36:44 2015 +0200

    lib: Renamed test-network to test-net
    Since network.c had been renamed to net.c some time ago.

commit d1e20cdf44505bd5551fcf4d825decba66f77852
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 17:35:18 2015 +0200

    lib: net_addr2ip() sets the family now only after address is successfully converted.

commit 3fbc12d56ede063e9e049496b620a1e2934e418e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 17:19:34 2015 +0200

    lib-imap: imap_utf7_to_utf8() returns failure now for encoded NULs.
    All the callers change the string to NUL-terminated string, so the earlier
    behavior was just truncating the string at the encoded NUL. It's a bit safer
    to just return failure so in future if the callers didn't convert the string
    to NUL-terminated string it wouldn't be handled inconsistently in different
    places.

commit 0dc72981f5286d60ca9233f6ac7c444d393d24fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 11:33:21 2015 +0200

    director: Implemented director_proxy_maybe passdb extra field.
    This allows running director and backend in the same Dovecot instance. It
    was implemented into director instead of login-common to allow doveadm and
    lmtp proxying to work as well (although currently lmtp can't handle mixed
    proxying and non-proxying destinations, which makes this a bit less useful).

commit 7a545edbd1fca7a330bcb4a807002373ee18762a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    uri-util: Added the possibility of only checking the URI without parsing any of the data.

commit bcd6c13936df11167350ac86598a781dce9038c3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    uri-util: Improve errors about invalid characters in URI by reporting the component where the offending character is located.

commit f3cf2f02155c4bac23fd50f0de96c0cae9c46478
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    uri-util: Allow empty host name in the generic URI syntax as specified in RFC 3986.

commit 8c80cd4e90c621d7ddedf0ee29b4ff8effb9b9f8
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    lib-http: client: Fixed memory leak in CONNECT tunnel support.
    Forgot to dereference streams once tunnel was completed and passed to the new connection object.

commit 6793538c389d3e725456e3eabb697e2743233646
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 25 11:42:06 2015 +0200

    lib: connection: Connect to unix socket asynchronously if connected callback is set.
    Prevents problems in lib-http unix socket support.

commit afbd17685101cc2bbd0614e85558bb167ab15096
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 10:34:33 2015 +0200

    fts: Do not deinit uncreated fts context
    Fixes crash with fts-lucene and fts-solr when lib-fts wasn't used.
    Patch by Teemu Huovila

commit bcdf3baace79a5ebaaa8f8b4baadae258e972c1b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 10:27:50 2015 +0200

    trash plugin: Count more correctly the number of bytes/messages needed to get under quota.
    If there already were some messages saved, those weren't counted when
    figuring out how many/much mails are still needed to be expunged.
    
    Patch by Alexei Gradinari

commit 50e7732ee46524f4617b31bc1f4768645fef1f5a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 10:22:26 2015 +0200

    trash plugin: Fixed handling unlimited quota limits.
    Patch by Alexei Gradinari

commit 4c7e360ab67642c08f82c709445ea45aa170632d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 29 10:13:19 2015 +0200

    quota: Don't assume mail is too large if a quota root has mail count limit but not size limit.
    Based on patch by Alexei Gradinari

commit 82705acc82d625a60146b72b9296146dd8312261
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 28 14:20:39 2015 +0200

    lib-mail: Fixed modifying headers with i_stream_header_filter_add()
    If the stream was read twice, the second time the callback wasn't called and
    the header wasn't modified.

commit ebf63135842d2cfdc9cc5de7e1ca90b4b88ece56
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 28 11:27:04 2015 +0200

    *-login: Don't try to flush SSL output if SSL handshake fails.
    This fixes a crash on failed handshakes on some OpenSSL builds.

commit efc70d056348cf48f13c0138b9f986a31279a536
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 12:16:07 2015 +0300

    Forgot to include year 2015 in earlier new files' Copyright lines.

commit ffafd76c96f018523f23601bc57200ec013c84a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 12:07:44 2015 +0300

    log: Don't confuse process sending a partial log line to process sending logs too fast.
    If it's a partial line we don't want to show the "service too fast" error in
    ps title.

commit b78d8dbe4179aabcbf9fda41d282673558dae4d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 11:52:02 2015 +0300

    lib: Fixed crash in connection API if input streams aren't used (only input fd).

commit 4c1a936be3273581135eb9ba7a1cbcdb1ffd6cc6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 11:40:23 2015 +0300

    lib: Fixed test-istream-unix to not send uninitialized bytes.
    Fixes Valgrind errors in make check.

commit 9805f5093a0e0845f028fb8fd52b0eec27d8f7ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 11:27:17 2015 +0300

    imap: Code cleanup: Moved IDLE keepalive timer calculation to lib-imap.

commit bf132be3fe1c9e8de84f10d0b05c0b46ca542ac4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 11:23:00 2015 +0300

    lib: Added istream-unix for reading fd sockets via istream.

commit e88b20c658cc07c9a38718807aae2e6cf8bc17a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 25 11:22:39 2015 +0300

    lib: Added numpack_decode32()

commit eeb03434472130f9631f164440566fd8d09e6380
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 16:03:51 2015 +0300

    fts: Fixed infinite looping at deinit.
    fts_mail_user_deinit() was calling itself. Now the fts backend is
    responsible for calling it at deinit.

commit 46241d83c85f77100dda5b5fb416c2865ae95167
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 15:45:42 2015 +0300

    doveadm fs delete -R: Fixed infinite looping when deleting a lot of files with some backends.
    After file was deleted, we closed it. Then later on we tried to delete it
    all over again.

commit f9ca41ec7a26e8e571e268ee5c8da2e5745a4ab0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 15:41:55 2015 +0300

    doveadm fs delete -R: When deleting directories, include "/" suffix in the name.

commit 1ac7b6969120bfdb15497663229f0dd168ae4ab8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 15:13:59 2015 +0300

    lmtp: Added lmtp_hdr_delivery_address=final|original|none setting.
    This controls what username is used for logging Delivered-To: header and the
    "for user@domain" in Received: header. The default "final" is the regular
    username as earlier, "original" logs the RFC822 address received via ORCPT
    parameter or fallbacks to username, "none" logs nothing.

commit 55257755b28e6fb73a4d285fa5d8e5ac33ad055a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 14:47:43 2015 +0300

    doveadm-server: Fixed returning command input stream when its data was already in the input stream.

commit 1e60d516e91238b41c951009729f5703eca49211
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 14:25:06 2015 +0300

    fts-solr: fts_solr=use_libfts send data to Solr via space-separated tokens.
    In this case Solr should be configured to not do any kind of filtering and
    use only WhitespaceTokenizerFactory.

commit a32b055a1a537c2e2eade309bae70b1344bb3b37
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 14:08:51 2015 +0300

    fts: Minor error messagage prefix change.

commit 4ba3717a04823875c2a1d60ff9dc8177ae033d12
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 14:08:39 2015 +0300

    fts: Don't always try to initialize lib-fts. Require backend to explictly do it now.

commit 36723229d57e4b03546f048aa8b5193903b7009b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 14:03:01 2015 +0300

    fts: Install fts-user.h header

commit 4c61d6b6ad6173f06563c2cee9bd813c59277dd2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 13:10:17 2015 +0300

    fts: Replace '-' with '_' in filter-specific fts_filters_* settings.
    So for example using fts_filters_normalizer_icu instead of
    fts_filters_normalizer-icu.

commit e0593474ae2d8b1d4ec8c70c4fd84ea2bfede75a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 13:08:16 2015 +0300

    lib-fs: Use the new t_str_replace() instead of doing it ourself.

commit be1749e2421dea6465f9096fd35b28b2500d06e4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 24 13:07:39 2015 +0300

    lib: Added t_str_replace() to replace one character with another one

commit ad0131e97521153d9c4f3419fdd36f19cb76b8fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 21:32:43 2015 +0300

    dict: Fixed unescaping strings from lib-dict.
    This may potentially break backwards compatibility with someone, but it's
    probably pretty rare that anybody is yet using dict proxy with multi-line
    fields. Also even though the current behavior happens to work, it's very
    much non-ideal and can be potentially dangerous.

commit 51d7baa054bf6e833ef2b2fc198ee4ab0974ebb7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 21:26:50 2015 +0300

    auth: Don't assert-crash if master user login attempts to use empty login username.

commit cc935aff970ed6c24d136cc560c7e705a49d536c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 21:19:54 2015 +0300

    lib-storage: mail_search_args_simplify() handles now SEARCH_HEADER*/TEXT/BODY
    These are especially useful with lib-fts, where stemming and other filtering
    can produce duplicates. There's some internal deduplication, but it doesn't
    catch all of these.

commit f5e8a76a128d4e92f0641135183c164fd5c5ce5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 21:00:43 2015 +0300

    lib-storage: mail_search_args_simplify() handles now SEARCH_SMALLER/LARGER

commit d6a7cb184cc882a90aa3d9312082e0029f354ff6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 20:50:23 2015 +0300

    lib-storage: mail_search_args_simplify() handles now SEARCH_BEFORE/ON/SINCE

commit 7000810786f2959f02cd6d2f4151a9eb61ff5db8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 20:16:54 2015 +0300

    lib-storage: mail_search_args_simplify() merges now seqsets and uidsets.

commit fb79b36eb34532dbe67caf99eefe3660b8c841e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:49:49 2015 +0300

    lib-storage: If mail_search_args_simplify() merges flags, check again if any SUBs can be removed.
    The subquery may have been replaced with a single SEARCH_FLAGS parameter.

commit 78278319a2256e1e0dd63c4ccc0188eb975a016e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:42:13 2015 +0300

    lib-storage: Makefile fixes for previous test programs

commit 45a3ea3347dd42fccc84a3efafb6331e7baeb404
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:37:25 2015 +0300

    imapc: Don't write SEARCH YOUNGER/OLDER queries if server doesn't support WITHIN extension

commit f8740ac53310cd28ba4ec6dc9e9ce6e9a3688f39
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:29:43 2015 +0300

    lib-storage: Moved mail_search_args_simplify() to its own file and added unit tests.
    No functional changes.

commit ae1b2f554899c1221a24dd6f658dc91d9f7987ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:28:04 2015 +0300

    imapc: Use mail_search_arg_to_imap() to write IMAP SEARCH parameters.
    This also fixes a few bugs, since some of the search parameters weren't
    written entirely correctly.

commit 9b92e796224f39ee4a65f7108376db9bfe0e22dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:24:50 2015 +0300

    lib-storage: Added mail_search_args_to_imap()
    Useful for writing IMAP SEARCH parameters from struct mail_search_arg.

commit 4fe4f6e1350c486f8e3e7ab6f9da9ff427162802
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:20:00 2015 +0300

    lib-storage: Added mail_thread_type_to_str()

commit 120dd01f52ecb944fb0f317557a9b8bd020146dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 19:19:10 2015 +0300

    lib-imap: Added imap_to_date()

commit 2848ed04730e9f2ed91829d41312ebc3132b5613
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 16:33:19 2015 +0300

    lib-storage: Fixed assert-crash with mailbox_list_index=yes if root mailbox name was empty.
    This happened if the index was used for a non-listable namespace whose
    prefix started with the namespace separator (e.g. prefix="/expunged/")

commit a7348c7fdc2c65d6452f740ccdfa29e66916e5d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 13:37:22 2015 +0300

    imapc: After auth failed, return failure immediately when opening a mailbox.
    Instead of trying to re-authenticate which again will most likely fail.
    Based on patch by Michael M Slusarz

commit 471eed36d9aee2f7d99072a4fc5e164a6741194b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 13:27:17 2015 +0300

    lib-storage: Small code cleanup for index_mail_get_binary_stream()
    stream_r is always non-NULL here. Also move unreferencing cache istream to
    be last in case it might fix data.stream=NULL being here in some situations.

commit 75157863d633300d814fe630590ccb5310b9fdc2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 13:01:50 2015 +0300

    lib: Fixed reference counting in iostream-rawlog if either i/ostream wasn't used.

commit fc64b2b538099893e2c2dde103b5c5af1d05d6da
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 11:40:03 2015 +0300

    lib: iostream_rawlog_create_from_stream() now allows input or output to be NULL.

commit 59eba6fc8b6c8d49cac458d8bfefbf163c13d5f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 23 11:20:53 2015 +0300

    lib-storage: Fixed subscription file reading when file was (nearly) empty.
    Broken by the earlier changes.

commit 4b11f96880f61e5583b9a22b89e1c166710016f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 22 18:17:10 2015 +0300

    lib-storage: Added support for subscriptions file version 2 format.
    The v2 format's main benefit is that it doesn't write the hierarchy
    separator to the subscriptions file, which allows the separator to be
    changed without breaking subscriptions. This mainly affects LAYOUT=INDEX,
    which doesn't have a native hardcoded separator.
    
    The plan is to start writing v2 subscription files in Dovecot v2.3. So for
    now we simply read such files and if we find v2 file we also modify it in v2
    format, but we never create new v2 format files or convert v0 to v2.

commit 36716baeee63350c23809909199a8d533d559610
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 23:00:08 2015 +0300

    fts-lucene: Fix to earlier commit: Header names must be indexed without libfts, not with.

commit 4f4daf7df84f450c7342de569bf25195e93d6bc7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 21:29:42 2015 +0300

    fts-lucene: Optionally use lib-fts instead of CLucene's own analyzers.
    fts_lucene = use_libfts enables this.

commit 76cb5c2b65f8ca773c253e2c3b027517c388812b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 21:28:41 2015 +0300

    fts: If backend has FTS_BACKEND_FLAG_TOKENIZED_INPUT set, index also the header name.
    We were sending the hdr_name to the backend without tokenizing it or
    filtering it, so the backend couldn't have done anything useful about it.

commit 0c509a394d47dc49e2792b3ab0a26817b9d8b2a5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 20:59:48 2015 +0300

    lib-fs: Fixed fs-posix to work with fs_iter_init(path="") when fs prefix wasn't set.

commit ec930ce90b17fb63ff035c1c87d994800de092f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 20:16:36 2015 +0300

    lib-fts: Added normalizer-simple for doing normalization without libicu.

commit 2f2faa96aaf6989fae9acab1523f8be372060a02
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 19:40:42 2015 +0300

    lib-fts: Fixed test-fts-filter to work again after previous normalizer changes.

commit 63713f16bad8b55e74c479adb6b47965b519c29b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 19:36:27 2015 +0300

    lib-fts: Renamed normalizer to icu-normalizer, including the source code.

commit cb6f6ef5044a559fb285e2f7d3fe12b4751ea708
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 19:31:14 2015 +0300

    configure: s/normalizer/libicu/ since we it could be used for something else as well.

commit e298a331a43bf0073b5209233fce2f021021f80d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 17:01:39 2015 +0300

    lmtp proxy: Include in log messages how long it took to deliver the mail.
    In multi-RCPT TO sessions it's a bit unreliable to split the single DATA
    reply's times to multiple lines, so instead each line just says
    "(2/3 at 123 ms)" meaning that the second mail was delivered at the time
    when 123 milliseconds had elapsed since the delivery was started.

commit da0420f1b5d5f5ab1079d1204d70dd51866ce025
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 16:54:51 2015 +0300

    lib-lda: Assume that the caller sets delivery_time_started
    This is required because parts of the delivery time may be done at the time
    the user is being initialized, so it needs to be set before the user init is
    done.

commit 0783364679d85752a759de55b3dfd108fc72d957
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 16:52:59 2015 +0300

    lib-lda: mail_deliver_log() now updates the %{delivery_time} instead of using the first cached value.
    The first time the cached values are set the transaction isn't committed and
    the mailbox isn't synced.

commit 5072e5009f39991c849ac424467eda8e75a8a4f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 16:50:43 2015 +0300

    lib-lda: Added lmtp-client to track timestamps when various events happen.

commit cb29b57f69861c07e1c0a5015d77ad5938b6dd5d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 14:08:12 2015 +0300

    imap: Finishing previous commit by removing now-unnecessary code.

commit 115cf0320f679e4e63db25e7f44f47977b8338de
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 14:06:41 2015 +0300

    imap: Removed separate time counting from SELECT and SEARCH commands.

commit 8808ae64126694d020a4d454972d48e106ab829a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 14:06:22 2015 +0300

    imap: Include in tagged reply how much running time each IMAP command takes.
    The running time doesn't include time spent waiting for the client on
    ioloop.

commit 900cbc1dc5b62363f26da3087551ce972188b744
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 14:03:52 2015 +0300

    imap: Small code cleanup.
    Removed all the checks of CLIENT_COMMAND_STATE_DONE to command_exec()
    itself.

commit 6b6011c2242e470b41316f92512b282b5e306dac
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 13:19:24 2015 +0300

    lda, lmtp: Added delivery_time and session_time variables to deliver_log_format
    session_time is meaningful only with LMTP. The delivery_time is separate for
    each mail delivery. The results are in milliseconds now. If needed we could
    add a new %modifier that converts it into secs.millisecs.

commit dbd7b5ee98dec8779e5b318d99f5bf5af0057dd8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 11:13:51 2015 +0300

    stats: num_cmds was always 0 in global stats

commit e162baa2d2ce41a009988e86636a5c77a2725477
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 21 09:59:32 2015 +0300

    lib-fts: Added udhr_fra.txt to EXTRA_DIST

commit 4bf6941ccdfb27c99e15ab32e5299e25cd2855c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 19:57:37 2015 +0300

    lib-fts: Added PropList.txt to EXTRA_DIST

commit 82eadbc4311faf7719d5db33fddaa06cb3a7010b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 18:08:56 2015 +0300

    lib-fts requires libexttextcat actually - don't even try to use textcat for it.
    I'm also not sure yet if some libexttextcats are too old for it.

commit 0ebe498801431253a57658ea10e4826d6182b322
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 18:02:31 2015 +0300

    lib-fts: Updated Finnish/French stopword lists from Lucene code.
    Most importantly they added the licensing info to the files.

commit 556c189ce6b6de3c8b4a3fc38b7c61bef800d012
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:45:32 2015 +0300

    lib-fts: Fixed using FTS_NORMALIZER_CFLAGS/LIBS.

commit 632d2181914a1ef7752495b9740df11dcc2112f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:44:21 2015 +0300

    lib-fts: Don't crash in test-fts-filter if libstemmer support isn't built in

commit ec976e5dd4bfb02238d54854bbea58b6f5652eb3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:43:32 2015 +0300

    lib-fts: Fixed some wrong macro name checks.
    Forgot to change these ones while renaming them..

commit 9cff78f3cc4830cce2183f630ec671a98087e4d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:40:12 2015 +0300

    lib-fts: Added missing stopwords_fi.txt

commit 4e07da7f29d35d1517fce9b7300c6c19f804325b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:33:09 2015 +0300

    lib-fts: Fixed test-fts-language to use TEXTCAT_DATADIR
    This may still make too many assumptions about what data exists where.. So
    we may need to remove this test from "make check". But for now leave it
    there.

commit 30106a5a9ff807bf8ad4dd322425892dc6c16ca3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:24:37 2015 +0300

    configure: Fixed building without textcat.

commit 44f6dba7abd125795f68932f7f26c2d0d78f480e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:08:42 2015 +0300

    configure: Added Debian Wheezy workaround for finding textcat.h

commit a6f1ded5a5df8ba467c4026e9cd9c15e6880997b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 17:01:12 2015 +0300

    lib-fts: Fixed default textcat datadir paths.

commit fb32aea492f755257781aeecc5eabd7a2a503315
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 16:34:31 2015 +0300

    configure: Fixed linking with libexttextcat when it was found via pkg-config

commit 1537d20b852cbbf0d6971790b84e0cce5ca61307
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 16:22:36 2015 +0300

    fts: Added FTS_BACKEND_FLAG_TOKENIZED_INPUT, which is implemented via lib-fts.

commit c865b0e9c65fd77f7b2ab6f8616d3def5501ecb3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 16:19:07 2015 +0300

    Initial import for lib-fts.
    Parts of what this code does was already implemented internally by
    fts-lucene. lib-fts is intended to be usable for all the FTS backends. The
    APIs are still going to change a bit, but hopefully not after v2.2.17
    release.
    
    Mostly written by Teemu Huovila.

commit 5f9231534fd15b9aed2676a3d6cd07158f8e2a39
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 15:27:02 2015 +0300

    configure: Fixed/improved finding and using libexttextcat.
    libexttextcat wasn't actually being used at all by fts-lucene. Now we'll
    first prefer finding it via pkg-config, next finding exttextcat and only
    last look up textcat.

commit db9ad8c821c01a18a520c2a07b2d6dc501b4017a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 15:12:14 2015 +0300

    configure: Stemmer and textcat checks are now done even if CLucene isn't used.
    They'll be useful for other FTS backends as well. This patch doesn't change
    any actual functionality.

commit fed97f5beeadfe51190d772c5b3a6635c741f2c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 20 15:02:04 2015 +0300

    fts: Code cleanup to do all index updates via fts_build_data()
    This doesn't actually change the behavior.

commit ab0475b6fb7f7dfb0c622063b91c839d19d5aa62
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 17 11:52:24 2015 +0300

    doveadm fs delete -R: Don't add extra '/' chars in the middle of paths

commit ead160b74d930756fbdae5130a216341cf7a428d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 17 11:20:23 2015 +0300

    dovecot-config: Added lib-stats to LIBDOVECOT_INCLUDE

commit 60eda49183dbec5f3d5ec18b38433581e28e2eba
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 16 18:20:15 2015 +0300

    lib-fs: fs_class_register() can now be called externally.

commit c17957c8504a8ae862d76c29defd893e7459648a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 16 14:19:51 2015 +0300

    doveadm mailbox metadata: The keys must always be lowercased.
    The keys need to be case-insensitive in IMAP, so the IMAP code always also
    lowercases them.

commit 7c7e4eef7222014c0f608e27c0f4bb293d624489
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 16 12:59:05 2015 +0300

    stats: Fixed compiling with some OSes.
    struct timeval wasn't necessarily already defined by existing includes.

commit 8b814dfefb498d8eb99e2c65a9ba66a9936c66d2
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Apr 16 11:46:22 2015 +0300

    lib: test-array build warnings on Solaris 10
    Solaris cc doesn't think I've read N1570 6.7.9p11, 6.5.16.1p2, and 6.3.1.3p2,
    and wants to save me from myself.
    
    Reported-by: Juergen Obermann <http://www.dovecot.org/list/dovecot/2015-April/100427.html>
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit eb1365e61674c54c7c453143356a891fb2e2b3d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 15 21:01:11 2015 +0300

    imapc: Added imapc_features=zimbra-workarounds
    Zimbra (at least v5.0.18_GA_3011.RHEL4_64) can return different headers
    depending on whether the whole message body was fetched or only (partial)
    headers. This probably happens only for invalid characters that are
    translated into '?'. With this workaround enabled we don't use FETCH
    BODY.PEEK[], but we do FETCH (BODY.PEEK[HEADER] BODY.PEEK[TEXT]) and merge
    the results together. This way the results are always consistent and headers
    don't suddenly change.

commit 1f366614aaafcc9496ff85b25988f19c3254ab7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 14 09:58:01 2015 +0300

    dict-file: Use tabescaping for keys and values to allow LFs in them.
    Although this makes the format slightly incompatible, it's doubtful anybody
    is using dict values containing \001 characters.

commit b523ce63267bbe4b7f2546282a3f3703aa3c8c39
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 13 20:38:10 2015 +0300

    auth: If passdb/userdb changes the username, add the changed username also to the cache.

commit 87c4b775093deae29289c5a881aa7cd3a082b8f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 13 20:37:48 2015 +0300

    auth: Setting userdb fields from cache didn't set handle any special fields.
    The special fields were relatively rarely used though.

commit d8128f68db59e13348594b39acfab03dc0963aa5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 13 10:04:47 2015 +0300

    replication plugin: Don't crash for users who don't have replication enabled.

commit 31e6dbee5fc7d6c33b44c75c7e18ea576f44184b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 8 13:55:35 2015 +0900

    lib: Added json-tree API for parsing JSON input into a tree structure.
    This makes it easier to access complicated JSON structs that can fit into
    memory.

commit 1f4f81ba81bb9fa8abe2d94f344373c230066d67
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 6 12:07:32 2015 +0900

    lib-index: Added reason_r parameter to mail_transaction_log_view_set()
    This is used to improve some of the error messages about index corruption.

commit 189c53b4ae3629a596572e5f040be019de96e356
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 6 11:39:34 2015 +0900

    rawlog: Flush output to disk every second instead of only when buffer is full.

commit e94ce0c7fbcd43345c3344d3c1d7f4e29d462ca5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 3 08:53:45 2015 +0900

    configure: Added --with-textcat parameter

commit eef454740ca28ea82cbabbb8407a6b11a997f89b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 2 08:12:41 2015 +0900

    dsync: Improved error message when remote dsync-server couldn't be started.

commit a166cdfbaac7c17c095c4089a283d5f1b8c49726
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 1 01:16:57 2015 +0900

    dsync: Don't try to use the new "finish" state with old dsync versions.

commit 8b7e479f8d3d43eb8b98932a562dd5330b0d02bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Mar 28 01:23:47 2015 +0200

    Makefile: Build lib-dovecot before lib-compression
    Because lib-compression depends on it.

commit 9871c4b8a06fc26de2101b825fedd7c80e8195b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 27 23:39:30 2015 +0200

    quota: Added debug information for quota_over_flag handling.

commit 50e06c056c9ee6c7c7cac28d5422e6a38d038326
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed Mar 25 10:11:35 2015 +0200

    configure: Add missing (auto) to autodetected options.

commit 54f93d2bae53f99f04ba9ade48446c8a5bc77c96
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 27 18:04:51 2015 +0200

    lib-compression: Use libdovecot.so as dependency. Don't include liblib.a itself!

commit 603cfcf51ee9a6956d9c1fd4649aea88aefdf0bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 27 15:12:50 2015 +0200

    imapc: Don't assert-crash when trying to sync a mailbox with MAILBOX_FLAG_SAVEONLY.
    We can just skip the sync, because we don't do anything except save mails.

commit e265563be2031bc1f9b4ef15888e31a94a344e5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 27 14:31:01 2015 +0200

    quota: When reporting quota value/limit in kilobytes, round the value upwards.
    Most importantly this doesn't truncate <1024 values to 0, which also in
    quota limit means unlimited.

commit e5d6ec3335b472e9bd9895d75b7723706c69e9fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 27 11:02:18 2015 +0200

    auth: Don't add original_user or auth_user to passdb reply if they already exist.
    This allows passdb to override their values cleanly.

commit 4ce25b6f7ff304d40916dadc3341973eb88b0a50
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 24 11:27:26 2015 +0200

    imapc: Fix to previous change - labels are strings and not atoms.
    Allow also atoms just in case

commit dce8b33992e89d4145c544a8b5e573776f53b9e4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 24 10:14:58 2015 +0100

    imapc: Ignore \Muted GMail label

commit 697ff56bf3cdc9e7989ea2a70accf866b14b64d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 22 20:54:29 2015 +0200

    lib-storage: Added mailbox_list_fs_get_list()
    Using mailbox_list_init_fs() now sets the mailbox_list pointer to root fs,
    which allows the fs backends to lookup the list. Although this can't be done
    in the init() function since the list is set only afterwards.

commit ea19bfdfc2205af178a70915054c809ed2b8709e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 22 20:52:56 2015 +0200

    lib-fs: Added support for module_contexts in fs.
    They could also be added to fs_file if needed, but for now I didn't bother
    adding it.

commit 0bf2d5782f1637e6816efa82865ca7eacbadd20c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 22 20:52:16 2015 +0200

    lib-fs: When autoloading fs plugins with '-' in the name, translate them to '_'
    It's not possible for the function names to contain '-' in any case. Also
    Dovecot in general uses '-' instead of '_' in the configuration names. This
    change actually allows using either of them.

commit 11e8e38b5a10618cc1d9ff1169cb9b94fbcad253
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 22 18:59:51 2015 +0200

    Cleanup for libcharset's iconv linking.
    Linking libcharset.la now automatically links with the necessary iconv
    libraries.

commit 4898b00d598cccc57a5ea6512f41eb3495447d4b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 20 21:58:16 2015 +0200

    lib: Fixed potential build error when building without modules.

commit 4d65df350ee685166eed33602c0dce21f54b16ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 20 21:13:21 2015 +0200

    lib-dict: Fixed crash when transaction failed due to dict server disconnection.

commit 93936b4e7179f97ca490c863f666f378ebb08905
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 20 21:01:08 2015 +0200

    lib: o_stream_create_rawlog_from_stream() should preserve the output stream fd.
    ostream-rawlog is just a passthrough stream after all.

commit ce9619645e0ec302c208690e9f9bc65037c05196
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 20 20:46:52 2015 +0200

    doveadm: Added -h parameter to hide header line from tab and table formatter output.

commit 4a14ae55292476bc0b8eb314d602a262ab094a52
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 20 13:27:00 2015 +0200

    Removed mountpoint checking and updating code.
    After a few years it seems like it has just caused more problems than it has
    actually fixed. The only thing it's been used for is to make sure that
    Dovecot can't create empty user directories when the user's mail filesystem
    isn't mounted. But that's supposed to be normally prevented already if the
    mount root directory permissions are only writable by root.
    
    For now the mountpoint listing code and doveadm mount code still exists just
    in case people have some scripts using those. Those could be removed in v2.3.
    
    If we somehow figured out which mountpoints existed (not so easy because
    they could be only visible in userdb lookups for different users), we could
    maybe create some kind of a script that checks the permissions at startup.
    This would work with Linux at least:
    
    mkdir test
    mount / -o bind test
    ls -ld test/var/mail # assuming /var/mail mountpoint
    umount test

commit 28d084caf17b88e6ae3b44a0996465f966ac621e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 10:01:18 2015 +0200

    dsync: Fixed returning wrong mail_error in some remote dsync.

commit 535646abe6823fae109563fdff8718a201ad67cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 01:24:32 2015 +0200

    imapc: Don't wait for login to succeed at mailbox list creation.
    The failure will be visible in the next command. This wait was here mainly
    for imap, but cbdfca7d24a6 implements the wait in imap process directly.
    Other (current) protocols don't need such wait at all.
    
    Most importantly this change allows doveadm to handle imapc login failures
    by seeing them as MAIL_ERROR_PERM errors when listing mailboxes or opening a
    mailbox. This allows it to return a different exit code from temporary
    failure (which it is not).

commit 4733d3729d64480179a30698bb3412d0a074b6eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 01:21:20 2015 +0200

    imapc: Don't crash in mailbox_is_inconsistent() with unopened mailbox.

commit 58ab5b9e71ea561d049050f56a723c6c9feef66b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 01:20:38 2015 +0200

    imap: If mailbox list is unusable at startup, return failure immediately.
    This is currently used only by imapc when login fails.

commit ce0e25f26d6e67480ee39b5ca0ad634fa60c4605
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 00:41:19 2015 +0200

    dsync: Use storage's mail_error to choose the doveadm exit code.
    Instead of always assuming that all errors are EX_TEMPFAIL.

commit ce7c2091ca9f19a13c835d1d522832a73f7cfaa0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 00:38:01 2015 +0200

    imapc: If authentication fails, preserve the error message as storage/list error.
    This isn't very helpful yet, because the mailbox list creation itself fails.

commit d3d2e50d6217e29fbc9c72d14c812c02dee291ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 19 00:32:44 2015 +0200

    lib-storage: mailbox_list_mailbox() now copies the mailbox_exists() error.
    Instead of assuming it has to be an internal error.

commit 0248b1c21bed383128c0d20ff11325a2f59d0410
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Mar 18 17:10:23 2015 +0200

    lib: buffer - paranoid compile-time check for struct sizes
    At the moment, nothing guarantees that the public struct is big
    enough to contain the private struct.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 62684181bd6a426052af1e3e6c7ec73fb51eb7ff
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Mar 18 17:10:03 2015 +0200

    lib: bits - improve bits_required to recurse downwards, not sideways
    Ooops.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit db10156822c596c5e953b0ce9b10fc3732030ba8
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Mar 18 17:09:30 2015 +0200

    lib: bits - Add macro for '1 << i'
    It's used all over the place. It feels weird not having access to such a macro.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 70fc76bbc5b4e57168c2b75a97d26edc1886ef36
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 18 13:43:35 2015 +0200

    fts: Fixed assert-crash if fts-parser was created for a body part that backend didn't want to index.

commit cd58b6bbd3bf060beb34cb5b56ef8781b36f4f05
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 17 17:30:33 2015 +0200

    auth ldap: Crashfixes for earlier changes.
    Hopefully works correctly now

commit cc3cbeae65642023018d7e38eb325fea509c3e66
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 17 10:49:20 2015 +0200

    auth ldap: Fixed crash when handling invalid SSL option.

commit e3c410263ee86079b575cb5084e773b2601ae576
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 17 09:58:03 2015 +0200

    auth ldap: Fixed assert-crash when both passdb ldap and userdb ldap was used

commit 99363aeac519d37553b7776b322e60b8a23cd2b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 23:25:34 2015 +0200

    auth ldap: Start LDAP connection only after auth process initialization is finished.
    This way even if connecting to LDAP takes a while it won't cause the master
    process to kill the auth process due to it not sending the startup "I'm ok"
    notification early enough.

commit 67d650c5a18d0a03271bcb299e34ef7660835ac6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 23:21:05 2015 +0200

    auth ldap: Make sure config file path is included in all fatal error messages.

commit d492e2f0d022289c8068abfbfda86b73a66f1a50
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 23:17:39 2015 +0200

    auth ldap: If any tls_* settings are given when they're not supported, fail with fatal instead of just warning.
    These may be important for intended security, especially tls_cipher_suite.
    We shouldn't allow setting them and then somewhat silently just ignore them.

commit e885bb21d4f65f0239a8d05f5a8f17b56d5e9954
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 23:14:49 2015 +0200

    auth ldap: Call ldap_init*() already at db_ldap_init().
    ldap_init*() doesn't start connecting yet, but this way we can verify that
    all the settings are correct.

commit 6332ef7522d7a77a18c1bec4fc80d92ee597336c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 23:03:10 2015 +0200

    auth ldap: More concentration of i_fatal() calls to db_ldap_init()

commit 41e360a76aa9cf0d69aded3e0d5b0d5b5e91b50f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 22:55:47 2015 +0200

    auth ldap: Moved more LDAP fatal checks to db_ldap_init()

commit 22513dfdaa98cf387db64b0b41b036e2e7453b0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 22:48:39 2015 +0200

    auth ldap: Improved ldap_initialize() failure's error logging.

commit f2dda28eb05337cabcd66b909a66affe79de1b4a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 22:46:16 2015 +0200

    auth ldap: Include LDAP config path in all fatal errors.
    Also moved all such error checks to db_ldap_init().

commit 8e8795e08a4700348832b0be644a74dbe18f042a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 13:54:50 2015 +0200

    stats: Don't allow stats_refresh setting to be set too large.

commit 9445ac01c14614923e263ee1eeab3ea548c6c2e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 16 13:53:54 2015 +0200

    stats: Initial stats refresh timeout callback wasn't set.
    This broke after the ioloop change that caused stats_io_deactivate() not to
    be called immediately anymore.

commit 24bd831901b8fd59718e353b36eaef6a950f09a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 20:08:34 2015 +0200

    dsync: Added an extra "finish" state to allow slave-dsync to report error to master-dsync.
    I'm not sure if that's actually necessary, but just trying to follow the
    different possibilities on how dsync run can finish made me unsure about it.
    This should make it at least clear that if a slave-dsync has a failure flag
    set at deinit master-dsync will know about it before it returns success.

commit b0a06fd1ca37f4626037a62be5c7f0ce12395013
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 20:05:03 2015 +0200

    dsync: Added an extra assert.

commit f4fdc28d5df5eee00528a37e198493829e7df0ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 20:03:27 2015 +0200

    imapc: If reconnect fails during syncing, don't treat all mails as expunged in error handling code.

commit 051c44cfe0f79b7c7b4d057fc7d3e071591f9659
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 16:28:31 2015 +0200

    lib-imap-client: If we get disconnected and reconnect, log it as warning instead of as error.

commit 657f76e8b68cac605c23171862f66f2bf070eed1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 16:12:37 2015 +0200

    fts: fts-parser doesn't need to be asked about all the known-plaintext content-types.

commit 88b90ce9dfe1056d1ec5497b95592d30a849e5f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 16:04:10 2015 +0200

    fts-tika, fts-solr: Added timeouts to requests so they aren't attempted infinitely.

commit 5518182f1165884742f9eb37eb2e6136b29394e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 16:04:01 2015 +0200

    fts: If fts-parser fails, stop indexing instead of ignoring the error and continuing.
    This is especially important in case there's just some temporary error.

commit ca20a10994930a63a2991939f8613d1a59b897e3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 13 15:06:10 2015 +0200

    Makefile: Avoid make race conditions when generating files that are used as dependencies.
    The file creation needs to be atomic, otherwise another process can start
    trying to use an unfinished file. So we first create .tmp file and then mv
    it into the final one.

commit 3818c2a96699d09f65b880df6e7962570a387eac
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 19:39:03 2015 +0200

    lib-mail: Added HEADER_FILTER_CRLF_PRESERVE flag to istream-header-filter.

commit c999c1f50047dac2a94ace74cead3edd3216a5f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 17:41:09 2015 +0200

    Added signature for changeset 0f8f0d8ee607

commit c5129707176d2f201fcf5f083e115fcee08d30c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 17:41:05 2015 +0200

    Added tag 2.2.16 for changeset 0f8f0d8ee607

commit c087194944da6894d9c905de6df6eec34b246864
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 17:41:05 2015 +0200

    Released v2.2.16.

commit 55171d0298b60336048aabf7433cb75488ba00ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 15:50:59 2015 +0200

    rawlog: Updated -i -> -I also in usage string.

commit 49f88c99b3601121e2cbf78305126294721c18ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 15:50:07 2015 +0200

    rawlog: Changed -i to -I parameter
    We can't use -i, because it's handled by lib-master for instance selection.

commit ac4ec9d17c557c1816f04df63f5b5cda68c3b8f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 15:42:31 2015 +0200

    dict: cdb support should be available only to dict process.
    Because otherwise we need to link libcdb into pretty much all Dovecot
    binaries, which is part of what having the dict proxy tries to avoid.
    
    We could implement the direct linking optionally as well, but that would
    need to be done in a bit more generic way rather than just hardcoding it only
    to cdb support.

commit 2aa48777a6a8e77758ae870ef9dfd3b092417893
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 15:33:13 2015 +0200

    doveadm: Fixed table formatter for UTF-8 output.
    Based on patch by Hardy Flor

commit 78199a8ade26f7694010f1096c6fdf055a5553bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 12:32:54 2015 +0200

    fts: Added missing error logging/setting.

commit 6a262c9bd8f57cf1e57112e0522dbdab28ae8c29
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 12 12:32:30 2015 +0200

    doveadm: Added several missing error logging calls.

commit 13a7cda8a48bba9f360efe9048913eef741fff30
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 23:05:34 2015 +0200

    imapc: Prefetching wasn't done for headers if there weren't also other fields.

commit 60df0886ad7b87fcd29bd957c54c27eea0470b56
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 20:38:52 2015 +0200

    lib-master: Crashfix to earlier anvil query timeout change.

commit de26c21cfadf24c1fa59f06414854d58b3d8baad
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 20:02:20 2015 +0200

    imapc: Added throttling settings to imapc_features=throttle:a:b:c
    This change could be reverted once good settings are found.

commit 8557c3b6dd442cbd935e82ae3918d27e6bc93dd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 19:44:48 2015 +0200

    lib-imap-client: Implemented a bit more complicated [THROTTLING] behavior.
    The throttling is now more continuous and decreases more slowly.

commit 71417d43ad8f3082f6426a6dd0bfe0e6db9df86e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 18:30:19 2015 +0200

    imapc: If imapc_features has gmail-migration, fetch X-GM-MSGID at startup and cache it.
    This works only if index files haven't been disabled.

commit eda647108a7dab36a4133bbee1916720b4b1c97e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 17:54:27 2015 +0200

    imapc: Use GUIDs from cache.

commit 3e546c443055db8e8c69d43b13fb11a24f0a9b1c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 17:54:21 2015 +0200

    imapc: Add prefetched GUIDs to cache.

commit 4f75b5bff4ec7e825a55bfbe743fb00c52e15abc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 17:29:12 2015 +0200

    imapc: Removed Exchange-workaround for ignoring missing BODY[] replies.
    This causes data loss if server was actually returning a NO temporary error
    that would have succeeded later on.

commit 2c16769fb3f9660cb653846d3f084a04cd14b555
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 16:40:05 2015 +0200

    lib-master: Timeout anvil queries after 5 seconds.

commit 34f7d3a8061842040f5e9b9e9f7b093b2a395f42
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 16:39:24 2015 +0200

    lib-master: If write() to anvil fails, reconnect to it.

commit b43d7e2b753d69fa6eafcf647d75e6af1dcc0fc8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 14:39:52 2015 +0200

    imapc: Don't flush prefetch FETCH command before it has mail_prefetch_count number of mails.

commit 2a1d9dda6e05f596b70703b74721847308127e3e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 14:39:26 2015 +0200

    imapc: Make sure we don't flush prefetch FETCH command unneededly.

commit 851404049fe55a02fb69d7c2b4d851d2d0fd4b8d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 13:28:24 2015 +0200

    doveadm: Initialize logging.
    Most importantly so that LOG_STDERR_TIMESTAMP can be used to prefix each
    line with a timestamp.

commit e52f55c08f6f1b4fbc5765bf6aa9c7daee0785c3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 11 13:27:49 2015 +0200

    lib-master: Get log timestamp prefix from LOG_STDERR_TIMESTAMP environment.

commit a7b2e5e2a2bcbb45d150579b84b7a8a307b58c4a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 21:27:51 2015 +0200

    lib-fs: Optimized fs_stat() for fs-metawrap after writing a file.

commit 876cc43339ec681ff4857cd31a7e65a9c47e5730
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 20:33:13 2015 +0200

    fs-posix: Don't close fd after successful write.
    5bd6e2eee650 should have been done only on failures.

commit 664bf3e236c214aee86294483c379e4fa66c2e63
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 20:26:50 2015 +0200

    fs-posix: Implement fs_stat() with fstat() if fd is already open.

commit b82a8dd9afd7535607d22b8033892746bf80bee2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 19:29:04 2015 +0200

    fs-posix: Don't try to unlink() the temp file twice after failure.

commit 737c22276f79b5747fd91e87750c80089cd9c062
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 17:36:11 2015 +0200

    lib: And another module_dir_load() bugfix..

commit 4d9cd7ab28091c2581915368ffec9be03670beae
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 17:15:03 2015 +0200

    lib: Small error logging improvements for module_dir_load()

commit a870ffe7505057022412bc0e688b5e2dae4c2440
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 17:14:35 2015 +0200

    lib: Recent module_dir_load() changes broke error logging.
    If there was a required list of modules, the error was properly returned.
    But when loading all plugins, the errors weren't logged.

commit 2e429f79325f6a5fd90e966e654bcb0696e467a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 16:17:08 2015 +0200

    indexer-worker: Added missing error logging.

commit 46e227c139b281e5b12dc2c5ceffc83a9ddb353a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 15:32:23 2015 +0200

    lib-imap-client: Fixed GMail [THROTTLED] detection.
    It's not a resp-text-code, but appended at the end of line.

commit 08f429b6664ba65c9aabc8528283c396b7c20ca7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 15:26:45 2015 +0200

    fs-posix: Don't close file fd after its writing is finished.
    This allows reading the file after writing without having to re-open the
    file (which in turn might fail in some situations).

commit 6ff4d08b3313454f181bc8c43fa2ac28bcece0e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 9 15:26:01 2015 +0200

    fs-posix: Make sure the file isn't attempted to be opened for reading while it's being written.
    Also if the write failed, the read should fail.

commit cc8bf5e5bc4286255d1f98cff158d969a8fa41cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 17:47:38 2015 +0200

    Added signature for changeset a3c27cec4112

commit 50ed84230e11110cf3f63572888df03c8af75e2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 17:47:34 2015 +0200

    Added tag 2.2.16.rc1 for changeset a3c27cec4112

commit 3dad5b157bd2f8cf2f2e7371f1c47d85f69985cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 17:47:34 2015 +0200

    Released v2.2.16.rc1.

commit 846adf6cf365b18b899829307106db408f5954a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 17:46:26 2015 +0200

    lib-mail: Unit test fix to make static analyzer happier

commit f24f2b5e17ea1ce029b5627a1dc50ba80f02c9c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 16:37:07 2015 +0200

    lmtp: Fixed lmtp_user_concurrency_limit=0 to actually mean unlimited

commit d25877a69c21fcd004f77bbfb1b8d0895d78e4dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 16:33:23 2015 +0200

    lda/lmtp: Added a hardcoded LDA_SUBMISSION_TIMEOUT_SECS=30 timeout for SMTP client.
    Maybe we could have a new setting if needed later on, but we've been working
    pretty successfully without any timeout for a long time..

commit 0d4483bc4ac20ac76203ce81a212686e65b0e5e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 16:32:05 2015 +0200

    lib-lda: Added smtp_client_deinit_timeout() to give a session timeout.

commit 18dad02ae3bae5f2fbfed885f704f0763c2e01b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 16:30:55 2015 +0200

    lib-lda: lmtp client now supports checking for timeouts internally.
    The default is still to have no timeout.

commit c793a28b3a9549b89167fedca5f8a66ac82ab315
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 11:55:45 2015 +0200

    lib-fs: struct fs_stats comment updates

commit 4dfd8a717fe2e1c01aeddd2992bc9745ca8e0abb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 11:51:55 2015 +0200

    lib-fs: Minor code cleanup: Merge read_counted & prefetch_counted into read_or_prefetch_counted

commit 87845ba7d3db3ab3ea12aa32676ad4178fc3a888
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 02:23:56 2015 +0200

    lib-master: Added anvil_client_query_abort()

commit 42abccd9b2a5a4190bd3c14ec2dcc10d51c0f491
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 02:10:02 2015 +0200

    lmtp: Added lmtp_user_concurrency_limit setting.
    This allows limiting the number of concurrent deliveries to a single user.
    Useful in case one user is receiving a lot of mails and causing other
    deliveries to be delayed. If the limit is reached, Dovecot returns temporary
    failure error at DATA stage.

commit b02e7bac5b8b19795884229f64e6fbbd93a0d2de
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 02:06:10 2015 +0200

    lmtp: Changed rcpt_to array to contain pointers to struct mail_recipient
    This allow storing the pointers so they don't change.

commit 9ab339518d78c82fe3bbb11b810fca8e41c301b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 01:01:28 2015 +0200

    pop3-login: Disconnect client on 3rd invalid command (not 11th).

commit 52b61e1dfc393a7d4999dbfaa6ff8e59c3662e79
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 00:41:14 2015 +0200

    lib: Minor improvement to test-wildcard-match unit test.

commit 666286d8ecc6c450b2232dcc628f79454215acfc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 6 00:40:46 2015 +0200

    quota: If overquota-flag in userdb is wrong, execute a configured script.
    The idea here is that a quota_warning script could set user's overquota-flag
    to e.g. LDAP where MTA could reject mails already at RCPT TO stage. The
    quota_warning scripts however have race conditions that are difficult (or
    impossible) to fix, so sometimes the overquota-flag could become wrong and
    might require manual intervention to fix it. This feature is supposed to
    solve the issue by comparing the overquota-flag's status to the actual
    current quota usage and execute a script to fix up the situation if needed.
    This script is of course racy as well, but there's always the next login
    that can fix the situation. Also it's pretty rare that user's quota is
    jumping just around the limit.
    
    The overquota-flag name in userdb must be "quota_over_flag". There are two
    settings to configure what to do:
    
    plugin {
      # If quota_over_flag=TRUE, the overquota-flag is enabled. Otherwise not.
      quota_over_flag_value = TRUE
    
      # Any non-empty value for quota_over_flag means user is over quota.
      # Wildcards can be used in a generic way, e.g. "*yes" or "*TRUE*"
      #quota_over_flag_value = *
    
      # Service script to execute if overquota-flag is wrong. Configured the
      # same as quota_warning scripts. The current quota_over_flag's value is
      # appended as the last parameter.
      quota_over_script = quota-warning mismatch %u
    }

commit 379175cfba8150d481d9898b78330b719d128d84
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 5 23:02:48 2015 +0200

    stats process/plugin redesign to be more modular.
    The visible functionality doesn't actually change with this patch yet, but
    it allows other plugins/services to add their own fields to stats process.
    For example auth process could send auth success/failures or auth cache
    hits/misses.

commit bebc9fe2061be7066a0a4c3aa6ffb98a8f4c0d20
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 5 22:19:02 2015 +0200

    lib: Don't call ioloop context deactivate() if activate() hasn't been called yet.
    This could have happened immediately after the callback was registered.

commit 302167a8a77cf3597f0b33e644a1805aa3313a8c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 5 22:18:04 2015 +0200

    lib-fs: Track how many different operations have been done on the fs.

commit 4c827a0925f5f77d1067e646fc2f615678c50d66
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 5 22:17:09 2015 +0200

    lib-fs: Added fs_get_parent() and fs_get_driver()
    These can be used to iterate through fs wrappers and see what they are.

commit bcd946aee6e4795bd38e6aa1c868115ba6057d67
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 3 19:48:23 2015 +0200

    doveadm backup: Try to avoid crashing on unexpected destination changes.
    It's a bit difficult to reproduce this bug.. But at least this change should
    change the assert, if nothing else.

commit f771d4d1fd4a4df3271d86f9be00c2fabaa99348
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 3 19:34:59 2015 +0200

    dsync: Open mailboxes with readonly-flag whenever possible.
    There shouldn't be any actual functional difference though.

commit de3175adb4094086dc8ba13132a39567f9c42e54
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 3 19:32:28 2015 +0200

    doveadm backup -R: Open the mailbox as readonly, so with imapc EXAMINE is used.

commit 3f50c1381434c29855c32f22c4653e75fd8d1822
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 3 17:25:33 2015 +0200

    lib-imap-client: Get capabilities again after reconnection to server.
    This is needed most importantly if we're not using plaintext authentication
    to log in.

commit a0d0650370dd88fb0efe1fd34b376839f74be875
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 3 01:05:49 2015 +0200

    lib-fs: Added FS_ITER_FLAG_NOCACHE

commit ddc8fe263805b4a041dfd1147bf2ab6b580c1c72
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 2 21:14:55 2015 +0200

    rawlog: Removed double '.' chars from log filenames

commit 640d320445eaad7f7ad834299a2726457f35f434
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 2 15:07:20 2015 +0200

    dict-redis: Added support for changing the Redis database.
    Adding :db=N to the dict string specifies the database.

commit d907b51d224e965a876eada6bc49455773e416e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 2 14:41:11 2015 +0200

    lib: Added assert to i_stream_create_seekable*() to have non-zero max_buffer_size.
    This size is used for the created fd istream and it can't be zero.

commit ac6bba612af5207c24f6f02497d64b0ea03e7bbd
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 2 14:36:15 2015 +0200

    lib: Give a name for istream-seekable's temporary fd istream.

commit 1bf1a24a902d5861f577df3d39e27b373b12c719
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 1 22:14:01 2015 +0200

    lib-storage: Allow up to 255 chars in a single mailbox hierarchy name.
    This also reduces the max number of hierarchy levels, but 16 should still be
    enough for normal uses.

commit be5a825edb376a5ed33df151f24fda0c0ac6b088
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 27 14:29:10 2015 +0200

    fts-lucene: Fixed lookups from virtual mailboxes with over 32 physical mailboxes.

commit 5dc8572f1d05e65d562759dd86028d286da0a088
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 26 20:24:16 2015 +0200

    dsync: If we get disconnected from remoset server, exit with EX_TEMPFAIL
    Instead of 1000, which gets truncated to 232.

commit 1bea995196e46157e495a78b8f93780c576b3ef8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 25 18:58:50 2015 +0200

    lib-index: Added an assert.
    It seems to be triggering later on, but not sure how it's happening.

commit 68801dacbac0279d81364d1ea9473d49bd8207e3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 25 15:06:29 2015 +0200

    doveadm: If command going through multiple users fails with user-specific error, don't stop.

commit 83b7b796c758aee9b6de130bd7e8631fe9fc0beb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 25 15:05:22 2015 +0200

    lib-auth: auth_master_pass/user_lookup() now returns -2 for user-specific errors.
    Compared to -1 which are about a more generic error with auth process
    communication. If -2 is returned the lookup could still succeed for another
    user.

commit b78bed724fad909bf84008a3eb0f35b5a4379c39
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 24 18:42:43 2015 +0200

    expire plugin: If expire_cache=yes, cache the dict db value in dovecot.index file.
    This avoids all of the dict lookups when mails are being saved to a mailbox
    that is tracked for expiring. The only downside is that if the dict is
    externally modified, the changes won't reflect the cached value. This isn't
    normally a problem (except maybe in initial testing stages).

commit 98935c840819031e4c786109d64f52a9039bf337
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 21 11:40:40 2015 +0200

    dsync: Debug logging was attempting to read already freed memory.

commit 8d56694af13780c2b9b94bc1534ca9d03be19f29
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 20 14:04:28 2015 +0200

    LAYOUT=index: Reversed d977a746819d - use storage's list_index_*() callbacks after all.
    Just because we have all the mailbox information in the mailbox list index
    doesn't mean that we necessarily trust the folder mail counts and such to be
    correct. Setting mailbox_list_index_very_dirty_syncs=yes pretty much reverts
    to the earlier behavior.

commit 399a7f628c27c060546a6220fe23c107b9c76586
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 20 12:56:43 2015 +0200

    dsync: Added more debug output for mailbox renaming.

commit 1497234a278c8b79ade8dce3b26eb2f417d1c494
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 19:31:49 2015 +0200

    lib-storage: Index rebuilding (for [sm]dbox) caused it to reset dovecot.index.cache file
    Although in some situations this might be wanted, usually it's not needed
    and simply makes the performance worse. If caching is explicitly unwanted
    the dovecot.index.cache file can be deleted manually for now. Perhaps there
    could be a separate doveadm force-resync parameter to do it as well.

commit 5dcaffaa317270bdf836fc894820fb6cfc31b0fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 13:45:23 2015 +0200

    Makefile: Added run-test.sh to be cleaned by distclean

commit d47bd663deb1846980e6759c87297741a5459890
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 13:05:49 2015 +0200

    lib: Make static analyzer happier

commit 96f75b44a4950bf20273656e71e2686a508d0bd1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 13:05:31 2015 +0200

    lib: Another test_assert() -> i_assert() change to avoid static analyzer warnings.

commit 98c59517ebce19556221065e9231f007bbdd0038
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 13:03:46 2015 +0200

    lib: Replaced two test_assert()s checking for NULLs with i_assert()s
    These can never happen anyway, and keeping them as test_assert()s cause
    static analyzer to give warnings.

commit 1183340bf4fda4040268aa4ba7a816b567659c08
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 12:00:11 2015 +0200

    fs-posix: Removed the FS_PROPERTY_DIRECTORIES after all.
    We could have kept it if we removed the auto-rmdir()-parents feature in
    fs_delete(), but SIS code already somewhat relies on it so it's better not
    to change it for now at least.
    
    The downside here though is that directories are rmdir()ed only if
    fs_settings.root_dir is set. So for example "doveadm fs delete -R" doesn't
    ever rmdir() any directories. But that's probably not a real problem.

commit abf9eb24d022dba1eff9b0e2fa93514defc35b51
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 19 10:24:09 2015 +0200

    Makefile: Removed run-test.sh from EXTRA_DIST since it's now generated by configure

commit e545e42a47a5989c143c07f16bc450ddf58dcce5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 23:13:22 2015 +0200

    lib-fs: fs-posix needs to return FS_PROPERTY_DIRECTORIES

commit 95c13a27352739261c53ecd23fe2f0c3d61aa06f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 23:13:00 2015 +0200

    doveadm fs delete -R: Delete the root directory also.

commit aab0e25f23db4be9c50bfd1cd271f691839c2dee
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 23:07:00 2015 +0200

    doveadm fs delete: When recursively deleting files, delete directories with "/" prefix.
    Some backends require this to properly delete the file. Those that don't can
    ignore it easily.

commit fb10881ee5d5c11c6df3cc91172f56005c95ca98
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 22:06:14 2015 +0200

    doveadm fetch: Removed unused code.

commit 41843bdb6cd96d761a18bab5d5825f344d02420c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 20:43:57 2015 +0200

    lib-fs: Added FS_METADATA_OBJECTID macro.

commit 8656b625c110d849ece2d040d7880eec20058694
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 20:42:59 2015 +0200

    lib-fs: Added flag for iteration returning object IDs.
    The flag is only allowed to be used if FS_PROPERTY_OBJECTIDS is set
    (to avoid writing extra code for backends that don't support this).

commit acfdd1b1625fae310faee8e5e2480c4f224fb648
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 17 16:02:49 2015 +0200

    imapc: Fixed STATUS_FIRST_RECENT_UID to return the (mostly) correct UID.

commit e617d6e7db43c176502ac02b65d2dcb4d27103de
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 15 10:11:01 2015 +0200

    doveadm: Added "save" command to directly save mail to specified mailbox.
    The mail is read from stdin.

commit 32c779d5d0b3dabc697408e6b5d9d2e652180b33
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 15 10:09:19 2015 +0200

    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.

commit 83773f7eb5e12e68f5efee7278bdab35d2ee84c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 15 10:03:10 2015 +0200

    lib-mail: ostream-dot API changes
    The dot-line sending is now done when o_stream_flush() is called. This
    should be used instead of relying on close() doing it, because it still
    needs to write a few bytes and there are no guarantees that the parent
    stream allows sending them.
    
    Also added force_extra_crlf parameter, which specifies whether CRLF should
    always be written before the dot-line, even when it already contained CRLF.
    This is useful if the input is read with
    i_stream_create_dot(send_last_lf=FALSE), since it allows sending a stream
    that doesn't have to end with LF.

commit f7355a57790f41d5c0d5228552b19b25b2169d7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 15 09:55:56 2015 +0200

    lib-mail: istream-dot should have immediately returned error if dot-line was missing at EOF.

commit fb502495e9306fe51e9d2c0019e622a98e9803ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 15 09:55:05 2015 +0200

    lib: If i_stream_read() sets stream_errno even if it didn't return -1, make sure we set eof=TRUE

commit b8c009e1639efa53eb9e70720f28ce137d493e5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 15 09:54:45 2015 +0200

    lib: If istream-seekable's parent stream returns error, make sure we set eof=TRUE

commit 77706d164eafeeb88fd36f0559d7453755561620
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 14 09:47:41 2015 +0200

    lib-imap-client: Improved error message a bit if server disconnects.

commit fc63bad6ab1dbff2b83b260099510cc813c2008b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 13 16:39:30 2015 +0200

    configure: Removed unnecessary lines left by the previous commit.

commit e42dd71494416945923f504035aa5d4d776ad4a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 13 16:38:35 2015 +0200

    Link all libstorage.la dependencies into the library itself instead.
    Instead of keeping a lot of different libraries in LIBDOVECOT_STORAGE, which
    have circular dependencies and may cause linking issues.

commit a76bcf87b48200aaf8e508f0fa369601f2fc176e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 13 14:35:54 2015 +0200

    dovecot-config: Added DOVECOT_INSTALLED parameter.
    Also added dovecot_installed_moduledir to dovecot.m4
    
    These can be used by external plugins to access some headers and libraries
    that don't already have existing DOVECOT_* parameters in dovecot-config.

commit bd5b580c07aa131bc13bbd930b7a493e1814748f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 12 14:38:18 2015 +0200

    dovecot-config: Added LIBDOVECOT_NOTIFY_INCLUDE

commit 076cc779137c5c090d236f0569389549a623cc5b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 12 13:29:23 2015 +0200

    dovecot-config: Added lib-storage/index/imapc also to LIBDOVECOT_IMAPC_INCLUDE

commit 0d2a67d57b1d76611f7a1e297598df89793944a6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 12 12:42:39 2015 +0200

    dovecot-config: Added LIBDOVECOT_IMAPC_INCLUDE and LIBDOVECOT_FTS_INCLUDE

commit 432dd1f5d7deab3725265cd7e98bb6d74650b635
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 12 10:49:28 2015 +0200

    fts: Fixed memory leak in HTML parsing

commit 0226f0f9198bf7d5897e8473e58aa72ae1a72e39
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 11 11:56:59 2015 +0200

    fts: Fixed error printing if fts wasn't enabled for user's default namespace.

commit fd2ede339d24c935e1b1eecb49e772fdbf3343dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 10 17:29:31 2015 +0200

    dovecot-config: Added lib-sasl path into LIBDOVECOT_INCLUDE.

commit cd244bb810d8c9b3ea46d5fd3f51296a48255266
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 10 13:12:42 2015 +0200

    dovecot.m4: External plugins can now more easily run their tests via Valgrind.
    DC_DOVECOT macro automatically adds RUN_TEST variable to Makefiles, which
    can be used to call any test programs. If valgrind exists, the tests are run
    through it. This is done by writing run-test.sh to the build directory, so
    the original run-test.sh in hg is no longer needed.

commit 212a34c06ff45952c008ae9eec387ced783de6cf
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Feb 10 12:31:12 2015 +0200

    lib: istream create helpers for common cases
    Several clients want to create streams from buffer_t and
    string_t, we may as well make it easy for them
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7676a044f800a539bb0cbbc59fb9d1ad3f30ba7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 9 21:58:13 2015 +0200

    dsync: Don't try to rename namespace prefixes.

commit 84a1abefd285f34714b7f342ea1290d78593a969
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 9 21:45:04 2015 +0200

    dsync: Fixed assert-crash when the two mailbox trees differed only by their directory names.

commit 68b38654693ef6c511056d039e6a2b18cd36f4e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 9 15:38:42 2015 +0200

    doveadm copy/move/import: Delay initializing source user until run()
    This fixes using them with doveadm proxying.

commit 42681892b206d13cb87a5f526d2bf4ff3f2f4af7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 9 15:21:55 2015 +0200

    doveadm: Added comments to struct doveadm_mail_cmd_vfuncs

commit a03f2228e59a9be1d87402be8980af92ea2876ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 9 13:03:47 2015 +0200

    doveadm: Reverted changeset 3b89f2f4ffb3, which avoided calling init() for proxied commands.
    The init() is required for all commands that print something, because
    otherwise the doveadm_print_header*() isn't called and the commands crash.
    
    The reason for the original change was that some commands' init() attempted
    to do too much work on the proxy, which ended up failing. So looks like the
    proper fix is to just remove this kind of extra work from init().

commit f2880c3c3de56ec757ffc393363bb863efd7bcbe
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 9 04:03:12 2015 +0200

    log: If too much logging data is sent, show it in process title.

commit aed2118ef7de81b1f7c4437991029cc043b23fa7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 7 18:39:05 2015 +0200

    log: Log a warning if some connection is logging faster than we can write.

commit f45d9079400cca2810f6c182b972924b42b55f33
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 7 18:23:58 2015 +0200

    log: Don't spend more than 100 msecs at a time logging one connection.

commit f6849394b03f483abe2172bfc553be5c2439ea17
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 7 18:17:59 2015 +0200

    log: Small cleanup: Include log connection prefix when logging read() errors.

commit 452455bb3b7008907a6150ce56a4a1413dd07d75
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 7 18:14:53 2015 +0200

    log: Minor cleanup: Update ioloop_timeval whenever reading input from log client.

commit 842a57e10c48a6c92fb70368eb311d1eb3bd54ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 6 19:03:20 2015 +0200

    lib: Accidentally committed a nonexistent function call in previous commit.

commit 351668ae6972c9f55059501ddb2ed6e70afa2f31
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 6 18:18:19 2015 +0200

    lib-storage: Use module_dir_try_load_missing() to load user plugins.

commit e05a7d1768835dad38360fbbba9d27902c998075
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 6 18:18:10 2015 +0200

    lib: Added module_dir_try_load_missing() that returns error instead of logging it.
    Also module_names now can be given for it without i_fatal() being called.

commit a48ccadf62d342063d0fff00fadc791423cc915f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 6 18:17:10 2015 +0200

    lib-storage: Previous log prefix changing code started accessing freed memory.

commit 39f5c2b2143842ff6f827b7198cae8853b8c5bba
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 6 17:06:36 2015 +0200

    lib-storage: Set the user log prefix earlier when initializing user.
    So the full prefix with session and other useful information is included in
    the log message as early as possible. Some fatal/panic errors wouldn't even
    have shown the username.

commit d894bcdc712e5c45ce62797fb4487278d824e6d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 6 17:04:52 2015 +0200

    lib: Added i_get_failure_prefix()

commit ed6d4c22d011c83d72abf60c0d57ffa0515b4143
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 5 19:40:25 2015 +0200

    dsync: Fixed crash in earlier patch if node didn't have a namespace.
    This shouldn't have happened except in test-dsync-mailbox-tree-sync, but
    easier and safer to fix it here.

commit 5a470af15391d6fc73bebb41512a671b3d847644
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 5 19:36:29 2015 +0200

    dsync: Added assert to make sure namespace prefix isn't attempted to be renamed.
    This can happen, I'm just not sure how exactly.. The previous behavior
    caused assert-crashes also, this change just makes it happen earlier.

commit 6a479389c4064e66c641c4a74b4f8b942461cb73
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 5 19:20:17 2015 +0200

    dsync: Don't assert-crash in configs where INBOX doesn't have a parent namespace.
    The inbox=yes namespace of course exists, but if there is no prefix="" or
    prefix=INBOX/ namespace, then INBOX doesn't clearly belong to any namespace.

commit a46162e640e660638596a91032905ab9cb27bf04
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 3 20:27:49 2015 +0200

    dsync: Make sure when fixing mailbox names we don't try to change the namespace prefix.
    Although in normal installations this it wouldn't have happened in any case.

commit a590a80b3a48f2b27341960557ec87a391f19b59
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 3 20:23:52 2015 +0200

    lib-storage: Avoid assert-crashing on mailbox_verify_*_name() with invalid namespace prefix.

commit 4d2e65d9c509fce525a7e1c87fa517d643786c19
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 3 18:47:54 2015 +0200

    imapc: Fixed modseq search for previous imapc_features=search change

commit 6e1cac3defe84a222b804f3ef41ff558e1a86391
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 3 18:33:12 2015 +0200

    imapc: Added imapc_features=search support for sending SEARCH commands.
    Currently requires the remote server to support ESEARCH (but this would be
    easy to avoid). This is only minimally tested for now, so bugs may exist
    (especially related to sub-queries).

commit 190e48dfeafba72ffe0a81ffa9c0a1935b236708
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 3 10:15:38 2015 +0200

    lib-imap-client: Implemented support for GMail [THROTTLED] resp-text-code.
    If we receive it, start throttling future commands by waiting exponentially
    longer until we no longer receive [THROTTLED]. Max wait time is currently
    16 seconds.

commit 5e4cdaaf560cfa94bfc014ce8e1a52e4d0a85b48
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Feb 2 23:48:30 2015 +0200

    lib-http: client: Fixed double unref of request when error occurs during http_client_request_try_retry().
    Much like when the request is first submitted, any errors that occur while attempting a retry from within the callback are now delayed in a zero timer.

commit cca8abdc46f329a236efcffc6b82ac15e7331ba0
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Feb 2 10:26:44 2015 +0200

    lib: array - test count/isempty/nonepty
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fbb70476f061c614bc7a99889e76f988d1cf4019
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Feb 2 10:24:42 2015 +0200

    lib: array - two helpers to avoid wasteful array_count
    There's no need to dereference array->element_size and
    perform a division when all you care about is the boolean
    isempty/nonempty predicate:
    
    $ git grep 'array_count(.*) > 0' | wc -l
    77
    $ git grep 'array_count(.*) == 0' | wc -l
    95
    
    Changing 6 of them has the following impact on the code:
    
    $ size src/lib-imap-client/imapc-connection.o
       text    data     bss     dec     hex filename
      20879       0       4   20883    5193 src/lib-imap-client/imapc-connection.o
    $ size src/lib-imap-client/imapc-connection.o
       text    data     bss     dec     hex filename
      20796       0       4   20800    5140 src/lib-imap-client/imapc-connection.o
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 6b70a713f05ee8b3522cf190ea7fc4a1281dae38
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 31 01:10:56 2015 +0200

    replicator: Previous "last successful sync" timestamp change wrote data wrong to replicator.db
    Patch by Matthew Via / Rackspace

commit a1a79357a8d8e18806fd9888559939b7f60c4426
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 30 12:29:25 2015 +0200

    imap: If GETMETADATA fails for some mailbox, don't send the error message mixed in the METADATA reply line.

commit e05ccef4835b0b68fd5418b061af88b619284c8f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 30 12:19:58 2015 +0200

    imap: Dynamic capabilities weren't being added correctly when imap_capability setting was used.
    They were supposed to be added when '+' prefix was used in imap_capability
    and not added when it wasn't. But the behavior was exactly the opposite.

commit e0547145514c95eb26b8e35837ae607a3eab6472
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 30 11:53:12 2015 +0200

    lib: str_sanitize*() max_len parameter renamed to max_bytes to describe it more accurately.

commit 5a43bb5d5a851a6eec8d3735995cea9ba2ab0a7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 30 11:52:33 2015 +0200

    lib: Various fixes to str_sanitize*()
     - UTF-8 sequences could have been truncated to become partial sequences
     - Truncation may not have happened at all to text containing UTF-8
     - str_sanitize_append() might have truncated string beyond what we were
       appending, although that happened only if max_len was very small

commit 69c92cbe74dceb292f3de381edd39958ece148eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 30 03:12:37 2015 +0200

    replicator: Remember last successful sync and show it in "doveadm replicator status"
    Patch by Matthew Via / Rackspace

commit eefcf71c762ef4614f5bb423dd3bd8e5c44981c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 29 18:43:15 2015 +0200

    lib-ssl-iostream: Don't set EPIPE/ECONNRESET error to istream when connection is closed.
    Several istream users verify at EOF that stream_errno=0 and fail if it
    isn't.

commit a5f7c7c3ef03fbf956df028a49f2fa6830428509
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 27 02:19:01 2015 +0200

    fts: When indexing address headers, don't add MISSING_MAILBOX or MISSING_DOMAIN.

commit 1d3ee23f5f573d5e5ab79422c0a23dab85f3d034
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 27 02:07:10 2015 +0200

    fts: Added back fts_expunge_log_uid_count()
    This was accidentally removed by commit 5091f03d70e1

commit da273d3b05e0d937766b5b782035ae1f0f41ca67
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jan 25 10:37:35 2015 -0800

    lib-mail: Test program wasn't linked with libiconv, causing linking failures.

commit 9a6250aecfe56f0970761806c16794c04330f46a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Sat Jan 24 02:15:45 2015 +0200

    lib: array - helper to swap array buffer ownership
    Currently there's no simple way to create a replacement for an array,
    and then atomically switch in that replacement. With this helper,
    you can just exchange ownership of the two lists and then free the
    new list (which now contains the old buffer).
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f424c157faae226f153578442fab1512275889fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 23 23:19:24 2015 +0200

    imapc: Merged gmail-pop3 and gmail-labels-keyword features into a single gmail-migration feature
    There's really no other reason to use them except for migration.

commit 2813037cc30ddd53a21e6376d9698400feec7c59
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 23 23:18:01 2015 +0200

    imapc: With gmail-labels-keyword feature add the $GMailHaveLabels only to \All mailbox
    This is primarily intended for migration, and with this behavior dsync can
    be run just once so it's faster.

commit 9fd6f70ed6d4733ae5eabd49822bda280393e403
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 21 02:21:35 2015 +0200

    sdbox: Fixed assert-crash when copying mails due to earlier change.

commit 6b2f82c7ed4e646217a1ee29e99c83d95762a8d6
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:53:34 2015 +0200

    plugins/fts: use common guid_128 helpers
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5433d56d338db3948bf7bc22ef1daaba147dbb5d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:52:59 2015 +0200

    plugins/fts: expunge-log - query function to lookup GUID/UID
    Constant time hash lookup for GUID. Log time lookup in seq_range array.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8d4428cee277a9a84450a8c6771f7a4dc68638cf
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:51:46 2015 +0200

    plugins/fts: expunge-log - create flattened in-RAM log with no backing storage
    Combine each record in a source expunge log. This source log does not get
    deleted afterwards.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 2282944443f78bd186809df235da1b7e801f0430
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:48:00 2015 +0200

    plugins/fts: expunge-log - pull mailbox finding/creating into a helper
    There will be more clients than just this one.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 2442c230b6c95b20d26ead752f9de1cb40544a53
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:47:25 2015 +0200

    plugins/fts: expunge-log - permit append helpers to have no log to write to
    This is for creating an in-RAM, later queriable, structure which you do not
    want to be written to backing storage. As when you've finished with one, there's
    no concept of a "commit", provide an alternative "abort" way out. These are
    identical apart from the call to the write() routine, so refactor the two.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 87b5c1fc03945708726c175d540fd307f7f78480
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:46:13 2015 +0200

    plugins/fts: expung-log - add the concept of not unlinking at the end
    No behavioural differences, the default is to unlink.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ba66ac5557ca97d8a6fe5d524056264a9f92243c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:44:31 2015 +0200

    lib: seq-range-array - add range changes
    Pull the _add_range() guts into a private helper function, and add a new
    _add_range_count() helper which also returns the number of SEQs added.
    
    Expand the tests to test this new functionality.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 50c05dde01f995445fedcb7a5db5ff0afd628327
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jan 21 01:42:01 2015 +0200

    lib: data-stack - fix pointer arithmetic compiler warning
    Clang's -fsanitize=unsigned-integer-overflow barfs as follows:
    
    data-stack.c:477:29: runtime error: negation of 8 cannot be represented in type 'unsigned long'
    data-stack.c:495:15: runtime error: negation of 8 cannot be represented in type 'unsigned long'
    
    Which is of course complete bollocks. There is no 8, there's only an 8ul, and
    the negation of 8ul is 0xfffffff8ul (or a wider equivalent). That's the law.
    
    However, the pointer arithmetic which follows the negation, whilst almost
    certainly working in practice, is probably bogus, so just make the thing
    signed before the negation, and both problems go away.
    
    Reported-by: Teemu Huovila <teemu.huovila@dovecot.fi>
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 9a9f3310d0d98ae7d98edca361f6dd04627cdb13
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 21 00:19:17 2015 +0200

    master: Fixed a check to see if login directory has any unix listeners.

commit 6b23e5a3fff511cd64f1edb880fd080016c23c0f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 21:54:58 2015 +0200

    imapc: Implemented imapc_features=gmail-pop3 that also migrates pop3_deleted_flag.
    This also caused gmail-pop3-uidl feature to be renamed to simply gmail-pop3,
    which includes both the features.

commit 2d4995828b0b99f477ac85727a1150ed10c65534
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 21:49:04 2015 +0200

    lib-imap-client: Added imapc_command_get_tag()

commit e2b63d479f1666fef9a1d1e39c731a5cd813b437
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 05:41:23 2015 +0200

    imapc: Added imapc_features=gmail-pop3-uidl
    This allows imapc to generate GMail POP3 compatible UIDL so that
    pop3-migration plugin isn't needed.

commit 46a9a338c4b1d5ccc23f22acaa17393fa5263975
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 04:46:51 2015 +0200

    dsync: Allow -m parameter to specify \Special-use mailboxes.
    Similarly to how -x parameter allows them.

commit 845bac8afdbd5f521b8a6d4493f0581f3b1a2692
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 04:46:26 2015 +0200

    dsync: Crashfix to -F parameter handling.

commit 3394dcb43382e094b0707c1640efbf46adac9e7d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 04:30:27 2015 +0200

    imapc: Added imapc_features=gmail-labels-keyword
    This is a bit kludgy feature mainly intended for migrations from GMail.
    Unfortunately I couldn't figure out any nicer way to do this for now.
    GMail's "All Mail" folder contains all messages in all folders, but it also
    contains some messages that don't exist in other folders. For migrations we
    want to copy only those messages that don't exist elsewhere. This can now be
    achieved with something like:
    
    doveadm -o imapc_features='gmail-labels-keyword ...' \
      backup -F '-$GmailHaveLabels' mdbox:~/mdbox
    
    Note that dsync can't handle inserting mails into folders, so if doveadm
    backup is already run once and one of the existing mails loses all labels,
    doveadm backup will delete the whole folder and start again.

commit 2e652d2651b2800f99a17dcb3014a009fe4660d3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 04:07:09 2015 +0200

    dsync: Added -F parameter to sync only mails with[out] specific flag.

commit 70df8f39fb3db7c49b18c855178f8172176a037a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 03:23:29 2015 +0200

    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.

commit d85a1a9d9af4a36ded4d30cb277905c807de2ec5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 03:14:37 2015 +0200

    virtual plugin: Read virtual index header when opening virtual mailbox.
    This allows doing some mailbox accessing without actually syncing the
    mailbox. For example MAIL_FETCH_MAILBOX_NAME can be used without crashing.

commit da215fe5cde683b7d1fe2339e7747c1b14bff04a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 20 00:20:27 2015 +0200

    dsync: Added more debug logging.

commit 3561c7bb472a78af74d755219cc0fc71c85ff5c2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 23:43:37 2015 +0200

    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).

commit d81bbb6948b4d758e87206acb8da4cc4366fd478
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 23:40:27 2015 +0200

    lib-storage: Added mail_parse_human_timestamp() to parse human-writable timestamps.
    This isn't really the ideal location for the function, but since it uses
    both lib-settings and lib-imap, there's not any good location for it that I
    can think of..

commit bb25bed75eefd011138ebf1b8e033fc8ef55ca74
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 22:24:42 2015 +0200

    doveadm: Added missing error handling to various mail commands.
    This fixes assert-crash that happened when the commands failed, because they
    hadn't set any exit_code.

commit 4947cf0826d274afb3712e7292b1bd554f75872a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 22:12:58 2015 +0200

    lib-storage: Comment updates to mailbox_list_iter_*()

commit ded274d94e795765b1d2e76da2ea74b22fbcd1d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 22:11:29 2015 +0200

    doveadm: If mailbox list iteration fails, log the error reason.

commit 168204692e01267b08ce69106331701669dea202
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 22:10:17 2015 +0200

    imap-urlauth: If mailbox list iteration fails, log the error.

commit a5056d1e9dd4c430390f8b1dc874a95a2fa16380
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 22:09:14 2015 +0200

    virtual plugin: If mailbox list iteration fails, log the error.

commit 6358619ca9de4fa81ccc49af7d79c1c123852293
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 21:58:19 2015 +0200

    lib-storage: Removed caching body snippet while message is being saved.
    This broke saving mails with dbox, because it attempts to open the mails
    too early. Also the generation was a bit costly operation to do if it wasn't
    actually wanted to be cached.
    
    So in future we'd first want to check if body snippet is actually wanted. If
    it is, then generate the potential snippets while the message is being
    parsed (always generate the snippet for the best found MIME part, replacing
    existing snippets when needed). This requires the message_snippet_generate()
    API to support sending input as partial message_blocks.

commit e4d054789e1fdb36c984d22c3f45afd71d8f8f97
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 21:53:00 2015 +0200

    lib-storage: MAIL_FETCH_BODY_SNIPPET should seek the mail stream back to original position.

commit cc0a651962a3e54d5a62231ac5847ae7f9f7de7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 21:52:21 2015 +0200

    dbox: Added asserts to make sure the mail body isn't tried to be read too early while saving.
    If the mail headers are still being written, the opening will just fail
    thinking the mail is corrupted.

commit 9456cdbebac7bdf7ee4fb2a2e41a9f439b7744ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 19 21:11:29 2015 +0200

    fts: Fixed assert-crash in HTML parsing, broken by the earlier changes.

commit 76d4ff1c1b31a1a09f6cbfe613a8d0efe62cbfd2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 04:14:58 2015 +0200

    lib: iostream-rawlog now writes to ostreams instead of directly to fds.

commit 981139bb2e446bb2050c1158614725f8413fd709
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 04:14:09 2015 +0200

    lib: Added o_stream_create_passthrough() for creating simple wrapper ostreams

commit eb98a038ca8b0ef33d1d11794803ce09547496fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 04:13:13 2015 +0200

    lib: Added o_stream_add_destroy_callback()

commit 7d26aee0c0b6c0ce227ef4ae4f20fc86e2c423f2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 02:40:11 2015 +0200

    auth: Changed passdb { continue-ok } handling for credentials lookups.
    If the last passdb after it doesn't return credentials, use the first
    passdb's credentials. This allows implementing plugins that modify the
    passdb result without actually changing the credentials.

commit 1701b354e81ff1dfd0b6c7bb4412b8d9c2b9f986
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 02:31:24 2015 +0200

    lib-storage: Added mail_user_init_fs_settings()
    Also changed mailbox_list_init_fs() to use it internally.

commit 26d0966d6747a0b4dd440ea7a8de6eca4b453d34
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 01:19:42 2015 +0200

    doveadm user: If username is changed by userdb lookup, return it.

commit ed897f9e09ae8ad86a88955420bd275b46ee8231
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 00:32:10 2015 +0200

    doveadm fetch: Added body.snippet field.

commit 52fbebc87d7ae4fc4585863d38cb87f166a6521a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 00:31:35 2015 +0200

    lib-storage: Added MAIL_FETCH_BODY_SNIPPET.

commit ed9f9fe03e60d37be0a58e3ee281d1b6b7d2693f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 00:24:36 2015 +0200

    fts: Parse HTML MIME parts using lib-mail's mail-html2text.

commit 7f7be2cbf68f8a202a688d5bc50f82483d461643
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 00:23:36 2015 +0200

    lib-mail: Added message_snippet_generate() to produce a short text snippet of a mail.

commit c9141125278100269eb3a907c911afe78c46717c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 17 00:15:44 2015 +0200

    lib-mail: Added mail-html2text API
    What makes it mail-specific is that it allows skipping over data inside
    <blockquote>. This code probably doesn't parse HTML perfectly, but hopefully
    good enough for HTML emails.

commit b4d14c264bcae06709355e4be0445e5316cec38f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:26:02 2015 +0200

    lib-mail: Forgot to commit .h file for message_decoder_current_content_type() change.

commit 01eef06269e04d0b1b6d67c5055248fefb4f613e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:22:04 2015 +0200

    lib-mail: Added message_decoder_current_content_type()

commit d60a5611b1db47f9ba14e82811170251a7dab6fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:11:34 2015 +0200

    lib-mail: message-decoder now always sets output->size=0 when headers are returned.

commit c389f8bf1340ca004f3a8f94b3f020bf47fd2610
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:10:11 2015 +0200

    lib-mail: Fixed crash in message-decoder with unknown charsets.
    Caused by earlier changes.

commit 2c70dc3ca3f0e9e67b76065c4824aba6b2e4251c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:08:00 2015 +0200

    lib-mail: Replaced MAX_TRANSLATION_BUF_SIZE with the new CHARSET_MAX_PENDING_BUF_SIZE

commit 63f7632bf30d0700082e76b70fc305847da1cd61
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:05:36 2015 +0200

    lib-charset: Added CHARSET_MAX_PENDING_BUF_SIZE macro and asserts for it.

commit d62d6e780cc1cabc7a343d2d14c6ef89ee139f9e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:05:13 2015 +0200

    lib-charset: Added charset_utf8_to_utf8_begin() wrapper function.
    It's never supposed to fail, so it makes it nicer for the callers who need
    to use it.

commit 32ae620015da6ab2ec28e04d3cdcdb4420f1fa6b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 01:03:58 2015 +0200

    lib: Fixed NUL-handling in uni_utf8_*strlen*()
    uni_utf8_strlen() could have skipped over the ending NUL byte and caused
    read buffer overflows with invalid input.
    
    uni_utf8_strlen_n() and uni_utf8_partial_strlen_n() now allow NUL bytes in
    the input and they're treated as regular control characters. Previously the
    size was actually treated as max_size with early NUL byte termination.
    Technically this is an API change, but I'm not aware of anything using these
    functions in an incompatible way.

commit ce763c83d556eea9b74fc63e5d41f3b71a7e72de
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 15 00:10:56 2015 +0200

    lib-storage: Added "oldestonly" search arg to stop searching after the first non-match.
    This parameter works only for doveadm search queries. It's not fully exact
    currently, because if mailbox.search_next_update_seq() skips over
    non-matching messages we don't stop if the next message matches. So this
    parameter is mainly useful for optimization of commands like:
    
    doveadm expunge -u user@domain mailbox inbox savedsince 30d oldestonly
    
    Where the timestamps should be ascending all the time anyway and there's no
    point in continuing to search for more mails after the first timestamp is
    too high.

commit 47e90cc0da86de98a8923802a29d844ab5159834
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 10 04:32:42 2015 +0200

    lib-mail: message-decoder no longer skips lib-charset for UTF8 -> UTF8 translations.
    With the previous lib-charset fix this makes message-decoder handle partial
    UTF-8 text in input blocks correctly.

commit f66c8939c39e6bcd9dd5482bfd9689bd177ce0d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 10 04:30:40 2015 +0200

    lib: Added uni_utf8_partial_strlen_n()

commit 7ed3861ff818a87e08ad08af6a413f2277ffc419
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 10 04:25:21 2015 +0200

    lib-charset: UTF-8 -> UTF-8 translation was never returning CHARSET_RET_INCOMPLETE_INPUT
    Instead the incomplete input was just being modified into broken output.

commit fdf8020fad627b2d7991bca7a68a870a8bc36b2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 8 23:07:54 2015 +0200

    lib-imap-client: Compiler warning fixes

commit c6033074ada5c7441ff7bb12c4b433cae737fea2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 8 22:52:11 2015 +0200

    imapc: Added imapc_sasl_mechanisms setting
    The first supported SASL mechanism is used, otherwise the login fails
    entirely.

commit 2f351279cbfe7a47ba1163ed5d172dea504f2ba8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 8 22:32:20 2015 +0200

    lib-imap-client: Use lib-sasl to perform the AUTHENTICATE command handling.

commit fea53234804e75bb8f0b87ab0a0b1cc1c9770031
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 7 00:37:50 2015 +0200

    lib: Defined array type for guid_128_t

commit fb655ad59813aa2b072ac9a228c840ee9a5c09cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 6 03:15:11 2015 +0200

    lib: Remove OpenBSD workaround in i_getpw*()
    Originally added in 801714cba91b. It was requested to be removed now that 1)
    it's fixed in OpenBSD v5.6+ and 2) The workaround caused nonexistent users
    to not work correctly (process running out of memory I guess?)

commit 38a79b5a7ac2b1565cde1a128ae97d7e44e43f73
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Jan 5 15:48:55 2015 +0200

    fts: Correct returned value to match type signature.

commit 7cb128dc4cae2a03a742f63ba7afee23c78e3af0
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jan 5 22:20:10 2015 +0200

    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>

commit 33750ba29b605a925af5aed58d3f3735422b1e25
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jan 5 22:16:59 2015 +0200

    lib: guid - centralise a 'reset to the empty value' helper function
    This helper just ensures that the caller never has to get the sizeof()
    right. (Were a guid passed as a function parameter, mistakes could happen.)
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 518781a0a4ba2403f23dbadda445b107fbb87daa
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jan 5 22:15:31 2015 +0200

    lib: guid - declare some functions as pure
    As the functions aren't inline, the compiler can't know if they
    can be optimised away, so give it a helping hand.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fe08c73b0bf87bfa3bfb2d3df5dc9845113e0cf3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jan 5 22:15:07 2015 +0200

    lib: array - explain implications of ARRAY_TYPE() in comment
    If you use ARRAY_TYPE() to pass an array around, then you must also
    use ARRAY_TYPE() to define the array itself, ARRAY() will no longer do.
    
    Reported-by: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit bf38d576059119bebdbe49ffa73c742c739454d5
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jan 5 22:13:59 2015 +0200

    lib: test-array - test new lsearch helper
    Just piggy-back on to the current reverse test, as that's got an array
    nicely set up for us already.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit c029156a6eed53d440b496406e3df08b569568ec
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jan 5 22:12:48 2015 +0200

    lib: array - new linear search helper
    There are large numbers of array_foreach loops which do nothing but search
    for the first element which matches some key. This can be abstracted out
    into a helper.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 6613ff7b8dbd46aaae7f9c4c5ef85ae8c9af3b2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 26 17:28:30 2014 +0200

    configure: Don't break when using --without-shared-libs and CC with '/' chars.

commit 6af1407463e08e48819d9b3ded733dca05834ea7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 17 14:43:30 2014 +0100

    auth: Don't crash if master user login is attempted without master=yes passdbs

commit acab9b293b0903df1f657dd2c6ed3d688542ee3c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 17 13:39:57 2014 +0100

    lib: Small optimization / unnecessary code removal from array_*() functions.

commit 823af4a2cc4e2ce90d12f9ec362160546aa4c4b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 5 05:50:19 2014 +0200

    lib-storage: Mail prefetching was still not working right.
    I wonder if it ever actually worked (except for SEARCH TEXT).

commit 8b7feed47b94d484b3e7e0aef2b78ea09433aeaa
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 5 04:39:11 2014 +0200

    doveadm: Avoid calling init() in doveadm binary if the command is sent to doveadm-server.
    The init() is still always called when -A or -u *wildcards* are used though.
    I'm not sure if that can be delayed. At least all commands should be
    verified that they don't rely on the current init() location.

commit ae369149607cd8b9e3f6afdcf7c16cff1abdda54
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 5 03:53:02 2014 +0200

    doveadm: Support changing proxy destination username with "user" and "destuser" passdb field.

commit ba342e38a3daa06cb66d191309ec4f2e3a16ace3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 5 03:38:08 2014 +0200

    auth: Don't allow changing username to an empty string.
    This is most likely always accidental and Dovecot in general hasn't been
    designed to support empty usernames.

commit 5f4f58c81a731988aef36ceea4f88c3b04c21943
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 5 03:11:14 2014 +0200

    fts: Install some of the header files that other external plugins might want to use.

commit 16db137525d75c3b2a61cbcbca54a0d348603e61
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 5 03:10:32 2014 +0200

    fts: Compiler warning fix when using fts-indexer.h directly

commit c935c4494b7fe73d84bd546c6d702f0e79b9faba
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 2 00:29:13 2014 -0800

    dict-redis: Use timeout_msecs parameter also for transaction commit waits.

commit 5890b141d53b92449c61f257c613a4e13b48b61b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 2 00:26:24 2014 -0800

    dict-redis: Use EXPIRE also after INCRBY commands.

commit 4f3374cf603147d6e3d60c9dd6e1cfe1c1926c1a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Dec 1 22:43:33 2014 +0200

    lib: test-array - really really really stop gcc optimising away fatal tests
    Gcc 4.6 also was determined to optimise away the calls that should crash.
    We therefore have to do *something*, no matter how stupid, with the return
    values. This should do it. (please, oh please, oh please, ...)
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 3f7583189249a28892cd5bd69e15681c7a8a619b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 1 12:11:54 2014 -0800

    quota: Added "hidden" option to hide the quota root from IMAP GETQUOTAROOT command.

commit 842f5a5ebfbb6f9a550fd4fa5cf9ef963943d82f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Nov 28 10:57:43 2014 +0200

    lib: array - array_foreach_idx is just a generic ptr_to_idx helper
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 173b12537fdc65f71235073193223e811a00d130
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Nov 28 10:57:43 2014 +0200

    lib: test-array - remove possibility to optimise out tests
    (void) on a call to a "pure" function was causing some compilers (gcc 4.8)
    to not reach the assert within the pure function. Technically it's not a
    pure function, as (in the assert fail case) it has effects other than its
    return value. However, simply removing the void cast (and then actually
    using the return value) also prevents this optimisation.
    
    An additional fatal test was added - there's a difference between an access
    outside the allocated range and outside the initialised range.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 16c9a74e2ddc8b3b0d0c50d5fe5bcdf25c3f93a5
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Nov 28 10:57:43 2014 +0200

    lib-test: more delicate *assert() behaviour when doing fatal tests
    We shouldn't be i_asserting ourselves when we're in the state of wanting a
    test to fail. Therefore instead test_assert to get the assert message, and
    ensure that the success flag is cleared to get the FAILED at the end.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 70c380a7b077e7c9fab056d977f0415bf8d063e0
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:48:42 2014 +0200

    lib: array - additional compile-time checks to array_append
    The new two-array helper macro works in this context too.
    
    Note: array_copy doesn't have any protection currently, it isn't
    obvious how to wrap that with some safety without breaking interfaces.
    It only seems to have one internal user, lib/aqueue.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5d017bb2f0820b8a8d6b4e965435b78860dc9559
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:45:35 2014 +0200

    lib: test-array - fix off-by-one in test_reverse
    i is not used as an index, but as a count. Therefore, it can attain the
    array size in the loop without causing any buffer overflows.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 824809e6423ce89495335aed6748c88d8764eb2a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:44:55 2014 +0200

    lib: test-array - fatal tests
    Tests both of the i_asserts which aren't already protected by TYPEOF compile-time
    checks.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit a7e3651cbafafb934e655815292e30ee9c815781
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:44:31 2014 +0200

    lib: test-array - new equality testers
    One using strings that get dereferenced, the other using the context pointer
    to pass in external data.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0f111ddfcb893d75a79bb60942c77d97e15f6b99
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:43:02 2014 +0200

    lib: array - element-wise comparison via callback
    2 are provided - with and without a context pointer.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit afb48f82b9ea737a04fd71acfdf02545a6ce9ce7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:43:02 2014 +0200

    lib: test-array - test array_cmp()
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit efaa1272c1b682bc2e105b2f374152a6a1f45825
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Nov 25 03:31:34 2014 +0200

    lib: guid - turn uint8_t * parameters into guid_128_t
    As we expose the type's internals, there's no concrete difference between
    the two, but it might help static code checkers to detect misuse of the
    library, or sloppy typing.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 2480bdc0a4fbb75aad5408fd9f344556fc605082
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 25 03:12:25 2014 +0200

    dict-redis: Small error handling fix to previous change.

commit e85a0dac7542bbae17e81e735f88897fff86becb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 25 03:10:41 2014 +0200

    dict-redis: Added support for expire_secs=n parameter.
    It performs EXPIRE command for the added keys immediately after the SET.

commit 96a410ecef6d2e08c8bce325eec084ce1edce100
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 25 02:56:37 2014 +0200

    lib-storage: Don't fetch wanted_fields for messages that don't match the search query.
    For example "doveadm fetch text subject foo" was opening all the mails, even
    though only a few matched the subject (that was hopefully already in cache
    file).
    
    The behavior still isn't perfect though. The wanted_fields should probably
    be split into search_wanted_fields and fetch_wanted_fields, but the current
    behavior is likely good enough for now.

commit 0dc719a06fc1bbe11238762f9beb0c1faa4a2b75
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 21 18:17:00 2014 +0900

    lmtp: Added TLS security information to Received: header when STARTTLS was used.

commit 3217ecd2d7451298220a55ff5ef43cbf60be5f2f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 20 22:03:25 2014 +0900

    stats: Removed extra TAB from global stats exporting.

commit e1ad2d13f5f154ee975eed5c8e7f1a7823082685
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 20 15:15:20 2014 +0900

    lib-index: If transaction log is unexpectedly recreated while it was locked, log a nice error.
    Instead of just assert-crashing.

commit 416b11af00abfd06319ee7d60bb66a823608910b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 20 05:40:55 2014 +0900

    auth: Increase timeout for multi-line auth-worker replies to 30 minutes.
    This should help with running long-running doveadm -A commands.

commit 3063bd8ff05d3d8cd33156f4366b36890e501436
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 19 17:37:57 2014 +0900

    mbox: Added more (and earlier) detection for errors in mbox istreams.

commit 1cf25eb44ce4c5407cea766584dd3d6f9d315a4d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 19 17:37:18 2014 +0900

    mbox: istream_raw_mbox_seek() needs to reset all corruption errors.
    We now reset all errors, but it doesn't really matter.

commit 11a418b123cd6b4d5460023a2f1d7fd96e182446
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 15 03:26:16 2014 +0200

    lib-fs: Added FS_PROPERTY_ASYNC.

commit 75f7e423ea22446ed529d33cb660dadf680e13e0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 15 02:39:04 2014 +0200

    Added support for base32 encode/decode.

commit 836e690c0e2d7494b8c0a6f4984dd13248841f2f
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 15 02:37:45 2014 +0200

    Implemented dot output stream. This outputs data in the dot-escaped format needed for the SMTP data command.
    The sequence CRLF.CRLF is sent upon closing the stream.

commit c9421d67eaaa64bcac32861ee60c96ba4e65c2ea
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 15 02:37:03 2014 +0200

    lib-http: client: Removed connection code that is already in src/lib/connection.c.

commit 4388ddff22681fc4385c963532b20c3560606667
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 15 02:36:22 2014 +0200

    lib: connection: Now uses io_add_istream() instead of io_add().

commit 8ccdf195768afdfbc32088d7be77dfca7dddd829
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 15 02:27:27 2014 +0200

    lib-imap-storage: Created new METADATA API.

commit 9a1ab9488c75f8a68871d0fcdff4e0d0e3543299
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 15 02:22:56 2014 +0200

    lib-fs: Added fs_lookup_metadata() wrapper to fs_get_metadata()

commit c53dd9a6ef9ac43353f292c687a13b3dbb2bbbb9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 15 00:30:06 2014 +0200

    lib-master: Don't even attempt to initialize SSL context if ssl=no

commit 40ba79bfba7c2331fb8e1a2a694da748a6ebaec0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 15 00:27:27 2014 +0200

    lib-ssl-iostream: Close the plain iostreams when ssl-iostream is destroyed.

commit 887e05e03f83735acd5479be563193b3c2584d91
Author: Phil Carmody <phil@dovecot.fi>
Date:   Sat Nov 15 00:14:20 2014 +0200

    lib: array/hash - enable typof checks for more compilers
    We have a HAVE_TYPEOF macro from autoconf, we may as well make use of it.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fcb19f9e9933ef693fe98d3925ea52887ea8cd86
Author: Phil Carmody <phil@dovecot.fi>
Date:   Sat Nov 15 00:06:09 2014 +0200

    lib: array/hash - protect macro parameters
    If a pointer parameter p is ``ptr + offset'', then sizeof(*p) becomes
    sizeof(*ptr + offset), which isn't what was wanted. sizeof(*(p)) is the
    safe expression to use instead. Ditto for just ``*data'' in array.h.
    
    The macros in hash.h which have been changed have been reindented for
    better readability and consistency.
    
    The bracketting of elem in (elem)++ in both of the array_foreach* macros
    isn't actually useful, as elem participates in token-pasting elsewhere.
    However, the two macros have been made more similar to each other for
    better parallelism.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 50053223085da761ce3f9491f428381503ce3ec9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 14 00:59:57 2014 -0800

    imap: namespace { order } parameter now specifies the order returned in NAMESPACE reply.
    This is relevant only if there are multiple visible namespaces with the same
    type. The default order depends primarily on the length of the prefix because
    of internal sorting (the order of equal length prefixes can't really be
    relied on).

commit 94b4104f863c8330f24533007c8345a0f70a60f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 14 02:29:27 2014 +0200

    imap: Added client_disconnect_if_inconsistent() to remove code duplication.
    Based on patch by Stephan Bosch

commit 22d87bd260a4476da878df48206eba0b37322a6c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 22:55:59 2014 -0800

    doveadm: If passdb lookup returns port, use it to override the doveadm_port setting.

commit 2ff37573056d56857d165f28aeebf649ebaa67b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 14 02:00:12 2014 +0200

    lib-fs: fs-metawrap now supports adding more metadata fields while file is being saved.
    This potentially adds yet another temporary file write though.

commit 2f4f603d4cebab2cc956c72164efb02da83515c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 14 01:19:37 2014 +0200

    lib: Added iostream_temp_create_named()

commit 26b007545685688e8931dc05ba465df0b00c156a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 11:29:41 2014 +0200

    lib-index: Make sure dovecot.index.cache parsing doesn't go to infinite loop.
    Although we guarantee this only for files generated with Dovecot v2.2+
    because it's too much trouble to check for older versions.

commit 8901f9484cdc215b50facd42d626f2b55052817c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 11:14:08 2014 +0200

    lib-storage: If storage creation fails, destroy all the already created namespaces/storages.

commit 6a275b8e6ef4250182afa1bad0d6eff2517707f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 10:57:07 2014 +0200

    lib-storage: Fixed crash if mail_namespaces_init_add() failed due to invalid settings.
    Normally the invalid settings were caught by config process already.

commit 3d77cc0d502dc69ffe2afe318605964dd40b7b20
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 10:09:28 2014 +0200

    lib: ostream.stream_errno is now exactly the same as last_failed_errno.
    There's a lot of code that checks only for stream_errno instead of
    last_failed_errno at the flush time where the stream_errno might have
    already been cleared.
    
    I'm not sure why these were separated in the first place. I don't think
    there are any stream errors which just correctly go away by retrying the
    operation. Perhaps some code could have attempted seeking and try to handle
    the ESPIPE error, but that kind of code paths are rare and they could clear
    the errors themselves if needed.

commit 42b087dcb4cbaff7b44e53188940ee6ab6ba6f28
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 10:01:37 2014 +0200

    lib: ostream-file checks "sendfile() not supported" a bit better.
    There are other reasons why stream_errno=EINVAL could have been set, at
    least in theory.

commit 645d76bbb742c74795a0b35fe159451c4afad8d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 09:53:35 2014 +0200

    lib-storage: Added "creator" for mail_user.
    This allows fixing stats plugin to update stats also for shared mailboxes.
    That's a bit complicated change though, so I'm not sure how soon it'll
    happen. But at least this change makes it possible more easily later on.
    Might have other uses too.

commit 7a77b948806106b46a33f3e6a3869657f49877fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 09:39:24 2014 +0200

    lib: Never implicitly clear istream's stream_errno.
    I'm not really sure why these were added in the first place. At some point
    the stream_errno was cleared in more places, such as just before reading,
    but those were also removed already. I don't see any benefit for these, just
    potential problems.

commit e5b48cb130b24cfcb875032bae4f5a16c286d670
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 09:35:59 2014 +0200

    lib-mail: message_search_msg() shouldn't clear istream's stream_errno.
    If the input stream failed, retrying the operation without cached
    message_parts is unlikely to help. This also loses the original error
    message.

commit ac51b12850a6740c2152e4e78cf2abe3aa620391
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 09:12:38 2014 +0200

    dsync: Set MAILBOX_TRANSACTION_FLAG_SYNC also for exporter.
    This doesn't really do much because exporter shouldn't be writing anything,
    but it allows plugins to find out if transactions is coming from dsync.

commit 38f624b427aa8b6fad3765e6efd97c85a7f97a09
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 03:58:51 2014 +0200

    lmtp: Added support for DSN ORCPT parameter.
    If the parameter is specified, it's used as the original recipient address
    in Sieve. The ORCPT parameter is also proxied to destination LMTP server if
    used (without checking if it supports it). We don't currently advertise DSN
    extension, so this feature won't be enabled automatically.

commit fa8fbd8cb2b4f058095acf16ca80b9458c3172b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 02:48:22 2014 +0200

    imap-stats: Fixed truncation of command args.

commit cf07b671695d344a36d9ee681193fda8a3516432
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 02:39:51 2014 +0200

    stats: Use the same session ID string for stats tracking as everywhere else.
    Generate a new ID only if there is no session ID assigned.

commit b5f58ca1cab96a87e0b59f42550107565817f3c1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 02:37:39 2014 +0200

    ssl-params: Removed duplicate lib-ssl-iostream.la linking

commit 31b5f26bfa614b140d3559f7fc1b9b19e2be2b61
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 02:28:46 2014 +0200

    stats: Use the new str-table API to reduce memory usage for service strings.
    There are only a couple of services, while there can be a lot of sessions.

commit 639587335dfe5d66dc7034817b3e685458ecbee1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 02:24:46 2014 +0200

    lib: Added str-table API for keeping reference counted strings in a hash table.

commit 89ca3ba9e1054b6f0633932225fbf9efe33fb6c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 13 01:41:07 2014 +0200

    stats: Added support for "global" stats type.

commit 09060303d565e15d54e42b4ef722f9d3c26f5336
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 06:58:37 2014 +0200

    director: Added support for backend cluster "tags".
    This allows using a single director ring for multiple backend clusters. By
    default everything has an empty tag. A passdb lookup can return
    "director_tag" field containing the wanted tag name. If there aren't any
    backend servers with the wanted tag, it's treated the same as if there
    aren't any backend servers available (= wait for 30 secs for a backend and
    then return temporary failure).
    
    Tags can be added to configuration by adding @tag suffix to IPs/hosts. For
    example:
    
    director_mail_servers = 10.0.0.100-10.0.0.110@name1 10.0.0.120@name2
    
    "doveadm director add" can also add tags either with @tag suffix or with -t
    parameter. "doveadm director status user@domain" requires giving the user's
    correct tag with -t parameter or the results won't be correct (empty tag's
    results are shown). Tags can't currently be changed for an existing host
    without removing it first.

commit 5b4d189a01d248458496068f838128f1bafdcf2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 06:46:45 2014 +0200

    director: Don't restart request timeout when director state changes.
    If the state keeps changing all the time we'll never return timeouts for the
    requests.

commit eb209d12e3b1cfed564c35cf19fdb1bf7fcc6811
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 03:29:04 2014 +0200

    director: Added director_consistent_hashing setting.
    This should have been the default since the beginning. I didn't thik it was
    worth the trouble originally because in theory it shouldn't matter much if
    users jump between multiple backends. But this makes caching behavior worse,
    especially for systems which are using local cache files.

commit 56c69b4b17af0b5a2c71705d5edae746f00780b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 02:04:14 2014 +0200

    director: When logging a warning about ring being synced again, log how many seconds it took

commit 8420ca2c46d15257d43a5507e841325134fffa75
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 01:59:48 2014 +0200

    director: Always log a message when director handshake finishes.

commit ad404d294fedf792619aed432ed8de5174e9ce7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 01:51:29 2014 +0200

    doveadm director ring status shows now more information

commit d65cc3312d3126d34b51ae8eccd6b48215d50029
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 01:26:04 2014 +0200

    lmtp: Show more information in process title.
    Most importantly show the username while messages are being delivered.

commit 45ead232666a47819e89dc71dec57767340d0b62
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 01:06:02 2014 +0200

    doveadm: Support running non-mail commands via doveadm server.
    There are still some commands that print their output via printf though, so
    they need to be fixed separately.

commit 55accf49e32ff93bfdd92961cb54ccc8c329147c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 01:04:27 2014 +0200

    doveadm: Moved commands related code to doveadm-cmd.[ch]
    Commands are already split for command line-only commands and commands that
    can be run via doveadm-server also.

commit d4c6c0412c6835f3dffb4e023992a08743e306e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 00:52:44 2014 +0200

    doveadm who: If parameters are invalid, print help text for who command instead of the whole doveadm usage.

commit e16cdc182bf122c37e252b49809db688e874b2a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 12 00:20:40 2014 +0200

    doveadm: Code cleanups to prepare server code for non-mail commands.

commit a8b37b688ceaa3ed3d40b3ccbdba5bb75cfb64b0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 11 05:06:09 2014 +0200

    lib: Compiler warning fix in 32bit systems to previous change

commit 4eb418849d5c6bf77b2721e4e6aef2e97deaa197
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 11 03:13:16 2014 +0200

    lib: file_wait/try_lock() treats EINTR differently now for timeouts and for actual signals.

commit 31a8f59ac2d7faf3943b93f0bb5ed9cf6a5453d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 31 04:27:27 2014 +0200

    lib-storage: Mailbox list index now detects duplicate mailbox names.
    With LAYOUT=index the duplicates are renamed.

commit bb1a7da5a76625640a5a207b19ed3abdb70c9617
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 5 13:00:14 2014 +0200

    doveadm: Removed duplicate subcommands from list of commands.
    For example don't show "mailbox ..|metadata|metadata|metadata|.."

commit 730f8250fe4f840e2f708b9648e90e0069772088
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 4 14:49:44 2014 +0200

    imap: If GETMETADATA with wildcards can't open some mailbox, don't assert-crash.
    Just send an untagged NO for the mailbox.

commit bc7c48e8b63f1abffb36daf97b7c1c8722b43372
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 31 17:05:31 2014 -0700

    ssl-params: Use lib-ssl-iostream's ssl_iostream_generate_params() instead of OpenSSL directly

commit 7ef7f34c38954020004e2b25b4ce8f54b4bcf8f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 31 17:04:58 2014 -0700

    lib-ssl-iostream: Added dh_length parameter to ssl_iostream_generate_params()
    This is an API change, but nobody was actually using this function.

commit c5b7a9068c637195bae4751f965fc33c203a72d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 31 16:54:07 2014 -0700

    lib-ssl-iostream: Support non-1024bit DH parameters in ssl-parameters.dat.

commit 0aaded8049bed0a277e980ffdbd5712c509a21e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 30 22:02:52 2014 +0200

    lib-ssl-iostream: Destroy SSL module later in the atexit-callbacks.

commit cd7cecf1486532977b417c39f61b10e521e2224a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 30 22:00:14 2014 +0200

    lib: Added lib_atexit_priority()

commit 84e4f27dd10c56cd63d75a04af5f5eb2a1b70d22
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 30 04:41:11 2014 +0200

    *-login: Also increase MASTER_AUTH_MAX_DATA_SIZE and add a check to make sure it's large enough.

commit 82fb1ead38f4e1197993adb2f9c12e26531e9c92
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 30 04:36:50 2014 +0200

    *-login: And actually make the previous changes work.

commit 85cbbbe62c42e6ab283ba9077f2abe8c18c78cf1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 29 18:33:46 2014 -0700

    imap-login: Added "x-session-ext-id" parameter for ID command.
    It's exactly the same as "x-session-id", but this one can be safely used by
    external software without having to worry about causing error messages in
    older versions about too long session-id.

commit 404150692ba0f5e710600220c0dccfbdf1b1d7cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 29 18:32:36 2014 -0700

    lib-master: Removed fixed length limit for session-id.

commit 959eca738ab09d2760fd96ba329263fe589f84b0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 29 11:46:50 2014 -0700

    lib: connection_switch_ioloop() should switch also input stream's ioloop.

commit 4fbf59562594dbbbe037f8d4c480dbf88f3fc708
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 29 09:58:01 2014 -0700

    lmtp: Added support for STARTTLS command.

commit 83db24db79d5b0cd79ab60d20fcdaa585bbe048d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 28 17:15:31 2014 -0700

    lib-http: Make sure we don't access already freed client connection in payload-destroyed callback.

commit fde8872151fcf82c3bc862d21a6b72acfe0fb171
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 28 17:07:21 2014 -0700

    lib: io_remove() should finish closing the io before unreferencing its istream.
    This is because the istream unreferencing may close the fd.

commit 85c41e096ddb922d4462c2aeadc304da5e502380
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Oct 28 16:12:09 2014 -0700

    lib-http: client: Fixed assertion failure in http_client_queue_fail().
    Don't explicitly clear the request array after looping through all
    requests, since new requests may be added during the loop, not only
    removed.

commit decdff03c32cb5d0e99d71c5678fd008714de70b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 21:48:29 2014 -0700

    lib: istream-timeout logs how long the stream was open if parent read fails with ECONNRESET/EPIPE.

commit ac3d5a11ff86b23eb2e416a7fe9406cef271930d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 21:43:10 2014 -0700

    lib-http: If there's an error reading chunked http stream, set the error to the istream.
    Previously the error string was set, but it was never read by anything.

commit cb091e2f74c4e13840cc4dcdabea31142b6352e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 28 05:45:59 2014 +0200

    dsync: Fixed notifying replicator (-U parameter) if it didn't answer instantly.

commit 5ef6906c82f34a3edd2981dd98339cdd7bfe3bbe
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 23:29:39 2014 +0200

    lib: Make sure ostream.last_failed_errno is always set when stream_errno is set.

commit d08e08aebe5aa5d6147767d393a0a15aef08ce7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 23:26:10 2014 +0200

    lib: o_stream_uncork() could also cause write errors. Make sure last_failed_errno is updated.
    This caused some write errors not to be detected, such as in code like:
    
    o_stream_cork()
    o_stream_nsend(..)
    o_stream_uncork()
    if (o_stream_nfinish() < 0) {
      // error not detected because last_failed_errno was 0
    }

commit f45aa66343b9431d2f6fa29799e8a9d8187edb40
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Oct 27 22:05:27 2014 +0200

    lib-index: Remove assert that can never happen.

commit 451391ab781733c8d27fa73d64231a0d90c3748c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 20:24:34 2014 +0200

    master: Don't send broken BYE notifications to log process.

commit d695286ee8796c701f1911fefeb9bcb878dd2b32
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 20:14:47 2014 +0200

    log: Don't crash if master sends a negative service_fd number.

commit 46ad586b6d5f4c3e3f46728199e81ddd63225fb3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 20:10:19 2014 +0200

    master: Added an assert to catch duplicate fork() PIDs.
    This really shouldn't be happening, but apparently it does sometimes. This
    should make it easier to debug.

commit 34b858a4586db070d899e128a6fc76a4ea6050be
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 27 17:05:52 2014 +0200

    lib-storage: Recent change broke deleting mailboxes with LAYOUT=index

commit 659ab82ad5c21d05d0bb06b7e236a0c4159fa3c0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Oct 26 18:43:57 2014 +0200

    lib-http: server: Fixed a hang occurring sometimes when response is sent for a request that had payload.
    Forgot to always trigger sending response when processing request payload
    finishes.

commit bf1134c9c153e6ea652a8a6cd9ae340c87039561
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Oct 26 18:43:57 2014 +0200

    lib-http: client: Removed asssert in http_client_connection_is_ready().
    There is no reason why the input stream couldn't be full.

commit 4e1039a8f27640eac849038a6ff31f28d1439d62
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Oct 26 18:43:57 2014 +0200

    lib-http: client: The asserts recently added to http_connection_check_idle() are bogus.

commit fc525738d566a2b45270d68f2781021cb3755ab1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 26 02:03:22 2014 +0300

    fs-posix: fs_copy() no longer fails if destination exists and FS_OPEN_MODE_REPLACE is used

commit 3f6a3951ad15131edcdab34181dede1b5451fb97
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 26 01:59:05 2014 +0300

    lib-http server: If i/ostream fails, don't return wrong "stream input size changed" error.
    Also handle the real case in a bit nicer way.

commit 2e10491aeedbb8a77764411d3dd4c10e744da9f6
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Oct 25 22:18:07 2014 +0000

    man: Global options includes: Added back the newline at end of files.
    
    They were accidentally removed in the previous commit.

commit 57552b0526b046e7e6bbac73739d9b65c8154606
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Oct 25 21:24:06 2014 +0000

    man: Global options includes: Added description of `-o setting=value'.

commit b80c329a25b5b07f5e68cd44ef0fef9db6613486
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 26 01:00:36 2014 +0300

    lib: If i_stream_seek() works by reading forward and read() fails, don't override the error message.

commit a03a9aa80d48c837971948dec90066af5a4c22ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 26 00:08:05 2014 +0300

    master: Don't start new processes while shutting down.

commit a3e96a912e8a058a7372eda55ffc95d54269bd3c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 22:53:35 2014 +0300

    dsync: Added debug logging for attribute importing

commit 9803c762c18b19d90286aafebcba6e1f99dbf244
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:57:25 2014 +0300

    Added signature for changeset e8b793f2c409

commit 1234a3f0e6f386f7cee431c1783535f851217844
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:57:11 2014 +0300

    Added tag 2.2.15 for changeset e8b793f2c409

commit 6ba458d40a90492cb7b36de02221bee23554a442
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:57:11 2014 +0300

    Released v2.2.15.

commit 18458233e89c8467e30d8b93b1823128f26bc174
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:40:03 2014 +0300

    lmtp: Use mail_log_prefix while mails are being delivered.

commit baca4c450997038255854aae5a1ce051e7a1f00d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:37:35 2014 +0300

    lmtp: Added missing session_id to mail_user

commit bb2471ff14f01390b47cce63b407820b5547df1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:19:41 2014 +0300

    lib-storage: LAYOUT=index now first creates the backend mailbox and only then adds it to list index.
    This avoids any race conditions with mailbox creation and opening it.

commit 7f0ad4a2ba6ba133fe3522145387bde21dfcf36f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:18:45 2014 +0300

    lib-storage: Don't update mailbox list index status fields when deleting a mailbox.

commit b63c064e9622c4f646df063c6e6059b591587afd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:18:06 2014 +0300

    lib-storage: When mailbox is deleted, reset its cached paths.
    If mailbox is still later on recreated, the paths may have changed.

commit 8739d6bf47fae49a28b5ed239468bbe97f252559
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 06:16:47 2014 +0300

    lib-storage: Fully unreference indexes when deleting mailboxes.

commit 458b283a2f3db6e5aff20b4df1bbd18ada3900dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 02:56:42 2014 +0300

    lib-index: Don't assert-crash if expunge event handling finds that everything is already expunged.

commit 73ac4a4b176aacc175c47e0d8791b7e56bad1d52
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 02:53:55 2014 +0300

    quota: Fixed including the right system quota.h with NetBSD
    Patch by Manuel Bouyer.
    
    I guess the quota.h could be renamed to something at some point..

commit 5f83be0c55c71e15b62cbc275f8dd4b3e80e18b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 02:52:50 2014 +0300

    quota: Fixed NetBSD quota
    I guess it's because quota is refreshed only at quota_open() time.
    Based on patch by Manuel Bouyer

commit bbdd683dd23641dca779bffdf22c089b57fe5066
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 02:42:47 2014 +0300

    auth: Some unsuccessful passdb lookups weren't returned as failures to passdb lookups.
    These lookups were only being done internally, so it usually didn't matter.
    Also this only affected things like allow_nets checking and some non-common
    passdb { result_* } settings.

commit 42e23ab53a1921ca87a73bbe4abaebf51da5b3aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 02:39:00 2014 +0300

    auth: allow_nets=local matches now connections without any IP address

commit ce930f99c6a78f2c74b00df1ad2337095978a9db
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 25 02:13:36 2014 +0300

    virtual plugin: Fixed assert-crash when backend mailbox was auto-closed while it had pending expunges.

commit 1a2ce9ef13bbc4c9d7708b43a6eb5e72e19c9280
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 25 01:38:43 2014 +0300

    lib-http: client: Handle situation in which server sends response before request payload is fully sent.

commit 30ccfe4fdc2212d4341fa0edd6e8e73609ef1418
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 25 01:38:42 2014 +0300

    lib-http: client: Fixed handling of requests aborted while still sending payload to server.

commit 9145c8b5eda526d05bd4a7ced20f6f6f2ff8df03
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 25 01:38:42 2014 +0300

    lib-http: client: Fixed conflict between request abort and request delayed error.

commit 7e5ead02b7d29e859d290668987b1cbf4a16867a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 25 01:38:42 2014 +0300

    lib-http: client: Fixed cleanup of remaining waiting requests at connection destroy.
    Forgot to dereference the requests for the reference that the connection
    itself holds for each waiting request.

commit 23f432e57662577b648d274a4d5533e796e76117
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 25 01:38:42 2014 +0300

    lib-http: client: Aborted requests were not counted as finished in the connection's response receive loop.
    This caused a hang.

commit 46453c751e7714dbe2b57752b34b5a3427375ccf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 23:00:56 2014 +0300

    lib-fs: Improved error logging

commit b5351cfc57c3698a3b9e8ff252ecb34a462e818c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 22:18:29 2014 +0300

    Use i_stream_get_error() wherever possible instead of %m

commit 8dccbdbe38f0e9342caf752d9d980a64125fa4d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 22:11:50 2014 +0300

    lib-storage: Added data stack frames for most calls.
    So neither the callers nor the implementations need to worry about those so
    much.

commit 9e406b04bb5bed7d73aeed375c40c6a3fea1a2cb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 22:10:25 2014 +0300

    lib: Added "istream-seekable: " error message prefixes.

commit 299451d50b891c83f4f5d921bc22715f24094236
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 04:24:40 2014 +0300

    dsync: Added some debugging output for mailbox trees.

commit 49c7e0ae3f2c470e6ee70a540b5816a574f98f51
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 03:58:35 2014 +0300

    dsync: Removed in/out state from debugging.
    This was initially added for debugging hangs, but those haven't existed for
    a long time now. Maybe we should eventually make debug categories
    configurable, but for now nobody wants to see these messages.

commit f0101f9ddfaf54595357721b17d666315affdbc7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 24 03:54:21 2014 +0300

    login proxy: If proxy_timeout is set, try to reconnect until the timeout is reached.
    This allows quickly restarting/upgrading backend servers without returning
    login failures.

commit 2c57ebc900742bd1119ef011b77b4910c4660cfa
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 23 06:38:20 2014 +0300

    doveadm: Added metadata set/unset/get/list commands.

commit 7fbd5e7ceedb73996290c5358f5243d7d22b4d49
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 23 06:37:48 2014 +0300

    doveadm fetch: Use doveadm_print_istream()

commit 80bc6f4feafd94bfaf3bf77e7b4038c03b81de3a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 23 06:37:30 2014 +0300

    doveadm: Added doveadm_print_istream() for easily printing istreams.

commit 0d24f1550f5f70eb199018926a7bf0a12971695c
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Oct 23 05:55:51 2014 +0300

    lib-http: client: Fixed proxied client connect timeout.
    Timeout didn't cause requests to be aborted with error.

commit 94d1b08c9e20d637db568a3eab3dfc2b9e96e62a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Oct 23 05:55:51 2014 +0300

    lib-http: client: Implemented maximum for connection backoff time.
    Without a maximum, the backoff time grows exponentially to enormous values,
    because it isn't reset until the connection succeeds. This causes recovery
    from connection failures to become very slow. Current maximum is one
    minute.

commit a8304588757ef197bf10461f668cb017cb75a68a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Oct 23 05:55:51 2014 +0300

    lib-http: client: Assertion in http_client_queue_fail() was wrong.
    It is not guaranteed that all queue lists are empty, because new requests
    can be submitted from the callbacks. Changed this into a proper invariant
    check, which asserts tbat the number of requests in sub-queues add up to
    the total number in the main queue.

commit 5e3c6e99844b1981df1b6ffa484211dc0e3ce089
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Oct 23 05:55:51 2014 +0300

    lib-http: client: Clear req->conn when request is finished.
    This prevents a spurious assert failure.

commit 537598efa668f2277b429bfe35a342a7036e04d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 23 05:04:37 2014 +0300

    lib-index: Detect broken log_file_tail_offset updates without assert-crashing.

commit ab841a241463160492bb4b8e41039752804b33b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 23 04:16:48 2014 +0300

    dsync: Fixed assert-crash / memory leak on error handling path.

commit 483268a37cd0421bc50f6b4c322e11c557c4cecd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 23 03:10:12 2014 +0300

    lib-storage: Make sure mailbox names are valid UTF-8 with LAYOUT=index

commit 10732e0d1013fb6a9e86b73381a830acbb335850
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 22 14:15:23 2014 -0700

    replication plugin: Use low priority for mail copying operations.

commit 3bb59b47d47cba85a92df67823b0e49d2c383307
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 22 05:40:44 2014 +0300

    lib: Added unit tests for guid_128_*()

commit 8562f8de469e87ad4104747cebec6b133fa3a0f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 22 02:59:22 2014 +0300

    lib: Added guid_128_copy()

commit 4aaec94d5ff8988591f47a51d6dde11862acce1b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Oct 21 23:34:50 2014 +0300

    lib-http: client: If peer is unlinked from queue and no other links remain, close any pending connections.
    Those pending connections would no longer serve any purpose.

commit 3a177dbf62af83209f1e33fc28c620ea1fc14ada
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 21 05:46:22 2014 +0300

    lib-storage: LAYOUT=index no longer keeps list index locked while creating mailbox.
    Mailbox opening can be slow and complicated and could even try to lock the
    list index again. So it's a bit more racy now, but all mailbox formats can
    already handle races with mailbox creation.

commit 330865e1eb92715b34462af25c90c7308624c2af
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 21 05:44:09 2014 +0300

    lib-storage: Partially reverted previous change. Added mailbox_list_index_sync_delete() instead.

commit c44f7761bba61503d573eb950b9377f9d55ce2aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 21 03:58:56 2014 +0300

    lib-storage: Added mailbox_list_index_delete_entry()

commit 74fe10b32e66b571416ca2360625753ddf2d58ca
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 21 02:48:20 2014 +0300

    lib: test-buffer was randomly crashing with SIGFPE

commit a991cfe2157e58ee43bc580f517ce9ef0dfb7acf
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Oct 20 08:54:27 2014 -0700

    lib-http: client: Created list of all submitted requests.
    Currently only needed to improve debugging of hanging requests.

commit 8d5b57113f8f90003fd54a426fc70a8bdd5db099
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Oct 20 08:54:27 2014 -0700

    lib-http: client: Fixed behavior of connection backoff timer when multiple IPs are returned for hostname.
    Peer backoff data was lost because peer was destroyed quickly. Now the peer
    object is retained during the backoff period, so that new connection
    attempts adhere to the backoff period.

commit 72383415a26b7f0b26457ba685b37a8abe7964ca
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Oct 20 08:54:27 2014 -0700

    lib-http: client: Connection erroneously indicated that it was ready while SSL handshake was not yet completed.

commit e4e4b8544a492cf90bd7a93c9a26e8285fc7c00b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Oct 20 08:54:27 2014 -0700

    lib-http: client: Fixed behavior for max_connect_attempts with fewer IPs than attempts.
    This was broken by earlier 'fix'.

commit 60381d37ec7213c21bd6ada7babb769f572646f9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Oct 20 08:54:26 2014 -0700

    lib-http: client: Fixed handling of connection timeouts.
    A timeout caused an assert failure, because the connection status was
    altered before the peer_connection_failure handler was called.

commit da2555e119356b3eb0515b2a7e5785f8b7f69f1a
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Oct 19 19:29:34 2014 +0000

    man: Reworked some formatting requests.
    
    On some systems, for example SunOS 5.10, the example commands were cut off.

commit e9c0bb1f4d0fbbdb34d11df82e30f58ba2cf3410
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 19 11:24:12 2014 -0700

    imap, pop3, lmtp: If client gets disconnected due to iostream error, log the full error.

commit 9f7a3d6bbc4601e293656295f2aa44dc67e1cb16
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 18 02:13:30 2014 +0300

    doveadm fetch: If istream reading fails, log a better error message.

commit 6a268ef957524efccc9bdabada2645499be02dde
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 18 02:12:47 2014 +0300

    lib-storage: When logging about corrupted cached message size, log the filename also.

commit b5188ceb8384d6372e1eeda52fcac219d98bf567
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 18 01:55:02 2014 +0300

    lib-storage: If we detect a broken cached message size, log more information about it.
    Also try to include one of the cached headers in the message, which could
    allow detecting if the cached data pointed to a completely different
    message.

commit aa21a546cee0a80bfc0fb25002c933f589222474
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 17 10:02:54 2014 -0700

    lib-lda: And fixed the earlier commit.

commit ad31667f869a058bb6009dce5c5a73b115931daf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 17 09:59:21 2014 -0700

    lib-lda: duplicate_flush() now unlocks the duplicate database even if nothing had changed.

commit f3391d65cc830eab22ca6c5941774de682716edb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 16 08:19:03 2014 -0700

    lib-storage: LAYOUT=index doesn't reserve '~' as internal separator anymore.
    The index doesn't reserve any character as hierarchy separator, so the
    internal separator can change at any time. Use the namespace's configured
    hierarchy separator as the internal separator to avoid reserving any
    characters. If namespace separator isn't configured, fallback to the
    original '~' so this change shouldn't break anything.

commit 136ba0ed29cf55c21955b08400f68a21c8f4f678
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 16 07:25:17 2014 -0700

    doveconf: Changed _doveconf_comment symbol suffix to _doveconf_banner
    That describes its behavior better.

commit 4fcf9b577a74f18aa0fe4500cb192c1b1d350d38
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 15 07:37:05 2014 -0700

    doveconf: Allow settings plugins to print comments to the output header.
    If plugin contains <plugin name>_doveconf_comment string, it's written as
    part of the doveconf output. The idea mainly being that the major plugins
    (such as Pigeonhole) could print their version number there to avoid having
    to ask for it separately.

commit 910a5167201f3f51a2875a8c905a9ad58db9ff51
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 16:57:13 2014 -0700

    imap-zlib: Removed check for disallowing COMPRESS to be used with TLS compression.
    Clients shouldn't be doing this in any case, and this check doesn't work
    properly with proxies.
    
    We could solve the check properly for Dovecot proxies by having them send
    the TLS compression state to backends, but it would still leave non-Dovecot
    proxies broken. Although we could just not advertise COMPRESS=DEFLATE
    extension if TLS compression is enabled and non-Dovecot proxies at least
    wouldn't cause failures. Still, overall seems like a lot of work for such a
    small and probably unnecessary extra check.

commit 1b225669e5c9a43818be05e269cddefb676bbfde
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 12:17:36 2014 -0700

    lib-ssl-iostream: Allow commas also in ssl_protocols setting.

commit 3cd3140707526e005053547f356421b2d9a5e673
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 12:14:14 2014 -0700

    Compiling fix for some systems.

commit d4f80a4e2c18278cd64dfe02c13610dbaba48873
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 10:17:26 2014 -0700

    auth: Minor fix to previous commit.

commit 1323ac1fde7748dcdc446bd37957f44cd4575e19
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 10:16:03 2014 -0700

    auth: Check for empty username after doing all the username changes.

commit d6ecafb8be5ef4d80e610f45eb957985ece14146
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 19:49:58 2014 +0300

    Added signature for changeset 6dad1f6e8930

commit 9d128253a4c3e9b50f30eed69ed393b59bb7b202
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 19:49:55 2014 +0300

    Added tag 2.2.14 for changeset 6dad1f6e8930

commit 0ec69c4f27a1d8dae72e00f89a33dd2dc86c6cde
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 19:49:55 2014 +0300

    Released v2.2.14.

commit bacd4f6e62996e95d7aafd94716025b22a39d470
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 09:39:50 2014 -0700

    lib-storage: Added X-REAL-UID search parameter.

commit 74c09aceb0118b564f8443e1276c465738d19c17
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 09:36:15 2014 -0700

    Compiler warning fix

commit 89c8d5f336e44cca091a1f588d51ba26e5145ad2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 14 09:22:40 2014 -0700

    lib: i_stream_read_next_line() now sets a better error message if line is too long.

commit 228eff728b21738118faf25178f1fd87ae4bc63d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 13 09:13:53 2014 -0700

    auth: Fix to earlier commit: Don't try to resume already finished user iteration.

commit aa938aea66562ca3f3c5965a79b3b27ebcbe04ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 13 08:50:44 2014 -0700

    lib-index: Automatically grow header size on header updates.
    This fixes assert-crashes when it didn't happen.
    
    For example an old Maildir index could have had a header size 24. Dovecot
    crashed then when trying to update it, because the new header size is 36 and
    there wasn't an explicit mail_index_ext_resize_hdr() call.

commit 2e29c5838d18258c61559ab7890a656df3453544
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 13 06:55:15 2014 -0700

    Compile fix for systems without dlopen()

commit fca68889b287d8eed4babe72a231bd6079da012d
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Oct 12 08:58:40 2014 -0700

    lib-http: client: Moved delayed failed requests from host to client object.

commit 501d0f9aa4e892c47dfe369774ef3c8961f753d2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Oct 12 08:58:40 2014 -0700

    lib-http: client: With the recent addition of a connection attempt limit, connection failures weren't always handled correctly.

commit 68fb5a74d7890cfc7085301583874df6c32da4aa
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Oct 12 08:58:40 2014 -0700

    lib-http: client: Fixed segfault caused by earlier change.

commit 47b5ef748f34ca194419befab4f7450002f4e85d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 11 00:02:00 2014 +0300

    auth: Make sure userdb iteration is destroyed if worker connection disconnects.

commit f26b9bb2c87a1179efdc8849fb140c2a2e917966
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 11 00:01:09 2014 +0300

    auth: Userdb iteration optimization.
    Don't keep re-creating the timeout after iterating each user.

commit f1b04cf99c9e45c318f31e6c5ade595ee7e595a5
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 11 00:43:38 2014 +0300

    lib-dns: The dns_lookup() call caused a crash upon a connect error, because dns_client_disconnect() can indirectly call itself recursively.
    Solved by dropping the list of lookups from the client object before the
    lookups are destroyed.

commit f3c4f76a22b71b3c76c7f586db40b04e75564c2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 10 23:59:52 2014 +0300

    auth: If userdb iteration client disconnects early, make sure we don't get stuck.

commit 834dcbc785899c07ec2229d67fffcc0104d077a5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 10 18:11:58 2014 +0300

    maildir: Don't limit uidlist line lengths to 4096 bytes.
    Although this always indicates corruption, the current code doesn't handle
    that very nicely. One fix would be to just ignore such long lines, but this
    is easier to implement..

commit 840abb812d2e8edc42b5e2a4e3838b8d5e759e6a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Oct 10 00:46:15 2014 +0300

    lib-http: client: Fixed assert crash occurring when DNS lookup fails immediately during request submission.
    In that situation, the request was not dropped from the queue immediately, triggering the assert crash.

commit 1837e1363691547bb040820e7e363986b2845e0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 21:23:08 2014 +0300

    lib-lda: Compiler warning fix

commit 474da741bfb2c405a838a8d48f77346f9d389fd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 21:22:45 2014 +0300

    mbox: Removed obsolete code that also wasn't compiling because of previous commit.

commit 411ae691e12abd53d77c9591d35e077a50d94592
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Thu Oct 9 18:19:03 2014 +0000

    man: doveadm-acl.1: Corrected description of default output formatter.

commit cfadd9a17fca2f25981664b02e38eafe27b6686f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 20:46:31 2014 +0300

    lib-index: Removed dovecot.index locking related code, which is no longer used.

commit d77fb3be552eefbfb9cdd43ff23d794796d7a36c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:41:06 2014 +0300

    lib: Updated comment to o_stream_send_istream()

commit 63866b7a81355543832d3fe01cd744ddd4ea197b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:40:54 2014 +0300

    lib: Fixed assert-crash in o_stream_send_istream() if input stream was the one that failed.

commit f6ae4001e33637ad80ebb8f5716ca2020e718625
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:27:14 2014 +0300

    lib-index: Added mail_index_sync_no_warning() to prevent "long transaction lock" warnings.
    Use it with Maildir to prevent double-warning.

commit 2f8da04d700cc23fcd6630226a4866e828b761bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:26:05 2014 +0300

    lib-index: Include reason string in warnings about keeping transaction log locked for too long.

commit da4376093d4e1b26b14ea1e945689fb7056fe0a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:23:41 2014 +0300

    lib-index: Replaced some automatic transaction log unlocks with asserts.
    Some earlier Dovecot versions were read-locking transaction logs and this
    was useful there. But now we only do exclusive locking for the log head, so
    it's an error not to explicitly unlock the files.

commit 94cb0544ba0b6e249f20b76ad481bad27a633632
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:20:56 2014 +0300

    lib-index: If locking transaction log times out, show the PID which has it locked.

commit 565790b0600fb784ee9bc1e9769d1c73c3d2e453
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:19:11 2014 +0300

    maildir: Use MAIL_TRANSACTION_LOG_LOCK_WARN_SECS as threshold for logging a "long sync" warning.
    This is because the index syncing keeps the log locked, and other processes
    trying to lock the log will start logging warnings as well.

commit e307c8202280c6db60a0615381f18cac33e46a53
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:17:26 2014 +0300

    lib-index: Moved MAIL_TRANSACTION_LOG_LOCK_WARN_SECS as part of public API.

commit a34d06ac672ad0e4f8a25f47ef96f99ada4362c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:14:43 2014 +0300

    lib: o_stream_send_istream() shouldn't ignore EINTRs for file ostreams.
    Also added extra asserts to make sure that either we return an error or we
    write everything from input stream to output stream. This should make it
    safe to write to files using just:
    
    if (o_stream_send_istream(ostream, istream) < 0) {
      // failed
    } else {
      // everything in istream was written to ostream
    }

commit db3ebf659c17fc5ca348a997e6311d20cfbb78e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:12:46 2014 +0300

    lib: o_stream_send_istream() should return -1 if there was an error reading input stream.

commit 1107c86ff3fa4f29796c2e76134b78d0b4a0db50
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 18:12:14 2014 +0300

    lib: Added file_lock_find() to find which process has a file locked.

commit e19e36fc3b92f4ddc207e7fd294fde0fcc8d06cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 16:51:22 2014 +0300

    lib-storage: Small comment update

commit 073f965351846b8c97347b882c441dc336965e26
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 16:42:01 2014 +0300

    lib-storage: If uncached header unfolding fails, panic instead of returning error.
    This really shouldn't be happening. This also makes it clear that return
    value -1 means some kind of I/O error instead of corruption.

commit 8b12e7b44abca3bd51a1c46e19ca504f3b55e723
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 16:41:23 2014 +0300

    lib-storage: Fixed header parsing when there were multiple same header names.
    For example if a mail had:
    
    Name1: a
    Name1: b
    Name2: c
    
    If the Name1: was initially added to cache and Name2: not, but later on both
    were attempted to be added to cache, the Name2: lookup would have been added
    with "b" instead of "c" value.

commit 0f483134199a7cff70e5fbda5818238632c93934
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 9 12:02:21 2014 +0300

    lib-lda: Added smtp_client_abort()

commit 1ee1a73bde20380ba39d572681397ad05dcdf9a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 8 22:10:34 2014 +0300

    lda, lmtp: Use mail_deliver_context.tempfail_error first if it exists (instead of storage error).

commit f2841ed469a0f0ee4c03c8e81571ae8b42d97282
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 8 16:28:40 2014 +0300

    lib: Compiling fix for FreeBSD
    Patch by Eero Hänninen

commit b056d19b7a07400b897104b146c8768280d24009
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 8 11:34:05 2014 +0300

    lib-storage: LAYOUT=index small code cleanup

commit 28f7485aaa7c5e0e3aa85d5a65d0dfc1c7ec7b89
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 8 11:33:50 2014 +0300

    lib-storage: Fixed earlier LAYOUT=index change to refresh index before opening a view to it.
    Fixes an assert-crash.

commit 6ae7a38d1f2ac93e2ba17937bd3061e4d8eb23c8
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Tue Oct 7 22:24:21 2014 +0000

    man: Added doveadm-proxy.1.

commit f663bdd9d345a86e6a7924d83319bd04b2fcb600
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 21:35:44 2014 +0300

    lib-storage: Fixed some race condition crashes with LAYOUT=index

commit ca315235ca1128fbd74d118a286280a9786f1ba3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 20:29:16 2014 +0300

    lib-storage: Fixed assert-crash when BODYSTRUCTURE parsing fails due to broken mail size.

commit 02d8f3457ec664408abfd41e33043a405ca42c87
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 20:28:06 2014 +0300

    lib-mail: Added asserts

commit 425cbcea60cf689b0069698c83f8bdc474d70693
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 20:13:36 2014 +0300

    lib-index: Fixed assert-crash in some cache locking race conditions.
    If mail_index_map() is being called, we can't refresh the index or it'll
    crash. It wouldn't help anyway, since the index was just refreshed.

commit 6a53a51834b1b437257e7efa85013177b70fe255
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Oct 7 19:48:34 2014 +0300

    lib-fs: struct fs_file's write_pending is a flag
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0f833d18af36bf307cd69f235eb3fb779245b478
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 19:07:16 2014 +0300

    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.

commit 06fc580f6baf83fe5bb94c64be8149d527b01a42
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 19:04:36 2014 +0300

    lib-index: Added path parameter to mail_index_create_tmp_file()
    This allows using it for creating any kind of a new index file with proper
    file permissions.
    
    Some of the old code should probably be changed to use this. Maybe even move
    this function to public mail-index.h

commit cfd0e35fce37786f1bb186386ebe29aeef7dbf31
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 18:58:01 2014 +0300

    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.

commit ab70f55bb8d824ca1ed7c74196f2f502edd29cc7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 18:47:09 2014 +0300

    lib-index: mail_cache_lock() partial rewrite.
    require_same_reset_id is no longer needed, if it ever was. If we're locking
    the cache file, we always want the latest one. The logic of locking in
    general was somewhat confusing and it probably didn't always successfully
    lock when it should have, because the reset_id happened to match an old
    file.

commit 620b5ed41650da63b0ba15c489f9f312231d5d9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 02:54:35 2014 +0300

    lib-index: Code cleanup - avoid code duplication.

commit e4b242684975b4d3702ca79bfd56452fe139a2bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 02:35:41 2014 +0300

    lib-index: Fixed cache file creation race condition.
    If two processes are creating the index files at the same time, don't have
    one of them delete the dovecot.index.cache that the other one just created.
    This means we never should be calling mail_cache_create(), so it was removed
    entirely.

commit 2219015cc814b18a72d8d37696a5bffc52edd767
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 7 02:33:03 2014 +0300

    lib-index: Don't keep cache file locked for as long while syncing index.
    The earlier code was required for updating the cache offsets, but this code
    no longer exists. Now we just need to update the record counts in the
    header, which can be done quickly at the end of the sync.

commit 80bd97a015cfc65132673dc7a6b3765340e3d6ab
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Mon Oct 6 20:50:34 2014 +0000

    man: Fixed broken syntax in doveadm-sync.1.

commit c85f661daf164687fc5af22d74902f94c26597d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 22:12:01 2014 +0300

    lib-dict: Fixed race condition in mkdir()ing dict file's parent directory.

commit a4828c444096564c9f6759fa71b2de21cda73164
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 21:15:31 2014 +0300

    sdbox: Fixed race condition when two processes mkdir() the same directory

commit 482c0b9cbddf280256c1104cd9e75bebae8b88a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 20:17:19 2014 +0300

    Minor code cleanup to previous change.
    No need to have a data stack frame here.

commit d4f004105cd7159aa9ade6b019eaecce9e94f382
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 20:16:07 2014 +0300

    log_timestamp setting supports now %{usecs}
    This is mainly useful for debugging.

commit af59148d4f60ccf9c958a9bc9aa1654d9462bd5e
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Oct 5 23:36:10 2014 +0000

    man: Added doveadm-replicator.1.

commit 1c84269045efa942747b44cecb295e935243df0c
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Oct 5 23:25:48 2014 +0000

    man: Forgot to update doveadm.1 in previous commit (fec91a386bb0).

commit b0bc86df07375ae7b5344cf925fbb6dc71fa3a85
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Oct 5 20:18:20 2014 +0000

    man: Reworked dsync.1 and renamed it to doveadm-sync.1.

commit 34422d89f9e4adeb367fc85ff4f71db0137a7c20
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 13:17:00 2014 +0300

    dsync: Debug logging improvements and comment clarifications.

commit f4842590cc3957040925b74c1dad56936f25a3e3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 13:13:04 2014 +0300

    dsync: Fixed potential crash when deleting mailbox.

commit f6a50ab94799b632c6fc95ec73bfed399ead4e19
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 13:15:10 2014 +0300

    doveadm backup: Don't unnecessarily delete mailbox when handling expunges

commit 2176c7c7a7ed029fe577408c8988ea24e63b14c2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 12:21:52 2014 +0300

    doveadm backup: Local mailbox was deleted also when there were just new messages.

commit f502a549abbbb69c606243a8800cbe7d05f772f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 6 12:21:24 2014 +0300

    doveadm backup: When deleting a mailbox, log a warning, not just a debug message.
    Because we're also returning temporary failure in any case, so there needs
    to be some kind of a warning/error logged.

commit 01a486e33a2811754e1559f0b523844cd8f5f27d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 5 20:56:39 2014 +0300

    dsync: Fixed linking with some systems.

commit 75fe5f1b406c2b61a0eb52e9745b6d0f25facdc5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 5 13:24:02 2014 +0300

    doveadm sync/backup: Updated usage string

commit efbeceffc8cb1602d698151b0246f29e13b980fa
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:48:03 2014 +0300

    lib: Added support for connecting UDP sockets.

commit 22215c2d7538f4367c93e2d8b6ec4722463ac757
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:32:48 2014 +0300

    lib-http: Fixed detecting disconnection when ioloop is running only intermittently.
    This fix only applies to ioloops created and run by lib-http itself.

commit b66def5dadd3e7c250313a938d26ad113663f86b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:32:48 2014 +0300

    lib-http: client: Added support for absolute request timeout.
    Requests cannot survive beyond this deadline.

commit de0181258ab66b527ad8dc7e51a8efa76b4658d0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:31:38 2014 +0300

    lib-http: client: Added support for delaying requests in milliseconds.

commit 06d1b658d0f6840204bf1487b8bcad829d33b726
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:31:38 2014 +0300

    lib-http: client queue: Start using new timeval_cmp_margin function for delay handling.

commit b3ba8f62212c3e0cb8c27fb5e87e0419a47397c8
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:31:38 2014 +0300

    lib: Fixed io_loop_move_timeout() to retain the next_run time, so that the timeout is not implicitly reset.
    This problem became with timeout_add_absolute(), since resetting an
    absolute timeout causes it to fire immediately (msecs == 0).

commit dad72f97449874c60826d7e7a1e550d1689018b2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:31:14 2014 +0300

    lib: ioloop: Fixed absolute timeout removal.
    Absolute timeouts fire only once, so the timeout should be removed from the
    priority queue once it fires.

commit 9f4f35957d2839d487d14b42bcb3f1a1de098b4b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 4 17:30:54 2014 +0300

    lib-http: client: Fixed problem occuring when a nested ioloop was run inside a request callback using the same client.
    If requests in the nested ioloop would use the same connection as the one
    that called the callback, the requests would (in the best scenario) all be
    doomed to time out.

commit 792737e5c44d8f56fceacdfa3fb250b0e9b6d061
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 4 00:29:30 2014 +0300

    fs-posix: Compile fix for systems without flock()

commit c64840e98649f906a7b587c259d5b9e697c37498
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 22:44:31 2014 +0300

    Make static analyzer happier

commit 924af2adb71a4f740d7f755a59503b358fe9a5d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 22:39:53 2014 +0300

    lib-lda: smtp client may have crashed if remote returned a permanent error.

commit 8abfdb77da7426d1f0b83267f7e4db702c17feea
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 18:18:44 2014 +0300

    Added signature for changeset 34e52cbeb837

commit 823190efd7a7766ba99e3eb14c90c0b8910e80f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 18:18:41 2014 +0300

    Added tag 2.2.14.rc1 for changeset 34e52cbeb837

commit 4c808c48d9d95d13b464d19e4bf01bb5952c16ed
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 18:18:41 2014 +0300

    Released v2.2.14.rc1.

commit c9399301576167918d48589c916c76359b70668b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 17:36:11 2014 +0300

    example-config: Added ssl_options setting.

commit 5d786275b6a866622860729834096b0a2ad11c97
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 17:11:58 2014 +0300

    imap: GETMETADATA was returning mailbox name as UTF-8 instead of mUTF-7

commit b6c48e71a9413ac90a0414dfeb7d1248c144eeb2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 16:57:39 2014 +0300

    fs-posix: Added prefix parameter that is prefixed to all paths.

commit 2d9b6a31e55b72d441516ec5797791026e61e7a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 16:31:33 2014 +0300

    lib-lda, lmtp: Separate internal errors from remote errors.
    LMTP proxy shouldn't log remote errors with error level, because the proxy
    itself didn't have any failure.
    
    This is an API change, but I'm not aware of any plugins actually using the
    lmtp-client.h directly.

commit 0f430e0a577b96524c390881630a0cf1b624ba34
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 3 16:04:06 2014 +0300

    master: If log process crashes, restart it immediately.
    The regular service_monitor_listen_start() doesn't work for it, because the
    log fds aren't in the listeners.

commit 61f258ff61e4e210046e68acef9d10088f18d14e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 2 19:43:25 2014 +0300

    dsync: Debug message fix

commit f182955da33263be83a8d45af4aab0253f8f274f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 2 19:43:09 2014 +0300

    lib-storage: Added %{session} to mail_user_var_expand_table()

commit de39002e8ede55284af93d616bbf5f126188debd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 2 13:15:22 2014 +0300

    dsync: Improved debug logging.

commit 3df1930bcd45556e7f8031365ce505199c5dc4bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 2 12:56:30 2014 +0300

    dsync: Added more debug logging.

commit 53270266126b468a9944d42240c7108770d62980
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 2 12:48:00 2014 +0300

    doveadm backup: Fix to earlier commit - don't try to delete an already empty mailbox.

commit 2faaca21fb49df0f1da859090246866b111cee1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 2 12:31:34 2014 +0300

    doveadm backup: Locally expunged mails weren't always added back.

commit a40a555561b3378c12a986b27f2651c632c8afa4
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Oct 1 10:33:49 2014 +0300

    lib-http: client: Fixed recovery after connection failure.
    If a parallel already connected connection was active, the queue wasn't notified of the failure.
    Only pending connections should be considered in this case and not established ones.

commit aab7256cdcfb7abd01c822e3df8dd77a30c572e0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Oct 1 10:33:39 2014 +0300

    lib-http: client: Fixed aborting request in the middle of sending payload.
    If the request payload is so big that it cannot be sent all at once, the
    caller may at some point abort the request when it is still being sent. The
    bug occurred when the request finally finished sending. It erroneously
    advanced the state to WAITING rather than remaining ABORTED, thus
    'reviving' the request unexpectedly.

commit 9aa6561ac5686a6a82f331d662d02456ecfba76e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 1 00:17:09 2014 +0300

    lib: Fixed earlier timeout_add_absolute() commit.
    I removed too much from Stephan's patch.

commit e28b88ee83b47dc2257140600f491482704c7b79
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Oct 1 00:13:36 2014 +0300

    lib: Created timeval_cmp_margin().
    It's identical to timeval_cmp(), except that it ignores tv_usec differences
    smaller than a specified margin.

commit 2753f93e5d9cd5fbd773540de3772d182fcced5e
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Oct 1 00:06:19 2014 +0300

    lib: Added support for adding milliseconds to struct timeval time values.

commit 43a2fa01834fd18d0a7788a58c5efad1c445a021
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Oct 1 00:03:17 2014 +0300

    lib: Added support for setting timeouts at absolute time, rather than relative to current time.

commit 0d30ec5bef193a1fdb4c166c264a2918df37033f
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 30 23:49:52 2014 +0300

    lib-http: client: The http_client_queue_fail() function aborted requests in an unsafe manner.
    Copied queues before freeing the requests, because the destroyed requests modify the queue.

commit 16eb9a737d42017fc875ef7b68afc25c3c9f8979
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 30 23:49:45 2014 +0300

    lib-http: client: Fixed crash occurring sometimes when delay timeout expired.
    Forgot to drop destroyed requests from delay queue.

commit f1767771dd2cfb27b6fdad0fbf58bfec3bdabc84
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 30 23:49:35 2014 +0300

    lib-sasl: Added reference counting to lib-sasl initialization.

commit 5024c4799b324ea15270152b775c67ccfc72d5bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 29 22:44:03 2014 +0300

    lib: Improved istream-file's failing read()/pread() error message.

commit 73b9c241e7fb6abdccda88e88fbd32e844dbc185
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 29 22:43:44 2014 +0300

    lib: If i_stream_default_seek_nonseekable() can't seek, set a more readable error message.

commit ccb0406a432102c29f05c15d0b098dd05b640cbe
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 29 15:56:02 2014 +0300

    lib-lda: smtp_client_deinit() may have returned NULL error strings.

commit b5014077fa40fe76ff37bdf03008389256141140
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 29 14:57:42 2014 +0300

    lib-http: Fixed assert-crash when http_client_connection_disconnect() is called multiple times.

commit d519a0449d0e536a32db93305516fdbd7db6773d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 29 14:16:06 2014 +0300

    dsync: Added DSYNC_BRAIN_FLAG_NO_MAIL_PREFETCH to avoid opening mails unnecessarily.

commit 232ee7c662e20e7cc4fd6ee18b7f7e1c9299f96a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 26 00:32:03 2014 +0300

    lib-storage: Don't assume that we must read the whole message to get its virtual size.
    This is true only with mbox format. All the other formats have various
    metadata available where it's stored.

commit eec75bde5b8de6667483b48e5f4a41df495d84b0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 19:43:28 2014 +0300

    imap: die-callback didn't set log prefixes correctly for client handlers
    Calling mail_storage_service_io_activate_user() unfortunately doesn't set
    the ioloop context itself, so timeouts weren't inheriting it. It seemed a
    bit difficult to change this, so for now I just moved the call to the
    timeout handler.

commit b5ff746939712c6a9bef71405fa786d5471cf177
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 15:50:03 2014 +0300

    lib: If file_wait_lock*() fails, try to include the current pid holding the lock in error message.
    This is currently supported via fcntl(F_GETLK) and also via Linux
    /proc/locks.

commit 2df651ae18342cbe72c92d5489af5fc582b65937
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 15:37:48 2014 +0300

    imap, pop3: Show user's proper log prefix when deinitializing users at exit.

commit 85779ec11f23eb8efeb8993b1e0b9aad62c4122a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 15:37:01 2014 +0300

    lib-storage: Allow calling storage service's ioloop activate/deactivate functions manually.

commit 85b14555888acec410734a16561f2d79c626cad9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 15:15:20 2014 +0300

    lib: Code cleanup - check io_loop_context_add/remove_callbacks() callback parameters.

commit 45324f1eafa565dbc65e4dd335de9507dead55e6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 13:40:54 2014 +0300

    Mark more memory pools as growing

commit 1b81b28b2e7856748cffd7d01052a944b6c80b23
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 13:38:09 2014 +0300

    auth: Mark memory pools as growing and use the same sizes for all mechanisms.
    Mainly to have DEBUG log fewer warnings.

commit 33bd898e7756b289e65f43133312d9637afc1371
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 13:28:39 2014 +0300

    Avoid logging warnings about increasing memory pool/data stack with DEBUG on.
    These could have a minor effect on memory usage, but shouldn't be much.

commit 0dc7891233a973829f00371b27810f849b987c66
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 13:26:20 2014 +0300

    lib: Added file_wait_lock_error() and file_try_lock_error()

commit 96c5e558bbbcd09eb7cb160077fa1f00ae4e5131
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 02:55:34 2014 +0300

    fs-posix: fs_read_stream() now returns an istream that can live even after the fs_file is closed.

commit 546335814920fb6b5b44c68c7803e654eefeae9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 01:13:12 2014 +0300

    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.

commit 70612e07102b75a8511aa7f9de60771176b18de0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 00:42:56 2014 +0300

    lib-storage: Headers were sometimes added to dovecot.index.cache with wrong line number value.
    This happened if the header parsing was done multiple times for the same
    mail. The end result being that when fetching multiple headers as a stream,
    the headers could have been returned in the wrong order. This messed up at
    least dsync's header hash comparisons.

commit ad9403d54b5a0f312de6fa22abda6c120988d3de
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 00:41:15 2014 +0300

    imapc: Fixed potential crash when trying to send NOOP before mailbox was fully opened.

commit bf684c50bc1c85994e9c65ebf5269fbd18daaa64
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 25 00:40:48 2014 +0300

    imapc: If connection isn't in selected state when deleting mailbox, don't try to UNSELECT it.

commit 269cd8a29aaf64f7a51e22b77b63fee8ca41693c
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Wed Sep 24 20:01:46 2014 +0000

    man: Added doveadm-fts.1.

commit ca5b7cebad9d22aa5f67d1fc2a1c95ebf030306c
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Wed Sep 24 19:50:37 2014 +0000

    man: Added doveadm-acl.1.

commit 45c763dbebee268eda4a1e8bcc1ff82606b5ed0d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 23 16:58:59 2014 +0300

    imap: Don't send MODSEQ in untagged FETCH reply if IMAP client didn't enable CONDSTORE/QRESYNC.
    We should have been checking client->enabled_features, not
    mailbox_get_enabled_features(). The former contains the features enabled by
    the IMAP client, while the latter contains also some automatically added
    features.

commit 1cf8b6dc4309cceb2a9dfc5f51343054a3f56013
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 22 16:08:25 2014 +0300

    lib-master: Increased instances file's dotlock timeout to 2 seconds.
    The 1 second would have been enough, except the current dotlocking code
    uses second-level precision in checking timeouts, so it could end up trying
    the lock only once.
    
    A better fix would be to fix the dotlocking code to use millisecond-level
    precision (internally), but since this is the only user so far where it
    would have mattered, it's not really worth the effort (yet).

commit 1f0b3ea95f45146b6860a37f43bc02b62891e354
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Sep 22 15:56:31 2014 +0300

    lib: bsearch - make BINARY_NUMBER_SEARCH more widely usable
    This template is more widely usable if we do not hard-code into it the
    method of accessing the value being compared. For the default case
    we already use, this accessor is just a simple array dereferencing
    macro.
    
    As rewriting with the array access happens in the preprocessor, the
    code generated is completely unchanged.
    
    Expected future use:
    
    :  #define MY_GETTER(array, index) ((array)[(index)].index_field)
    :  #define MY_BINARY_SEARCH(data, count, value, idx_r)                  \
    :          BINARY_NUMERIC_SEARCH(MY_GETTER, data, count, value, idx_r);
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 02a38d8590dd692e5cd35f34f3b634f4a84f94e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 18 17:46:18 2014 +0200

    lib-dict: dict-fs implements now minimal iteration support.

commit 8b03b93ea6e8d78e0299e32ea9a02950ce12b65b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 18 17:39:49 2014 +0200

    doveadm dict iter: Use recursion flag only if -R parameter is specified.

commit 29449424bec807cdd2c694745a47f965aef44dd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 18 02:19:32 2014 +0200

    fs-posix: When deleting a directory, automatically fallback to rmdir()ing it

commit 7bdd29cf24fa3feaef27dcd28679b1cf00357541
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 23:22:59 2014 +0300

    virtual: Using modseq-based syncing while mailbox was open didn't handle expunges correctly.
    The expunges were handled only after EXPUNGE command was given, which should
    have been done only for mails that no longer matched the search query but
    still existed.

commit 5be5d875996999585de785ac33f96ff1569f1a0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 20:59:48 2014 +0300

    quota: Quota recalculation didn't include INBOX in some configurations.
    If one inbox=yes and another inbox=no namespace shared the same mail
    location, and the inbox=no namespace was first, only it was used to list all
    mailboxes.

commit 260faead609f10c5820e2006cdfc4852fc1cf1a9
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 16 20:29:04 2014 +0300

    lib: test-var-expand - disambiguate tests
    Two test cases had the same name.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit c971768955f826fb965d8ffbb13dac93c9bbead8
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 16 20:29:04 2014 +0300

    lib: hash-format - fix leak on _init() failure path
    If any of the analysis/parse helpers return failure, then the whole pool
    will leak.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fbf0acc4c9b8113598dcf1c5e5e32b270332c14a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 15:43:42 2014 +0300

    lib-storage: SEARCH_MAILBOX* value is now also compared to to the (virtual) mailbox name.
    This fixes for example "doveadm fetch uid mailbox virtual/all"

commit 263d455e9198e8aa45c7a99601ad6a5a9dcdd915
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 15:23:51 2014 +0300

    doveadm fts rescan: For virtual namespaces just mark the last indexed UID to 0.

commit d06e111700769927a64b46dc157ac1c122dff1a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 14:32:20 2014 +0300

    fts: dovecot-expunges.log wasn't closed at deinit

commit b800cdab69e2dfe6bf1b35f7dd836e9b8d512cc3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 16 14:03:52 2014 +0300

    lib: test-strnum - fix format size mismatch
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 629e96c5e2d4724b713ca7d62e59ed033107edcd
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 16 13:38:30 2014 +0300

    lib: test-strnum - add size-oblivious str_to/parse_uintmax tests
    Test a value of every bit-length. Also test the 10/9*MAX corner case.
    And due to crappy helper functions, test lots of leading zeroes too!
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit bee4935fb14a078052e4524070910fd0b8135ef7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 16 13:38:30 2014 +0300

    lib: remove uintmax tests from uint64 tests
    These log a warning on OSX with clang.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f1fab6f1b9c1e983577ff745d9b6e74a2d8c6634
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Sep 16 13:38:30 2014 +0300

    lib: strnum - ensure str_to_uintmax doesn't return a value on error
    It was clobbering the _r parameter even though the spec says it shouldn't.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 54f559f2e69ea1498e3ccfa7b65d16d9a622c391
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 12:32:09 2014 +0300

    dsync: Moved doveadm-specific code to doveadm directory.

commit 56cf7fccd4c424ab058b251311b181c71b535765
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 12:04:07 2014 +0300

    fs-metawrap: Fixed iteration wrapping, broken by earlier changes.

commit a7f818f531a1c7d7b0f47c08db6f5e9a6965b288
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 01:12:21 2014 +0300

    Makefile: Fixed linking libdovecot-dsync

commit c32552ea7dd700f6083e1240b9def230a0681733
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 01:09:53 2014 +0300

    Compiler warning fix

commit f89e4933a0f8227c3dfd4b4ad2141a156934a95f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 00:43:36 2014 +0300

    lib-fs: fs-metawrap now fully wraps fs_iter_* to fix tracking struct fs.iters

commit 90804278df6586cceaf1b1b07a44713c01694048
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 00:21:52 2014 +0300

    lib-storage: Added mail_namespaces_init_add/finish() to manually initializing namespaces.

commit 1e40531c1de45bc87e72a9d5866ff2af79b63ceb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 00:21:13 2014 +0300

    lib-storage: Added mail_user_dup()

commit e13e798694ba1b0d0a5cf471600168eeaa8d2af4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 16 00:01:33 2014 +0300

    lib-fs: Keep track of all fs_iters in fs.

commit 5804ddddad82319839785885fdacbba60e0c9581
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 15 23:57:45 2014 +0300

    lib-fs: Added wait_ioloop/prev_ioloop helpers to struct fs.

commit faeca024c779d206917264475708b5aa40f73074
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 15 18:04:20 2014 +0300

    Install libdovecot-dsync.so library, which can be used separately.

commit 0219a05495ca78d0ccc2a4d5dcfcf17aa859481f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 15 18:02:02 2014 +0300

    dsync: Moved all doveadm-specific code to doveadm-dsync.c

commit 711e8e4c5c5d702dfa062f42a1ede5de14c151c9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Sep 15 11:19:50 2014 +0300

    lib-http: server: Fixed connection reference counting.
    Connection often still got destroyed too early. Particularly submitting
    responses would potentially destroy the connection, which is often
    unexpected. Sending responses is now postponed until handled by the stream
    output handler, which is explicitly triggered when necessary.

commit e84429cf1f7eee3e9e0445723cc92c0dcd20b43d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 14 11:29:35 2014 +0300

    fs-posix: Fixed fs_iter_deinit() when opendir() had failed.

commit 6f6b74fef19d178cd66d507181b4d47b474d1dd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 13 23:42:17 2014 +0300

    lib-http server: Keep output stream referenced to avoid accessing it after destroy.

commit 98ac7027d857b8a88903e55f0cb1624f7aa8c560
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 13 22:15:35 2014 +0300

    fs-metawrap: Add FS_PROPERTY_COPY_METADATA property for wrapped fs backends.
    This is because if we simply use the parent copy the metadata gets copied
    as well.

commit bda58aef5d3c4448cc80a955d4c185a920c12dda
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 13 22:14:09 2014 +0300

    fs-posix: Fixed memory leak in fs_iter_deinit()

commit 6efdbeab167483597bef087f70ea852d1256a082
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 12 12:55:12 2014 +0300

    lib-master: Earlier config file path fix broke reusing existing config socket lookups.

commit 7fc0ca6c1f664de6506afa816200d115f9f80391
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 11 18:15:04 2014 +0300

    virtual: Recent optimizations had broken fast mailbox syncing.
    We wrongly assumed that all_mails array could have been accessed using vseqs.
    Broken by 8abf7eea2966

commit 9514798ef5f1c015bcdeb2b80b2874e59f083ef3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 11 16:40:00 2014 +0300

    lib-mail: Message decoder now runs normalizer also for unknown charsets.

commit 264629908d96285d355aac0acf9b60b9b4be7fef
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 11 16:14:24 2014 +0300

    fts-lucene: No .. the rebuilding warning was still in the wrong place.

commit e1f07b96c2233b8c722f05284535a0411f9be04c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 11 16:12:38 2014 +0300

    fts-lucene: Include the mailbox name also in the rebuilding warning.

commit bfb05d2705032f9966634037449352d13e7ee674
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 11 16:11:37 2014 +0300

    fts-lucene: Log a warning when rebuilding index because of settings changes

commit f1f877d669a2752fac69da5fb6e0db68f56bbc06
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 10 18:41:39 2014 +0300

    man: Forgot to remove XXX prefixes from doveadm-director.1.in

commit 0799033d1f0c7e19b701d3c590634a347ea9575f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 10 16:05:32 2014 +0300

    replication plugin: Actually, use empty mail_replica as "replication is disabled".

commit 42882b9aa1a98fa2c36ef360f3f9f3160042de97
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 10 15:54:58 2014 +0300

    replication plugin: Added replication_disabled setting.

commit 5bfb64d91f78abe20cacb9d2ee5b4c007437e34b
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Wed Sep 10 14:48:58 2014 +0300

    man: doveadm-director man page updated

commit 96e19b9caa03df983ad0d9285053b897a439e3f7
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Wed Sep 10 14:42:34 2014 +0300

    man: doveadm-auth man page updated

commit 66ac9aee051f502664b6fc428e78cf5431b8999a
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Wed Sep 10 14:37:50 2014 +0300

    man: doveadm-dump man page updated

commit b85ff8f5b1d74daef315f120926bf18c2423e9aa
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Sep 10 14:08:58 2014 +0300

    lib-test: don't use 0 for old size in realloc call
    We have the real size, use it.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8fcf84e6b7a55049a6d407b17af50d6ae8c6386f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Sep 10 14:08:58 2014 +0300

    lib-index: test suite memory leak cleanup
    So that memory leak checkers can be active while running the test
    suites, ensure that the suite itself doesn't leak.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 9f5db9cf866a978aab404772a0daf8794069bba5
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Sep 10 14:08:58 2014 +0300

    lib: test-seq-range-array - clean up array after use
    Removes noise when memory-leak debugging during unit tests.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit bf1683b08931a15feafe892cf5feb8c8ebb8aad9
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Sep 10 14:08:58 2014 +0300

    lib: test-aqueue - clean up the test queue each time round the loop
    Helps keep noise out of memory leak debugging during unit tests.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0abffe9703523839120b199257ecc995c353cc3c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Sep 10 14:08:58 2014 +0300

    lib: test-istream-concat - clean up our test-istreams
    This reduces noise when memory leak debugging the unit tests.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit b38866de5c0504b120e38cfdf7357a6597aa208c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 10 13:59:31 2014 +0300

    dsync: Reset I/O timeout every time when receiving input.
    This could have caused unwanted I/O timeouts when receiving large mails.

commit e540115bcff378f08968a0b66901b24e1ccb40b6
Author: Michael M Slusarz <slusarz@curecanti.org>
Date:   Tue Sep 9 17:26:52 2014 -0600

    pop3: Optimize POP3 UIDL processing when duplicate renaming is not active.

commit fe2b0e3de834dd40b698bb579adc5357d5789ec9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: client: Implemented support for connection failure backoff.

commit 9d746c6785d17e421c3f3c74cf29d059ae2ab233
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: client: Added support for attempting a single IP several times.
    Also limits the number of attempts when there are many IPs.

commit e4322927c4bf31b00ae71aa7c0f9d097eccfe3c8
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: client: Tunnel connection failure would cause segfault.
    That happened because it tried to retry waiting requests, which makes no sense for a CONNECT tunnel.

commit 564e117d86ce5b659f9b9570edddc566f9ebb5df
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: server: Added support for authentication.

commit 0b5bdb5ba6c8cb928b6d2dcc4636148bfa1a7ec7
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: Implemented HTTP auth (RFC 7235).

commit 394006e60b14ee6641127d13a10696b80a880af5
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: server: Added assert to connect callback which makes sure request is either responded to or referenced.
    Earlier change added this only to callback for normal requests, but CONNECT should be handled the same in this respect.

commit 22b6576f133d2d60f5357159262ed7fc71252356
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: server: Fixed delayed request destruction.
    Destruction was actually delayed indefinitely, because the delay flag was not reset.
    Obviously, this caused a memory leak.

commit 9f8cef4cbc49797053c343209ea13022fdbc5a63
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: server: Made sure destroy callback is called only once.

commit 0998d8af979005bf094a3cebea2b9feb692575fb
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:37 2014 +0300

    lib-http: server: Fixed segfault occurring in connection input handler.
    Request handlers could close and destroy the connection early.
    Fixed by holding a reference in the input handler.

commit 1ec91e0450eb6c5f6572f6daec720dbada535b01
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 10 13:39:36 2014 +0300

    lib-http: server: Fixed handling of disconnection while request is being handled.
    This would cause an assert failure.

commit 553f96fdbff9f70e7b5d2261ae61b9ddf5156414
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 9 17:09:30 2014 +0300

    lib-master: Fixed -c & -i command line parameters when config socket was readable.
    The config socket was always being read, even if another config file was
    attempted to be used.

commit aec1d6f3cdce8deed8b5d718fe4031ef7432cec1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 8 18:11:31 2014 +0300

    pop3c: Added missing support for pop3c_ssl=starttls

commit 0917a1bdc9fb06ea6b27994d7e80d5658317ec1d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 8 13:39:25 2014 +0300

    COPYING.LGPL: Updated FSF mailing address.
    Also some whitespace and line wrapping changes. Used the same file as
    http://www.gnu.org/licenses/lgpl-2.1.txt

commit 7a88e726e7300fb0273cb4e55b43c27fbd90bdbd
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 8 10:14:42 2014 +0300

    pop3c: If base_dir isn't set, lookup pop3c_host with regular blocking DNS lookup.

commit d74a4126a72b1bf3d7df21aaed62917dedb70035
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 3 07:29:25 2014 -0700

    lib-storage: Compile fix to previous change
    The original patch was correct, my copy&pasting by hand just sucked. :)

commit 4c0e20db10034bb572d278f62beff12e3deb17d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 3 06:29:52 2014 -0700

    lib-storage: Fixed off-by-one memory allocation in dynamic settings allocation code.
    This didn't actually affect normal Dovecot builds, because there were always
    some storages with get_setting_parser_info=NULL that added the necessary
    padding.
    
    Patch by Michael M Slusarz

commit ad396be1d926e49cd31b0732824362647ecd5fc2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 29 13:22:11 2014 +0900

    fs layout: Absolute paths as mailbox names shouldn't return index with INDEX=MEMORY

commit f90cbe597c41d5cc91debd371f8648bd8e6ffbc2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 29 02:14:43 2014 +0900

    lib-index, lib-storage: Fixed race conditions with deleting mailbox.
    Now only one process can successfully finish mailbox_mark_index_deleted().

commit 92093e6d8bdddeac59e169bcde6d0080a17e66ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 29 00:41:07 2014 +0900

    lib-fs: Keep a linked list of all files within fs to help debugging.

commit aaaa6e07cf961038cf030d623540a8296c0ffe24
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 23:52:46 2014 +0900

    Added UNLINK_EISDIR() helper macro.

commit 77d122b07cc6ab03909aa566cba82a4500377ab6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 23:50:25 2014 +0900

    maildir: Handle unlink()=EPERM failure the same as EISDIR.
    EPERM is POSIX, while EISDIR is Linux-specific.

commit f1177d2dcb6adf9d9734c85f11378e9df9c1fe97
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 22:44:18 2014 +0900

    lib-fs: Fixed metawrap_fs.copy() to work with FS_PROPERTY_COPY_METADATA backends.
    This is done by simply copying the entire file with the metadata included
    instead of rewriting it.

commit 9346506a9f4dd9a6285fe8595588e73161849235
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 22:10:25 2014 +0900

    Replaced dict_init() with dict_init_full() in various places.

commit a6a6ad107e509cf8952a28f740eb2023284497b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 21:57:34 2014 +0900

    lib-dict: file backend now expands ~/ paths if home_dir setting is set.

commit 39ea5717264668e2c7f9f7986eb821d21785f47f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 21:56:41 2014 +0900

    lib-dict: Changed dict.init() API to take struct dict_settings and added dict_init_full().
    This allows giving more settings to dict in future as needed. Unfortunately
    it also breaks the internal dict API, but there aren't really any plugins
    widely using it, so it's not a big problem.

commit 4d8d947a6cf8d2b31b57ff9565b98d994524afd3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 28 22:06:29 2014 +0900

    dict: Renamed struct dict_settings to dict_server_settings.

commit 5308e1a2e7efc667eadd54536749ea075339f574
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 27 07:53:39 2014 +0300

    auth ldap: Compile fix to previous change..
    Looks like on my local build system ldap wasn't enabled..

commit 3f647ff6ee9c16160596e8f8c84ebbd89021c81e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 27 13:38:53 2014 +0900

    auth ldap: Don't require password field to exist for passdb lookups when auth_bind=yes.
    This should fix lmtp/doveadm proxy lookups with auth_bind=yes

commit 42630b23d5a1b03cf6db4eaa2eb21e3ec4033b2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 26 16:00:37 2014 +0900

    lib-http: Added http_client_request_get_method()

commit d5091e5319d5b75d1b1e9b247caef6df9588b93e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 26 14:50:15 2014 +0900

    auth: Allow passdb credentials lookup also with auth_bind=yes
    Although we probably can't lookup the password itself, we're also doing
    passdb lokups for proxying and other purposes. These lookups will still work
    as long as pass_attrs & pass_filter is specified.

commit cc52f19439f17c03e37fd65c6299a77d5c5e638a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 20:56:40 2014 +0200

    doveadm exec: Show help if binary name wasn't given.

commit 0c9ba05543eb9f468be18556f9f58c8fcf10e765
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 20:54:46 2014 +0200

    doveadm ring status: Help text was shown for wrong command.

commit 8d14b5fc9c1ea1fad788315fc98fea89796a56d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 15:52:14 2014 +0300

    fts-lucene: Compiling fix for earlier change.

commit a02d497640da4e47f90295a90d30960866de4f3c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 14:51:11 2014 +0200

    fts-lucene: Don't crash when index building fails but we were still planning to optimize the index.

commit 61435a588de2e3cd1558ab6643c462dfa0d91cb2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 14:49:34 2014 +0200

    fts-lucene: When deleting corrupted lucene-indexes/ directory, don't rmdir it.
    This at least avoids errors with NFS when some of the files are still open
    inside it by other processes.

commit 4d72a99412a0577b026b64afc27975f28a58d071
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 14:48:41 2014 +0200

    fts-lucene: Automatically close index after 2 minutes of idling.

commit e8d5561143360da75d5ccb4991c2d1ffb437be1d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 14:46:47 2014 +0200

    fts-lucene: Make sure Lucene indexes are always closed at deinit to avoid memory leaks.
    At least optimize leaked memory.

commit ba9ec8849b975c50aa60b7f661797415fac70ce5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 21 11:40:51 2014 +0200

    redis: Added support for path=/unix/socket/path parameter instead of host/port.

commit f7b1126cec5f977e5552a722ca5385f95df3efd9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 15:35:43 2014 +0200

    pop3: Fixed potential assert-crash on disconnect.

commit ee77aba32f3d05ecd87cca445c77e1f1095035e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 15:32:15 2014 +0200

    lmtp: Put back the deduplication code.
    Too dangerous after all to change it in the middle of v2.2.x. It's also not
    causing that much trouble even when it breaks..

commit b8a6abfd2bc86118f54f59ee71005f634f45cdfc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 14:35:27 2014 +0200

    auth: protocol-specific username settings weren't used for userdb lookups.
    The username was set before the service-specific settings were looked up, so
    global settings were always used. This affected auth_default_realm,
    auth_username_translation and auth_username_format settings.

commit aadd92e0901d82d0a47aee76e7b6c9825523313b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 14:22:28 2014 +0300

    fts-lucene: If whitespace_chars was set, we may have ended up indexing some garbage words.
    The final \0 was replaced with space, so everything beyond that was also
    being indexed.

commit 5c5e738bcc6e50228bdadbf77a8ab16a2eb915bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 12:47:10 2014 +0200

    lib-dict: Hide internal ioloop from async commit callbacks. (Redis & memcached fix)

commit 8aa049fd90cd03a66ec43018554bf3ba06815a10
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 12:36:37 2014 +0200

    last-login plugin: Added ABI version check.

commit 477082109e06b912d868a2c05674f44cb880875b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 12:35:27 2014 +0200

    last-login: Fixed timeout leak at user deinit.

commit b6c6c4f6483b8340eec4c16c50ea078fe8297da2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 12:07:19 2014 +0200

    lib-storage: Added data stack frame to mail_prefetch().

commit 7103d82e6ee4aafeb8e316cb5d660553f026298b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 11:19:15 2014 +0200

    doveconf: local and remote net/bits addresses were printed with /bits twice.

commit 3d4648e56d079f9778fc72450ccc604ffc05babc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 20 11:09:27 2014 +0200

    Several services weren't enforcing their process_limit=1 requirement.

commit 5a9c7366ed354a7ad309cc17c7cf9951facfedf5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 19 23:53:18 2014 +0200

    lib: Added unit tests for wildcard_match()

commit 6bde03b98adc858d90ccbfe5854a7d2598b54435
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 19 23:51:14 2014 +0200

    lib: wildcard_match() should have matched "*" wildcard against an empty "" string also.
    This fixes global ACL "*" matching the root namespace when creating new
    mailboxes.

commit 9ffd3c8ca82bd2af8ca4f7e167339820ddcf1fe3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 18 22:39:56 2014 +0200

    director: Log a warning when using "director host flush" for all hosts.

commit 935a2434cd674e9cd17eabb296f84d1d891a23ae
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 18 10:43:59 2014 +0200

    istream-chain: Fixed crash caused by earlier io_add_stream() support change.

commit 1bb62819cfe91ac6c50f72488022b22f93d2c9bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 16:00:07 2014 +0300

    lib-http server: Use io_add_istream() to wait for the payload istream.
    This way the stream doesn't necessarily have to have a fd.

commit f07090a165a30a149c9f4569c7a0d22aeb75fe6b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 15:59:17 2014 +0300

    lib-http: Added asserts to make sure CR or LF can't be added accidentally to HTTP headers.

commit d295cff1b640240cd198b9c8e963c9116ab95510
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 15:22:46 2014 +0300

    istream-chain: Support using io_add_istream() for the chain stream.
    The callback is notified whenever new streams are added to the chain.
    
    It's currently not possible to have nonblocking istreams added to the chain
    and the callback being called when they have new data, but it would be
    possible to implement as well if needed at some point.

commit cc80e458f2e3f13106299794376e9be4d3e8ef80
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 15:19:24 2014 +0300

    io_add_istream(): Allow the istream to be added even if it doesn't have fd.

commit a9d6c2ebcd88ea8ede8df8d8c0bc10e7780499b3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Aug 15 15:02:59 2014 +0300

    pop3: satisfy some strict parsing rules in RFC 1939
    "Commands in the POP3 consist of a case-insensitive keyword, possibly
     followed by one or more arguments.  All commands are terminated by a
     CRLF pair.  Keywords and arguments consist of printable ASCII
     characters.  Keywords and arguments are each separated by a single
     SPACE character."
    
    "A server MUST respond to an unrecognized, unimplemented, or
     syntactically invalid command by responding with a negative status
     indicator."
    
    Therefore the following commands must be rejected:
    LIST 2600Hz
    LIST 99 red balloons
    TOP 1 2 buckle-my-shoe
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 797dc456af3059777ed48319cfaec56f9ca4909d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Aug 15 15:02:59 2014 +0300

    pop3: fix msgnum/size parsers
    The outer if()s are completely unnecessary, and permit `num'
    to remain uninitialised. Spotted by clang's static analysis.
    
    Bug introduced in changeset: 17563:2ed2ab04b63d
    
    Note that the lack of a parameter from a broken client is no longer
    treated as "0". Before the bug was introduced:
      DELE
      -ERR There's no message 0.
    After this patch:
      DELE
      -ERR Invalid message number:
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit a69dfb7f6f1a804a0c91fd5e506b78dd499cccd4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 14:48:08 2014 +0300

    Compiling fix for previous change..

commit 2ed2459dbd183bb371da4a0aecb2d2b74ae7c815
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 14:41:03 2014 +0300

    Handle "out of disk space" and "out of user quota" as separate cases.
    "Out of disk space" is a temporary error that should be logged as error and
    the failure should be sent to user as "Internal server error".
    
    Obsolete the use of MAIL_ERROR_NOSPACE and MAIL_ERRSTR_NO_SPACE. Use the
    clearer MAIL_ERROR_NOQUOTA and MAIL_ERRSTR_NO_QUOTA instead.

commit 749f6acd6790067c3103e8f9e793692fdb5ae30a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 14:05:21 2014 +0300

    ldap: Treat "No such object" errors to search the same as if no results were returned.
    Trying to look up a nonexistent base returns this error.

commit e86708178df2b0bd00229eefc0f6e1ea5da3c460
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 15 13:58:47 2014 +0300

    auth: Internal passdb failures were always failing the request even if another passdb succeeded later.

commit 833bed942977673526c72e79bccc09314fc57104
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Aug 13 13:34:22 2014 +0300

    lib-http: server_request/connection - improve encapsulation
    It just feels a bit dirty having the request mess around with the
    connection's internals, have the connection manage its linked lists
    itself. No functional changes.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 66b9c9afe76f7bad6d2759d4113c4064ba081f7a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 13 12:51:41 2014 +0300

    virtual plugin: Optimized memory allocation.
    Patch by Teemu Huovila.

commit 33326dbee49847856617a533e91d603e3c1fa947
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 19:30:37 2014 +0300

    Compiler warning fix

commit e5536fd672aa08bce4bd57ca6a844d8d97991b6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 19:24:10 2014 +0300

    virtual plugin: Handle physical mailbox deletion while virtual mailbox is open.

commit 139e39b12e4aa41838af1a7efe9b1083d16aac2f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 19:12:04 2014 +0300

    mailbox_list_index=yes: Make sure storage error doesn't change when updating STATUS info.

commit 97ae33602db7d5bc8eede82512a965d49ab8853b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 19:05:14 2014 +0300

    lib-storage: Added mail_storage_last_error_push/pop()

commit 5948e3e120c5dcaf0aeb44405566381045fa82d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 18:48:03 2014 +0300

    virtual plugin: Optimized syncing a large number of physical mailboxes.
    Especially when the number of mails was large the old code took a lot of CPU
    time. Based on patch by Teemu Huovila.

commit 80587a0446186424bbadd094e39a13d4ed359a8f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 14:44:11 2014 +0300

    stats: Added num_connected_sessions for domains and IPs.

commit 14bd2410de3a0261d9c53c6120915027262216bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 13:12:01 2014 +0300

    lib-http server: Delay calling the request's destroy callback until handle_request() callback is finished.
    This simplifies the code in the handle_request() so it doesn't need to keep
    track of whether the response is already submitted or not.

commit a078043bcc7d3b7feeb6f9cc276918a9c7d1490d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 12 12:39:46 2014 +0300

    fts-lucene: If lucene-indexes dir is unexpectedly lost, rescan when expunge log update fails.
    This mainly fixes a repeating error about failing to open the expunge log.
    It should happen only if dovecot.index thinks that the mailbox is indexed
    while in reality the entire lucene-indexes directory doesn't exist.

commit 9929820d587fb6aa527a6baf89267b06950921c2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 19:30:15 2014 +0300

    ostream-buffer: Allow modifying the buffer outside ostream, unless o_stream_seek() is used.
    Now we'll just append to the end of the buffer instead of forcibly trying to
    write at the offset where the last ostream write ended.

commit 3b4374ee8db3ee799c9e75b704ef695993b990ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 19:19:45 2014 +0300

    istream-callback: Added i_stream_callback_get_buffer().

commit 605ebd475263466e60d43fccadb4c39c7bdfe174
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 17:43:25 2014 +0300

    lib: Added istream-callback API

commit 36ec5b36b6604d64b6c36a0c9fb937145e240f5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 16:08:44 2014 +0300

    Compiler warning fix

commit bbda51eb33c1c38f6a5350e543333dc4c1751b41
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 15:55:03 2014 +0300

    lib-http server: Comment updates

commit 46631c1d903c409444b1b1c4a1d41a033c09ee37
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 15:54:43 2014 +0300

    lib: io_stream_copy() no longer attempts to read full block sizes from input.
    Although that may be more efficient for writing (to files), it causes
    unnecessary work for the input stream. The writing part should also be
    optimized anyway if the caller corks the output stream.

commit 93ed69606237a08623f8294c060fa148880058f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 15:47:57 2014 +0300

    lib-http server: Added http_server_request_is_finished()
    This is intended mainly to be used in asserts and such checks.

commit 91a482473f200152d6713181c0e36f7a4f03ef6d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 15:46:29 2014 +0300

    lib-http: Call the destroy callback also when request is aborted.

commit 50ba4fe3a8c79c1f2194d334be6193f9f0863577
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 15:45:21 2014 +0300

    lib-http: Don't leak memory if HTTP client disconnects unexpectedly.
    http_server_connection_disconnect() has several cleanup calls, which weren't
    done because closed=TRUE was set explicitly and that skipped the cleanup.

commit faa8995f1d300e7a8917407a52bbd1b98e10bf25
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 14:18:53 2014 +0300

    lib-http server: Call request destroy callback immediately after response is finished sending.
    Regardless of any other references to the request.

commit ace2d837c054352936eace96a93c60821b5e0abb
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 13:32:06 2014 +0300

    lib-mail: Added comments to message-parser.h

commit 7b61cb25a510ab3f76845549a52da9272bc6d6b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 11 13:30:25 2014 +0300

    lib-mail: Message parser now always returns block->data=NULL when it's not supposed to be used.

commit 4d981bcd01bd1dd5248095b0e59957949332657e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 9 10:10:34 2014 +0300

    doveadm fs put: Added -h <hash> parameter to specify the file's hash.
    The hash (in hex) is automatically detected to be either MD5 or SHA256 based
    on its size. If the fs backend doesn't support the hash it'll fail.
    Otherwise it'll make sure that the written file matches the given hash.

commit a693adf01b5f9256b273bee0b38efb69bc2b0182
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 16:27:40 2014 +0300

    fts: fts_no_autofuzzy shouldn't disable fuzzying when FUZZY search parameter is set.

commit 117fb8c00336dc54bab9cfa547249df7a4970611
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 16:20:31 2014 +0300

    fts: Added fts_no_autofuzzy setting to require exact matches for found results.
    This is done by using the FTS search results as only filters on which the
    regular non-FTS search is done.

commit 212a8a25147882174df4b648ab2801c49b187808
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 15:15:03 2014 +0300

    doveadm search: If mailbox GUID lookup fails, print an error.

commit 762d8af0b3fee4aef634f413ec61baccab827b37
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 14:54:46 2014 +0300

    virtual: Allow "*" to match inbox=yes namespace if there's otherwise no prefix="" namespace.

commit 676a42c1de72aaa6149d1ffd1d26c862951798a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 14:54:20 2014 +0300

    virtual: Make sure virtual mailbox doesn't try to access itself as a backend mailbox.

commit dac7e6a33e707ab5770520cbfe9a8f97913fbf71
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 13:46:05 2014 +0300

    lib-storage: mailbox_get_*status(STATUS_HIGHESTMODSEQ) now enables CONDSTORE feature.
    This makes sure that the highestmodseq is added to the mailbox list index if
    not already there.

commit 074055dadbca01626437cc4724853a374acab6a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 8 13:32:08 2014 +0300

    virtual: Make sure modseqs are always enabled for backend mailboxes.
    mailbox_get_status() wasn't adding a missing highestmodseq otherwise to the
    mailbox list index.

commit 78d1160c77302ada08b8f43712d1409438e189ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 6 16:39:27 2014 +0300

    auth: passdb static assumed that missing "password" field meant empty password
    Missing password should be an error unless nopassword is set. If an empty
    password is wanted then "password=" can be used.

commit b37e11d37fb1ebf50511eef5d9d96d1205818458
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Aug 5 20:23:32 2014 +0200

    lib-http: server: Fixed server waiting for payload of already failed request.

commit 738561f5fadf23f947a92a59b3d08bc34008ed40
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 5 17:43:31 2014 +0200

    lib-http server: Require handle_request() to either send a response or reference the request.
    This should make it more difficult to accidentally forget to send a
    response and cause a hang.
    
    Currently this assert-crashes, although it would have been possible to make
    it return some internal error instead also.

commit 1e9296de32c9ddda40f33c06556cd568ddadf71f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 5 17:37:25 2014 +0200

    lib-http server: Made http_server_request_[un]ref() public.
    Also http_server_request_unref() now returns if this was the last reference
    or not.

commit b9793761516474ccd1db0440b2d3cedb50a48d97
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 5 16:28:15 2014 +0200

    lib-http server: Create a new data stack frame for all the callbacks.

commit 85f3bd5926fff0e70b6d259a5c8074bd8cdeb9ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 5 16:22:43 2014 +0200

    lib-http server: Added http_server_request_get_response()
    Also make sure that only a single response can be created for a request.

commit 14c0ef17f30e719561d8bdc0561e67ea0441671b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 5 16:09:44 2014 +0200

    lib-http server: Removed extra "return;" that was never called.

commit 95e0b82fdff1bb511067d703bb8b67c22f242c38
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 5 16:07:25 2014 +0200

    lib-http server: Removed "bool close" parameters in favor of _close() functions.
    Most callers don't want to close the connection so it's an extra parameter
    usually. Also it's difficult to remember what the TRUE/FALSE means so it's
    easy to cause bugs by copy&pasting the code.
    
    http_server_request_fail() will also now forcibly close the connection if
    conn->input_broken is set.

commit 877912710a33c5645c85d6902a0ec6c79fcd0649
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 4 14:05:51 2014 +0200

    expire plugin: Fixed crash at deinit if expire_dict initialization failed.

commit 9008daea438f0e389b37aabbbde62a1f02725e32
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 1 17:17:53 2014 +0300

    imap-urlauth: Error message typofix.
    Patch by Jelmer Vernooij

commit f53915d18c75bb167cf4f86f7325baae7ea12ce9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 31 15:58:18 2014 +0300

    lib-mail: rfc822_parse_dot_atom() didn't return error if "." wasn't followed by ATEXT
    It simply skipped over the invalid character and continued.

commit ee2298ffa2c91fa156ba5ba05d45576a99d3f9ad
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 30 15:01:29 2014 +0300

    lib: test-data-stack - add some fatal tests.
    Extra caution is necessary as data-stack is such a fundamental component.
    All of the brokenness that we add must be undone as soon as possible, or
    there will be an endless loop of catastrophic errors. In order to avoid
    that, at least try to detect some issues, and abort as quickly as possible.
    
    Alas, due to the reliance of these tests on DEBUG code, if that's not set,
    this test is a no-op.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8bec19723b39071a1794e76dec35d151473cae5f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 30 15:01:29 2014 +0300

    lib: test fatal cases for printf_format_fix
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8b2839664b4b1730d7d5fd5c1856e97e34934a3d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 30 15:01:29 2014 +0300

    lib: test-lib - add a real fatal test for mempool-alloconly
    Crazily huge memory allocation must fail.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit a4e0dc5b1c4ff4caccfb928e3be0542905b0ec9a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 30 15:01:29 2014 +0300

    lib-test: permit tests of fatal conditions
    Some functions have no mechanism of reporting an error, and mustn't continue,
    so fatality is the only way out. (E.g. memory allocation failures.)
    
    This addition is for those situations. Semantics of failure tests are very
    different from normal tests:
    
    - The test function must have the following prototype:
       enum fatal_test_state test_fatal_things(int index);
    - The index it will be called with starts at 0, and increments each time.
    - It must call test_start() at the start of its first call.
    - Apart from its final call, it must call a function it expects to trap the
       fatal error handler. If that fails to trap, it must return FATAL_TEST_FAILURE
    - After returning FATAL_TEST_FAILURE, it will continue to be called as normal.
    - When there are no more tests to perform, it must clean up, call test_end()
       and return FATAL_TEST_FINISHED. It will not be called again.
    - If it detects errors in this protocol, it must not i_assert(), as that will
       be treated as an expected fatal, it must return FATAL_TEST_ABORT. It will
       then not be called again. It must not call test_end() in this case.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 79ce5b0d2f911f858fbc3f259f09a8dce00d3dc6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 29 17:27:24 2014 +0300

    quota: Avoid assert-crash in Maildir++ quota if backend doesn't support control dirs.
    We'll delay looking up the control dir until we've checked that the storage
    is Maildir.

commit 531b963539cd4c68bdb7cd6d087cd4a06e1983ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 29 14:27:49 2014 +0300

    libressl fix: Fixed compiling with SSL compression disabled.
    Patch by Pascal Stumpf

commit 5ea089e1bdcb984d30b07ca1f0443f66749e5e55
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 29 14:25:13 2014 +0300

    libressl fix: Check for SSL_CTRL_SET_ECDH_AUTO macro instead of OpenSSL version number
    Patch by Hanno Böck

commit 003385823ea4d859b778f41de18aac8405a00818
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 29 13:58:10 2014 +0300

    mbox: Fixed infinite looping and other incorrectness in istream-raw-mbox.
    This was caused by the recent istream invalidation checks in
    i_stream_get_data().

commit bf3544900df39ea1c2a13f2e5e3be5df957a0621
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 29 12:47:47 2014 +0300

    last-login plugin: Added missing configure and Makefile entries.

commit c35c0f7225bbc852da81ad63f45b8c76041efe60
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:50:47 2014 +0300

    lib-http: http-server-connection - don't resume closed connections
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 4de99500799c3518fa697cbc249bea4b266153ad
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:49:47 2014 +0300

    lib-imap: imap-utf7 - only encode in-range 7-bit values
    0x01-0x1F and 0x7f-... must be mBASE64 encoded.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 585017cae29021070c7eba527720e91a64e7538f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:49:47 2014 +0300

    lib-imap: imap-utf7 - reject encoded simple ASCII
    "Modified BASE64 MUST NOT be used to represent any printing US-ASCII
    character which can represent itself."
    
    "The character "&" (0x26) is represented by the two-octet sequence "&-""
    
    Therefore any mBASE64 sequence containing any character between 0x20 and
    0x7e is invalid.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 807d831b2625cc45b55f9576aa744e8a038b1bfc
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:49:47 2014 +0300

    lib-imap: imap-utf7 - reject bogus characters in the mUTF7
    Only 0x20..0x7e are permitted, as "All other characters (octet values
    0x00-0x1f and 0x7f-0xff) are represented in modified BASE64, ...".
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 50052bca965fc3a210b0e55d757062a3c7eba226
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:49:47 2014 +0300

    lib-imap: test-imap-utf7 - comprehensive test suite
    Several MUST NOTs or other standards violations were not being
    trapped.
    
    test_imap_utf7_unnecessary() tests:
      Modified BASE64 MUST NOT be used to represent any printing US-ASCII
      character which can represent itself.
    
    test_imap_utf7_bad_ascii() tests:
      All other characters (octet values 0x00-0x1f and 0x7f-0xff) are
      represented in modified BASE64, ...
    
    test_imap_utf7_non_utf16() tests that data containing a single straggling
    octet is trapped.
    
    test_imap_utf7_by_example() and test_imap_utf7_ucs4_cases() are just
    the previous test suite split into 2 smaller tests.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 68828bda5cfbfc38a95829923b08b6b919d87143
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:49:47 2014 +0300

    lib-imap: test-imap-utf7 - migrate to test_assert_idx
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 83060e2c2b3d75bda70ac9cc3e55ff1f677acc0f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:49:47 2014 +0300

    lib: test-str-sanitize - tighten tests
    Check that the identical string is returned in the no-change case, not
    just a copy.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0db47f171fc79209f95703f8f928c8487df15fcf
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib-test: make internal helpers static
    These functions should only be called from within test_run(), as some of the
    test-suite sanity checks can be subvirted if these are exposed.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit c447f8985022e1945e62d4510ce5dbad4a33a8c1
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib-test: quieten the random seed printfs
    We only need to know the seed once.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0a568c1e8a8066ce9d6467d891a9717bd2a24b26
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: compile time checks for buffer creation
    Ensure the data buffer has as much space as the size parameter claims.
    This uses the strictest test GCC provides - the smallest containing object,
    and returning 0 for unknown size.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 61dd0a240dda1ab398a8169a52225e66746d74a7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - start sentry checks immediately after the reserved buffer
    Our sentries are written with byte-precision, no need to round up before
    doing the checks.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit c538e7faa75f4d43225087a936ea2d5a4d8d9dc8
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - add DEBUG size and sentry updating to t_try_realloc
    Without this, t_pop() will report errors.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f9a1f7b6034d692cbd24c1895061b3834f486501
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: test-data-stack - add realloc tests
    These will fail noisily with a DEBUG build until the realloc/DEBUG
    bug is fixed.

commit 6f8cb38591a8a721c45cafffde3430f549ba176e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - fix incorrect pointer comparison in t_try_realloc in DEBUG builds
    When trying to work out if it's a valid realloc, we need to remember
    that in DEBUG builds, we have hidden a size value (in a MEM_ALIGNED
    space) before the pointer we return.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 50a0a88ee62632d52c78ec95460b0759ce0a40e9
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - fix realloc/lowwater bug
    If DEBUG is enabled, then it can try to look past the low-water mark
    as the low-water mark wasn't moved during successful reallocs. This
    condition is detected, and causes a panic.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8aa1afdcdffc78b3f71e5c379fa799991edb007e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - t_try_realloc get alloc size right in DEBUG builds
    Also introduce a helper variable for the common expression for readability.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 395a730fac26f68dd1e197a168d07edbcb436730
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - helper for last alloc ends at block.data+(size-left)
    Less to read, and less noisy.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f9bee080651276b7baf037c3f0bd84e41a40a433
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - add vital sanity-preserving assert to t_pop
    If something has re-ordered those two offsets, the following memset
    will explode.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f0a98b359e3d484a889e889e568513c276845e50
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - pull common code out of if/else branches in t_malloc_real
    Once the new block is set up nicely empty for use, it can be used exactly
    like an old block that has enough space - so just merge the code paths.
    (This changeset best viewed ignoring whitespace.)
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8dabb70ca5faaad4432ed182580103787c1c9c5a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - reorder full current block code
    Make the "enough space" and "block is full" branches in t_malloc_real
    have the same code structure for parallelism. The 'block' variable is only
    needed very locally, so shrink its scope, and avoid its use once it is
    assigned to current_block, use that instead. Compacter readable expressions
    have been favoured at the expense of longer lines (which will soon shrink).
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit e964357ce18f5fce6083044e3c867a6502711607
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - helper macro for requested/allocated size
    Rather than #if/#else/#endif around such calculations, or even
    having the possibility to mistype such expressions, just extract
    the calculation into a helper macro defined appropriately for
    the DEBUG mode.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit d9d576a2fd9683d2bbd758868c30be75654a6166
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - disambiguate sizes in t_pop_verify
    In DEBUG mode, the allocated size is bigger than the requested size, so
    rename the variable to reflect its real meaning, and move it into a
    tighter scope in the process.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 992a1726a41b42fa47204565ff17f7c635fcb421
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: test-data-stack - too important a library not to be thrashed hard
    OK, it's thrashed a bit by other tests such as aqueue, str, etc., but these
    tests attempt to probe all corner cases given detailed knowledge of the
    limits of the block/frame implementation.
    
    At the moment, no realloc functionality is tested, as with DEBUG builds
    they would fail very noisily.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 801d6aa65c50d18af39afe7a6016a80b09462110
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - simplify expressions in data_stack_last_buffer_reset
    Noisy expression used more than once, give it a meaningful name.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 437d3c47003e42bc30468d59911de948a5341110
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: data-stack - enable tighter sanity checks on stack_block allocations
    The canary doesn't have to be NULL. That's only effective if it will be read
    and dereferenced as a pointer. If used as an integer, it's a perfectly boring
    one, and not likely to draw attention to itself.
    
    Once the canary is in place, at least in debug mode, we can check it in
    every function as a sanity check.
    
    Make our poison stand out from other poison used elsewhere in the code.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5517afec377fb7bf80e589b3efdd975f61dad5b3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: cosmetic - whitespace cleanup in allocator/memory-related code
    Indentation used spaces. Some trailing whitespace found.
    
    $ git diff -w
    $
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit eb8d3118050e27a7adcbd8e6f33fb3e3a99700b7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: add rudementary statistics gathering to data-stack debugging
    These currently just enhance the overly-large alloc_size warning
    message in t_malloc_real() to show what the history of allocations
    is. New warnings look like this:
     Warning: Growing data stack by 32768 as 'test_run_funcs' reaches 16416 bytes from 202 allocations.
    
    Future possible directions:
    t_malloc_real() could be further modified to identify badly-behaved
    regions of code that allocate lots of smaller blocks as it happens
    (which might be noisy). t_pop() could be modified to detect such code
    after it exits its block (so just one warning per instance of
    misbehaviour).
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 053e605c3b277f82953a60f6722a0a1557ccaf3d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: add markers to data-stack debug prints
    Only the DEBUG code will have access to the frame's marker.

commit 33b0119d4effb14cd0f1bdd3ad5f2954e3b1e63e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jul 28 16:45:33 2014 +0300

    lib: add identifying markers to data-stack frames
    Add a string parameter to t_push() so that in DEBUG mode,
    misbehaviour inside a stack level can be blamed on someone.
    
    Default the T_BEGIN macro to automatigally use __FUNCTION__ or
    __FILE__:__LINE__ as that identifier, therefore no clients of
    those macros need to change.
    
    ioloop used t_push() directly as it wanted customised diagnostic
    strings. To preserve this friendliness, also introduce a t_push_named()
    which takes a format string with paramters.
    
    Apart from the unused paramter, a non-DEBUG build should see no
    changes.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 26f14cde12faa09df2de399e2384fd3d955d8bb4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 28 16:40:25 2014 +0300

    doveadm: Added dict commands to access lib-dict via command line.
    For debugging and data dumping purposes.

commit 625042f95d7eb71f6b94a61ea4f461866be1bef9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 28 15:14:17 2014 +0300

    lib-storage: Don't allow '/' for filesystem based mailbox list backends if their internal separator isn't '/'.
    Basically this means that Maildir++ shouldn't be allowed to create mailboxes
    with '/' in the name.

commit 3008b30900f4de3e76f1a6d289444eb694f3d17c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 25 14:10:04 2014 +0300

    last-login plugin added. It updates user's login timestamp to configured dict.
    Example config:
    
    plugin {
      last_login_dict = redis:host=127.0.0.1:port=6379
      #last_login_key = last-login/%u # default
    }

commit 330096f204a221d8b8beb7f408a03d28c7572537
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 25 13:35:57 2014 +0300

    lib-storage: Set mail_user->session_id before calling mail_user_init()

commit ee60381fecf8d24bd7be760fc94fea8b3cb466e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 21 11:00:59 2014 +0300

    lib-http: Fixed linking test programs.

commit 3fcb3d2d1f3583025ff62bae95ec706920f398b1
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Jul 21 10:54:05 2014 +0300

    lib-http: Added initial support for server-side HTTP API.

commit abdb482726c35f71284aa95f0e8f7ff715a6525b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 21 10:53:19 2014 +0300

    rawlog: Added -i parameter to include the remote IP address in the filename.

commit 22228926a78fa7f813f27d9ea2efca576da067cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 11 16:49:35 2014 +0300

    mailbox_list_index=yes: Don't update INBOX's STATUS information to index.
    This should reduce disk I/O

commit 3febd15e4f49858161cd8c7f9a6d261298ccedd7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 11 14:27:52 2014 +0300

    auth: If userdb prefetch is configured wrong, return temporary failure instead of "user not known"

commit 31fa529029f35f65451fb1d119ed1d5435b62e46
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 11 14:17:17 2014 +0300

    lib-http: Debug log now includes where HTTP requests spent their time on.

commit 255c47a461434ac075efa4fd481d888f193b73ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 11 12:10:02 2014 +0300

    lib: Added fd=-1 assert to i_close_fd() macro.
    This way we'll see clearly where it fails, instead of just seeing assert in
    close_keep_errno() without an easy way to see where it crashed.

commit 9097014815990de521654305dec6a8d5d29407f2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 11 11:14:41 2014 +0300

    lib: ioloop-epoll didn't correctly check if there were any IO events.
    Alternatively we could have checked for array_count(&ctx->events) >
    ctx->deleted_count, but this code is a bit more understandable.
    
    This change doesn't actually fix any proper bugs, it just causes the process
    to crash instead of going to infinite wait loop.

commit 301b1524a822cec7b79856e8c599112c754bc4c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 11 00:20:41 2014 +0300

    lib: file_*_lock() with flock() timeouts should have returned errno=EAGAIN
    (Instead of EINTR.)

commit a192134d1aaf3ff73bff040c7cd9ab3e9a8fe1dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 10 18:31:10 2014 +0300

    lmtp: Remove <> from Delivered-To: header.
    This annoyingly changes Dovecot behavior in the middle of v2.2.x series, but
    the earlier value was definitely wrong.. Perhaps we still need to provide a
    setting for this, but that's pretty annoying as well.

commit 2290ecac1adfb6b57ca553061508c2f118e05778
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 10 18:17:44 2014 +0300

    lib: Compiler warning fixes for 32bit systems

commit 755a39d2c118a6cd3a51ea82359929203689179b
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 10 15:59:53 2014 +0300

    lib: test-istream-tee - randomise which tee stream lags behind the others
    Just in case there's something special about the start or the end of the
    list of children, make each file be the one that lags behind the others.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5e821185cbe341cae9d6f4215f29292ed41fafd1
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 10 15:59:53 2014 +0300

    lib: test-istream-tee - more randomisation to the tests
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0539ac5ef2313e0271f19871744ed01319f2e7ba
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 10 15:59:53 2014 +0300

    lib: test-istream-tee - verify _read returns correct values after _set_size()
    Previously, only an increase of 1 in the size was tested. This ensures that
    0 and numbers > 1 are also tested.
    
    Also add _idx to the asserts, so we know where in the loop it failed.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1d020f1c116ce86af2ebd108a453f7bb31240ada
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 10 15:59:53 2014 +0300

    lib: test-istream-concat - add simultanious limit streams back into the mix
    Return to the previous complex nested stream-type case.
    
    1 time in 10, it tests the simple case of:
    
    test_stream \
    test_stream -}- concat_stream
    test_stream /
    (2-11 of these)
    
    9 times in 10, it tests this configuration instead:
    
    test_stream \                  / limit_stream
    test_stream -}- concat_stream {- limit_stream
    test_stream /                  \ limit_stream
    (2-11 of these)                 (1-9 of these)
    
    Since 31efe2d04793 lib: istream-concat read() returned -2 too early., all tests
    pass every time.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit a028ac787d8fdfb3df0b878109650a25ce7a38db
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 10 15:59:53 2014 +0300

    lib: test-istream-concat - test only concat, not simultanious limit streams
    Test just concat functionality in this unit test. Simultanious access of
    limit streams can be tested elsewhere.
    
    Without the fix in:
      31efe2d04793 lib: istream-concat read() returned -2 too early.
    The failure previously seen in test-istream-concat would be still reproducable:
    test-istream-concat.c:84: Assert failed: size >= TEST_MAX_BUFFER_SIZE
    istream concat random ................................................ : FAILED
    test: random seed #1 was 1403118493
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 392538eef147981f6d818cd14cabc94cf8049d8e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 10 15:40:08 2014 +0300

    lib-fs: Added FS_PROPERTY_COPY_METADATA and fs_set_metadata() tracking.

commit 02cc28525a97ee60cb512c8eb15908082743bfe9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 9 15:55:59 2014 +0300

    lib-fs: Added username and session_id to struct fs directly.

commit 11538e79ae94be5143d0055d4635fcdfd79a3906
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 9 15:24:21 2014 +0300

    lib-fs: Added fs_settings.username and .session_id

commit bff606130fa332dbf837569f922028b68f45fd61
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 9 15:20:59 2014 +0300

    lib-storage: Added struct mail_user.session_id

commit abc8180415e2054465b87d8c696471de40924542
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Jul 9 10:55:27 2014 +0300

    lib-http: Made sure that connections that are still connecting to the server aren't marked as idle.

commit 082e82792b8ac33ad42beac510441b37a3c50737
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 7 16:21:08 2014 +0300

    lib-index: Don't update log_file_tail_offset unnecessarily.
    Update it only if we're already writing to transaction log anyway or if
    we're required to update the offset because mail_index_sync_commit() has
    increased it past non-external transactions (this is especially important
    with mdbox map index).

commit a09ff38dc2cf392036310839538a05ed548f3b65
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 7 13:24:22 2014 +0300

    lib-storage: Minor code cleanup to istream-mail.
    eof=TRUE shouldn't be possible with ret=-2, so this just makes it clearer
    what the code's intention is.

commit 66dc739bb67d678770e1b7a7bc75f4f6f9523d2a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 7 13:15:33 2014 +0300

    lib: i_stream_read_copy_from_parent() needs to update access counter also when returning -2
    This finishes the 467a4d19f873 fix.

commit d979c1179d55ad86e40f869e48ef3e4db9c817b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jul 6 19:08:59 2014 +0300

    virtual: Fixed assert-crashes where trying to open an already opened backend mailbox.

commit 50332744d549bc1f81423dddfa22ee99a7ff3f69
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 15:33:12 2014 +0300

    lib: istream-tee wasn't returning data correctly always.
    This fixes an assert-crash in istream-tee.c. (Hopefully it was always
    assert-crashing instead of returning corrupted data.)

commit e9baf4071a4a0f45c1c6e78c70fc6ec6f1ca1893
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jul 4 14:48:44 2014 +0300

    lib: failures - cosmetic write_full cleanup
    Error message should have a trailing newline.
    Use the POSIX macro for stderr's file number, rather than its numeric value.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f34e5fbfc053542595005c8dfa1c9fd4254de1df
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jul 4 14:18:25 2014 +0300

    config: parser - trivial error message typo
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0c7087c6503ba5d081bbe6465f1c84d8994e1ea6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 14:17:54 2014 +0300

    lmtp: Small code cleanup

commit adde698a449aabf06b7c8132cf1192faa207ab36
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 14:16:16 2014 +0300

    imap: If FETCH fails because mail has already been expunged, don't log an error.

commit eed20b28dd9039d21f5c2770beef2e8b19f7c2f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 14:15:41 2014 +0300

    lib-storage: Bodystructure parsing flags weren't updated correctly on error conditions.
    This fixes an assert-crash sometimes when mail parsing failed.

commit bc15c6934f69be09cca1e9f87f9dc344f77e8b7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 14:14:21 2014 +0300

    lib-storage: istream-mail updates mail->expunged if it notices ENOENT from parent stream.

commit d052dcfff0c96a0af17a3158e51f709edf4b93a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 14:01:53 2014 +0300

    lib-storage: Log mail istream read failures in one place.
    Also handle ENOENT errors by checking if the mail has already been expunged,
    and if so don't log an error, just return "mail is already expunged" error
    to client.

commit b3f4c31f1533e25380f49f77d5bb1251bf43db2a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 13:16:59 2014 +0300

    When creating istream-error, give an error string whenever possible.

commit 3a06d97ce873117c494215cfb7e52249ed16a76c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 13:16:01 2014 +0300

    lib-storage: If mail body reading failed, the error message may have contained only minimal errno string.
    Even though the istream could have had a much better internal error message.
    So show it.

commit 62ff6002b1e37a42303c2c0107f324860232e204
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 4 11:48:27 2014 +0300

    lib-dict: Removed NFS flushing from dict-file backend.

commit 99e11aeca27872b65ff3ed654f6873d10dd8f3d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 22:24:05 2014 +0300

    mbox: If GUID lookup fails because mbox_min_index_size skipped indexes, say so in error message.

commit fa96f616b3e940b8835d923a7544acb1e6d7669f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 22:17:49 2014 +0300

    acl: Global ACLs now support "patterns with spaces inside quotes"

commit 8d834fd1016ccba47ae8df74877a2a757c3e9f21
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 22:16:48 2014 +0300

    acl: Oops, ignore_acls check was reversed.

commit b045cb4df9b00beb812f664c0f98344e743029ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 21:55:31 2014 +0300

    lib-compression: Compression ostreams may have caused parent ostream to use too much memory.

commit d691782ae9eb4f6ab06bc42f1617e889e7c18a3b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 21:54:52 2014 +0300

    lib: Added o_stream_flush_parent_if_needed() for wrapper ostreams.

commit 7d6d78822fea744b86892b4faa04a5bf5137896f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 20:42:08 2014 +0300

    acl: Create struct acl_mailbox also for shared root namespace mailboxes.
    This fixes crashes where imap_acl code attempts to access ACLs for
    nonexistent mailboxes inside shared root namespace. Alternatively the
    imap_acl plugin could have checked the nonexistence of ACLs but this is
    probably easier and more guaranteed to work.

commit c61164c50f56bfe3ec9458d8ddcce51f7c7ac25e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 20:28:16 2014 +0300

    lmtp: Removed code that attempts to deduplicate mail files by copying them between user mailboxes.
    This sometimes started failing if the mail that was being used for copying
    was deleted by the user. There's no good way for lmtp code to fix that
    situation.
    
    If deduplication is needed, it could be implemented in a more generic way
    inside mailbox_copy() where after initial copy it would store the
    destination struct mail to src_mail->last_copy_dest_mail. If another mail is
    copied, the last_copy_dest_mail could be attempted to be used for the
    copying and if that doesn't work it would fallback to regular copying. This
    should probably be attempted only for lda/lmtp processes as it would just
    cause extra overhead for others.

commit 7103db837f941fd4de8a3f828c99febbcedb45a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 19:34:57 2014 +0300

    Compile fix for old systems without SSL_OP_NO_COMPRESSION

commit 761078be421a1f6175fc5eaf9b1d8b94a0394a7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 19:27:45 2014 +0300

    fts-lucene: Delay initialization to fix assert-crash with mbox

commit 9864489d143fafe6f08f6a6d98a478d36458aa98
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 3 19:17:16 2014 +0300

    openssl: optionally disable TLS compression
    Make ssl compression optional, but enabled by default. Other ssl options
    might be tweakable in the future, so have a single ssl_options string,
    and explode it into individual flags. (Compare postfix configuration.)
    Based on an idea by Andreas Schulze <sca@andreasschulze.de>
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 14b551180cb4ac7acac8b048d8d6d7278541d1f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 19:12:02 2014 +0300

    lib-storage: Added mail_namespace_is_shared_user_root() and used it where useful.
    Most importantly this should fix a crash in ACL plugin where type=shared
    namespace was used without any kind of per-user prefix/location (i.e. it
    probably should have been a type=public namespace instead).

commit e66e79eaec90d0222cae21f33de0af74078adc22
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 19:10:33 2014 +0300

    acl: Compile fix caused by previous change

commit 1a5573ebc32fae2fe576ec544e1781323c1db609
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 19:03:59 2014 +0300

    lib-storage: Move "shared" storage name to mail-storage-private.h where it can be used.

commit 5b8dcdcffd7d7191d753fe86498b098abf9089eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 19:00:46 2014 +0300

    lib-storage: Minor parsing fix to namespace types: Use strcmp() instead of strncmp().

commit 212e9e43a7d49242446331fd43ba519eda936d60
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 17:44:32 2014 +0300

    virtual: Never keep more than specified number of physical mailboxes open.
    This should make virtual mailboxes work for users who have a a ton of
    mailboxes with a ton of mails. Earlier code would likely have failed either
    with "Too many open files" or crashed with "Out of memory".
    
    You can change the max number of open mailboxes with:
    
    plugin {
      virtual_max_open_mailboxes = 64
    }
    
    The default is 64.

commit 0bd15afe9cadd09b01e68b493b30c9d7e92b4095
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 17:40:37 2014 +0300

    lib-index: Fixed error handling in mail_index_open()

commit 0cfdf8ba03034ffe98abe73c21fdb69e5c0a4509
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 17:29:58 2014 +0300

    lib-index: Index cache could have kept too many indexes open.
    If a lot of indexes were allocated and then later on they were opened and
    closed, the alloc-cache simply kept all the indexes open even after they
    should have been closed.

commit 1139a1f61032e3b81bd1c7f526b9e9553f51a5a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 16:07:09 2014 +0300

    lib: DLLIST*_REMOVE*() no longer breaks the linked list if we try to remove item that doesn't exist there.
    Hopefully there wasn't any code that actually did this, but it's safer this
    way anyway. Perhaps it could be even made to assert-crash if it happens.

commit 7ebb549522e87b4691c1b6e4c906cfc08f5e8db8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 15:26:32 2014 +0300

    lib-storage: mailbox_get_metadata() now opens the mailbox only if it's necessary.

commit 15b5076a239682277b44880e33ea23b55fff7e71
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 14:54:43 2014 +0300

    virtual: Recent flags dropping wasn't working as intended.
    In the old code '+' meant that \Recent flags were dropped also when the
    virtual mailbox was EXAMINEd. SELECTing a mailbox always dropped \Recent
    flags regardless of the '+' flag.
    
    What should have happened (and does in new code) is that the \Recent flags
    are dropped only on SELECT and only if '+' flag is set.

commit 9afa8aff5bda7c24cce6cc19b8232d2a228b4109
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 14:37:08 2014 +0300

    fts: If we detect corrupted fts expunge log, unlink it.
    This avoids the same error repeating forever.

commit 289ce1246b1c7511f8ceec02344316064ffbe546
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 3 12:44:50 2014 +0300

    lib-imap: test-imap-url - cosmetic whitespace cleanup
    Only whitespace changes. All trailing space removed, reindented:
     $ grep '[[:space:]]$' src/lib-imap/test-imap-url.c
     $ git diff -w
     $
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit e87b25495e78a6f61f236b188bfd68070eff3295
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 3 12:42:11 2014 +0300

    lib-imap: test-imap-url - quieten successful sub-tests
    Every sub-component of a URL doesn't need its own successful log, so use the
    only-print-on-error test_out_quiet() function instead. All failures are just
    as explicit as before.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 00a34f888890caf56c66ff4d15445cab58ebd8d2
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 3 12:42:11 2014 +0300

    lib-test: test-common - add test_out_quiet() to reduce verbosity
    Like test_out() but only prints anything if success is false.
    This makes it quite much like test_assert(), except that it
    doesn't print the code fragment, it prints a custom string.
    However, it still counts as a test in the total count, unlike
    test_assert*()s.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 53630790d8419b5658574a3d4c1ef5f0587c150d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu Jul 3 12:42:11 2014 +0300

    lib-imap: test_imap_url didn't compare port numbers
    It only compare them when they were unset, and defaulting both to 0.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1774ab4b71e7fcec670e7bae24a4a5b95738f560
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 3 11:37:07 2014 +0300

    quota: Quota count tracking still was still incorrect in over-quota conditions.

commit 00cc12d660b35bc955f97d30af660f3879b35a3c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 2 23:41:10 2014 +0300

    lib-index: Recent idx->seq change in strmap forgot to initialize uid_lookup_seq in one place.

commit c35e049bf1b9bbee97551bcb029e53a10cafd761
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 2 20:53:46 2014 +0300

    test-quota-util: Link to quota-util.lo instead of .o
    Hopefully fixes dependency tracking to work correctly?

commit de02255bbe97d5d5c54ca1054bb7c9304ee025a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 2 20:36:49 2014 +0300

    quota: Fixed quota_transaction_is_over() to handle "user is already over quota" case.
    If size=0 we didn't return failure. This change also fixes various potential
    integer overflows in the check. Added unit test for the function.

commit b863b7e3fccf75f90f613b875f02fd1781e14e5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 2 20:34:43 2014 +0300

    quota: Moved some functions to quota-util.c

commit cbc01fc844fa307e565cc81fd78536d7afca05a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 2 20:13:35 2014 +0300

    lib: Added UINT64_SUM_OVERFLOWS()
    Maybe the unit tests are kind of unnecessary since the macro is so simple,
    but at least it's now a well tested simple macro :)

commit 8ce201908dbfde2ab49df10c946df3d1d9ffa4d1
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    pop3: pop3-commands - harden integer parsers against integer overflow
    In get_msgnum(), the invalid input "4772185884" (2^32*10/9) would be
    parsed as being valid.
    
    In get_size(), the invalid input "204963823041217240178" (2^64*10/9)
    would be parsed as being valid.
    
    We have helpers now, so use them.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7943dd081e6e3a856e6ccc56f11f17c983afbb9d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: strnum - add permissive str_parse_uint() helper
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0e702716169a158b87d08e21d1a128eb99e23fa1
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: uri-util - hardern uri_parse_dec_octet() against overflow
    Invalid input 284 (2^8*10/9) is incorrectly parsed as valid.
    28 * 10 + 4 = 284 == 28 (mod 2^8), so the wrap detection fails.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit bf3dbfd29e4d65f485b963bb5598b653e65b5f82
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib-http: test-http-url - add some tricky invalid numeric hostname URLs
    Try to get the numeric octet parser to fail. The RFCs specify that we should
    fall back onto parsing them as domain names instead, and hence the unexpected
    legitimacy of out-of-range numbers.
    
    NOTE: This causes make check to report the following error:
    http url valid [11]: http_url_parse(http://127.0.0.284/this/also/reverts/to/DNS)  : ok
    test-http-url.c:328: Assert failed: urlp->have_host_ip == urlt->have_host_ip
    http url valid [11] .................................................. : FAILED
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 601eea4261fc7aaf76328842e6c864f73fb308df
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: uri-util - harden uri_parse_port against overflow
    The invalid input 72817 (2^16*10/9) is parsed as a valid value.
    7281 * 10 + 7 = 72817 == 7281 (mod 2^16), so the prev check fails.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ffb2949c6cc3a72b4193c47a2f7fd8ddc7fd69e7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib-http: test-http-url - make port number test cases harder
    Exploit common parser weakeneses - out by one, and overflow detection failure.
    
    NOTE: causes make check to fail with the following error:
    http url invalid [13]: parse http://example.com:72817/index.html ..... : FAILED
    http url invalid [13] ................................................ : FAILED
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 94e6665b1c5e5584ef6fad98ef6b8497a636e0cb
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    imap: harden read_uoff_t() against overflow
    Invalid strings like "20496382304121724029" (2^64*10/9) can be parsed
    as valid. Use the new helper.
    
    Change in error behaviour - previously overflows, if they were detected,
    caused *p to point to the digit causing the overflow. Now it's undefined.
    Current clients don't care about this difference, they just bail.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit dbebc3b55a52d288d6ca3eaf0a4b49db21432477
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: strnum - add a permissive uoff_t parser
    Functions like these are so cookie-cutter, we may as well use a macro.
    Note that signed helpers, if they ever appear, will need more care.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 47ca7a853a116b1be3d73b46301d97e572f2f806
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: test-strnum - tests for the new partial-string parser
    We can simplify the main tests by always testing whether an appended
    non-digit causes parsing to fail at the same time that we test it doesn't
    fail with the new more permissive helpers.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 0d73aae8da55fadb59c1fef7aa36d5e43f5f8840
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: strnum - add permissive partial-string integer parser
    Not all strings we want to parse are already strtok'ed into separate pieces.
    Therefore add helpers which will read the integer, and return a pointer
    past the parsed integer.
    
    The previous helpers can be considered a special case which just follows up
    with a check that the '\0' has been reached.
    
    Showing a preference for const pointers generally, this does not try to
    mimic the non-const interface of strto{l,ul,ll,ull}().
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 662b2a7ec4b9f28b8e7ebac95c229db7babfe86a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib-imap: number parsing simplification and hardenning
    The invalid string "4772185884" (2^32*10/9) will be misparsed as being valid.
    In uint32_t's, 477218588 * 10 + 4 = 477218588
    Many large ranges have this issue, 477218588x-858993459x, 954437176x-...
    
    We have helper functions - use them.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit bfdca13a8bafe19b7608e6abb13e71e93a601d0a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: strnum - harden str_to_uintmax against overflows
    The invalid number "20496382304121724020" (2^64*10/9) will be parsed as valid.
    2049638230412172402 * 10 does not noticably wrap, it becomes 2049638230412172404
    
    Do not perform operations which might wrap, and then try to detect the issue,
    just compare with the known fixed bounds before doing the multiplication.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 42826d96c8d0bba9eddc85b01bf70d7db571ae7f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:24 2014 +0300

    lib: test-lib - add unit tests for str_to_*() helpers
    This doesn't test all the helpers, but ensures both signed and unsigned
    are tested, as are 32-bit and 64-bit cases. All the other helpers fall
    back onto using one of those cases. Unless uintmax_t is larger than 64
    bits, in which case this needs a revisit.
    
    NOTE: This causes the following make check errors:
    test-strnum.c:35: Assert(#7) failed: ret == u64tests[i].ret
    test-strnum.c:35: Assert(#10) failed: ret == u64tests[i].ret
    test-strnum.c:37: Assert(#10) failed: val == u64tests[i].val
    str_to_uint64 ........................................................ : FAILED
    
    Corresponding to test cases:
    [7] = INVALID(18446744073709551616),
    This does not wrap-past-0 (become smaller) on multiply, but wraps-past-0 on addition.
    [10]= INVALID(20496382304121724020),
    This wraps-past-n (becomes larger) on multiply.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 552a9b01e99cb9201de5ea5591df293d3b7495e0
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed Jul 2 18:21:23 2014 +0300

    lib: test-var-expand - use test_assert_idx() inside loops
    It helps narrow down which test has failed.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 6ee9ce5ed955a1283dc22ad28980bf9cc23d4c4e
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Jul 2 00:10:16 2014 +0300

    lib-http: Updated comments to RFC7230/RFC7231.

commit aefccddf68a92e43209aea013a36d0d7d374f410
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Jul 1 23:24:08 2014 +0300

    lib-http: Fixed bug in parsing of quoted string with escape sequences.

commit e3734a6606e292b6673a506dfcd7e0964b7ba451
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 1 16:04:20 2014 +0300

    doveadm fs delete: Added -n to usage text.

commit b2a3fbfe1b436123bbe1849eeeef9bb0c28b1f90
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 1 00:10:21 2014 +0300

    lib-http: Added http_client_request_get_target()
    This can be useful in error message logging without having to duplicate the
    string.

commit c6e0d6a5555096075a4c7cf054bed5d8633e6dfa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 17:25:02 2014 +0300

    fts-tika: Hiden "Unsupported Media Type" errors. Log HTTP status code on errors.

commit a666438d72ba8060a58ab9b2429f7ace6d48ed89
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 16:41:32 2014 +0300

    fts-tika: Fixed crash if Tika returned 200 reply without payload.

commit 62dbc0f29b961a2e0ffdb910fd27898e1d7b2e56
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 14:35:32 2014 +0300

    lib-storage: Shrink "mailbox is being deleted" timeout from 5 mins to 30 secs.
    Even 30s may be too much since normally a few seconds would be enough, but
    keep it high enough just in case.

commit b67f674f59384ab3b672c465100698fe1aa52893
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 14:34:00 2014 +0300

    lib-storage: When deleting mailbox, finish the expunges before marking mailbox deleted.
    This decreases the amount of time the mailbox is visible but not accessible.

commit a3de33a82d2611ebcc62804910f50b5d19348798
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 14:31:47 2014 +0300

    lib-storage: mailbox_delete() now handled "mailbox is being deleted" explicitly.
    Earlier we just treated it as \NoSelect mailbox and failed later.

commit fae21eb25fe955f4f5be2df8466749f53800c364
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 14:30:43 2014 +0300

    lib-storage: Added index_storage_mailbox_delete_pre/post().
    This avoids reimplementing the whole index_storage_mailbox_delete() for
    storage backends that need to do more work in the middle.

commit e63b559252ea54722e52d717737f47c035c1992f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 14:29:26 2014 +0300

    imap: If we disconnect client because mailbox is inconsistent, send the error message before BYE.

commit 4e1f733fa64d01785de4ec987d83af65c273b9d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 30 14:28:31 2014 +0300

    imap: Don't disconnect due to inconsistent mailbox unless the mailbox is the selected mailbox.

commit 62aa68310d6f42467ca26880f678173bf1d26a83
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Jun 27 17:39:52 2014 +0300

    imap-url: Fixed handling of ipath-empty syntax (basically empty relative URLs).
    This also normalizes Mailbox/ to Mailbox.
    Initial indication reported by Coverity.

commit 8bb7d8563b54cc71001c84b392ddfa4feffff4ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 27 17:37:56 2014 +0300

    auth: Added assert to make sure sysconf() returns what we expect.
    userdb nss shouldn't even be used though. So this is mainly to silence
    Coverity.

commit a095363e41e7938afc25d149a6fad6e185cf4ee7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 27 16:29:18 2014 +0300

    lib: istream-concat read() returned -2 too early.

commit fc7474aac307dac6af0877edbdc026d9b451c90c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:20:25 2014 +0300

    lib: rand - force reseeding with known seed from environment
    Use DOVECOT_SRAND=12345 as an environmental variable to force seeding
    to that number.
    
    The logic behind the logging is that the subsequent calls will almost
    certainly be from random_fill_weak() which expects to have been seeded
    from a CSPRNG - not a constant! Having this environmental variable set
    in a production system that expects CSPRNG seeding should be flagging
    diagnostics.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit dd8a8566def603776cc102ec86906556b8bd5b0a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:17:50 2014 +0300

    lib: remove unwanted srand()s from unit tests
    We'll get better coverage without them.
    
    Note: this change causes the following test case failure occasionally:
    test-istream-concat.c:88: Assert failed: size >= TEST_MAX_BUFFER_SIZE
    istream concat random ................................................ : FAILED
    test: random seed #1 was 1403027537
    
    (The seed may vary, obviously.)
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit a2818f9ffaec7813cd9529592856b4c10aaedd00
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:17:07 2014 +0300

    lib-test: use the new srand() tracking helpers to aid debugging
    We can only be sure we know the entirity of the stream of numbers returned
    by rand if rand_set_seed has been called precisely once, as after that we
    can't be sure when it was called a 2nd or further time. However, at least
    we can know that that has happened. (Likewise, any calls to srand() will
    disturb the flow.)
    
    Most unit test cases should be simple enough that there should be only one
    seeding.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 02da7bcc4535c962b72476738d16003d60882bb9
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:16:16 2014 +0300

    lib: use new srand() wrapper in lib
    Of course, multiple seeding calls make it harder to know exactly
    what numbers have been generated. But this is better than nothing.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1b139ee4de2833fbf0d51ee6f19eb4515d4e8942
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:15:24 2014 +0300

    lib: add rand helper library
    Initially, just wrap srand() so that we can find out what the last-used
    seed was. In situations where srand() is called only once (via this helper)
    this lets us reproduce exactly the same stream of random data again in
    order to reproduce rare crashes.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5a3ed55cdafe07a2bb0acd4073a4f849cffc908b
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:13:37 2014 +0300

    lib: two quite literally random little cleanups
    file-dotlock.c does not use randgen.h, remove the #include
    test-buffer.c random() has been used rather than rand()
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1dcf22e98ba8310e8daa8c9297936c6f3a645e7a
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:13:09 2014 +0300

    lib: make printf_format_fix safer against shadowed %m behaviour
    If there's a %m followed by a %n or %m, then the %n or %m won't be seen.
    For %m, that's mostly harmless, but for %n it's potentially kaboom.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1d940afbc02516d8c3d016780e1223a779844a1e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:12:40 2014 +0300

    lib: test printf_format_fix()
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 95be1d89911c56664b05ab1c16bbc5cbc1331df3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:11:40 2014 +0300

    lib: test-istream-concat - early abort test loop on failure
    No point in continuing past the first failure.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit dad57bb15da9dc03c40b0a4ddf72749704ea4e1b
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 27 16:10:27 2014 +0300

    lib-test: Enable looped tests to abort early on first failure
    Give them the ability to query the current failure state.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 75e2c45e2e60ba22728b7520818aa0a191f8ca3d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 27 14:23:46 2014 +0300

    lmtp: Reduce corking so we get command replies more quickly even if they are pipelined.
    This may help avoid some LMTP client timeouts.

commit 39cfd16e16bac5017cfd4cec8762d2138798094f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 27 14:06:56 2014 +0300

    lmtp proxy: Make sure DATA stream size doesn't change unexpectedly.

commit 9320cc24796e335fb9608a9e8fc2dae192ca4d4e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 27 14:06:08 2014 +0300

    lib-lda: If DATA input stream read fails, return error instead of truncating the mail.

commit f8e6e85ab508e80a66f323390f8f4e2edfff2730
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 26 20:48:13 2014 +0300

    lib: Moved rawlog dir stat()s to iostream_rawlog_create() internally.
    This is required to allow TCP rawlogs to actually work.

commit f9b6b5e9c4e18682321959883c888035a56b6be9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 26 20:46:21 2014 +0300

    lib: iostream-rawlog now supports TCP target with "tcp:host:port" as the path.
    We'll use blocking sockets, so a slow rawlog server causes performance
    problems also for Dovecot while it's waiting on rawlog writes.

commit 463d6c35524a3b3fbed0c1612e74b5601b7953fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 26 17:50:57 2014 +0300

    lib-storage: BODYSTRUCTURE parsing failures weren't treated correctly.
    We still assumed that the parsing succeeded and assert-crashed later or
    maybe returned invalid results. (This could have happened only if there was
    a problem reading the mail stream.)

commit faca9429a68ada074390da8745cf5ee0c958b42b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 26 17:27:31 2014 +0300

    dsync: Fixed infinite looping on error condition.

commit bcc25e5a1f75ab94b53a2b32c4b382aece86289c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 26 17:27:22 2014 +0300

    dbox: mail_get_special() may have returned MAIL_FETCH_POP3_ORDER allocated from data stack.
    Although this seems to have worked for now, it shouldn't have been done.

commit 89221f7f6c0a021d9a74cd4ad05fc8c5efe7a0bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 25 16:16:02 2014 +0300

    lib-test: Fixed "Trying to allocate 0 bytes" assert-crash caused by recent test-istream changes.

commit 87ddb4d9937eba89455583565488f5f72fda8a65
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 20 12:18:32 2014 +0300

    lib: fd_recv() no longer checks for msghdr.msg_controllen
    It doesn't work at least in OpenBSD and Tru64, and apparently it shouldn't
    really be needed anyway, so don't bother with it. We'll still keep checking
    the cmsghdr since that appears to work everywhere now.

commit 11f743d846c6b4fe9258e48b4d9c3dc2349c5890
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 17:16:24 2014 +0300

    mbox: istream-tee wasn't being used as expected with the new changes, causing crashes/hangs.
    After wondering about this for a while I decided this was the only fully
    reliable way of doing this. Although it would have been possible to change
    the istream-tee code to support this:
    
    child1 and child2 are tee-istream children:
     - i_stream_read(child1)
     - i_stream_read(child2)
     - i_stream_get_data(child1)
    
    Because reading from the parent istream-tee updates all of its childrens'
    buffer, there's no big problem (other than access_counter currently messing
    up). But if one of the children weren't a direct child of tee-istream, but
    there was a wrapper istream, the wrapper's buffer wouldn't have been updated
    by the istream-tee read. So rather than spending time figuring out to fix
    the access_counter it's probably better to have it clearly fail as the use
    case can't be fully safe anyway.

commit a07bc6007e62a9cdf065aa0a8b74d532f0f9d10f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 15:50:40 2014 +0300

    lmtp: Create all proxy DATA streams before reading from them.
    I'm not sure if this actually fixes anything or not, but it's still safer
    to do it this way.

commit c6b6ac7819931dfa92c0182ffaa7db07ac6ab0da
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 15:15:24 2014 +0300

    lib: i_stream_read_copy_from_parent() now directly updates the access counter
    This fixes a bug in istream-mail where it called i_stream_get_data() after
    it and reset the stream's skip/pos.

commit 4106a25399703eb6cbb166dcbd5bb932cb2f7ad2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 14:58:26 2014 +0300

    lib: i_stream_get_data() should also reset eof=FALSE if it truncates the output.

commit 5dcdc153e1dd77da60161f689d5c227fdcfaff77
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 14:34:54 2014 +0300

    lib-mail: Fixed istream-dot unit test to work with the istream-test changes.

commit aaa5d949334ffe8340a818f0007bb598e2608e29
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 14:02:56 2014 +0300

    Compiler warning fix

commit f5982bb5b0a704e88fa2b44b0b74e365d13103b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 13:52:36 2014 +0300

    lib: If two istreams share one parent, i_stream_get_data() may have returned corrupted data to another.
    This happened only for istreams that used parent's buffer directly instead
    of having their own buffer. For now at least we've solved this by truncating
    the other stream's buffer so it needs to be read again. Hopefully this is
    good enough.
    
    Added also unit test to check this functionality.

commit ce8daf893a2df42207bb0a08220e367af993a3ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 12:38:11 2014 +0300

    lib-test: Improved test-istream to catch more bugs

commit 098319673eec04a1721b00f491992a784088abb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 12:32:45 2014 +0300

    lib: Fixed read buffer overflow in istream-base64-decoder error handling

commit b1b8ac3b3c667405e1533aa6db26e55218d26cc6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 19 12:31:55 2014 +0300

    lib: Fixed potential read buffer overflow in JSON parser.

commit c51644e9e04effbbc9c415cadcfbcb4d9465855c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 19:52:11 2014 +0300

    login proxy: Added login_source_ips setting.
    The setting contains a list of IPs/hosts. The setting may be prefixed with
    "?" character to indicate that only those IPs should be used that exist in
    the current server (allowing the same config to be shared by multiple
    servers).
    
    The IPs are used round robin as the source IP address when proxy creates TCP
    connections. This becomes useful when there are a ton of connections from
    the proxy to the same destination IP, because TCP ports run out after ~64k
    connections.

commit d694a52bce62c52080c3f87a56dcf77030fd2712
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 19:21:36 2014 +0300

    login proxy: If passdb returns "source_ip" extra field, use it for outgoing connections.

commit 17654607d6adbe64923f023a7120627544c540c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 18:01:58 2014 +0300

    lib: Use __attribute__((returns_nonnull)) for the common memory/string functions.
    Also added a couple of missing ATTR_MALLOCs.

commit 3b364681ab959d6a676f1a6758dd6a064d1e82bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 17:40:51 2014 +0300

    lib: Changed mempool.h to use inline functions instead of macros.
    This way we can also mark p_malloc() with ATTR_MALLOC.

commit ffcf7f97c7d82b895bbb745031042ee8c378c6b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 16:27:12 2014 +0300

    doveadm who: Don't crash if server happens to send broken input (second try).
    Found by Coverity

commit fcb584b14c3d50a43b70b11b66213a887b2cacc1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 16:26:09 2014 +0300

    doveadm dump: Avoid crashes with corrupted log files

commit bb33d479fddcbfafc5cebdd9cb1974aa83589e9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 15:47:12 2014 +0300

    doveadm dump log: Fixed potential crash when log header size was corrupted.

commit b36b8c984bdd0c84b8a18011369ee58b1714455f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 15:42:39 2014 +0300

    Added (void) prefix for ignoring return values we don't care about.
    Hopefully this quiets down Coverity warnings also of them?

commit cee99a130b493f7068a7577f4c832aab147d2d2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 15:41:52 2014 +0300

    Check for syscall errors that are quite unlikely to happen.
    Flagged by Coverity.

commit de1ba3e655a7de31c5522911ee0ba18bc65f05af
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 15:35:07 2014 +0300

    xml2text: Check for read()/write() failures and exit if they fail.

commit d579412381c843bd4cf011f3524d4842a3c19db7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 13:12:40 2014 +0300

    lmtp: Proxying now logs successful and failed deliveries after DATA.

commit 5b946df482ca0e5278ee93eea0d53f2cf09fadc1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 16 13:03:31 2014 +0300

    lmtp: Removed some unnecessary code

commit b43bbd39227c4391d334f04e85644dabb3ce5d68
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 15 11:03:32 2014 +0300

    auth: Fixed wrong assert added by recent commit.

commit c1dbcb60868c4e8e523fcf409b5b7539f58945d7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Sat Jun 14 11:58:57 2014 +0300

    trivial variable-non-use fixes
    Flagged by coverity. In one, as we're printing an error message, we
    can actually put the string to use, which might aid debugging. In
    the other, the variable can just be killed.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 6e4f7451b33b3aaeededd27d164f878b2b72a499
Author: Phil Carmody <phil@dovecot.fi>
Date:   Fri Jun 13 16:12:27 2014 +0300

    fts-lucene: Fix SnowballAnalyzer constructors
    Coverity found the uninitialised pointers in the latter constructor (which
    is never used - kill it?). In comparing the other constructor, the lack of
    strdup() jumped out at me.
    
    In fixing them both I migrated them to actual C++ initialisers, rather than
    dumb assignments to uninitialised members. Also migrated to dovecot's i_*
    functions. Also fixed indentation for the 3 functions touched.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fd05c47210cad1f6d8effbda5cba7f7d938ca9a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 15:14:44 2014 +0300

    Added several asserts to make sure duplicates aren't inserted into hash table.
    The previous commit hopefully fixed the problem causing auth and login
    processes to sometimes die with "key not found from hash" error, but if not
    maybe one of these will catch it.

commit 788a914ed09ca9a6605d66ef6707c3ca1175c153
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 15:13:26 2014 +0300

    lib-master: Fixed caching settings where both local_name and local_ip was specified.
    Since cache_find() didn't use local_ip for a lookup when local_name existed,
    cache_add() shouldn't add both of them either, otherwise it could be
    inserting duplicate values to the cache hash and cause crashes.

commit f6d79884d112949fde4e7d9b7fc6a43e24a475b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 11:35:40 2014 +0300

    Make sure we don't shift signed integers left by 24. They should be unsigned.

commit 54c4c55a728f1ffb0a3a8a0666346f6d98c86eb6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 11:21:07 2014 +0300

    dbox: Fixed potential infinite looping when scanning a broken dbox file.

commit d65adb971c136dad49514da98e57c0ae7f593cd4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 10:25:22 2014 +0300

    auth: Fixed handling userdb_userdb_import passdb extra field.
    Looks like some hg merging went wrong.
    Found by Coverity

commit 59bc0bc0c0383d522cd1289c5847d6eac673121a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 10:22:49 2014 +0300

    lib-http: Removed unnecessary for loop.
    Found by Coverity

commit a59b10304ca47fd3ae6f7135c175265a2941af37
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 03:09:26 2014 +0300

    dbox: Added asserts to dbox file fixing to make sure it doesn't go to infinite loop.
    There apparently is a bug in here that will trigger this assert.

commit 5952b84453f4dfb7758d5eebc679399a59a0a57b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 02:54:21 2014 +0300

    imap, pop3: Remove the client from clients-list at the very end of the destroy function.
    Especially with imap code the process title could have been refreshed too
    early.

commit 0abbd167fe12a6b0aba98d38552f023a5fa8ffa7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 02:34:19 2014 +0300

    Compiler warning fix

commit bace943c67e6cd14ce6c994f533d82a3caad5bf1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 02:19:15 2014 +0300

    Use the new [io]_stream_create_fd_*autoclose() functions wherever possible.

commit 43834f87bf431198f986e86052a4f6e558fdb07d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 02:18:53 2014 +0300

    lib: Added [io]_stream_create_fd_*autoclose()
    These make it clearer that the fd parameter will be closed automatically
    when the stream is closed.
    
    Eventually (in v2.3) we'll want to get rid of the autoclose boolean
    parameter in [io]_stream_create_fd().

commit bd16363ff309fbb13535fbf0fd0a8662fd80b266
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 02:04:12 2014 +0300

    doveadm stats top: Fixed double-close()ing stats connection

commit fb2fb0e5c1b789dbcdde24d30ebae44d7f646339
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 02:01:55 2014 +0300

    director-test: Fixed double-close() on admin connection deinit

commit 48325adac125d7ff275ec69b05b7a92be9637630
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:57:04 2014 +0300

    Added various asserts to try to silence Coverity false positives.

commit 86b29828b3bdc796d1e7328a0c1c1e6885c767ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:52:13 2014 +0300

    lib-mail: message_parser_parse_next_block() now fully clears block_r to be safe case.
    I'm not away of this hitting any bugs, but better to be safe.

commit b383c911216963c707b3e9dec4e98fc6ebd15218
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:35:13 2014 +0300

    Added "fall through" comments to switch statements where break is intentionally missing.
    This should make Coverity quiet about these..

commit f8c53b752234ab325fd74cefcdfb7e1dfc3c1aa1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:30:14 2014 +0300

    lib-storage: Fixed parsing corrupted mailbox list index header.
    Duplicate IDs should have caused an error instead of being silently ignored.
    Found by Coverity

commit 2d72e8492960794037a1ca90df34f7ab2a170a81
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:26:14 2014 +0300

    imap-urlauth: Fatal failure error handling wasn't done correctly.
    Found by Coverity

commit ca321ff5b531feae0aa8110b3dabc7016b8d6cb0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:22:23 2014 +0300

    replication plugin: Synchronous notification timeout error wasn't logged as intended.
    Found by Coverity

commit d19412e30b27e413f99cbedab86c9f9396741638
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:20:25 2014 +0300

    lib-otp: OTP_MAX_WORD_LEN wasn't actually enforced, any word lengths could have been used.
    Doesn't look like this could have caused any real problems.
    Found by Coverity

commit 739f4f284b4a137c9291a00a23d197b1cd42099d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:11:24 2014 +0300

    fts: Improved doveadm fts dump for corrupted expunge log
    Although we may still be trying to allocate up to 2 GB of memory, but at
    least no more than that now.
    Found by Coverity

commit 6b5b3d9d0aa8009ca19e1f9455796258fb935012
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 01:02:48 2014 +0300

    lib: Fixed file_dotlock_replace(flags=DOTLOCK_REPLACE_FLAG_VERIFY_OWNER|DOTLOCK_REPLACE_FLAG_DONT_CLOSE_FD)
    The verification check failed because fd was already set to -1 by that time.
    Found by Coverity

commit 456f3c79aafea8f6d009fab3d94946f38047dcd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:57:06 2014 +0300

    director: Fixed crash if master_user_separator is set, but we didn't do a proxy lookup.
    Found by Coverity

commit 2d2d7c4d0458e534bee8621613865a06b44eae02
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:51:44 2014 +0300

    imapc: Avoid crashing if server happens to send invalid resp-text-codes.
    If [KEY VALUE] is missing the VALUE, just set it to "" instead of NULL.
    Found by Coverity

commit 0b9392b670e00a9595a5c619334d6b2ed1527cee
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:46:34 2014 +0300

    fts: Minor code cleanup: Don't increment NULL pointer.

commit 7be1a5530fcb414588fbe90eaed65eff83e84737
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:45:43 2014 +0300

    Removed pointless NULL checks.
    Found by Coverity

commit 48b28b91852a975a495a6fe82f5db5b35333500a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:30:27 2014 +0300

    auth: Invalid userdb passwd-file and userdb templates may have caused crashes.
    Using just "key" parameter instead of "key=value" usually worked, but for
    some keys the code assumed that there was a value and it dereferenced NULL.
    We'll solve this by just using value="" instead of value=NULL.
    Found by Coverity

commit 29a826288c13d7f3df70f4d18b4bf22861893941
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:15:47 2014 +0300

    auth: passdb/userdb dict settings file parsing didn't handle errors correctly.
    Found by Coverity

commit bed2cec1eb5f445eb45b9eacc9a3aabd34edd44a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:09:23 2014 +0300

    lib: Changed net_geterror() to return errno instead of -1 if getsockopt() fails.
    None of the callers were actually checking for the -1 error value but
    instead just passing it to strerror(). Since this error should just about
    never happen it's better to just return a usable return value than try to
    remember to handle errors that can't normally even happen.
    Found by Coverity

commit bdb5cc256333e45d4e984433f7c1407fdfcf736a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:05:16 2014 +0300

    doveadm sis deduplicate: Error handling fix if open() fails.
    Found by Coverity.

commit 8f80d2d1aba1d8e6e6a8b31217782446fd1fd633
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:03:11 2014 +0300

    lib: Added (void) prefixes to some setsockopt() calls which we don't care if they fail.

commit 0c8f8dcbe014c8657fe6d8800d39e5066dc68cfb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 13 00:00:31 2014 +0300

    dsync: Fixed potential crash when debug logging was enabled.
    Found by Coverity.

commit 956af710226d90d1ae21500165d22f967fbb2370
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 12 23:51:28 2014 +0300

    mbox: X-Delivery-ID: and X-IMAP: headers weren't dropped from incoming mails.
    Because of a missing comma.. Found by Coverity.

commit c03f712279c54fc29368a914375a4c66855d253b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 12 23:47:55 2014 +0300

    doveadm who: Don't crash if server happens to send broken input.
    Found by Coverity.

commit 7042d924459edc7e63587468c45c5ff4434505a6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 12 23:16:40 2014 +0300

    configure: Don't actually run the test to see if inotify works.
    It's definitely no longer needed in modern Linux systems and the test itself
    can also unintentionally fail sometimes.

commit c04da04cc300ef1c143ff09b566e44f74f5626df
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 12 12:51:34 2014 +0300

    lib: Changed hash_table_remove() "key not found" panic to be in a macro itself.
    This makes it much easier to find out where such crashes are coming from.
    Since this breaks the ABI in such a many places the ABI version number was
    increased immediately..

commit 147dbf5e74344caf9baf4048999ce0e5419f9e51
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue Jun 10 17:49:45 2014 +0200

    lib: test-bits - fix nearest_power for 32-bit size_t
    The test blindly went up to b=63, and the function correctly asserted.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 552487e70a779de22c85352d8eb154d90bb57697
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 10 16:40:46 2014 +0200

    rawlog: Buffer writing to rawlog files to improve performance.

commit 53895e43662b29a954d8f70bd2a27bafbdb4bbe8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 9 23:08:18 2014 +0300

    lib-fs: Fixed crash in fs-sis if hard linking failed.
    (For example because there were too many hard links.)
    Pointed out by Pavel Stano

commit a6050e85dfaa9af0a7b4e059c198df6dc0133388
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 9 23:02:52 2014 +0300

    lib: fix numpack overflow checking
    As on broken input, bits may grow without limit, so << bits becomes
    Undefined Behaviour. Add a simple check to the while loop to prevent
    this.
    
    Also, the (presumably) final byte adds something to the bit length,
    so include that in the tally. If we didn't get to a final byte due
    to the above while() condition, then this extra addition does no harm
    
    Now we can precisely check for overflow conditions. Note that 64 bits
    is perfectly OK, only 65+ is an overflow.
    
    Note - no longer moving *p if there was a decode error.
    
    Expand the test suite to check for overflow cases. Also checked for
    short-input cases too, while I was there.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 9fe07780492524a34423686794bc1b4061206246
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 9 23:02:52 2014 +0300

    lib: unit tests for lib/bits
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit aebf030c0dc21b57ec13eb684fe70b482b8bb446
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 9 23:02:52 2014 +0300

    lib-test: test_assert helper for loops
    If you're repeatedly testing the same expression in a loop, it's
    good to know where you are in the loop. Add an additional parameter
    for these cases.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 3637a2ad3b2ead17efd5591f73effd3b140d8d2d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 9 23:02:52 2014 +0300

    lib: bit twiddles
    bits_requiredXX() gives the number of bits required to store an unsigned
    integer. Here, XX is 8, 16, 32, 64, reperesenting the size of the operand.
    It belongs in the same file as nearest_power(), which makes most sense
    in a separate bit twiddles file. Universal enough to stay in lib.h by
    inclusion.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7df0ae570da81b27ac551673f373b1260edf1c56
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 9 22:59:59 2014 +0300

    lib: Fix MEM_ALIGN to cope with huge allocations
    Attempting to allocate 2^32+1 bytes will look like it succeeds, as MEM_ALIGN
    will set alloc_size = 8. The caller will then think it's got 4 gig to play
    with.
    
    e.g. t_malloc0 will wipe vast areas of memory before segfaulting, which might
    include useful information we'd like in a corefile.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 4f8f6d697512cb8fd7f3f28383c737b01aedeff8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 9 22:53:16 2014 +0300

    lib-index: modseq -> {log file, offset} lookup often ignored dovecot.index.log.2
    This caused the code to think that the modseq was too old and fall back into
    slower sync.
    
    So this change should fix the dsync "Modseq .. nom longer in transaction
    log" warnings as well as improve IMAP QRESYNC efficiency.

commit 44af44edbffb19d33e109b4eb74d41f4fbb2e04a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 9 18:15:51 2014 +0300

    lib: Added some kind of a unit test for hash table.
    Just try out some insert+deletes randomly. Mainly I wrote this to check if
    there is some obvious problem, but looks like not.

commit 31df48d66a9a2327f6de41796e6819543c4494e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 9 15:11:50 2014 +0300

    lib-ssl-iostream: Implement get_used_size() method.
    Previously we were always returning that we didn't have anything buffered,
    which could have caused huge memory usage (or malloc failures) with its
    users (e.g. dsync).

commit a117008f03ad9e2d54258b30d3fb03ffa502a448
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 9 13:41:59 2014 +0300

    login-common: Fixed potential crash at client disconnect.
    Broken by recent change

commit 2529a04d5bf41a0cfb8752cc98d5503e34f7399f
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Mon Jun 9 12:14:42 2014 +0300

    login-common: Fixed infinite loop in ssl proxy flushing.

commit d065c1e18205e5e14149247ff39c030db12b0373
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 9 12:12:58 2014 +0300

    login proxy: Fixed connection hanging due to wrong ostream cork pairing

commit b09c165ba23e432685cee196b42873af26f1785f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 5 13:43:11 2014 +0300

    lib-storage: Mailbox list index updating didn't check properly if modseq tracking is enabled.
    mail_index_modseq_enable() can be enabled (e.g. by virtual plugin) without
    enabling MAILBOX_FEATURE_CONDSTORE.
    
    (Actually the MAILBOX_FEATURE_* probably should be removed from lib-storage
    entirely. They're too much of an IMAP feature.)

commit 83b777d8b69cca5d9c8d8b77c3f7b24e63496cb5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 5 13:38:36 2014 +0300

    maildir: Mailbox list index refreshing shouldn't check cur/new dirs with maildir_very_dirty_syncs=yes
    The recent mailbox_list_index_very_dirty_syncs change broke this. Just
    because maildir_very_dirty_syncs=yes, it doesn't mean that
    mailbox_list_index_very_dirty_syncs=yes also.

commit 0270e64c5b6f553c066c00c99b0636095a3faa86
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 5 11:30:19 2014 +0300

    *-login: Flush SSL output when logging out.
    The BYE and LOGOUT replies weren't being sent when they were sent from
    imap-login process (before logging in).

commit d4b03b1b224603afbc2468f07ffb80cc872b1f9f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 4 00:35:27 2014 +0300

    doveadm fs delete: When doing recursive deletion, delete also the directories if needed.

commit 0218e28d1b833228c69d6e1adfc1fae976d94d40
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 3 23:52:39 2014 +0300

    dsync: Fixed renaming duplicate mailbox GUIDs.
    We were trying to use only the last part of the hierarchical name instead of
    the full name.

commit 6e952586d9aa711007ea7293750085184ef3f9af
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 2 23:58:26 2014 +0300

    lib-ssl-iostream: Use SSL_MODE_RELEASE_BUFFERS if it exists to reduce memory usage.

commit 030e247340315f4425d297a00b439a4df72bf70c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: make uid_lookup_idx hold a sequence number, not a 0-based C array index
    Rename it to _seq, and make it hold values 1.. rather than 0.. . Several
    uses of the value are simplified by this change, and none are made more
    confusing, so I think it helps improve maintainability of the code.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 7604ee75aa54ab2e400de45999e326c358bc2d24
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: use _REC_AT_SEQ not _MAP_IDX in view_sync_get_log_lost_changes
    Shifting i and j up by one to use in the new macro means we don't
    need the +1's in the calls to view_sync_apply_lost_changes and
    mail_index_map_lookup_keywords. Rename them as seq variables too.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit c308d70af9d1465b33e95e03052fe10cd40231b1
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: use _REC_AT_SEQ not _MAP_IDX in backward loops
    [seq-1 .. 0] becomes [seq .. 1]
    
    Don't pre-decrement, and terminate before you process seq=0.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit be8c8479f918875eda871c5685ab2b4067228e26
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: use _REC_AT_SEQ not _MAP_IDX in loops from [seq1..seq2]
    [seq1-1..seq2) becomes [seq1..seq2]
    
    Don't decrement before starting, and include the upper bound.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 2f16d2e0b4408370cd44db359759b23a8c0656d3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: use _REC_AT_SEQ not _MAP_IDX in loops over every record
    Just change the loop bounds from [0..count) to [1..count], and make the
    loop variale explicitly a seq.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 1df526903ed039e8ff966a223c43b8d04eddf3c7
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: trivial robomatic migration from _MAP_IDX to new helper
    All users which have a '-1' in their MAIL_INDEX_MAP_IDX have been changed
    to the new mail_index_rec_at_seq() helper using this sed script:
    
    $ sed -ie 's/MAIL_INDEX_MAP_IDX(\([^,]*[^)]*[^ ]\) \?- \?1)/MAIL_INDEX_REC_AT_SEQ(\1)/' src/lib-index/*.[ch]
    
    No other users have been changed.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit f5e06b955adead65ab7281b6410059230c0bf512
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: new helper macro with more user-friendly semantics
    As the record ids range from 1..records_count, but the data is
    stored as if in a C-style 0-based array, current clients of
    MAIL_INDEX_MAP_IDX() must subtract 1 from the index themselved.
    
    New MAIL_INDEX_REC_AT_SEQ() macro does the subtraction for you,
    it gives you (the address of) the record from a seq number.
    
    Uglified users of the former will be migrated to the latter.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 53e0e6889bf659b86e4c7d2e83e27d69fd9d6bcb
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: optimise memmoves in expunge, only move each region once
    Rather than shifting things back and back and back with potentially O(N^2)
    (more precisely O(count*rec_count')) work factor, move each slice of memory
    only once, directly where we want it to end up (O(rec_count') work factor).
    
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 4e6629cb5d5e7f67d5023eda540105d32df5f2ba
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: trivial paranoia check in expunge loop
    We will later be moving the zone between the current seqs and the
    (end of the) previous seqs - this check ensures that the range is
    indeed monotonic, and thus that zone is positive in size. It can
    be zero right at the start, if the first seqs is (1,...)
    
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit aba9cc9bf97576c0ca653d4e218567e617061029
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: Preparatory HACK - reverse the loop order in the expunge
    This is the final step before the actual optimisation of the memmoves.
    
    HACK, as it it de-optimises the moves so as much as possible gets moved
    as many times as possible. It clears the path for a later patch which
    optimises them far better.
    
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 070df93a3014ad4b2eb8754af65128c9f9a72e4e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: hoist initialisation of mail index map out of expunge loop
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 89b7d6ce9266288c156e3513f5798680f1e33572
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: explicitly inline contents of sync_expunge()
    To later optimise the memmoves, we will need to be aware of previous seqs.
    It's easier to just have the guts inlined, so too much state doesn't need
    to be passed around.
    
    For review, this change is best viewed with a whitespace-insensitive diff,
    to verify that the new contents of the loop are identical to the contents of
    the now-absorbed function.
    
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 74896b89e1d82819d710f9322cf7c9e72d5841ad
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: call all expunge handlers first
    Firstly, the init checking only needs to be done once. More importantly,
    moving this preparatory stage into its own per-seqs loop means there's
    less to juggle when we optimise the memmoving loop in subequent patches.
    
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit b32de04eb77234b25e2e411884a2503a1bf3c255
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon Jun 2 14:50:34 2014 +0300

    mail-index: move expunge handler init into helper function
    Preparatory for later optimisation patches where the call to this will
    be lifted out of the expunge(seq1,seq2) inner function and done once
    for the whole range of seqs in one go.
    
    Based on draft patch by Timo Sirainen.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 36e091dc733c6cd690c5aae6e411e41adb1eca73
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 2 04:16:08 2014 +0300

    director: If we detect that a user is being proxied to multiple backends, disconnect wrong connections.
    Especially IMAP connections can otherwise stay alive for a long time and
    cause problems.

commit 550d2fe097e95f12e8fa60ef52753ea7fe53d4ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 2 04:00:19 2014 +0300

    doveadm director kick command added.
    The kick gets sent to all the proxies within the director ring.

commit b8864211b88ed7521e9af514590639344af38910
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 28 18:17:52 2014 +0300

    lib-index: Fixed somewhat random assert-crashes during extension resizes.

commit dfdd228ab20092705da0e8812b3cd0a039319375
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 28 15:53:58 2014 +0300

    lib-index: Optimize removing large number of expunges.

commit 884228e5496378bada39a932db67aa3d9478198f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 28 04:20:58 2014 +0300

    lib-storage: "Message has no NUL characters" flag was being set wrong to cache file.
    Only the first MIME part was checked for its existence.
    
    When this flag was wrong, IMAP FETCH may have returned NUL characters
    instead of converting them to 0x80 character. This apparently caused Outlook
    to hang.

commit ffcd975744455856fb8b80ddc5b13ccf264e67e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 27 23:11:07 2014 +0300

    Compiler warning fix

commit 9d47b3d53a3ecacfe07d03e5b2339e6043e0f48e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    auth: checkpassword callback callback type bike-shedding
    This change doesn't change the compiler's (gcc) view on the correctness of
    the code. It moves sparse's attention of where the potential issues are
    though. Sparse used to complain about dodgy function pointer conversions on
    both the way out (passing the callback function pointer), and on the way in
    (entering the callback). Making the callback not lie about what it receives
    gets rid of the way in warnings, but adds warnings as we pass the new
    function pointer out. However, it already complains about that call anyway.
    So it complains about 6 things in 3 functions rather than 6 things in 6
    functions.
    
    Of dubious worth, but it at least reduces the number of lines you need to
    inspect to verify correctness.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fbb631ceeb6045847357aff6c26654b7936b8ef0
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    imap: exit imap_fetch_binary_init() identically on all failures
    This changes the behaviour, as -1 is TRUE as a boolean.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit bbd5d7316674443fb964230641750a1245431023
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    imap: use human-readable helper macro in remote_ip_is_usable
    More readable, but helpfully shuts up sparse which complained about some
    constants being long.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ed7b5bc903a450a10f0c66820d3b579854ba0923
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    imap: cmd_getmetadata_stream_continue returns bool, not int
    The behaviour is unchanged, but we shouldn't pretend that -1 is different
    from TRUE in a boolean context. Its only caller only cares about whether
    it's 0 or not.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 71e32f990a6b19e00238826e832ac8f8c939115f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    indexer: fix indexer_queue_cancel_all behaviour
    -1 is TRUE. Presumably -1 was intended to be passed to the callbacks via
    indexer_queue_request_status_int(), not 100.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 6094fe2df0a7efe28d45fa37b59755a2bee695e1
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    auth: master-connection - bail on malformed list
    If master is not communicating to us in a syntax we understand, just ask for
    it to be unplugged. This changes the behaviour in this error case.
    
    Previously, we returned -1, which is TRUE when converted to a boolean, and
    thus this changes the error semantics, and may be horribly wrong. However,
    the i_error()s in auth_master_input_line follow the same pattern.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit cc363c8f58762793b4f1949de94fc88c6baeff2f
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    auth: set_credentials callback being passed an enum, not a bool
    This changes the behaviour, as the error case is now mapped onto FALSE.
    All non-zero values of course get squashed into true. Found by sparse.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 8e018b1e83a6e22d8c520186e3e74a4d9fcb8888
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-otp: cast to the correct type of function pointer
    sparse complains about the result of the F() cast being the wrong type
    for the initialisation, which is true. So just cast to the right type
    in the first place.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 42149f48624b82fdf9631c256497580154c2e412
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    imap: fix missing-command check
    It's impossible for the command's pointer to be NULL at this point.
    Previously, the command_find() would have returned NULL, but this check
    presumably short-circuits that search in the trivial case, so has some
    real use.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit dc78180b54a05d5736d0e0e444cba0332265eb62
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-imap: API change - add const to imap_url *base parameter
    We do not change what's there, therefore we can promise to not change what
    is there.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 36f63d7d4997d3893ecc18de1c3742e574a9719c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    auth: sparse static cleanup, and some const cleanup
    All the consts that are added to pointers represent deep const semantics.
    There are other shallow consts that I've not added, as sometimes it's
    better to not be const than have something you rely on change when you
    think it won't.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit c2d398246d2a5bb42beb083370695484142295f6
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    various - 'static' sparse cleanup
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 5a09d089b61d812be7def89509da75a969d9b299
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-mail: tests - trivial sparse cleanups
    One static const, and one more obviously not-an-int integer.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit e9c433c5b8ef9a1b4246ebe10beb90fa01e05caf
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-imap: tests - trivial static and const sparse cleanups
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ba592dc74a004ad47dfe58edcfc1ca7297551e39
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-http: trivial sparse cleanups - statics and explicit NULLs
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit ba5c8b0ae7460752adaf911901bf263788f62c72
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    various - trivial NULL-related sparse cleanups
    These zero-alikes are all pointers, so should explicitly be NULL.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit da7f1a07f583df8905684a7b78469960afd7c78d
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    treewide - mass cleanup of 0 used to end a settings list
    This also includes a change to the perl script which generates the
    all-settings.c file.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit fa4da02c28abb00c722e3e983cf4cc9b28ef0ad3
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib: pair VA_COPY with va_end
    A va_copy creates a initialised va_list, as if a va_start had been done on it.
    Therefore, pedantically, a va_end should also be done on it. On most platforms
    this is a no-op, and for those where it isn't, the pairing is important.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit 9432f88be7329580b59ba265e8873599d86660e5
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    fts: parser-html - parser can fail on attributes='with values in single quotes'
    If that value were to contain an odd number of double quotes, then the
    HTML_STATE_TAG_(D)QUOTED state would be entered and not exited.
    
    The two quoting types behave basically the same, so just add two new cases
    and duplicate the state transition code.

commit c6fea6c517133c53e1b8bc20590bfdfa77a8e84c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    fts: parser-html - parse_tag_name returns wrong value for comments
    This function returns 1 more than the number of additional
    characters to be swallowed up by the state transition.

commit aef3f281e992a8035c6ceeeb1c5a36af662cf502
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    fts: parser-html - parse_tag_name really does return an integer not a bool
    It seems to return 1 more than the number of additional characters
    (after '<') are swallowed up by the state change, not a bool. This
    would imply that '3' is wrong.

commit 915bb1572a406d30013ed3ee83fba7082a6d1bae
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-storage: functions returning bool actually return ints
    Their return values are compared as if they are at least tri-state
    (-ve, 0, +ve), so really aren't bools at all.
    
    Note - this should cause the code to change in behaviour, and thus might
    introduce regressions as previously all non-zeroes would have been mapped
    to 1.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit a9a3687619f38c862849f38db45506cc1d2f8f75
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 27 21:17:34 2014 +0300

    lib-storage: context's dotlock_last_stale really is bool
    It's only ever read as if it's a bool, so it really is a bool. Fix a write
    treating it as an int.
    
    Signed-off-by: Phil Carmody <phil@dovecot.fi>

commit d3d941cc89a8ef5fe0de16bd89e50030e5d22f5b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue May 27 17:01:15 2014 +0300

    lib-http: Fixed assertion failure in http_client_request_send_payload() caused by inappropriate retry attempt.

commit 3bbc5038bbef1397891c3f9ef3afd44ecfeaf457
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 26 04:26:01 2014 +0300

    virtual: Crashfix: Don't deinitialize search args that haven't been initialized.

commit 5b59856b8eb89a8450fe9c48c6e6e359fdd254d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 26 04:05:34 2014 +0300

    lib-storage: Avoid refreshing mailbox list index too often.

commit 64c615dc2a8186b45d0a5188235049f7a0a9e507
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 26 03:58:16 2014 +0300

    lib-storage: Optimize mailbox_exists() with mailbox_list_index=yes
    We can return the existence from the index itself to avoid stat()s.

commit 53cc097d3f8cd789f3c8fa0dfdd02bcda776230e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 21 18:12:05 2014 -0700

    lib-storage: Added mailbox_list_index_very_dirty_syncs setting.
    This setting assumes that the mailbox list index is up to date and uses it
    without stat()ing backend mailbox files/dirs. (As a possible future TODO it
    might be useful to still do the stat()ing, but only rarely.)

commit b36a03e5ad84039d63b024cada151768448c48e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 21 06:28:36 2014 -0700

    imap: If we're waiting for client to read data, show in process title how many bytes are buffered.

commit 10ff47d5d6146995e16da00d36eca7d162064a7b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 21 06:21:16 2014 -0700

    lib: Added o_stream_is_corked().

commit aac7ed9f78d9435d6f615b33576fe56cc3c7a933
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 15 23:41:55 2014 +0300

    lib-imap: Use case-insensitive comparisons everywhere for imap_id_send setting parsing.
    "os" and "os-version" were case-sensitive while others were not.
    Patch by Apple.

commit 7ab62198bfb9ac210b11ea7a147234e0f72f6448
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 15 13:26:40 2014 +0300

    virtual: If backend mailbox hasn't changed, we still need to build its uidmap.

commit bd7fe09b7e54d58357bb82379bf2a358fa7e141d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 14 12:46:25 2014 +0300

    imap: Fixed enabling METADATA if imap_capability string was explicitly set

commit 5e9e9f07ba5177d4208581b77434ec6368cdaa8a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 14 12:28:17 2014 +0300

    lib-fs: Make sure we don't leak data stack.

commit 917f7f4f7f65342fd85df95cde1662902a27a1e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 13 15:46:01 2014 +0200

    lib-storage: Don't leak memory if mailbox_save_set_flags() is used multiple times for keywords.
    This affected only some external plugins.

commit 70058d29cf8c77501741ddbc39178cfc87ca459e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 12 13:21:28 2014 +0300

    dsync: If incremental sync fails because of desync, log the reason why

commit 9f240e2ce97176146b63506a8ee04034f712cf45
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 12 12:51:50 2014 +0300

    dsync: mailbox_metadata.cache_fields must be copied to permanent memory.
    Any other call to mailbox_get_metadata() would have cleared the memory.

commit 82038c5b86b4cd891705e03812a08508c58f2a89
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 12 12:18:46 2014 +0300

    acl: Empty negative rights list should be the same as NULL negative rights list.
    There may be other places where this should be fixed, but this at least
    fixes errors with dsync where "-user" entry without any rights was attempted
    to be synced in dovecot-acl (although such entry shouldn't really have
    existed in the first place).

commit 948a14de7114334f6b62189f69c182c66ed70803
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:52:30 2014 +0300

    lib-mail: Compiler warning fix

commit 4a723b1e71cd5d7e24a14dc1a5fc2dfc39b35ec4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:33:21 2014 +0300

    Added signature for changeset c55c660d6e9d

commit 37e437f4ec505a912e62b7f37d5e78ec8fed63cd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:33:08 2014 +0300

    Added tag 2.2.13 for changeset c55c660d6e9d

commit dc95c51f74a96eaf6491e06e2b3809d76ba723c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:33:08 2014 +0300

    Released v2.2.13.

commit 2d310b66c9e541e4a3db7bac89b01534f486bb95
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:32:19 2014 +0300

    lib-mail: test-message-header-decoder unit test fixed

commit e701ffed37946cd88b3dfeb6bcfe25027d563d40
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:31:54 2014 +0300

    lib-mail: Fix to previous message_header_encode() commit

commit ff2619b17bc82c49e3f3e13a1806be4c021f544d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:19:15 2014 +0300

    doveadm penalty: Fixed using -a parameter

commit a7dcd5b93e608feeffe980e268eac6c5b9f5b21c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 22:15:08 2014 +0300

    lib-mail: message_header_encode() now preserves folding whitespace
    This function could still use some cleaning up, but good enough for now..
    
    Also it should try to minimize the encoded words, not necessarily encoding
    everything between the first and the last words that have to be encoded.

commit 5b6e0b6569d5e79ddb868525063cfd04009437b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 21:08:51 2014 +0300

    lib-mail: message_header_encode_[bq]() now explicitly takes the first line length parameter.
    So this change partially reverts the previous change, because
    message_header_encode() was actually internally relying on this behavior.
    The explicit parameter makes it clearer.

commit 63007f6d2a501132d5312aebb7f0d30f1d00d0bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 11 18:28:03 2014 +0300

    lib-mail: message_header_encode() no longer tries to lookup the first line's length from output string.
    This function is used only by Pigeonhole, which only uses it for empty
    output strings, so it's not useful there. Also that behavior is somewhat
    unexpected and confusing.

commit 2be0260dec4f4726512f7d26a9c0ea32b979a4df
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 18:07:30 2014 +0300

    Added signature for changeset 791ec610422c

commit afde22a2fa303cc141f1bb64694b5519a683a83c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 18:07:23 2014 +0300

    Added tag 2.2.13.rc1 for changeset 791ec610422c

commit c4d59dcd70df69718a4af8a5bf25788565045521
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 18:07:23 2014 +0300

    Released v2.2.13.rc1.

commit 8d35582f2577c64517b2341c5d6477c7010e0a0c
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu May 8 15:53:27 2014 +0300

    treewide - use of explicit NULL in pointer comparisons rather than 0-alikes
    
    Found by sparse.

commit aac02871f096a42d4146dd7d104a7302a570b2b5
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu May 8 17:01:26 2014 +0300

    lib-storage: maildir - don't use a bool to store a char

commit b49aa341d28c0eec1229e30baa2f89d5bae52ff8
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu May 8 15:56:25 2014 +0300

    lib-storage: pop3c - fix invalid blank password check
    
    The pointer will never be NULL, as it's initialised pointing to an empty
    string, and can only be overridden by setting it to another string. So
    the test always failed. Instead, check the 1st character of the password.

commit 7da0a157dbcb64d3e97c01bcc87262bd944c6890
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 17:02:19 2014 +0300

    lib-storage: Removed unnecessary code.
    mailbox_dir_name is never NULL, and when it's empty it can be handled
    exactly the same as when it's non-empty.

commit 01615760737fbb249226ced6877e8fbad993ce71
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu May 8 15:11:26 2014 +0300

    Removed unnecessary #includes.

commit 99399f061df83272be34fdf61c404b8b8f6943e3
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu May 8 14:57:56 2014 +0300

    run-tests.sh: Add support for reading valgrind suppressions if they exist.

commit 07c2fc4093cfa29039f645027969b2f4706a90d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 14:34:39 2014 +0300

    lib: fd_read() didn't check the msg.msg_controllen size correctly

commit ff0dc0d91dab80b76c26c6abf45918f25eb4bf7e
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 6 12:44:38 2014 +0300

    lib: cosmetic - rename parameters so that .h and .c files match
    
    These functions were flagging sparse warnings, but those warnings are
    trivially (robotically) dismissable if the parameters are identically
    named in the two contexts. Opted for whichever name seemed to be more
    meaningful or sensible. e.g. char** became p rather than s, as it's
    a pointer more than a string.

commit f71ebf27d44390c49b4cce80848302fafaea1bed
Author: Phil Carmody <phil@dovecot.fi>
Date:   Thu May 8 11:20:36 2014 +0300

    lib: wildcard-match - use NULL not 0 for pointers
    
    Flagged by sparse.

commit df831edaa3b3aa22e03bc5fd416a0553c5600a69
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed May 7 16:52:22 2014 +0300

    lib: a couple of trivial sparse cleanups
    
    The #include isn't needed on modern linux, as the macros are already defined
    The compiler seems to silently ignore redefinitions in system header files,
    so didn't throw a warning, but probably should have, as redefinitions can lead
    to insanity.
    
    The cast just makes it explicit that we're changing the prototype.

commit 274c54ac76df5f83d1a7666929256d267d738ee5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 14:11:46 2014 +0300

    lib-storage: Make struct fail_storage/mailbox/mail_vfuncs properly extern.
    These could be useful when implementing some new dummy storage backends.

commit 0b3e92b6043435c5aa9f1cf1d04b632f3e19abd9
Author: Phil Carmody <phil@dovecot.fi>
Date:   Tue May 6 18:10:55 2014 +0300

    treewide sparse cleanup - make single-unit-only data static
    
    Helps keep the global namespace clean. Not all the things suggested by
    sparse have been moved. All DOVECOT_ABI_VERSION strings, and anything
    replicated in all-settings.c by src/config/settings-get.pl has been
    left untouched. Some of the latter could be moved, but the script would
    need to be modified to replicate the 'static' (it outputs 'extern').

commit 64e75f0c95e491debf4b3bc7091d0335d0f63646
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 13:45:37 2014 +0300

    lib-storage: Code cleanups and potential crashfix.
    Usually in blocks_count_lines() the full_input stream reading doesn't return
    eof=true in the last read but only on the next. If this had changed for some
    reason the code would have crashed in the assert checks.

commit 543879eef70ed2a7ec14f5706c64c021652ad3ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 13:27:43 2014 +0300

    fts-tika: Removed lib-http kludgy workaround, which is no longer needed.

commit d8fc51fca32881dd6d63519122eec15e185350bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 12:39:10 2014 +0300

    Make static analyzer happier

commit 258fd0e4b4788194e8525b041138f8b2a8530937
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 11:29:34 2014 +0300

    Fixed compiling when building without SSL support.

commit 497803a92be10f8a4594c11cd1a04ae26d7351c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 8 10:21:56 2014 +0300

    run-test.sh: Valgrind version check was broken for v3.10+, removed it entirely.
    RHEL 5.9 has valgrind v3.5 already, so there shouldn't really be any
    important OSes using old valgrind that we need to support.

commit ea918d503ae61496e10103935028d3cc6419f1cb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 23:32:28 2014 +0300

    dsync: Make static analyzer happier (hopefully)

commit 0d238cec9a9444742b1ba43f3b46db0ca7863492
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 23:26:57 2014 +0300

    lib-mail: Added asserts to make static analyzer happier

commit 1b6228f23fb87733da13ac1057cf70fe513d30a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 23:25:50 2014 +0300

    Fixed compiling on systems without MAP_ANONYMOUS
    For example OSX.

commit a8672a757f6f9a610d9bf1e65bd3503904f44f1f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 23:22:13 2014 +0300

    auth: Minor code cleanup

commit 55bfe6c008cb8872ff6a917daaabc4f2e81c0fe2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 20:24:05 2014 +0300

    auth: LDAP errors may have crashed the auth process.

commit ac4f179bd60c1738cad4ba10f825a67496d3f715
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed May 7 20:21:02 2014 +0300

    lib-index: Fixed detecting broken strmap index file (thread index).

commit 8208398b7fc13d294d3311fe93ac8f0c68ed9458
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Wed May 7 20:18:39 2014 +0300

    pop3: Remove dead assignment detected by scan-build.

commit 42b6ab2c6c5800cd1ad520d0b91cb4acb31d09a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 20:14:32 2014 +0300

    doveadm: table formatter printed header unaligned if it had hidden titles.
    This was broken by the previous table formatter change.

commit 7e428afa350650f2f5b45feac2729a28f891d16e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 19:47:12 2014 +0300

    lib-imap: IMAP parser didn't parse atoms correctly that started with '~' character.
    literal8 begins only after "~{", not immediately after "~" which is a valid
    ATOM-CHAR.

commit c9c20b28081218c0af83d36283abb0a8c6cc6125
Author: Phil Carmody <phil@dovecot.fi>
Date:   Wed May 7 18:39:23 2014 +0300

    lib: fix md4/md5 buffer read overrun
    
    uint_fast32_t may be 64 bits and read too many bytes at the end of the buffer.
    This didn't actually break anything as long as there was 32 bits of readable
    memory past the buffer.

commit acc72c40c5bfe818013e0ae9c9e73eb90ae8fbb1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 19:34:42 2014 +0300

    fts-lucene: Don't mix definite + maybe queries for now, since it returns broken results.

commit 6da2d4faed507f513c68b94bb56a13caeeb3ff4a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 17:26:21 2014 +0300

    *-login: SSL connections didn't get closed when the client got destroyed.

commit 3b65d5b306f25bb80660bcb4f9eda9e22d38ab52
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 17:12:19 2014 +0300

    acl: Global ACL file used only the first matching rights line, not merging all the matches.

commit 0737a4fe0b83a05f335a8ad02e833b62565a36da
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 16:41:34 2014 +0300

    lib-storage: Fixed assert-crash when looking up private flags for a mail being saved.

commit 48d8312488089dc1a8360991f0881d91095c21ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 16:36:54 2014 +0300

    mdbox: Fixed race condition when creating a new mailbox and another process getting its GUID.

commit b0114f9348060796a29a9042af757e8f99cdd422
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 13:02:29 2014 +0300

    liblib: Added unit test for hash methods to make sure they don't do read access beyond buffer.
    This currently fails for MD4 and MD5, so they need to be fixed/replaced..

commit 443fd76b8dfbb708bf2eab8bf5fe7440cc90eb13
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 13:01:17 2014 +0300

    lib-compression: Added some unit testing for lib-compression.
    Not perfect in any way, but at least tests if things are completely broken.

commit e01414d0975332e9f3a0a65e1e2f75fb482a233c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 12:27:36 2014 +0300

    lib-compression: gz compression didn't handle multiple flushes correctly.

commit f6a21dbf70e816c33bfb1ce91728d06bd7d5758f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 12:26:58 2014 +0300

    lib-compression: istream-lz4 shouldn't crash when closing the stream multiple times.

commit 38ec64f181318ba87481fe820abba6caa86d1ca6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 7 12:26:38 2014 +0300

    lib-compression: Fixed LZMA compression.
    The code now looks more like the doc/examples/01_compress_easy.c distributed
    with xz-utils. Most importantly this changes LZMA_OK to be allowed as a
    result for lzma_code(zs, LZMA_FINISH).

commit d97801ee5fa37b8635ccd0ba798a257969ef1691
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 6 15:34:00 2014 +0300

    pop3: Fixed assert-crash with some settings when there are 0 mails.

commit d8d50edd0fddcc98582edc0301eb01e90ff0b9b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 18:37:16 2014 +0300

    mkdir_parents(): Handle mkdir() EEXIST errors that may happen during race conditions.
    We don't care about EEXIST errors that happen when trying to mkdir() parent
    directories, only if it happens when mkdir()ing the last directory.

commit 3d14f452f62077f849a1fce9f302843c2635f108
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 16:24:53 2014 +0300

    auth: If authentication fails, never send back "nologin" field.
    This only causes confusion.

commit edd3573b249c7cc824d55897b77a768be3a2e13e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 16:02:48 2014 +0300

    message_header_decode_utf8() wasn't used correctly with NULL instead of FALSE parameter.

commit 66f9709e0c7604e2282b930b6a48fe9f0dd20ab8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 16:01:58 2014 +0300

    lib-storage: mail_get_headers_utf8() now replaces NULs with spaces.
    Perhaps there should also be another API function which actually allows
    returning strings with NULs in them.

commit b5ad250aeacc094b84cce08eeab227d0ec14fb14
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 16:00:52 2014 +0300

    doveadm mail fetch: Use mail_get_headers_utf8() when fetching hdr.*.utf8
    This doesn't really matter but may allow minor optimizations later.

commit a5f1628ad97ad649bfef86c84c3afc1d9cb0f326
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 15:39:58 2014 +0300

    lib-mail: Added message_header_encode_data() to support encoding also NUL characters.

commit 513928e1d3eb3943c535732d693eadc387a4c2c3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 15:05:20 2014 +0300

    liblib: Added str_append_data(), which is simply a wrapper to buffer_append()
    This is intended for appending data that may contain NUL characters that are
    wanted to be added to the string.

commit 36f614569bbff9a10717c9362b070ded8836f973
Author: Phil Carmody <phil@dovecot.fi>
Date:   Mon May 5 15:09:27 2014 +0300

    lib: quell sparse "warning: Using plain integer as NULL pointer"
    
    The first element of the structure is a pointer, make that explicit.

commit fb69cdfbcb5e9f235f5621fdfc66c70cac554dbd
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 14:57:13 2014 +0300

    lib-mail: message_header_encode() needs to encode control characters as well.

commit fc5f51f1c27e7d3cb2d7b233f43c7b968b983ddb
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 14:28:33 2014 +0300

    auth: Added %{orig_user}, %{orig_username} and %{orig_domain} variables

commit 7da99e97d68f854b8726755d36dfb24b6cf08701
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 14:18:31 2014 +0300

    imap: Brought back the original SEARCH PARTIAL code with the minor fix that it actually needed.
    The new code in v2.2.11 was completely wrong. The code in previous commit
    was broken with SORT. The original code was correct otherwise, except it
    couldn't handle partial1 pointing past the valid range.

commit e0bca7e18f2cd90038a07cea7298e0ea688de29f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 14:02:58 2014 +0300

    imap: Fixed SEARCH PARTIAL to work correctly with UIDs and with SORT results.

commit 199566f5a171b2c43b9a5254634f6bf47b8baca8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 5 14:02:16 2014 +0300

    Added seq_range_array_remove_nth()

commit 464e82904c6670bd6c96b8793ceb294d776d6f44
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 19:31:49 2014 +0300

    dsync: If we notice that incremental sync won't work, don't continue doing it.

commit 27712ff41adb9564e946a3f392c90da918c8a2e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 15:43:30 2014 +0300

    imap: Allow longer ID command parameters without disconnecting the client.

commit 9559586a78b7b21e0b74748c427e0a252242be40
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 13:48:36 2014 +0300

    maildir: Maildir S=size fixing now works also with zlib etc. plugins that modify the files.

commit fe0d19245382de9d4710d6ed0f7977ff5be4b3b2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 13:36:00 2014 +0300

    maildir: Returning mail's received/saved date or refcount was sometimes broken with zlib plugin.
    If the value wasn't already cached and the same transaction also accessed
    the message body, i_stream_stat() was used, which ended up to
    i_stream_seekable_stat() due to caching the file, which didn't again fstat()
    the actual maildir file but just used some internal values.

commit 61114b4718d198f034f83778c131dbc0a07fd6f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 13:21:18 2014 +0300

    kqueue: Changed all i_fatal() calls to i_panic()s to make debugging them possible.

commit c5bf07c1339a288701e7566e6f90c4034ee74c24
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 12:11:54 2014 +0300

    lib-index: Fixed crash when header fields count was too high in cache file.

commit 15bfe73fb3988bb80e6afe6a60b9a715c7207600
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 11:58:52 2014 +0300

    lib-storage: mailbox_settings_find() now takes namespace parameter instead of user.
    This fixes an infinite (until stack gets full) loop with shared mailboxes:
    mail_namespace_find() -> mailbox_list_get_storage() ->
    mailbox_settings_find() -> mail_namespace_find() -> ...

commit bddb1ba6c9046d35f35cc6d71839bb4baa0879e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 11:40:05 2014 +0300

    auth: Fixed userdb extra fields handling in passdb failure.
    userdb prefetch -flag wasn't correctly set, causing the prefetch userdb in
    some situations incorrectly either to be called or not be called.
    
    This also fixes a crash when using userdb static and multiple passdbs. The
    userdb_reply was set to NULL, which caused a crash later.

commit be48f0e5693530f97f60c6f9dce8c8c08a38b584
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 11:12:58 2014 +0300

    imap: Make sure we don't return empty "* n FETCH ()" reply, which violates RFC 3501 ABNF.
    It happened only during error conditions, and it would be a bit too much
    trouble to try to remove the reply entirely, so just append the message UID
    there.

commit 6165a82cdc4eeb33a7bbbd8cd9489e42f8efd4a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 11:06:27 2014 +0300

    imap: If FETCH BINARY fails because of invalid MIME part data, return [UNKNOWN-CTE] error.

commit 2a5d68cfbf64c4708e0f92efd59ed74e50e7887d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 10:40:12 2014 +0300

    example-config: Removed mail_nfs_* settings, since they shouldn't be used anyway.

commit 5d2c8976dce46f51458c3a4622f8450c0c142870
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 10:35:05 2014 +0300

    lib-storage: Mailbox list indexes didn't use mail_fsync setting.

commit a406615fbcef37b1d12f0be95a70abf23238c5ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 2 09:29:05 2014 +0300

    virtual: Fixed assert-crash when doing changes to backend mailbox via the virtual mailbox.
    Caused by the recent lazy mailbox opening changes.

commit 9456a4a3e74929f9d3d5b00b93be6d8eb69bc52a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 30 18:46:55 2014 +0300

    lib-storage: mail_never_cache_fields=* means now to disable all caching.

commit ceac44e7560fcbf6fc2f932c7b624a5055dc3bc9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 30 17:37:43 2014 +0300

    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.

commit 8bc87e22fecd20797112b86778a961b08dc1f5c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 30 06:08:46 2014 +0300

    dsync: saved-date doesn't need to be looked up until mail body is being read.
    This should improve the performance when the saved-date isn't already cached
    or otherwise quickly accessible.
    
    This change also makes dsync slightly incompatible with earlier versions.
    When using dsync with an earlier version the saved-dates aren't synced. It
    would be too much trouble to try to preserve full backwards compatibility,
    especially because saved-date doesn't matter so much and isn't even visible
    to IMAP clients.

commit 9f09d0832d733e434b17ca71ae1837fa4460c4ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 30 06:03:56 2014 +0300

    maildir: Make sure the filename contains S=size and W=size even if GUID doesn't.

commit 5192589b0f8942a741c8ea58bb45377b2703d752
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 16:44:58 2014 +0300

    maildir: Make sure we don't replace correct mail sizes with broken ones when preserving GUID.

commit 108340ffacae3b7d09fa51b566d77aa51dd6483b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 16:14:14 2014 +0300

    lib-mail: test-istream-attachment updated

commit dce10c2f67cd90f6d5fef9691d2493fdea5b42a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 16:15:09 2014 +0300

    lib-mail: istream-attachment-extractor didn't correctly handle increasing base64 line length.
    Based on patch by Pavel Stano

commit ba8c3c767dad12e9b998613a311c3502f9aaa565
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 16:03:17 2014 +0300

    lib-mail: istream-attachment-extractor handled mixed LFs vs CRLFs correctly.
    Unless all the lines have the same newlines, the attachment can't be
    recreated back exactly the same.

commit a7c8901e0d080a94243d071a9ffc55beeaef0c5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 13:57:44 2014 +0300

    lib-mail: Added more tests to test-istream-dot.

commit ba8ff75a149d6936f769a2d1dfceaab9da87863b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 13:35:06 2014 +0300

    lib-storage: Fixed crash if mailbox_save_cancel() was called in save_finish()/copy() method.

commit b9ec0443d7d8afebfe61c17a9d692d6fad30c276
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 13:10:28 2014 +0300

    lib-index: Small code cleanup

commit a0261d4fe4dfd422a051e474482e88785c04ee41
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 12:35:05 2014 +0300

    istream-lf: Cleanup & performance improvement.
    memchr() is faster than lopping through the data ourself.

commit fd4eaea7f7e8e41eb80efa5838d82ae7c1384f72
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 00:53:01 2014 +0300

    dsync: Yet another fix to working with old versions.

commit b8cf3beb93988550083e587f7c15afbca7e68de4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 00:50:08 2014 +0300

    lib-lda: More smtp-client.h API changes to support multiple destination addresses.

commit 816fa4d6c267469c4609bbbb3f5c989e19e1c60c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 29 00:48:54 2014 +0300

    dsync: Fixed new dsync versions to work again with older versions.

commit 40440c0fee87be994ba7eb60fc3512a9355708aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 28 20:14:03 2014 +0300

    dsync: If incremental dsync finds that its state is stale, retry (later) with full sync.
    This works only when the master itself notices such changes locally. Remote
    changes aren't noticed, because the master doesn't send the state to remote
    dsync and the master is also the one that decides which mailboxes are
    synced. The fix to this probably means sending the state string to remote
    dsync and have it check if the state is still valid (= protocol change).

commit 7d315281ae13a66e13da2b1ad006bdb883018278
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 28 20:10:56 2014 +0300

    dsync: Include messages_count in the mailbox states.
    This allows detecting that stateful dsync can't be done when message count
    is suddenly wrong.

commit 089acbfed9532c40fdc7fe31ed5e32cc1824e846
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 28 19:12:01 2014 +0300

    dsync: Finished previous change to actually compile

commit f59c16625dc8fb1b734fddbba58012ec42cf945d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 28 18:34:27 2014 +0300

    doveadm replicator add <user mask> command added.
    This allows quickly adding users from userdb that don't exist in replicator.
    For example "doveadm replicator add '*'" adds all the new users from userdb.
    
    This isn't really necessary though. Users will be automatically added as
    soon as their mailboxes change in some way and replicator gets notified
    about them.

commit 466d1b7778d98555bfeac1482ed9ae55df544a7a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 28 18:24:04 2014 +0300

    dsync: If dsync was started via doveadm-server, show the remote client's IP address in ps output.

commit b36e026fb1e31bb76524cb345eb40c73e528507b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Apr 27 19:05:38 2014 +0300

    lib-http: http-client: Prevented http_client_request_continue_payload() from segfaulting when the callback sets the request pointer to NULL.

commit 0d5c9a80e91a4073d5fd6820e9ddce2755221f64
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Apr 27 19:05:35 2014 +0300

    lib-http: http-client: Forgot to switch dns-client io_loop in http_client_request_continue_payload() in ealier change (6c3bd941e153).

commit 880230bc289dab1bfad4b0aceb0ee9031b7d4767
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 26 22:40:14 2014 +0300

    lib-http: Fixed problem with connections idling indefinitely.
    Forgot to check for idle connections when request finished after waiting
    for payload to be read by application.

commit ea2c9ff03053b7d255984d6bbcb3a48c052d1e4d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 19:01:09 2014 +0300

    lib-http: Better error handling fix for payload read/write failures

commit 5777eef991bdb9dc487e9b8e8da8a4579fc67f6c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 18:55:31 2014 +0300

    lib-http: Failed payload read/write error was handled wrongly as "stream input size changed".

commit d5e839aea288aceaddae28a1578cebda3c9e3b58
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 18:03:36 2014 +0300

    iostream-temp: Improved stream naming.

commit cd8a262bdd0b55a3bf53d9aa54fc3008a61d7f8d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 17:29:18 2014 +0300

    Compiler warning fixes

commit e475db821baf0c4680dec4441d033697ecebfe06
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 17:28:39 2014 +0300

    dsync: Added more debug output

commit eac7ab8d3722525198170a407d60dfb48abce1cd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 16:35:51 2014 +0300

    doveadm dump: Added support for mobox extensions in dovecot.index.

commit 290ef515581317a0ff53643e2535fccefb5a3f1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 16:18:09 2014 +0300

    lib-lda: Use the new smtp_client_init(), not _open()

commit 829b29f8b9b4ca6bd596960768ba58f2274c3540
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 16:15:20 2014 +0300

    lib-lda: When non-RCPT/DATA command fails permanently, translate it internally to temporary failure.
    We shouldn't be answering permanent failures to RCPT/DATA command when the
    failure really had nothing to do with the recipient/content itself. Most
    likely it's just some server misconfiguration, which should be treated as
    temporary error.

commit b78d055f9dca53bca2efe939dca5074dbc47ea2d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 15:57:03 2014 +0300

    lib-lda: mail_send_rejection() logs permanent rejections now with info level.
    There's no need to log an error when return-path is invalid.

commit d9424f379126702755073fdae6ce94dbfad56958
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 15:54:49 2014 +0300

    lib-lda: Added new smtp_client_init/deinit() APIs
    The new API allows better error handling.

commit 2262531bc5fe37a8675b430cc5aae10ee397cb4d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 15:52:37 2014 +0300

    safe_memset(size=0) triggered read access to data[0], possibly crashing.

commit b7540564b9d7b69ce8f6e5a80011ccd5f8b86005
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 15:46:20 2014 +0300

    lib-http: Added more information to "stream input size changed" error

commit 3a61b68f1b3166e6f63dcd5d7d996133e6571c5b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 15:31:08 2014 +0300

    lib-lda: Removed unused mail_send_forward()

commit 66f7fc500f134274c67c836a1de1128221b5bcae
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 25 10:49:45 2014 +0300

    dsync: If a parent \Noselect gets autocreated, don't fail later when trying to re-create it.

commit 3ef4aca8cae3e335e1fe53591049cb80b299c459
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 24 18:18:42 2014 +0300

    dsync: Fixed high data stack memory usage

commit f20e7fbdc9bdbe8fecb9c661c9b8175f3bb78c69
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 24 13:49:25 2014 +0300

    i_stream_read_next_line(): Set also errno=ENOBUFS on too large line.
    Some callers assume that errno is set to same as istream->stream_errno

commit ab779efe68458cf6fdcaa4f99527685d5563df0a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 23:26:49 2014 +0300

    director: Fixed handling weak users when there were exactly 2 director servers in the ring.

commit e256ae453eb7b4495b3491062bce7c66f2fb1d81
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 22:33:48 2014 +0300

    doveadm director map -u: Don't connect to director socket, it's not needed.

commit 3957200d949c6e96c4184db2395444d723950583
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 22:30:28 2014 +0300

    doveadm director map: Added -h and -u parameters to quickly map between username and hash.

commit cac19595c35d7477f7b911805da60a7f6c898bcb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 22:15:28 2014 +0300

    doveadm director map: Show also the username hash.

commit 6d568a2a557a86725414e11ba271add13fa01b44
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 22:13:08 2014 +0300

    director: When logging about request timeout, log also the username hash.

commit f57e4c0f2824b93d09d7634974a7e2a47cb8ee0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 20:55:04 2014 +0300

    doveadm replicator replicate: Added -f parameter to force a full sync for user.

commit cb9d0f3078dbee1334a028b19b69c4573aac6035
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 20:53:55 2014 +0300

    doveadm replicator replicate: -p parameter wasn't working correctly.
    We were just replicating the "-p" as the username.

commit 5b59eecbc256c9a9a532bdfa387baaaf7e7acde3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 19:21:40 2014 +0300

    dsync: Added assert

commit dc4f9e03983ef3040bddfd347b27fb0e3fe9395b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 19:20:23 2014 +0300

    dsync: When initializing via doveadm-server, change the iostream buffer sizes to unlimited.

commit 556f95092c3bc850517d5ab2bb502024a55645f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 19:19:24 2014 +0300

    Added o_stream_get_max_buffer_size()

commit a385399497bdb50d4dfce729ffc852b75ed46a36
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 16:45:10 2014 +0300

    virtual: Fixed assert-crash in IDLE caused by earlier changes.
    This change negates all the improvements of the earlier changes when IDLE is
    used. This could be fixed by using mailbox-list-notify.h API.

commit 3e1d94509fd76c56f2eb54f98ea02ade9ac2d44a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 23 16:31:36 2014 +0300

    virtual: Delay initializing search args until the mailbox is actually opened.
    Fixes assert-crash caused by recent changes when virtual mailbox search args
    contained e.g. keywords.

commit b13a8e19e0b6444e21cb43bb76460c39f9949cd0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 22 13:15:21 2014 +0300

    safe_memset() wasn't safe with modern compilers anymore.
    Another try based on David Jacobson's code in
    https://www.mail-archive.com/openssl-dev@openssl.org/msg34134.html :
    
    """
    Since vs points to a volatile, the load in the while clause actually has to
    be done. That forces the compiler to actually store c into at least the byte
    that is tested, in practice byte zero. But the fact that the index is
    volatile zero, and since it is volatile it could spontaneously change to
    anything, the compiler has to store c into all bytes.
    
    The key observation is that while you can't pass a volatile to memset (you
    get a warning and the volatile gets stripped away), you can use a volatile
    in a test that could go the wrong way if the memset were elided.
    """

commit 67e0afe62b26d222614b8d817155bf5c74bd7fe0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Apr 19 11:23:18 2014 +0200

    connection: Added support for creating a stream from input/output stream pair.

commit 856ae2ad98cee79b2719911a3cc131d7f4ec8a90
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 19 11:21:47 2014 +0200

    lib-http: Fixed resource leaks in http_client_wait() occurring a dns_client is used.
    If all DNS lookups finished before the end of the wait cycle, the dns_client would not be switched back to the original ioloop.

commit 994a2b017b5b7da97914baa1ef711b124c8d15a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 19 11:21:19 2014 +0200

    lib-dns: Added dns_client_switch_ioloop().

commit 7cb40f22322214d363ccc0f3e451d1341cf65cda
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 19 11:07:45 2014 +0200

    ioloop: Fixed segfault crash in io_loop_call_pending().
    When a callback called io_set_pending(), the io_loop_call_pending() loop
    crossed the end of the ioloop->io_files list.
    
    Based on patch by Stephan Bosch

commit 57b523eeb99ed5d7f5002907a409cdef54353ce5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 16:42:02 2014 +0200

    fts-lucene: Added mime_parts parameter to index MIME parts as separate documents.
    This is in preparation for being able to actually read such information and
    show it to clients via some new IMAP extension.
    
    Also it might be better to index some MIME parts together to avoid wasting
    disk space, but for now this is all or nothing. For example anything that is
    "message body" could probably be indexed without the part number at all.

commit ad3951538244a30d06b1640204e053d814d22a4e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 16:35:05 2014 +0200

    fts-lucene: Fixed "doveadm dump" crash when built with stemmer

commit 3e7c452d738b53faaf373b9a57384b59d6ea56c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 16:18:02 2014 +0200

    lib-mail: Compile fix for last change..

commit 69111aa5f9df3c49aeefbe0ac6118cf80c7520f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 16:12:00 2014 +0200

    fts: Added message_part to fts_backend_build_key.
    This allows FTS backends to index MIME parts separately from each others.

commit 6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 16:09:52 2014 +0200

    lib-mail: Added support for struct message_part <-> index number translations.

commit f684e87d4e2d192efdf5984d18fcede3f5a33771
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 16:04:13 2014 +0200

    lib-mail: Moved struct message_part to a separate message-part.h

commit 544a727de8ab0e6c55cab18a7ee475fffdf5eff3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 14:24:18 2014 +0200

    auth: If passdb/userdb has a name, use it for the log prefix instead of the driver name.

commit 6135260095e1704ed6edff9d00bdfc043c11429c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 14:21:55 2014 +0200

    auth: Use special AUTH_SUBSYS_DB/MECH parameters as auth_request_log*() subsystem.
    This avoids hardcoded strings all over the place and also allows assigning
    the correct passdb/userdb name for log messages generated by generic
    passdb/userdb code, which doesn't know exactly where it was called from.

commit 214fc90c61133ea4a3521dd7313fe488a55ac0c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 12:26:46 2014 +0200

    imapc: Fixed fetching specific headers without imapc_features=fetch-headers

commit ce87b647a0418ec4a6f4e860a9c918b2331ab353
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 10:29:10 2014 +0200

    fts: Added fts-parser support for Tika
    It can be enabled by setting:
    
    plugin {
      fts_tika = http://localhost:9998/tika/
    }

commit 4682f86ba3e1e019fc6f348d95cec17a429287cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 10:27:43 2014 +0200

    fts: Never put text/plain contents through fts-parsers.

commit 3ad57148af55e45cc45401162d3460ed0b237a10
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 10:26:11 2014 +0200

    fts: Added unload() method to fts-parsers to allow them to cleanup before plugin unload.

commit a0613a630a412b0649b83c40c83f9fcfe50e1ad7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 10:17:09 2014 +0200

    lib-http: http_client_request_finish_payload() no longer waits for the entire result payload.
    The caller can now read it instead, or just discard it by not reading it.

commit f8e6a1246e8ec66bf75c85edfe0797aa68808d8e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 17 09:45:55 2014 +0200

    fts: Free fts-parser on failures.

commit c61a85ec5d46c698b61a51eef1e8a8255a503d11
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 16 18:19:57 2014 +0200

    doveadm replicator dsync-status: Show replication type as "-" for non-working dsyncs.

commit 0dfacbe4cb9a16c0cdaed535a9ce2bae8e25e4f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 16 16:05:12 2014 +0200

    maildir: Added maildir_empty_new setting to avoid keeping mails in new/ directory.
    This is useful for example when using an external MDA that calls "doveadm
    index" and the user hasn't opened the mailbox for a long time.
    
    Also this removes the delay that user may see when opening a rarely accessed
    mailbox, which renames a ton of files to cur/ while the user is waiting.

commit b20018e457fd8816663f30c862552e09e6fca81e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 16 15:44:46 2014 +0200

    fts-solr: Removed unnecessary code

commit 8af300dd69394d27208e9665f1716846f5f40f29
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 16 10:40:28 2014 +0200

    replicator: Improve logging import/export errors.

commit d48fcf2c089269a967fb9efdacc428ace89fc91c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 16 00:13:42 2014 +0200

    fts-lucene: Fix to previous change. We allocated way too little memory.

commit 4c0aff96fc7e6d779be43458f96cbf015849a3de
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 16 00:04:29 2014 +0200

    lib-storage: Further changes to mailbox_alloc_guid() caching.
    We'll now cache the GUIDs forever and force invalidation after mailbox
    rename or when mailbox GUIDs have been updated. This is what dsync needs,
    especially for good performance, and currently there aren't any other users
    for this API.

commit d6499957ea59e6d9729d3350d9ac5eae992635f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 23:44:54 2014 +0200

    lib-storage: mailbox_alloc_guid() shouldn't refresh GUID cache on every nonexistent GUID.
    Refresh it only if we know it has had some changes (made by our process) or
    timestamp has changed. This should handle the cases that are currently
    important (=single dsync run).

commit debafc38f98c84dd14ccca9f2d2983dc8faa9aa7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 23:41:50 2014 +0200

    dsync: Fix to previous commit to actually compile..

commit a4667f4238009388e48051209d0a6f91b33dc047
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 23:23:37 2014 +0200

    replicator: Fixed crash caused by "doveadm replicator dsync-status" in some situations.

commit f038c71a96544bd4e8025ce528e749cce6a7adc1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 23:02:11 2014 +0200

    dsync: Fixed giving -n "" followed by other -n parameters.

commit 37e5638ddf924fd4a07623095dbc028c564f7192
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 22:28:26 2014 +0200

    fts-lucene: Don't allocate large amounts of memory from stack.
    This probably only happened for huge header values.

commit 2e08b126fd1a168c993b1c8c0d1211da236ff604
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 18:24:31 2014 +0200

    replicator: Added "doveadm replicator dsync-status" command.

commit 079951cc727e403ed5a456b96f69dcf0a7611f5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 17:42:31 2014 +0200

    dsync: If remote command fails, show the full command in the error message.

commit 46d352bb5bb1e2d69596852427f291a1b29c7bcf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 17:33:12 2014 +0200

    doveadm-server: Using any command line parameters caused crashes due to missing getopt() reset.

commit 18a41cbd38f83429b790414c1159c097af4a59b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 17:20:02 2014 +0200

    virtual: Delay opening the backend mailboxes until it's really necessary.
    This should improve the performance a lot with mailbox_list_index=yes when
    opening virtual mailboxes whose backend mailboxes are mostly unchanged.

commit d8615e0bec5fc8ffe6be9f64928c2f26b9b5a4de
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 17:08:34 2014 +0200

    Replaced mail_get_real_mail() callers with mail_get_backend_mail()

commit 541b251a99a55cb0fa2eaf02645a7c39ad997092
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 17:06:57 2014 +0200

    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.

commit 9e6bc7ee1f1cd600344111856fcd32be7fce7806
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 16:37:26 2014 +0200

    Removed unused code.

commit aaf162d4ed0f7f60adb1ca6614083f7276e8cd69
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 15:21:37 2014 +0200

    lib-storage: Don't open mailbox on mailbox_get_status() if we have no status items left to get.

commit faad8eaec70636c88886a9a524da958a19cd558b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 15 15:13:28 2014 +0200

    lib-storage: Avoid rebuilding the whole mailbox list index when one mailbox changes.

commit 92878b89753821c71d77e466d6e0706b23bd1ae4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 9 23:19:29 2014 +0300

    lazy_expunge: If setting is empty, disable the plugin.
    Instead of assuming that we want to use prefix="" as the lazy_expunge
    namespace, which is highly unlikely anyone will ever want to do.

commit a3036257fc770240090f52055edbb47a31337a07
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 9 23:17:09 2014 +0300

    lazy_expunge: If lazy-expunge mailbox open/create fails, show the mailbox name in error message.

commit 1240586a6ea9a4ce2ddca134d5abc02e98106653
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 9 18:14:33 2014 +0300

    doveadm backup: Another attempt at fixing assert-crashes when deleting mailboxes.
    Only two-way syncs really care about the mailbox deletion logs which set
    existence=DELETED. So actually the log reading could be skipped entirely for
    doveadm backup to speed things up.
    
    In any case the code currently relies that after
    sync_tree_sort_and_delete_mailboxes() the tree no longer has nodes with
    existence=DELETED and mailbox_guid!=0, because that assert-crashes in
    sync_create_mailboxes(). The assert() could probably simply be changed into
    an if(), but might as well keep the code as it was originally intended and
    not have the sync/backup behave more differently than needed.

commit b9de28ca5a473cc872c3608a9e3517f52ba62c52
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 9 17:05:12 2014 +0300

    maildir: If GUID can't be preserved in filename due to size change, set it in dovecot-uidlist
    This fixes problems with dsync when zlib is used and filenames/GUIDs don't
    contain (correct) S=sizes.

commit 93ae7fcd39c6982f7e338adfe71139942d9bbad1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 8 17:07:31 2014 +0200

    liblib: Fixed crash using str_c() in different stack frame with str_new(0) allocated string.

commit a14a28af030475bfe8a0104c1f8ceed7d1a38d59
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 8 08:49:53 2014 +0200

    Compiler warning fix

commit 48854892694291f0a7b8d7642799de4ab7f0ce4c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 8 00:20:57 2014 +0300

    doveadm backup: Fix to handling mailbox deletions.

commit a1fff894178eb4279a3acb44948c1ba98db104de
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 8 00:09:03 2014 +0300

    liblib: Added unit test for t_strsplit(data="")

commit e569900bba2abb0fb8a5b6b6bee1b428c016db6c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 8 00:08:21 2014 +0300

    dsync: Fixed using -n "" parameter

commit 6d9ce72cef0963ac414353dc4dfb3a51f62fa542
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 4 01:23:29 2014 +0300

    maildir: If istream_opened is set by a plugin, don't try to fix S=size by renaming.
    Although this could be fixed in a nicer way by actually calculating the
    correct S=size and using that for renaming.

commit 911d873c035f99085ca39fb1cdab46601619d6dc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 4 01:03:17 2014 +0300

    lib-imap-storage: Don't waste effort getting mail's physical size if it can't be done quickly.

commit a30fd271b09c30662fc7e50d1f563e2ed37bcb62
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 4 00:53:34 2014 +0300

    lib-imap-storage: Reverted previous change.
    It broke FETCH BODY [n.HEADER.FIELDS ..]

commit d6691198d160153387c5c8f0c888b411306ba016
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 4 00:30:11 2014 +0300

    lib-imap-storage: Minor code cleanup

commit 7e6522921c81999ec389dab54b338a6fb0f193aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 4 00:14:42 2014 +0300

    maildir: If istream_opened hook is set, don't return stat()ed file size as physical size.
    That's pretty much always wrong. The hook is set with e.g. zlib and
    mail-filter and similar plugins that modify the mail stream.

commit e9a182196c79b321365dbcd8800790e841e5e890
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 4 00:13:35 2014 +0300

    lib-storage: When trying to get body size quickly, make sure we don't end up reading the mail body.

commit 522925f6e9ff8fe9592511c2221b3d6526d4cbf4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 23:38:17 2014 +0300

    maildir: Fixed auto-creating INBOX that was missing tmp/ directory (but not cur/)

commit 37703e8d00a3a486aafba6a276fef35b38eab948
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 19:59:30 2014 +0300

    Use io_add_istream() wherever possible.
    This shouldn't fix anything, but might make some functionality easier to
    implement in future.

commit 9937dfc157dc64ed781b7aa264aa893d1d50c5c4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 19:56:47 2014 +0300

    lib-http: Wrap response payload istream into a istream-timeout.

commit 87da941c0b0a0671997f592a52ee2c0b35d0e41e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 19:54:27 2014 +0300

    lib-ssl-iostream: Make sure I/O input event is triggered after ostream-ssl has read some data to buffer.

commit 854b4074ac77a138b3983d72510b4d8779d15040
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 19:53:13 2014 +0300

    Added istream-timeout, which triggers I/O event and fails with ETIMEDOUT after the timeout.

commit 4c096615cb86a826fda377b87df22c579bfe5525
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 19:51:52 2014 +0300

    Added io_add_istream() and related functionality for combining the ioloop/istream.
    The idea here is that it's possible to implement asynchronous istreams when
    there isn't a file descriptor that can be used to reliably receive updates.

commit f922ecaf766c60c10f642f3ac2d5f7748ff642b0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 19:47:49 2014 +0300

    ioloop: Added io_set_pending()

commit 22c646fc87e87f33008f55220d60961f98c9eb3e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 18:21:39 2014 +0300

    dsync: Don't assert-crash if we have the same mailbox name in conflicting namespaces.

commit 710129a6c8666e19df82a2a7349c7683d531f837
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 14:41:25 2014 +0300

    DEBUG: Make sure errno isn't changed by vsnprintf()/malloc()/free() implementations.
    They shouldn't, so this should only be a sanity check when running with
    devel-checks. Various parts in the code rely on errno not being changed by
    *_strdup_printf() calls.

commit a2738cdb6d2733fb3e186331d68009421a19ea00
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 12:54:18 2014 +0300

    i_stream_read(): If stream_errno is set, fail immediately.
    Previously the stream_errno was reset to 0, but this required the istream
    implementation to correctly set the stream_errno back, which wasn't often
    done.

commit 38661902500fe27575329346a4d5ee74db7602b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 3 12:50:43 2014 +0300

    lib-ssl-iostream: Error handling fix.
    Don't set last_error="(null)" when the connection was simply disconnected.

commit 91c58af8e992d028eb325707904debb58ae80438
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Mar 29 22:45:16 2014 +0200

    fts-sorl: Skip returned duplicate results.
    Similar to bugfix d63b209737be in fts-lucene.
    
    This caused assert-crash at least when searching from virtual mailbox
    because the score array was larger than the actual number of results.

commit ba67225379fe749a4b2037d1e7120b414cddc7d8
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Fri Mar 28 15:59:48 2014 +0200

    pop3: Fixed off-by-one bug in the sequence number fix of d20059f7d3a1.

commit bf2760c13f6e0acae88d48ef9ec618e0f13a0515
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 28 15:31:06 2014 +0200

    lib-fs: posix backend now names the istreams with the file's path.

commit c449e0b0843381306cc196affcd5a38a40804178
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 28 15:29:53 2014 +0200

    lib-fs: ostream-metawrap shouldn't count metadata header as part of the stream offsets.

commit ec13aa1185c1722b3ac5deb1a000234effc93c42
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 27 16:00:49 2014 +0100

    lib-fs: ostream-metawrap didn't update the output stream's offset

commit 890217a92208ee8cec1e39ec418d3b5a1057ad6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 27 14:57:44 2014 +0100

    dovecot.m4: Minor message improvement.

commit d0f9c91ed9ccffa384ef2eebb1083b372591f02a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 27 15:39:33 2014 +0200

    lib-fs: Fixes to posix backend's FS_OPEN_MODE_CREATE_UNIQUE_128 handling.

commit fae30913b5b59c51225eb9fdecb1a30d02dc24b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 27 14:37:10 2014 +0100

    mdbox: Don't hoard file descriptors when saving mails that are larger than mdbox_rotate_size.

commit bb4045cb95c33c3a888c50dce461554391129794
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 27 13:25:12 2014 +0100

    dsync: Optimization for a large number of mails with the same GUID.
    Still not ideal, but better than before.

commit e1550f6a31306246a8499f5c9ca876096cbbeae9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 27 10:02:08 2014 +0100

    doveadm director move/map: Use director_username_hash setting for calculating hashes.

commit 028a1c8de5166a81c2394131cac2406327febf52
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 26 16:17:34 2014 +0100

    lib-http: Fixed a hang
    Patch by Stephan Bosch

commit ee3c2fb2ebbf6fbbf12085f36102553ecbcb1397
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 26 14:41:05 2014 +0100

    lib-http: Added debug logging.

commit d487aa885845c33fb358d5b3b514eece6791db0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 25 19:59:24 2014 +0200

    dsync: Support multiple -n parameters.

commit e16052742970235960af359ce62515b9127c16fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 24 19:07:03 2014 +0100

    dsync: Fixed matching namespace for the namespace prefix itself.

commit 7586eb9be41bf2de90790ab1c50ba6bfb85402b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 21 17:52:50 2014 +0200

    imapc: Cache LIST replies for a while to be able to immediately ask for mailbox flags/existence.
    Besides giving better performance, this will fix bugs in some servers where
    LISTing a single mailbox doesn't necessarily return it. (In this case a
    mailbox named "in" wasn't returned, but I think Dovecot has had bugs related
    to this also.)

commit 07c8b1b48eba7ad2693dbfeaa9916d837f006262
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 20 17:07:32 2014 +0200

    dsync: Avoid unnecessary data stack memory usage.

commit fda7b3649d2ccdb4a95f5bf09eb8cf5435d57261
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 20 17:00:31 2014 +0200

    imapc: Avoid hanging when running into server problems.
    imapc_mail_fetch_flush() caused imail->fetch_count to drop to 0, but
    imapc_mailbox_run() still started imapc_client_run() which was doing
    nothing.

commit b7a672661c5642d6e8db9e96f7028b1af1e3255a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 20 16:15:24 2014 +0200

    imapc: Fixed crash when FETCH command immediately failed due to connection error.

commit 65c7451e484d5b0ce313f5725154f3b50a291ce3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 19 15:42:42 2014 +0200

    passdb-imap: Fixed reference counting.

commit eb2091a2dedf5513dded8a980b79e206c716962d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 19 09:45:15 2014 +0200

    lib-dns: Fixed handling failed DNS lookups.

commit f567e9ad51a3b4f61580299f12b67e070fb16c5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 18 16:49:10 2014 +0200

    maildir: Fixed looking up physical size for a mail while it's being saved.
    Based on patch by Teemu Huovila.

commit 30fe81ba51567dcdcc35abe4edc722191820f409
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 18 14:39:15 2014 +0200

    auth: Added login_user extra field to change the username in master passdb.

commit 1bc529e36d36f9a525c6af023ae014ebc6cdb440
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 17 16:57:36 2014 +0200

    test-var-expand: Added more unit tests for %variable offsets/lengths.

commit 6eb191b58bc8553a516bd1c9b0eccaa696d0f41f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 17 16:57:21 2014 +0200

    liblib: Added negative %variable lengths to count backwards from the end of the value.
    For example %0.-2 for "12345" returns "123".
    Patch by Norbert Weinhold / Open-Xchange.

commit 65af92304818acc858884403336617b96596e6c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 12 14:09:14 2014 +0200

    auth: Don't disconnect auth-worker during long-running user iterations.

commit d6bffcdf187c155dccc04fb4267b4f82ce59347d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 12 12:26:09 2014 +0200

    auth worker: Log a warning if master disconnects us while handling a long request.

commit c0757c70cfd2c9b44de3504b753a4d2f38690ef0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 12 12:19:09 2014 +0200

    auth worker: Log a warning if master disconnects us while handling a long request.

commit f08c6da58d4cffc5b4777485ebc475dff614e491
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 12 11:53:49 2014 +0200

    auth: If auth-worker lookup times out, log a bit more details about it.

commit 49c848ccaab090b06add472122a1a7ebfaaf6044
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 11 13:26:33 2014 +0200

    fts-lucene: Skip returned duplicate results.
    This caused assert-crash at least when searching from virtual mailbox
    because the score array was larger than the actual number of results.

commit 8776322310b57a11c52cfb1822f35cf18b095525
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 11 00:39:27 2014 +0200

    mdbox: Added mdbox_purge_preserve_alt setting to keep the file within alt storage during purge.
    Perhaps it would be better for this setting to be the default in v2.3 and
    maybe be removed entirely? Not a good idea to change during v2.2.x anyway,
    so for now this is a setting.

commit 28099d04bbb9e668c84e24f4abe258facdc030ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 4 17:11:49 2014 +0200

    lib-storage: Fixed assert-crash in mailbox rename with layout=index

commit 6f59bc9b3d1b5c7016192b9b542af327c261684d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 24 12:30:51 2014 -0600

    lib-storage: Fixed support for list=no prefix="" listing.
    This behavior works with e.g. Outlook where it's allowed to CREATE and LIST
    the Sent/Trash/etc mailboxes to root level, even though the primary
    namespace has a prefix.

commit 432f2b63d375a198b7c6bfebd40bd64c4146b771
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 24 11:29:52 2014 -0600

    imap: Return SPECIAL-USE flags for LSUB command.

commit 7cc2591b010bbf29ea5f35d87c55760684fc8f90
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 19 14:54:16 2014 -0800

    auth: Don't crash if passdb passwd-file is used without any userdbs.

commit 5794def630084bab82297be9b988c624d9d66d4a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 15 10:41:29 2014 +0900

    lib-index: Minor code cleanup
    The previous calculation was correct also though.

commit 1d099cf310a6d4b0caf204178363538c2a8784fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 13 23:36:14 2014 +0200

    Added signature for changeset 8e4433702920

commit fc1dcbfe306a4d1bea62007fc4bdd52c1d2fdfe7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 13 23:36:09 2014 +0200

    Added tag 2.2.12 for changeset 8e4433702920

commit c98761ca2f56ebcd4405b57c3d0bd77222f245d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 13 23:36:03 2014 +0200

    Released v2.2.12.

commit 905320d3d49ad827bf48aede4dd8b7ea5a686af5
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu Feb 13 05:33:13 2014 +0200

    pop3: Access sequence numbers correctly.

commit d5e28858108a65dfda3a14a0a7eb45b91801ac0c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 12 00:51:17 2014 +0200

    Added signature for changeset 6b96eb75ded2

commit d693a428b10afcc50e155ad8f5cfcbe72fd4eedc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 12 00:51:10 2014 +0200

    Added tag 2.2.11 for changeset 6b96eb75ded2

commit bd387922b13eba3a7f534f67d14b12ffe165f1cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 12 00:51:10 2014 +0200

    Released v2.2.11.

commit f87daf83d4fc2db884e071475a21c54be9307689
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 12 07:14:58 2014 +0900

    acl: Recent changes caused global ACL filenames to be looked up with real mailbox names, not vnames.

commit 3190f12fb96daf61f7c880390472e18184cbb2d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 15:53:54 2014 -0500

    auth: Allow auth_verbose_passwords=yes as an alias for "plain".

commit a5bcc9f96bf56121a0704433c12137a43cd093be
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 15:53:32 2014 -0500

    auth: Fixed crash/NULL error if auth_verbose_passwords had an invalid value.

commit 29ba46818861793cc016013ce2c30e3f3d2a7d11
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 15:44:10 2014 -0500

    lib-http: Fixed test-http-url not to crash with some libcs
    Those that crash when %s attempts to print NULL.

commit 22e74047a660ee770427920d755d9cda564c2bab
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 15:36:15 2014 -0500

    acl: Fixed assert-crash when using the new global ACL file.

commit d4867dab63056cd92b50bdd1dbc5de6ca1822f2b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 15:03:33 2014 -0500

    pop3: Use POP3 order sorting only when directly listing UIDLs.
    "Message ordering changed unexpectedly" errors can be completely avoided by
    using either pop3_lock_session=yes or adding %u to pop3_logout_format.

commit 58f5b4641f4c0f91738ba4cb1246beb247f07da4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 14:24:44 2014 -0500

    doveadm fetch: Added pop3.order field.

commit 2c73831847958c9680ef56da1b0a84b12762e70e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 7 17:17:25 2014 +0200

    doveadm user: Don't crash if multiple mask parameters are given with at least one wildcard.

commit c9c7624c38e96f431cfe4c8270820e9ecd19f04d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 5 11:57:35 2014 -0500

    Copyright updated to 2014 in two more places

commit efd203f312659a7ce82644fb2a39d791ac198b77
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Tue Feb 4 18:17:35 2014 -0500

    lib-compression: Add assert for LZ4_compress return value.
    Make certain we detect if compressed data overflows the allocated space.

commit a8c5a86d183db25a57bf193c06b41e092ec2e151
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 4 16:23:22 2014 -0500

    Updated copyright notices to include year 2014.

commit 2b70e45cd586df6f082149df87d01da8060e30db
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 12:42:13 2014 -0500

    imap: SEARCH/SORT PARTIAL reponses may have been too large.

commit f38430b14630064704cf061d23d5bc94828ca085
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 12:04:19 2014 -0500

    imapc: Fixed assert-crash when listing INBOX and imapc_list_prefix was set.

commit aea7f72aa97f0f3c2e181ab3ae432f2e22148f3b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 11:50:49 2014 -0500

    doveadm backup: Fixed assert-crash when syncing mailbox deletion.

commit bf43cf378fc59187faaf225a2d4a601140b4e133
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 11:50:10 2014 -0500

    dsync: Added extra asserts

commit 32142dc3b19a1dff23ef351596703f1a43ea51a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 11:38:40 2014 -0500

    test-istream-concat unit test improved.
    Still pretty ugly to test with randomness, but at least it caught the bug in v2.1.

commit 2200adee458ca662d32b5ec0e01d8c5cba0cc0a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 10:53:59 2014 -0500

    pop3-migration: If UIDLs can't be set, fail unless pop3_migration_ignore_missing_uidls=yes.

commit 8c3872c26b18421d62c52cbfe0b81b1d79239f89
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 10:49:03 2014 -0500

    pop3-migration: Convert NULs to 0x80 chars in header when hashing.
    This should help at least with Dovecot and I think also with UW-IMAP/POP3.

commit 31fd39a3a3d544b1a8afb9aef07f180d0d40fda2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 3 10:47:31 2014 -0500

    pop3-migration: Work around IMAP/POP3 server bugs which truncate the header too early.

commit dc27f5f23e11b7eef49a904c6c14ced126c4a1dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 31 02:12:30 2014 +0100

    doveadm auth cache flush: Fixed broken default auth-master path.
    Broken by c41700c4a9bb. Patch by Chris Moules.

commit e3d57448ca8612ebf4b7f652367c30562493860b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 30 22:03:40 2014 +0100

    net_transmit() may have wrongly returned EPIPE error.
    If errno was EPIPE before net_transmit() was called and sendto() didn't
    change it, we still returned error.
    
    Also removed the unlikely() call which isn't all that unlikely for
    non-blocking code.

commit 664966885c89a979c95ecbbf576db4a72d4c1145
Author: Teemu Huovila <teemu.huovila@dovecot.fi>
Date:   Thu Jan 30 03:38:57 2014 +0100

    lib-compression: Fixed LZ4 maximum output buffer size

commit 4c158400b046fefefce0194603951a6587f51867
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 27 16:35:46 2014 +0200

    acl plugin: Added an alternative global ACL file that can contain mailbox patterns.
    Instead of pointing the global ACL path to a directory use a file instead.
    The file format is "<mailbox pattern> <normal ACL line>". Most importantly
    this can be used to specify default ACLs for namespaces.
    
    The mailbox pattern uses "*" and "?" wildcards currently. I'm not sure if I
    should still change them to IMAP "*" and "%" wildcards. That would make the
    behavior more complex ("%" depends on hierarchy separator), slightly slower
    and quota code is already also using the */? wildcards..

commit 131b0d222ad89b2c5d2b03b865b45cae9e290d68
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 27 14:25:03 2014 +0200

    lib-compression: Assert-crashfix to handling EOF in LZ4 compression

commit 71966291d5f91a87394ad2e321250e1d02670a84
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 17 17:36:29 2014 -0500

    acl: Minor macro naming cleanup

commit 086c52e4bcdc950e47ee331e1e07c9c10982a670
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 17 17:33:47 2014 -0500

    acl: Moved acl_rights array from vfile-specific code to generic struct acl_object.

commit 15f43b172d2c626aa03c921979c49821a55c7e5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 17 16:23:49 2014 -0500

    acl: More code cleanups.

commit cc287b822b175619a853686b738ba673e370117b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 17 16:10:56 2014 -0500

    acl: Code cleanup by moving around the code and renaming functions.

commit 6b35ba747072480bfc86ed7cc69df1d418e2ae20
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 16:44:04 2014 -0500

    liblib: Added str_unescape_next()

commit 77bd459e2d44177c389067fff3e2b56003817db8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 15:57:50 2014 -0500

    stats plugin: Fixed updating clock_time

commit 12af04ac6fbe57fdc09e26478e9f23e2cd2cde1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 15:54:14 2014 -0500

    stats: Also export the clock_time to doveadm.

commit 60131617da4d5b604e91fa3925ccc8227468aa07
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 15:50:38 2014 -0500

    stats: Track clock time as well as user/sys CPU time.

commit ef4d0eafab4d26bba047551db1e23ceff8aa9404
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 22:11:22 2014 +0200

    lib-index: Keep track of views and transactions in linked lists.
    This makes debugging easier.

commit c3ad163c5d78e6c6f9dbe90ab949506c038d3275
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 15:07:50 2014 -0500

    imap-proxy: Fixed resetting proxy state after failed login.

commit 41783dcf1bcd7118440c9c40a691a09fb98a9460
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 15:03:22 2014 -0500

    imap-proxy: Recent changes caused CAPABILITY repeating with pipelining disabled.

commit 463d5291a5cd42305b3ea64263afac0fb22c1a94
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 03:49:42 2014 +0200

    Makefile: Added missing iostream-lz4.h

commit a49d1c2ca3c134c0c62b37a94936c78e9849e044
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 00:57:59 2014 +0200

    lib-compression: Added initial support for LZ4
    There's no standard file format for LZ4, so we created our own. The code has
    had only minimal testing currently, so there may be bugs.

commit 84740b03d3ee9e96a2e446a54729188764c99292
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 00:28:35 2014 +0200

    lib-http: Added http_client_request_remove_header()

commit 49287618521ff2c69385456de116e5d1581426c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 15 00:28:20 2014 +0200

    lib-http: Allow calling http_client_request_add_header() when retrying requests.

commit dd620bc3687f995c483152115590e769094e77d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 14 03:33:35 2014 +0200

    *-login: Fix to previous commit: Default auth_user to original_user

commit 2f90189c6ee66a17f7bf838a8eb8a69868630fb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 14 03:24:47 2014 +0200

    auth, login, mail: Added %{auth_user}, %{auth_username} and %{auth_domain}
    They expand to the SASL authentication ID. So if master user login is done,
    it expands to the master user. If username changes during authentication, it
    expands to the original username. Otherwise %{user} and %{auth_user} are
    equal.

commit 0693f78ec64fd8ffedbf84408e6b4fc9c4c2b89f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 14 02:43:09 2014 +0200

    auth: Send original_user to auth client also when there aren't any extra fields.

commit 7756f8eeef47c7c9bdbc2434bc24245d89beec9a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 13 15:58:13 2014 -0500

    dbox: Removed unused code.

commit fb176cdc122707cda985ab3c09c02ccf3cec0af1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 13 22:44:34 2014 +0200

    iostream-temp: Support o_stream_pwrite()

commit 244d1dd1a501d1e4b53d8af9a2704640b276b7da
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 13 20:57:12 2014 +0200

    doveadm fs delete: Fixed non-recursive deletion broken by previous commit

commit b4d90cf5b73018ef7a64d60748dde8ec6f539d60
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Jan 10 15:00:39 2014 -0500

    http: Improved HTTP header parser state machine and error messages.

commit e0cf44fb802a5e7aa4cbeee5e80ef8f3f6aecdbe
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Jan 10 15:00:28 2014 -0500

    lib-http: Added option to the header parser to make it lenient towards illegal characters in header field content.
    The offending characters are then skipped without error. This is required
    for the http client as a workaround for bugs in certain HTTP servers. This
    behavior is explicitly not enabled for the http-request-parser as used by
    our own HTTP server implementation.

commit e479250007aaa49c9f38aa294f5cfb024cbcec73
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 10 21:59:15 2014 +0200

    lib-master: Added unit test for master_service_settings_cache_read()

commit 3bc9d91f987261e989aa653fd412b0e8095e4810
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 10 13:00:39 2014 -0500

    imap proxy: Avoid duplicate CAPABILITY reply when backend is Dovecot.
    This happened if the client sent a CAPABILITY command to the proxy.

commit c58f46762024d6df2c5ef5590be75c8abbe7e5d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 10 00:19:19 2014 +0200

    doveadm fs delete: Added -n parameter to asynchronously delete multiple files at once.

commit d93b1c6a89c0457b562bf25f7aa2fccd3b7c72e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 8 11:24:36 2014 -0500

    lib-storage: Implemented get_metadata() for fail-mailbox.
    This fixes a crash when a nonexistent mailbox was allocated and accessed
    (via LAYOUT=index).

commit 737d994fb6bb0f3e87f7412e35874694013d2fc3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 7 14:33:29 2014 -0500

    imap proxy: Set proxy_state correctly also with proxy_nopipelining.

commit ab281fc992907b6cf6c730f672dc3aa4c6685015
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 23 15:30:31 2013 +0200

    imap proxy: Added proxy_nopipelining passdb setting to work around other servers' bugs.

commit cc4bac5d314d4801fa9759704a29393da8f29399
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 19:59:22 2013 +0200

    mdbox: When purging writes new data, flush them to disk before locking the map index.

commit 18b13ba3b5b3dfdda197c5c8eabfd9c0b8ac4c07
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 04:57:25 2013 +0200

    Added signature for changeset 614bd6600011

commit 4cfd0f6bef8756f77fcd1139f8d3d9384fb8e582
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 04:57:19 2013 +0200

    Added tag 2.2.10 for changeset 614bd6600011

commit 16af02ab080ee8bf8a1f11dcaf0b13d414cc3271
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 04:57:19 2013 +0200

    Released v2.2.10.

commit 9abf4d9d5eeb74d70fc26deb024383cf87f276bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 04:25:17 2013 +0200

    Compiler warning fix.
    Older libmysqlclient uses const char * as the arg.

commit e5dca7edde333c2759b0e6b1d0d00b94ea303322
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 04:23:04 2013 +0200

    imap-quota: SETQUOTA supports now also user@domain:quotaroot name.

commit a5c1051a846db2aa91473ecced02d8d91f249357
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 20 01:06:02 2013 +0200

    imap: GETMETADATA should return nonexistent entries also with NIL values.

commit 4f93b5ab69b9a6420827f540742883efbb35f063
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 23:54:28 2013 +0200

    auth: If LDAP server returns LDAP_OPERATIONS_ERROR, reconnect.
    Apparently the server somehow lost the bind.

commit e66cd209fcab4817d2234d0121b404925dc60034
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 23:43:54 2013 +0200

    quota-status: Allow mail to go over quota up to quota_grace.

commit 08b0192ede9e06c6e56363e96c1eee9c913c1a29
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 23:09:45 2013 +0200

    imap: Minor comment update: Horde uses wildcards, not Kolab.

commit b6709d9c413338d32187fb0cf5ba32abaf16c20e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 23:08:03 2013 +0200

    imap: Allow wildcards in GETMETADATA mailbox-name.
    RFC 5464 doesn't specify this, but its earlier draft did, and Kolab uses it.

commit 77b4e728245a1905b1cce68fce9e9b7adf7efc2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 23:07:15 2013 +0200

    imap: GETMETADATA wasn't working correctly if options parameter wasn't specified.

commit 8855b8b57050fe3b6dc3f19283488512fae98648
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 23:04:55 2013 +0200

    imap: SETMETADATA shouldn't assert-crash when entry name is invalid

commit 0ff8b7fd6b7021a845538f6bcf755d97d488fddb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 21:37:28 2013 +0200

    imap: If any FETCH/STORE tries to access modseqs when NOMODSEQ was returned, return BAD.

commit 167da1aee2bf5c9cbe7066ff65b406d92df3541c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 21:31:57 2013 +0200

    imap: Ignore QRESYNC parameters for SELECT when returning NOMODSEQ.

commit b866325bc5a7b922884cf10bb0316954c12ee75d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 21:25:43 2013 +0200

    fs-sis: Memory leak fix.

commit 5cdb246858f37469fe61351dbc147dabbdde342c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 21:25:28 2013 +0200

    pop3c: Memory leak fixes

commit 59714981ae172b5113be7ca9b8be518b759fc86d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 21:25:08 2013 +0200

    imap: if mailbox has non-permanent modseqs, never send HIGHESTMODSEQ/MODSEQs.

commit 792afd16864bb32664d858815e41b041813c72b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 21:21:39 2013 +0200

    Compiler warning fix.

commit 050acc3755ccc5bcf261a6de3250164a54a0b6f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 04:18:30 2013 +0200

    pop3c: If POP3 server doesn't support UIDLs, don't advertise GUID support.

commit 5f4e547bb810403e8cfb19a49d8fe34713507ffd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 04:05:52 2013 +0200

    pop3c: Added pop3c_quick_received_date setting.
    With this enabled dsync no longer requires calling TOP for each message to
    get the metadata.

commit e130bb802c8bfb6c6cc44e5c8bc098b4fa5af789
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 19 04:01:58 2013 +0200

    pop3c: Use UIDLs as GUIDs.

commit f9b1266bab6c443d440673abf40a362af944c678
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 17 21:33:32 2013 +0200

    mail-filter: If filter returns 0 bytes, treat it as EIO error.

commit 1c0462c156a7b1184acecbfb137d2d6a4af93f15
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 14 14:40:13 2013 +0200

    Compiler warning fix

commit e153e1205bc686fac815ce7bb534adcb36dfb722
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 13 13:44:32 2013 +0200

    ldap: Added blocking=yes setting to use auth-workers.

commit f9ee758af881bcecc3f47d45e62cd110673bb92c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 12 18:21:49 2013 +0200

    lib-master: Show better error message when process_limit is reached.

commit bb5464b822f43e826dc6fd4b7a300044accdbd14
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 12 18:08:25 2013 +0200

    auth: Previous userdb changes caused userdb prefetch to be used always.

commit 74fb6b5a156c5a61bb6ec827089bb142a10547dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 12 17:59:28 2013 +0200

    auth: Don't crash when userdb hasn't been specified at all.

commit 62c05ba0290a0bf9c2b0ab4ce117f9a736907c21
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 12 16:37:37 2013 +0200

    lzma: Reading until EOF without seeing LZMA_STREAM_END isn't an error.

commit 639079ed0f33d3f0ca6161b06391a2dbc78eb577
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 11 19:39:12 2013 +0200

    login-*: Make sure "need to write more" flag doesn't get stuck during handshake.
    This should prevent busy-looping in SSL_accept(). (Second attempt at doing
    this, first one was in e95479f439aa.)

commit 14b495a09db7aea6b68146fd6427229e75d2bb39
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 11 18:39:36 2013 +0200

    auth: Use refcounting for LDAPMessage to make sure it always gets freed correctly.
    This may fix some memory leaks in some (error?) cases.

commit 550d748ff271854af28e53bccf45baf9de5bb7be
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 11 18:39:08 2013 +0200

    auth: ldap with auth_bind=yes leaked memory
    Existing LDAP search request can't just be converted into bind request
    before the search request is freed. So just create a new request.

commit bac5d8ce24d77d17801f0a451fc770b839a4f165
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 9 18:41:30 2013 +0200

    master: Include used protocols in the "starting up" log message.

commit 9ff8e48276d0aeda2643fba0c36f6c63a070522b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 9 15:42:20 2013 +0200

    quota: Fix to previous wildcard change

commit 09d0ffb0ddfbebb4a04b377b9f879c05749de54f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 9 00:02:58 2013 +0200

    mysql: Added ssl_verify_server_cert=no|yes parameter.
    To make sure we don't break existing installations, default to "no". For
    v2.3 it should default to "yes".
    
    Patch by Gareth Palmer

commit 35df1d3e03ffb05ee21077018f5154a4b1e47e37
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 23:41:33 2013 +0200

    lib-http: Don't try to automatically retry requests whose payload was already lost.
    Patch by Stephan Bosch.

commit 0c572d4565daa16ccdbd9900aa6740db6c0a7d26
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 23:26:40 2013 +0200

    stats: Workaround opening /proc/self/io in processes that have only temporarily dropped root privileges.

commit 81e4bda7d481c57cd049a0a68daab733b1ca9c44
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 23:04:18 2013 +0200

    quota: Allow mailbox names in quota_rules to contain "*" and "?" wildcards.

commit ed4caf5f1a6ea7214b24b4d28f62eb5b8af4d6a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 22:30:10 2013 +0200

    fts: Fixed crash with some search queries in empty mailbox.

commit 7fc91e27999996932fb8094a6d566466db2167db
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 22:21:40 2013 +0200

    master: Finished the previous DEBUG_OUTOFMEM -> CORE_OUTOFMEM and CORE_ERROR change.

commit e173d24c0b3f444eaa4d461de8f7c28b9ea3c65c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 22:20:12 2013 +0200

    Renamed DEBUG_OUTOFMEM environment to CORE_OUTOFMEM. Added CORE_ERROR to dump core on the first error.

commit 2521fd0986302cdabc8b0711eef63ac188f32cd6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 21:26:29 2013 +0200

    quota: Added support for SETQUOTA IMAP command.
    The configuration is done via quota_set setting. Currently only dict backend
    is supported. For example:
    
    plugin {
      quota_set = dict:file:/var/lib/dovecot/quota/%u
    }
    The SETQUOTA command is available only for the "admin" user (userdb lookup
    must return admin=y).

commit c6e8f897413ce2fce378430a440e90e6421a8db0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 21:24:10 2013 +0200

    imap-quota: Admin user can (again) use GETQUOTA for other users' quota roots.

commit 5a9912dcadfd467c5ea54bdc3331eef359f0b1c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 21:22:38 2013 +0200

    lib-storage: Added mail_user->admin flag.
    The previous admin-flag used to mix up "admin user" and "admin tool", while
    this new purpose only means "admin user".

commit 9686ada8061745b4b8753572f6c04b7a27a8544e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 21:13:22 2013 +0200

    lib-dict: Added "fs" wrapper dict backend, which uses lib-fs.
    Each dict key is a separate file where the file's contents are the dict
    value.

commit cd75c360f244c96b9ee10e01ee3a66fad13183c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 20:48:03 2013 +0200

    auth: Added userdb result_success/failure/tempfail and skip settings, similar to passdb's.

commit fb55257f54a5f6628d3d4fd7a7da24808740e386
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 19:02:12 2013 +0200

    lib-storage: Don't crash in mailbox_is_inconsistent() if mailbox hasn't been opened.

commit 79042f8c2ec1778528584c064b164d1ebcdde16b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 8 19:00:31 2013 +0200

    auth: passdb/userdb dict rewrite to support more complex configuration.
    See the new doc/example-config/dovecot-dict-auth.conf.ext for explanation
    how it works. The old configuration format will also stay functional.

commit 5e22b513cd9d98d1c0cec2960423b908a3fd59bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 3 21:31:59 2013 +0200

    lib-imap: imap_envelope_parse() added extra "," after address group.
    This function wasn't actually used by Dovecot anywhere anymore.
    Patch by Potapov Sergey.

commit 08837f59c1466ec0f533f120b167f2a3e87da738
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 3 17:29:38 2013 +0200

    imap: If SELECT fails with "mailbox is inconsistent", disconnect client. (Plus related cleanups.)
    The inconsistency can also be used to indicate that something is badly wrong
    and nothing useful can be done before client reconnects.

commit a0cfe97ae4264a76b7a2e91396b792ff444a2de2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 3 17:17:03 2013 +0200

    lib-http: Removed assert
    Time can't be relied on exactly.

commit a646dafca8e58674de85442ae4a2811a8eece9f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 3 01:33:18 2013 +0200

    imap: Don't send [NOMODSEQ] on SELECT/EXAMINE reply when condstore hasn't been enabled yet.
    This is definitely the better behavior and was also clearly intended by the
    CONDSTORE RFC, although with some mixed language.

commit 5769639baa9a2271782e29e541ec39ace25124ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 2 18:47:52 2013 +0200

    pop3: Handle UIDL failures by disconnecting the client instead of killing the whole process.

commit 7b6bca43c9cc22cce804c608feb773af278ddaf1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 26 21:10:23 2013 +0100

    replicator: Give a better error message with path when replicator.db is corrupted.

commit 42afa2a76101728639b303b56473cf1e0bc1c59f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 25 01:24:35 2013 +0200

    Added signature for changeset 2852a7c55fc7

commit 308457ee6569c7e4af2af94d1b662f1205bdc0b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 25 01:24:32 2013 +0200

    Added tag 2.2.9 for changeset 2852a7c55fc7

commit c552ee5266d855fc6e72b6424856b60638eb1166
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 25 01:24:32 2013 +0200

    Released v2.2.9.

commit 5ce940d276a50e8f8e3e1dba7076f3330cbd1348
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 25 00:46:40 2013 +0200

    Makefile: Added missing \

commit 24fb580bdcee224fb6d068cddba4b216dee82e22
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 25 00:44:21 2013 +0200

    Makefile: Added missing header files

commit 12983e9d3b4ebdfb1e14f197c153304b3af44b59
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 24 23:02:13 2013 +0200

    lib-compression: Added support for liblzma (xz)
    Annoyingly this is mainly copy&pasted [io]stream-bzlib, but I'm not sure if
    it's worth the effort to try to create common functions for them.

commit 23a0a2f0dbc510cd05d18eb930de1ef278d9ce7e
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Nov 24 20:19:48 2013 +0000

    man: doveadm-mailbox.1: Added -g's description for mailbox create.

commit bd8b391d7d2112e989963980663ef8cb0469b35c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 24 21:41:06 2013 +0200

    Fixed sscanf() error handling.
    Patch by Jann Horn.

commit f56b8ae298c66336ebefdf41dbd7a8faaae1a6fe
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Nov 24 19:58:45 2013 +0000

    man: doveadm-log.1: Added description for option -s.

commit 3c61da0e13224aa3b9848a87aab7f3a8245bab4b
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Nov 24 18:29:55 2013 +0000

    man: doveadm-import.1: Added description for option -s.

commit d6043f149447862bbcfa92125432315fd585a147
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Nov 24 18:02:40 2013 +0000

    man: doveadm-expunge.1: Added option -d also to section synopsis.

commit 263df40da710e873103597f64c1733827d19c442
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 24 20:41:42 2013 +0200

    Data stack has now an extra NULL pointer padding before its actual data starts.
    This is just an extra safety measure against buffer overflows.
    Patch by Jann Horn.

commit 2b81994170ed88051b580393b6bb9a7565193ad3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 24 20:27:27 2013 +0200

    auth: Fixed (non-exploitable) buffer overflow in DIGEST-MD5 data parsing.
    Found by Jann Horn.

commit 9a6262e0875194444fa163cce5d52f03e4f1b183
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Nov 23 23:22:09 2013 +0000

    man: doveadm-move.1: Fixed syntax errors, escaped some dashes.

commit ac3614a25b9569131ddb8ee9884c6fb4d100a21d
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Nov 23 19:35:09 2013 +0000

    man: doveadm-index.1: Added description for options -n and -q.

commit 3415e311f91f9cee6da644139be11b0848e9c704
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 21:18:30 2013 +0200

    fts: Renamed fts_autoindex_on_save to fts_autoindex

commit deab624f18dc0c1631c9edcffb106714ad2dbfe0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 21:13:26 2013 +0200

    replicator: Memory leak fix for previous commit

commit 36757b426f4761dbd837bdddc8998e22d09dc869
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 21:12:39 2013 +0200

    replicator: Added replication_dsync_parameters setting to pass "doveadm sync" parameters.
    -f and -s parameters are added automatically when needed.

commit b9bf63553adb1901e74a846c506e09bd472191a0
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Nov 23 18:24:24 2013 +0000

    man: doveadm-move.1: Added description for 'user source_user'.

commit 735259c24eda6f272c8e21eab0f4d0c6bb022fd6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 19:28:48 2013 +0200

    fts: Added plugin { fts_autoindex_on_save } setting.
    When enabled and a mail is saved/copied, the indexer process is requested to
    index the changed mailbox.
    
    fts_autoindex_max_recent_msgs setting can also be used to skip indexing
    mailboxes that have too many \Recent messages (implying that the mailbox is
    never actually accessed). This corresponds to doveadm index -n parameter.

commit 3c9e5001073cc6840faff944f1dadd57b81c8476
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Nov 23 16:28:04 2013 +0000

    man: doveadm-user.1: Added description for the -u option.

commit 30f128cc663b8aeb68bb3bfb9ed49ab2e48029e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 18:35:08 2013 +0200

    lib-dns: If existing dns connection dies in write(), retry connect once.

commit 19db4c57fd7acc9e54e5724ccfa0633a5665dfef
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 12:19:49 2013 +0200

    lib-http: Compiler warning fix

commit b7c7a04bc5edb8eebea3837ff624441d9fa3721c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 00:38:41 2013 +0200

    lib-storage: Non-crashing way of avoiding fs lookups for storages without mail root.

commit 267923f5b62d680b050f0691c25a1ca3a2370c6e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 23 00:00:43 2013 +0200

    lib-http: Fixed request hang on connect() timeout.

commit 758d8b46f9e8fd87cf58bb4912cddf6bf28918cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 23:52:37 2013 +0200

    lib-storage: Don't do filesystem permission lookups if storage has no mailbox root dir.

commit 7eff21e3e884b01155bc26bf4c98fc4a4934932a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 23:31:36 2013 +0200

    dns: Don't idle-disconnect clients
    It's the job for the clients.

commit 0564370000521cada7b1a74337a1e6f6df9827c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 23:15:07 2013 +0200

    lib-dns: Fixed handling write() failure to dns-lookup server process.

commit 93cc87bb22386e020cee1093b6bd59295e0b33f0
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Nov 22 22:12:08 2013 +0200

    http: Implemented delayed requests scheduling.
    Requests can now be (re)submitted with a delay. The request is not sent
    until the delay time expires. This facilitates handling the Retry-After
    header in responses. This can either be performed automatically if the
    indicated delay is not too long or explicitly by the code using lib-http.

commit 7af70f7646264a2f52b361f9ca78f08681acc4e2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Nov 22 22:08:44 2013 +0200

    http: Preparse Retry-After header if response status is 503 or 3xx.

commit 129596c93692b21d6c6b1313b389774af24c2983
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Nov 22 22:08:20 2013 +0200

    http-client: Improved handing of delayed request errors.
    Originally each request would have its own zero timeout, but now only one
    timeout is put in the host object.

commit de96afeeaa5242cffe89f1966457e935806b5746
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Nov 22 22:07:41 2013 +0200

    http-client: Changed struct http_client_host_port into a struct http_client_queue object.
    Peer and request objects now reference the queue object directly rather
    than the host object. This way, there is no need to find the matching
    host:port in the host anymore. This makes the queueing structure more
    intuitive and more efficient. This is a first step towards support for
    connecting to HTTP services through unix sockets or directing requests at
    specific hosts (so not from the URL). This patch also fixes a potential
    timeout leak (to_connect) in http_client_host_port (now http_client_queue)
    and makes sure it is moved during switch_ioloop(). Finally it updates the
    structure comment at the top of http-client.c.

commit b367011da1a2ba3e9113dfbc601aaa4b6b04317d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 22:05:52 2013 +0200

    iostream-rawlog: Timestamp prefix is now optional.

commit 49d54c7c5d5bc90b4689fc2eb97e373c769814f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 19:39:13 2013 +0200

    Added mail-filter plugin.

commit 02076e06658a2f1ee2d6bb76944dc1b5d12e1d7d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 19:32:06 2013 +0200

    doveadm acl debug: Improved output

commit 9a48c2243fe98ca8393be7908f84d20c634bcdf9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 22 13:47:36 2013 +0200

    ostream: Don't mark the stream closed too early after all.
    Use another flag instead to avoid losing the last data written to the stream
    before closing.

commit c905571984fe8ccdb6f2a266b813f19b0643a66c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 21 23:02:33 2013 +0200

    lib-storage: Improved EACCES error messages for some stat() calls

commit a601cdf61506674a681195acfe57c9864bd3f7ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 23:29:13 2013 +0200

    doveadm: Added "fs metadata" command

commit 8601cb6dafd4e8960c91b3c082af3095cfbebe74
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 22:20:06 2013 +0200

    dsync: Fix to 128bit GUID syncing

commit cce2c665bb24537bb691f6cad6a36f8080e4a552
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 21:25:19 2013 +0200

    dsync: have_only_guid128 was never actually being set.

commit d8a7046624a082938501e8268ed0cdcba4826e96
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 15:07:26 2013 +0200

    lib-storage: mail_get_headers*() returned only the first header from cache.

commit e3411c496000d3e2797b43a33584dfba954e815e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 14:50:53 2013 +0200

    lib-storage: mail_get_*header*() still didn't handle cached values correctly.
    If header ends with ":", the ":" shouldn't be returned as part of the value.

commit d48ab236010e588c7b52e54db47fe9842a2e27e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 14:38:55 2013 +0200

    lib-storage: mail_get_*header*() were unnecessarily looking up the headers twice.

commit 2188b937671a76bb79df1526884fe3601f13a42f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 20 14:37:44 2013 +0200

    lib-storage: mail_get_*header*() didn't remove leading whitespace for headers from cache.
    But it was removed when the headers were found by parsing the full header.

commit 2651a7e21ae77591858d0c75f9fec69c7841d321
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 19 23:18:11 2013 +0200

    Added signature for changeset 095a777edc26

commit 75e6aeabbca585b87d895c1f08753647ea221ad9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 19 23:18:01 2013 +0200

    Added tag 2.2.8 for changeset 095a777edc26

commit 4d66e427c40e3520cde1b49d50731921791ec244
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 19 23:18:01 2013 +0200

    Released v2.2.8.

commit 92bb5db33540af4fd7c2a37b614d0fd961f4a49e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 19 23:17:07 2013 +0200

    auth: Fixed potential crash.

commit 0cb546628b3e285c3da9433450e69714cede9785
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 19 17:21:21 2013 +0200

    lmtp: Make sure output is flushed before disconnection.

commit 58840b6cfccd09f0a7c6cd206437e52b6d8d386e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 19 16:13:12 2013 +0200

    lib-storage: Error handling fix for layout=index when mailbox creation fails.

commit a92681ceea33ef803ec1d1a1f6567faab928ff01
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 18 16:26:31 2013 +0200

    doveadm user: Fixed now printing with a non-default formatter

commit 5fb679bef4722837278b760f15997ba6e3893bba
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 18 16:23:42 2013 +0200

    doveadm user: Fixed printing multiple users

commit 4a0d2f71a13f1f7be1a861a410d6961bc798579e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 18 16:18:53 2013 +0200

    doveadm auth/user: Fixes to auth_socket_path handling.
    doveadm user (without -u parameter) was ignoring "-a" parameter entirely.
    Others weren't using auth_socket_path setting.

commit 50b9773bebe5c66485728e21e4da6e99db388c92
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 18 16:15:38 2013 +0200

    lib-storage: Added mail_storage_service_set_auth_conn()

commit f887b3f602c325d4d364257cdc0c1a198c92979b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 18 15:46:46 2013 +0200

    doveadm user: Fixed looking up multiple users when they had different UIDs

commit 1fc71c05ba77d575752913a775a1ea4a9251b738
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sun Nov 17 16:58:20 2013 +0000

    man: Added doveadm-batch.1.

commit d1e843e77f4760e303c53d9fce10123fc8d230a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 17:59:05 2013 +0200

    dsync: Support syncing storages with 128bit GUIDs <-> string GUIDs.

commit b9da8d5ea381e2910cb13798a563b24ba9bb52c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 17:15:42 2013 +0200

    lib-storage: Fixed memory leak in mail_add_temp_wanted_fields()

commit 1a878b9d2a823abc6b1c8b1631e50a15d534665f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 16:59:33 2013 +0200

    imapc: Merge identical FETCH commands together (only updating UID range)

commit c954cd9d0702a9633a8f2f62bb2593b7e8c19574
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 16:58:42 2013 +0200

    dsync: Tell search that we want to fetch mail streams so prefetching works.

commit 95de57450afe1e92a6dd57538fba4db0925fa43b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 16:11:31 2013 +0200

    dsync: Set wanted_fields/headers for the whole search request when possible.

commit c12ee3424b82fea9eed2c80f54fbca01850af627
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 15:13:58 2013 +0200

    imapc: Avoid sending unnecessary IDLEs that are immediately aborted.

commit d29abd3b86ae18fe41de185a216dfb1de4cfabae
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 15:03:31 2013 +0200

    lib-imap-client: Don't reset timeout while waiting for IDLE DONE reply.

commit 2bcc41a0005a43f15dcf0fb4ef21a1d1e4737f34
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 14:04:22 2013 +0200

    lib-imap-client: Make sure command timeout is used also for IDLE DONE.

commit 888e0f4be6b8085fa42b6bd7f7ce67f14e88c73f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 01:04:50 2013 +0200

    Added io_loop_add/remove_switch_callback() to call a callback when ioloop is changed.

commit e5327a8ef2519160ff0c7ca6b841574eaecc2910
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 01:01:50 2013 +0200

    lib-imap-client: Don't send NOOP if we're still waiting for a command reply.

commit cbc5a26b22a9ce5ae5034161d9bd1324703a0ccb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 00:59:39 2013 +0200

    lib-imap-client: Make sure command timeout is always set.

commit d81b80bac97040d5e737f23ce1ee2eb4d7cc16cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 17 00:41:23 2013 +0200

    imapc: Fixes to imapc_feature fetch-headers

commit 7f5ddd0423db2e2e3d578e017c4eae32a08a4ed7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 21:58:31 2013 +0200

    lib-index: Recent change broke cache transactions for more than 1 mail.

commit 35f3b7e05afecacd0332c210c6e253911c2813d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 21:20:31 2013 +0200

    Use io_loop_set_current() instead of directly setting it.

commit f97c983e7a742e1d54ec60e502093abbb3ad2907
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 21:17:56 2013 +0200

    dsync: Give hints to lib-storage about what fields we're going to fetch.

commit d02af9610cf5d6560c5ebf4491f59eca2ba810a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 20:10:27 2013 +0200

    imapc: When sending FETCH, always request also missing wanted_fields.
    This avoids sending multiple FETCH commands when prefetch hadn't already
    fetched everything.

commit bf611d43256ef8ee3e1c1ce8e1257920f2075278
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 20:09:19 2013 +0200

    imapc: Avoid FETCH INTERNALDATE for getting save_date when we already know received_date.

commit ffb886eb9c3682bb891206cced9623368035d739
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 20:06:34 2013 +0200

    imapc: Don't send FETCHes for data that is already in cache.

commit 0f641fb49bf0a934556717a2c209566ac387d7bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 19:41:07 2013 +0200

    imapc: Crashfix for previous change

commit b8eb60a9ba83e2f3f6d969e810553eb937be2128
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 19:36:40 2013 +0200

    imapc: Added imapc_feature fetch-header.
    It uses FETCH BODY.PEEK[HEADER.FIELDS (...)] whenever possible instead of
    fetching the entire header.

commit 0d29e73260eae647085dcaf08b73c207cd515929
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 19:35:10 2013 +0200

    lib-storage: API comment update

commit 91496fd60a7980f4ebdf93cbb099b9db198a0e74
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 19:34:57 2013 +0200

    lib-index: Support a small in-memory cache even with INDEX=MEMORY

commit 127f99adeb10d9f9e06896f97dc187eac4ca8852
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 19:20:10 2013 +0200

    lib-index: mail_cache_lookup*() can now finds also the latest mail_cache_add()ed data.

commit 83e7db71cc342bb178d03ad6875b581d8c265104
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 16 17:46:10 2013 +0200

    auth: Don't crash if passwd-file is used for authentication but it has no passwords.

commit bc5edefef5f01a24657e56e1c881b40ba0c38565
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Nov 16 14:06:32 2013 +0000

    man: Added description for command `doveadm copy`.

commit fffb5431af081379c169d0d96aafe2a9a7352be2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 8 17:48:54 2013 +0200

    mail_attachment_*: Fixed "stream doesn't support seeking backwards" panic
    Caused by recent changes.

commit e52982751bb55475d25bd1e6b6b69f4add3d58ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 8 17:44:25 2013 +0200

    lib-fs: Don't crash if istream-fs-file is closed without never being read.

commit 0e94016c18197cb42d00be0085e6da4223a1c84e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 8 16:40:13 2013 +0100

    mdbox_deleted: Index was synced with wrong flags.

commit 08a4f9396a805b2ac70d55fd494637321ada6516
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 8 16:39:52 2013 +0100

    lib-storage: Give name to attachments-connector istream.

commit b8545883e3fe466d42dbb1fdc6330754c43af09e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 8 16:12:32 2013 +0100

    zlib: Give a name to zlib istreams

commit 2df92c5bbd42ff42a1a38d688a6b11f1d326cb78
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 8 14:44:57 2013 +0100

    doveadm mailbox create: Added back -s parameter that was recently accidentally removed.

commit 52de839a8249bff5eace53dc1401b28baa0c124b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 23:00:58 2013 +0200

    lib-storage: Moved more of dbox attachments code to generic code.

commit 14900b2af66e720ba1543e65affd45ad9b4ef54b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 21:10:22 2013 +0200

    dbox: Use lib-fs API also for reading the attachments.

commit 9393445a6dabd17ce62ebfc12fd73545b0065824
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 21:08:42 2013 +0200

    lib-storage: Added mailbox_list_init_fs() to easily initialize fs.
    Use it for dbox's attachment_fs.

commit 5f5590347979d7860381116c2b3bda3eb42bce5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 21:06:15 2013 +0200

    lib-fs: Added istream-fs-file to lazily read from fs_file.

commit 5f3151744f3ffa73b57391d4a237884b75423f57
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 21:05:51 2013 +0200

    istream: Added i_stream_init_parent() to lazily initialize the parent stream.

commit dde71564d306d07cba63bdf0f40996ffb90ca47a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 19:03:10 2013 +0200

    lib-http: Use [io]_stream_get_error() instead of just errno strings.

commit 0afe75cd8ea1814ba5711196ef749f93a140c01c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 17:13:53 2013 +0200

    dsync: Use i_stream_get_error() instead of just errno in stream error messages.

commit 5a5f8327d48331dbbe4fe49be0059ecb840653f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 16:33:37 2013 +0200

    replicator: Database should be exported (not imported!) every 15 mins.

commit d6d4d8beede5f8efbba052c1e3e4f964ce489bd2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 15:30:15 2013 +0200

    mdbox: Fixed race condition when mailbox GUID was looked up before mailbox create was finished.

commit 8594bb90f0059e87a6d1176fe370f95456661f97
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 13:00:13 2013 +0200

    lib-imap-storage: Fixed leaking istream on error conditions.
    Caught by Tomasz Potęga

commit 7d85bf560c8b25cd8762207fce0f74e2f97013f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 6 12:53:58 2013 +0200

    imap: Fixed potential crash if client disconnected during APPEND.

commit 17c29909503e866fe8aab2c4476fb9f34cc2c12e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 5 20:11:11 2013 +0200

    lib-mail: Fixed infinite loop in message-parser if message ends with --boundary+CR
    Thanks to Tomasz Potega for finding this.

commit 12b4dbf933ee54f7b96968ba150095baa985fdaf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 5 13:12:25 2013 +0200

    lib-storage: Added FULLDIRNAME=name to mail_location.
    The difference to DIRNAME is that the name is used also for index and
    control directories.

commit a4bb33323cecf2d817edfebf8f69c6d4f3a5b647
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 4 09:47:17 2013 +0200

    ssl-params: Compiler warning fix when building without OpenSSL

commit 59e26ff34b05cd971a111f8a42fc60c13d9f688b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 23:27:15 2013 +0200

    ostream: Mark stream closed before handling its callback to avoid infinite loops.
    The callback could call o_stream_copy_error_from_parent(), which in turn
    would try to close the same ostream again.

commit b5b10e2ffa9e2e08beeed7c4c752b873039708b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 22:04:53 2013 +0200

    Added signature for changeset b5b118701aa8

commit 1942cd7a96d43871f396093c8e82861d29393768
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 22:04:50 2013 +0200

    Added tag 2.2.7 for changeset b5b118701aa8

commit 2cb0477b4723b882acb206a1d4f0553df3371244
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 22:04:50 2013 +0200

    Released v2.2.7.

commit d34f3ccf92392bccfa6f023b327a05803936df80
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 21:48:24 2013 +0200

    Make static analyzer happier

commit b7dabf89bf68d7feb8670ea34e0a4c58f190a51b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 21:47:46 2013 +0200

    Make static analyzer happier.

commit a355fad576bc0c95b11161cf48b48d343229a2b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 21:45:37 2013 +0200

    auth-worker: Potential crashfix at deinit

commit 56ffe7c9356544aa228ef6760f9fa08ec2c8c9c1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 21:44:06 2013 +0200

    auth: Crashfix to "doveadm auth cache flush" when auth cache was disabled

commit 4981c1da73ffef4aff69c1af179a872bd1b68d9f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 21:42:47 2013 +0200

    auth: Potential crashfix

commit 41789540204ce091b2c06629d9a31788082e5da8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 20:56:25 2013 +0200

    Call lib_atexit() callbacks before destroying the lib-master ioloop.

commit 333b1f356e437f17d843fcbe529d6ac5915a64f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 3 01:12:24 2013 +0200

    lib-imap: imap_arg_get_atom() should also treat NIL as valid atom.

commit 2ec1157efde660abd10a0efdae83a4837679589d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 22:57:27 2013 +0200

    lib-storage: Fixed parsing NILs in search parameters.

commit 1dc33c503c3de306db4b7cba4e51ea2077b2805d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 22:42:32 2013 +0200

    lib-imap: Fixed NIL astring to not lose its case-sensitivity.

commit 1e430b62d5bb21dc0d227b06a7a322283d75c452
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 22:32:23 2013 +0200

    lib-imap: When writing "NIL" as astring, write it always as a "quoted".

commit 954bbe7f868d4cde546b73306a7e9c1918f2256e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 22:31:14 2013 +0200

    imap: Fixed GETMETADATA NIL to treat it as "NIL"

commit c4699302bd6965ee803ab34613b8840a3d8203d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 22:30:42 2013 +0200

    lib-imap: NIL as astring is the same as "NIL"
    This is a bit klugdy but works as long as all callers use
    imap_arg_get_astring() instead of trying to handle it themselves.

commit 02c75e04c6ff80726bb59e3ea34a7995ad1f6f7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 21:29:39 2013 +0200

    imap: Added initial support for METADATA extension.
    For now this is enabled only when imap_metadata=yes setting is used. The
    setting will go away once the feature is complete. Also mail_attribute_dict
    must be set.
    
    TODO:
     - Metadata doesn't work for public namespaces. There should probably be a
       mail_attribute_public_dict setting for that.
     - There isn't any kind of quota or other limits
     - After ENABLE METADATA start sending untagged METADATA entries to clients
     - /shared/admin should probably return postmaster_address URL
     - Check if we handle ACLs correctly
     - RFC says that it SHOULD be possible to set METADATA entries to \NoSelect
       mailboxes. We probably will never allow this though.

commit d0c9d4332d437b32fa6d003e4b3360b51b60e255
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 20:09:28 2013 +0200

    lib-imap: Added IMAP_PARSE_FLAG_STOP_AT_LIST for stopping after '('

commit f7464ce41ebaa922cb36e85fdd14e27c4c43eba8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 20:05:08 2013 +0200

    lib-imap: IMAP protocol parser was parsing NIL case-sensitively.
    Luckily no commands currently actually use NILs.

commit 0e6fcf80a0e4448f57969bfa34c36a3c9cda89c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 15:30:47 2013 +0200

    ssl-params: Don't fail completely if 512 bit DH parameters generation fails.

commit 923e40fa9af9484f5d34d2cf3523ae1e675a6420
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 15:27:28 2013 +0200

    ssl-params: Added ssl_dh_parameters_length & removed ssl_parameters_regenerate setting.
    ssl_parameters_regenerate was based on some text from GNUTLS documentation a
    long time ago, but there's really not much point in doing it.
    
    Ideally we should also support "openssl dhparam" input files, but for now
    there's the ssl_dh_parameters_length setting that can be used to specify the
    wanted DH parameters length. If the current ssl-parameters.dat has a
    different length, it's regenerated.
    
    We should probably at some point support also built-in DH parameters which
    are returned while the ssl-params runs.

commit e5dab0fd44cbf35cd9dee769eb0bb0255a584029
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 15:18:15 2013 +0200

    ssl-params: Fixed closing listener fds for regeneration process.

commit 3e7a6badb0ccd58494084e7fab35ce097bcffa07
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 14:19:23 2013 +0200

    dsync: Don't track too new changes from transaction log.
    This mattered only during race conditions while there were changes being
    done to the mailbox during syncing.

commit e3ea9f8db1626f3143665882a0500cfd7f9ab3d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 13:52:30 2013 +0200

    auth: Added %{session_pid} variable for userdb lookups in login requests.
    session_pid is now always sent to auth process. A new request_auth_token
    parameter was added to specify if auth_token should be returned or not.

commit b63284468d717737ecd63d78b6928c5d7f0d3634
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 13:34:17 2013 +0200

    maildir: If filename begins with ':', rename it immediately instead of causing errors.

commit c3e771be4a70733276e37185ef1c1ae5f3030734
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 13:14:16 2013 +0200

    mbox: Added assert to try to catch corruption.

commit 580ba11d9d96736a537ebd919136377dbb34c1b0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 12:46:08 2013 +0200

    auth: passdb shadow supports now lookup_credentials() API

commit 04f792b9b17210898bab55e4b6c919fe78913001
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 12:42:55 2013 +0200

    auth: Return a reason string if PASS lookup fails because passdbs don't support it.

commit 1e8cc7b5e0e0afffaeca9f81e33395b27d124ce8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 12:37:10 2013 +0200

    auth: passdb passwd supports now lookup_credentials() API
    It's not very useful, but at least it allows the lookup itself to succeed.

commit 9ac3627c628013c2a20aaacb4c37e22c9eca989c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 12:25:09 2013 +0200

    mdbox: When mail's refcount is too high, don't prevent shrinking the refcount.

commit d0388a42d50934c79fc3115878a78c4b20e5e66e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 2 12:14:17 2013 +0200

    doveadm import: Fixed translating different source and dest hierarchy separators in mailbox names.

commit c7db4d0d3caa2fc7a2afd7135fa5645862554156
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 1 16:44:25 2013 +0200

    lib-storage: If hook is forced, don't bother checking if it's in user's mail_plugins.

commit 56a22540bdff919cdae86775396b905e2f28f6a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 1 16:43:53 2013 +0200

    lib-storage: Hooks weren't called exactly in the order they were intended.
    The comparison didn't skip the paths, so the "lib" prefix skipping didn't
    work.

commit 4e88d2b9eb7b705d09a7f2582e6f71a48160f0f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 30 12:11:54 2013 +0200

    module-dir: Allow plugins to have deinit() function without init() function

commit daaf3908ad5a54e26520b2d94b58e0ced6e5d5a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 21:16:05 2013 +0200

    Compiling fix for old GCC

commit 3fe2850e38ec8192e1c26f370c748d0a8a9685b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 21:11:10 2013 +0200

    lib-storage: Allow storage name to contain '_'

commit ed9535bb5de72baa53677cef4ffdf9eedaa61481
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 21:10:33 2013 +0200

    configure: Added mdbox_deleted storage.

commit b90c23a9862b91594959b918b035d73f7bc0b265
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 21:08:07 2013 +0200

    mdbox: Added "mdbox_deleted" storage, which can be used to access messages with refcount=0
    For example:
    doveadm import mdbox_deleted:~/mdbox "" mailbox inbox subject oops

commit 561049f25e47e45589e5da295112526b1431a9e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 21:07:28 2013 +0200

    lib-index: Don't mix index struct caching for in-memory vs. disk indexes.

commit 1edfe8b0da48e8e480b08d413f2fbf69a3dc94d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 20:26:33 2013 +0200

    mbox: Added extra assert

commit b5d2b15b763729a19a03b905d5ae341f759c7db2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 19:42:14 2013 +0200

    imapc: Added a Courier-workaround for not returning UIDNEXT on SELECT.

commit 8536cd46be13bc18aa538b279d7fdba7d54e268f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 18:59:20 2013 +0200

    virtual: If virtual mailbox has no config file, assume it's just nonexistent.
    Most importantly if the virtual namespace root doesn't have the config, it
    should fail with MAIL_ERROR_NOTFOUND rather than MAIL_ERROR_NOTPOSSIBLE.

commit a952a4444e46e107b15ab1bd0e8b63a29f94b123
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 29 17:32:42 2013 +0200

    lib-http: Added http_url_escape_path()

commit e67a891ef14857c83480a7fbeae94a321353455c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 28 11:50:40 2013 +0200

    doveadm-server: Minor error message improvement.

commit 678376deaa804c035ed2fa2a4cacd4823607b850
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 28 11:50:14 2013 +0200

    doveadm-server: ioloop change caused assert-crashes if outgoing data was buffered at the end.

commit e0e2c938d774fc5df086c102fea7210ed9e0557b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 26 19:11:34 2013 +0300

    auth: Refuse to run checkpassword script insecurely by default

commit c215ca02d468b0e542523df1ed18e5f2d7e63968
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 26 18:59:52 2013 +0300

    fts-solr: Fixed support for multiple Solr hosts when same process handles multiple users.
    E.g. indexer-worker was always using only the first user's Solr host.

commit 81558ac5d0b1a23861870e084fa52cbc951ceda6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 26 18:59:03 2013 +0300

    lib-http: Recent DNS change caused lib-http to access uninitialized memory.

commit 75f28ef07dd77910878df7a9e11a1e2b094c14b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 26 18:31:16 2013 +0300

    dsync: Fixed crashes at deinit when -r rawlog parameter was used.

commit f6f302e49ed0df9b07f020f462b24def023ba7aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 26 18:07:45 2013 +0300

    auth: Fixed crash with auth_verbose_passwords!=no and non-plaintext auth

commit a3e719eb9ced56bb9abbe291af95ac87fa36bbc8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 26 18:06:26 2013 +0300

    auth: Fixed assert-crash with auth_verbose_passwords!=no and 32bit systems.
    t_strndup() assert-crashed with size=UINT_MAX parameter.

commit 280503e88a6b2f72a32a8fbe363794abaaa845d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 24 16:21:10 2013 +0300

    *-login: Send the auth reply back corked.

commit e911b23f3e05308df9b98b1a3fdaf72e4302d8fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 24 16:08:23 2013 +0300

    login proxy: Use corking when writing data.

commit d31c77e63713a6cf3687a4b38ff8daf6d6c7a3dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 24 14:59:03 2013 +0300

    auth: Cache master user logins also.

commit bada94029be451d716948d6e03a4fc329447486a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 24 11:25:41 2013 +0300

    doveadm mailbox create: Added -g <guid> parameter to create mailbox with specific GUID.

commit c10d7b092e684ddcff8c9ae865ca157ba6ba09c1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 16:51:55 2013 +0300

    doveadm copy: Don't require the extra mailbox+extra parameter checks as expunge/move requires.
    Perhaps they wouldn't be necessary even with move.

commit 50d16f6fefefb19e41a01400ac11a2adb4d8c231
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 16:50:57 2013 +0300

    doveadm expunge: Improved the error hint message about using something else besides MAILBOX.

commit e7a3ba6a438aa2963355805a13e89bea3cd47ba9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 16:33:43 2013 +0300

    lib-master: Fix to previous commit.
    It broke doveadm-server's "does client need authentication?" check.

commit 6de8a4d76cf113819a9b32536f048cceda187582
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 16:23:23 2013 +0300

    stats: Hide warnings about old autocreated sessions having gotten lost.

commit 9217d2426b4f8ece47441357f35d8bb34d97c4eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 16:10:30 2013 +0300

    lib-master: If service_count=1, close the listener before starting to handle the connection.
    This way if the connection handling takes a long time and the service
    doesn't notice that master dies, it can keep running without keeping the
    listener fds open and preventing a restart.

commit 7195a14c21f79c239d25719e647af37c9a0bf380
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 15:36:02 2013 +0300

    replication plugin: Hide write(fifo) EPIPE errors, which just mean a server restart.

commit 6ac32bfcdcd9e96e9b6614914fc4b0a926dcfa69
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 15:26:35 2013 +0300

    dict-redis: Don't crash if we get disconnected during an open transaction.

commit c3f05842d124c798afdcf67ccf29d8fe29ef2316
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 15:16:52 2013 +0300

    dict-redis: Don't crash when receiving invalid input instead of expected $size.

commit b91b14dfb49823ffa445aa50c56d23c67b888cd4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 14:59:57 2013 +0300

    doveadm-server: Fixed hangs caused by previous commit

commit ecc0cf8395c1e4036ce483ff4bf08855312074e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 14:35:07 2013 +0300

    io_loop_run() now assert-crashes if it's attempted to be used recursively for the same ioloop.

commit 06c303e21a11e11209f40a2658f2864819d59f70
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 14:34:35 2013 +0300

    doveadm-server: Don't call io_loop_run() recursively for the same ioloop.
    This breaks things more or less badly, especially ioloop-kqueue really
    didn't like it.

commit a3ed53b37b359597dde3817c0a1e8863c7805077
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 11:47:10 2013 +0300

    lib-auth: auth_master_cache_flush() always waited for timeout before finishing.

commit f205e138634bd4269fa095463938cccf3970954d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 11:40:26 2013 +0300

    auth: Don't crash with "doveadm auth cache flush" when cache is disabled.

commit 1d00bd0bf4205166e66916facb3ca5b0be49dd28
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 23 11:38:07 2013 +0300

    ioloop-kqueue: Added extra assert.

commit 28715adb0aa53197a25aac72f1bdd44f44df3cd1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 22 19:12:38 2013 +0300

    lib-dns: Fixed busy looping when dns-client disconnected.

commit 4f825be38fed479bbe54ca0a76b7d1256e70ce80
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 22 15:36:07 2013 +0300

    lib-fs: Added dns_client to fs_settings.

commit 7944646fad6aa1e7c649c3d33e454c516b0220b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 22 15:35:27 2013 +0300

    lib-http: Support DNS lookups via the new dns-client API.

commit ba54c712141b9764a2e06ed8dfb35bc3154b53c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 22 15:34:55 2013 +0300

    lib-dns: Added alternative API for doing longer connections to dns-client process.

commit be2bc5677a16a3547d5cbfd21c9deedc96a759ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 21 21:38:17 2013 +0300

    doveadm backup: If -D parameter is given, log the reason why mailbox gets deleted.

commit ec0dffdfba77aa15cb53a2b0a5fa3280a8c23ee8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 21 20:47:53 2013 +0300

    imap: COPY allows transaction commit now to fail with "some messages were expunged".

commit 66bc85d333c53c29ef17b92b7964b86fc5f6d186
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 16 20:16:45 2013 +0300

    imap: Don't assert-crash on FETCH BODY[MIME] (return BAD instead)

commit e47c2f17d8136c4d972d1074a3f84ba2ecef4fdc
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 11:11:04 2013 +0300

    lib-http: http-client: Added support for tunneling SSL conntections through proxy.

commit a62fe4b300e2f591e939993aec4cac1e7ae30ad1
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 11:05:08 2013 +0300

    lib-http: Added support for creating CONNECT tunnels through HTTP.

commit 4219de12b28f1936219e27501b9c4b27a4f8d53c
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 11:00:15 2013 +0300

    lib-http: http-client: Implemented proxy support.

commit d82ad7143c057c565e1fd5f3580645556ed0bcc9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:58:04 2013 +0300

    lib-http: Implemented functions for cloning and copying HTTP URLs and for constructing partial URLs.

commit 50d1446e71cfbdc5b6d7bafcf91b7bff453989d3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:57:05 2013 +0300

    lib-http: http-client: Added request error code for broken payload input stream.
    This error is triggered when reading from the provided payload input stream
    fails while sending the request. Previously this would yield the same error
    code as for a failure to write to the connection output.

commit ad03049781fc14807248007d524be4daf06c3ee2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:55:38 2013 +0300

    lib-http: Added support for disabling automatic redirects.

commit 6c6915f4d75c352c63156df202fa51cd97524bab
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:54:50 2013 +0300

    lib-http: http-client: Made requests release payload input stream as early as possible.
    This prevents deadlock conditions when used for the HTTP proxy.

commit 0252ab930ea091e4c5ff18974ea2a21df00cab52
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:54:10 2013 +0300

    lib-http: http-client: When client request is retried based on a response received from server, return full response to caller if retry is not possible.
    Before, it would construct a dummy-response that basically retains only the
    status and reason elements. This is currently only relevant for the way a
    417 Expectation Failed response from the server is handled.

commit c9779bb27bb927a49de946e66f178126ecd451b6
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:53:16 2013 +0300

    lib-http: http-client: Made dummy response for returning internal errors more complete by filling in the version number and a proper date.

commit 1faa520084b901b15d83d3d68baaee2535051def
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Oct 12 10:52:35 2013 +0300

    lib-http: Added more tests for the http_request_parser.

commit 1b75b342eca820e52ca27e6bc33e0062d63eece3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 21:36:21 2013 +0300

    lib-dns: Close dns-client fd before calling callback.
    Just in case the callback is slow and keeps the fd unnecessarily long open.

commit 6db058ebd3671e2e0db9ff6a26bdf54bb0dfc761
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 20:03:06 2013 +0300

    lib-lda: lmtp_client_connect_tcp() shouldn't immediately call callbacks if dns lookup fails.

commit b6540ed0dc3a4b9d43dc2e9e91971d27e1d0b384
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 19:27:39 2013 +0300

    imap: Improved "EOF while appending" disconnect log message.

commit 2d2ebe91d56e9a158de000c9d0026f65600fbcfa
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 19:17:10 2013 +0300

    liblib: If parent ostream closes itself on error, close our ostream as well.
    This avoids a situation where ostream is basically unusable with
    last_failed_errno set, but it's not marked as closed. The current code
    often checks ostream->closed but doesn't check last_failed_errno.
    ostream-file also autocloses the stream, but filter ostreams without this
    patch don't autoclose, so this caused problems with e.g. IMAP COMPRESSION
    extension where the zlib-ostream didn't get marked as closed, although the
    problem was only logging "BUG: Unknown internal error" instead of
    "Disconnected" as the client's disconnect reason.

commit ca31fc1a8e48281c6882796fa7d4372acc2f97e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 18:54:36 2013 +0300

    LAYOUT=index: Fixed race condition during mailbox creation.

commit e1cf5b2efd5b1f171fa5613fc7decc785b08989f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 12:31:48 2013 +0300

    lib-storage: If search finds a match to a cached header, don't open the body stream.

commit 3f41cfaa698846e782ba086ca61a8395d89ca551
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Oct 11 12:22:56 2013 +0300

    lib-storage: Header+body searches might not have searched the body in some cases.
    Only the header was requested for the search stream, which with imapc and
    pop3c could have caused the body not to be in the stream, although it
    usually was because of the "fetch body" hint.

commit 28482afc8139462ff9bcc6cedc4936129e8763ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 10 20:50:10 2013 +0300

    master: host.domain lookups weren't cached, they were done at the worst possible time.
    This fixes "net_connect_unix(imap) failed: Resource temporarily unavailable"
    and various other issues where processes weren't being created fast enough
    if the host.domain lookup was slow (e.g. done via external DNS).

commit 4addfd26372c6ae32ec93252696d86fd32081327
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 8 16:48:04 2013 +0300

    auth: Added ability to truncate values logged by auth_verbose_passwords.

commit b99130e4cf4af4e6b103b949456222f3a2dff424
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 8 10:04:55 2013 +0300

    lib-http: Added setting for User-Agent header.

commit 34de49959c6612f519bff07ba5cd1f3ef964bb0c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Oct 6 13:21:15 2013 +0300

    lib-http: Fixed linking with some compilers
    Inline functions in http-header.h still required linking http-header.lo with
    e.g. Sun Studio

commit 60fe2f162e61eae1c2821bf9705c7ff7987c8ade
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Oct 5 13:29:26 2013 +0300

    lib-fs: Added FS_OPEN_FLAG_ASYNC_NOQUEUE

commit 0a1ef4d0a56eaa8e67f77bf60cff97a1282f3816
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 3 14:56:23 2013 +0300

    dsync: Added missing alarm(0)
    This didn't really cause any problems normally since the process was usually
    just about to die anyway.

commit 077ab4470660b791c2b76eb4bb5663bbafc8177f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 3 11:34:48 2013 +0300

    If DEBUG_OUTOFMEM environment is set, abort() on "out of memory" errors.

commit 5973d496b16721af6d2c1fa90b016aacddf13554
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Oct 3 11:20:09 2013 +0300

    dsync: Removed periodic commits while importing.
    The problem is that the current algorithm doesn't handle it correctly. If
    there already are some mails that exist locally, or remote has duplicate
    mails, the messages may not be saved in the UID order, and if there's a
    commit between such wrong ordering, the UIDs get renumbered.

commit 5f9293676b7bd32f7fcb18f5cb1d7e9d68be74bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 2 11:48:31 2013 +0300

    mailbox_list_index: Fixed assert-crash sometimes when deleting a mailbox.

commit ca096c557fac1cf87dd5f129c202b2c1d990ff59
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 30 15:28:04 2013 +0300

    doveadm fs delete: Added -R parameter for recursive deletion.

commit a31d634ec358e49e342d85f6f5c859fb961d83b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 30 09:04:43 2013 +0300

    lib-storage: Fail with an error instead of crash with namespace prefix=inbox/

commit f2767c736d72e6aa9a2aae5d0a9b89abae9e29e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 26 05:51:43 2013 +0200

    Panic if io_remove() fails with EBADF.
    It's a bug that shouldn't really be ignored. Panicing will give a debuggable
    core dump.

commit fe145bd9fbeb609a691e23998117d62f40a3d00c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 26 04:55:59 2013 +0200

    lib-http: 32bit system fix.

commit 4036973f88b55391526a5b063b347dac2b24d19d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 25 10:06:19 2013 +0300

    Added signature for changeset 1de9a494cb25

commit dd4eafd393b6c91906397f92b0a5b4ab87cee647
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 25 10:06:08 2013 +0300

    Added tag 2.2.6 for changeset 1de9a494cb25

commit ca287f3b01b6e3087f600343bc9cdf8b8f849f78
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 25 10:06:08 2013 +0300

    Released v2.2.6.

commit 5d4c793b4e3dbc07f08daa4465594b1857f80725
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 23 04:25:16 2013 +0300

    master: Added reuse_port setting to inet_listeners, which enables SO_REUSEPORT if available.
    After forking a new service process, a new listener socket is created for
    each such inet_listener. Linux v3.9+ added SO_REUSEPORT feature, which
    should distribute clients more uniformly to the processes. I'm not sure if
    this makes any difference in BSDs.
    
    At least in Linux v3.9 there was still a bug that if the number of listening
    processes changed, some TCP handshakes might not finish. I don't see if this
    has already been fixed, so this is probably safe to use only for services
    whose process count doesn't change (e.g. process_min_avail is set high
    enough).

commit b270c58fc227c91a88b07316d680418ec75021e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 23 04:06:08 2013 +0300

    lib: Added net_listen_full() with a flag to set SO_REUSEPORT on the socket if available.

commit d15b2fc29cc14709a36503d21bfb0488ee6f4006
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 07:43:31 2013 +0300

    imapc: Don't crash if imapc_password is missing.

commit 435a5772f577a6e080802bf1422deeb2bfe18baf
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 07:40:01 2013 +0300

    maildir: Autocreate missing cur/ new/ tmp/ directories only with Maildir++ and imapdir.
    \Noselect mailboxes aren't possible with those layouts, but with other
    layouts they are and they shouldn't get automatically created just by
    selecting them.

commit 835f2fce0430781f262efd9f1e09c960d2e1c37a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 07:24:26 2013 +0300

    i_getpw*(): Added OpenBSD workaround.

commit 08997487a0de72a0e77ff73d54e0ae228f1d5908
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 07:20:12 2013 +0300

    istream-attachment-connector: Add base64 parameters to stream name for error messages.

commit 825111a4e508289a886a01fccbf22e5cc014eee4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 07:19:39 2013 +0300

    istream-sized: Fail read() also when the stream is larger than it should have been.

commit fb100955a1215b4ce3ac89171fcd95c211169f46
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 06:30:47 2013 +0300

    mbox: Fixed assert-crash due to wrong transaction_count handling.
    This happened only when messages had been expunged by another session just
    before saving a new message.

commit 6516e7c2cfb84bbdaff7d748df0a0f1f6f39f75d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 04:41:50 2013 +0300

    lib-fs: Improved fs_write_*() error messages.

commit 9ba3ecf529e681688bbf728fc3cb5101bd68d671
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 04:40:02 2013 +0300

    lib-storage: Improve error message logging when attachment writing fails

commit f4735bf7ec2019fdc730e9ebdb39e5a4ea580405
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 04:39:35 2013 +0300

    lib: Added [io]_stream_create_error_str()

commit 904ca86f5d3f27505f50f5342214aabb78629cc8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 04:24:29 2013 +0300

    ostream-errno: last_failed_errno wasn't set, causing problems with some functions.

commit 0482d891a6669537e10a1abc9866b45f2fc55fcc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 04:14:23 2013 +0300

    Fixes and improvements to istream-attachment-extractor error handling.
    If an attachment saving failed, the mail was still saved to disk, just
    without the attachments.

commit 49b3aba19447f9d15fbe0506d81d6572b210a124
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 03:40:14 2013 +0300

    acl: Hide non-listable mailboxes from a shared subscriptions file.

commit 10666ea72a4c297159c94d269acb4de12ffd4cc6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 03:17:12 2013 +0300

    example-config: Fixed login_log_format comment.

commit 780f1d9a6a884d4d5f2931a3ff3a48a056d8db74
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 02:44:21 2013 +0300

    auth: If auth_verbose_passwords is set, log the password also for unknown users.

commit ed3c4faf5ddf559818e4a3f7efc0f53f97396227
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 02:32:05 2013 +0300

    auth: Use a common auth_request_log_unknown_user() for logging "unknown user" entries.

commit 731238b42df3953f63bf0f44d18ef58b27a1cc29
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 02:24:05 2013 +0300

    net_listen_unix(): If path is too long, return EOVERFLOW instead of EINVAL.

commit 72e0939f9eb11f3bcf62592848dd0a47c41246c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 02:23:30 2013 +0300

    If EOVERFLOW errno isn't defined by system, fallback to ERANGE instead of EINVAL.
    ERANGE is used by other functions as well, such as getpwnam_r().

commit f974134f495e47ba7173f5b0f75fbd5cbacf1fe2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 02:20:09 2013 +0300

    Added ssl_prefer_server_ciphers setting.

commit fad2e085dbb4cf09cfd99b96f9cd89994f0908be
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 02:07:16 2013 +0300

    mbox: Fixed mailbox_list_index=yes to work with non-Dovecot mbox changes.

commit c7eb1ffb7c73cb5d9c1316bbecd02947441a40d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 01:40:11 2013 +0300

    *-login: Added %{orig_user}, %{orig_username} and %{orig_domain} variables.
    The original username is what the client sent to server before any
    translations.

commit d0ff92b81b05166d800e04bbd2054a664305a330
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 22 01:09:32 2013 +0300

    dsync: Added -P parameter to do a purge for the remote storage after syncing.

commit 6f970b9a0dadb80e120d017c75c637b5a3879dac
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 23:33:42 2013 +0300

    lib-storage: Fixed listescape when escape_char was the same as namespace separator.

commit a471e03f0b63c3af7115c507edc34530f7351d3c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 05:28:45 2013 +0300

    imap: Send * OK [CLOSED] always before tagged SELECT reply.

commit d2ca20a479e76af8557b4a74b0b51e4de0e3c9e3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 05:05:22 2013 +0300

    lib-storage: Don't create a settings cache for initial global settings read.
    This fixes at least doveadm -A so that it doesn't connect to config process
    for each user.

commit 5afc76d0215c5f7631dec06ef864d59f0686a0a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 05:03:03 2013 +0300

    auth: Fixed user iteration hang due to earlier stream corking changes.
    Also fixed process title updating for auth-worker process during LIST.

commit e262b92fc5c1a73e5edac5b9f787c36325e2b6a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 04:48:52 2013 +0300

    lib-auth: Fixed infinite looping if user listing failed because auth process disconnected.

commit bdb454d51506bf66990b9c6cb6613395cace2d33
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 04:02:51 2013 +0300

    lib-auth: Recent cleanup commit was actually cleaning up too much.

commit 16cd2c1b487b1fb63f3081761e0d1110d61137a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 03:49:22 2013 +0300

    doveadm sync: When -1 parameter is used, ignore missing mailboxes in source.
    Previously the syncs finished with "Mailbox changes caused a desync." and
    exit code 2. This was especially common when the destination server had
    new autocreated mailboxes and user logged in after the first dsync.

commit 311cbd9b1c81df050f5019600a2a809bc620be00
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 03:40:46 2013 +0300

    dsync: Added more consistency when debug logging about changes during sync.

commit 31d32d39dd09be0625a6d92ee715155f5d679515
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 03:29:09 2013 +0300

    dsync: Added some more debug logging.

commit 4f2fa2e5f5a27e1d59dd38fbbf38e420e006596d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 21 02:55:27 2013 +0300

    imapc: Don't log unnecessary errors at deinit about aborted hiearchy separator lookup.
    The lookup is done asynchronously at startup. It doesn't matter if we never
    get around to finishing it.

commit dfbd56c81cb8fb7fe70393c4682cc99e68fe06b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 10:45:22 2013 +0300

    director: Detect lost director restarts and reset last_sync_seq.

commit 88cb1595bf0ad84846b9c611a1afbca35fcfe460
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 10:35:34 2013 +0300

    director: Make sure director restart notifications go to everyone in the ring.

commit 84304cae9fe7c8465e57d057bb9ee63d79997a72
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 10:12:24 2013 +0300

    director: Directors weren't always marked as restarted when they were.

commit 9d2575d99e43d08898c44d861f1a2e1377043c1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 10:11:45 2013 +0300

    director: Fix & improvement to debug logging.

commit 7e656f6f504c93f91af8b6eb290da1a52c11d01b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 10:00:48 2013 +0300

    director: Added more debug logging.

commit 44875c83e0fa7111571262686818d8de43a57b2f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 09:46:31 2013 +0300

    director: Don't assert-crash if PASS lookup fails.

commit 754943e33aadc4469268e61d5995b1dd3c1cc410
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 04:27:29 2013 +0300

    dsync: Don't log "Mailbox changes caused a desync" warning when running via doveadm-server.

commit 586ad46d25d782a4c7895ee88ba640651c0525b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 04:20:22 2013 +0300

    ssl-params: Long-running ssl-params process shouldn't cause Dovecot restart to fail.

commit 3136f1b7b84dc305aabd9c95c9d031adfe44f29d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 04:01:10 2013 +0300

    lib-ssl-iostream: Give better error message if CA settings are missing.

commit f605df8a4c15cc7a11e16fdde994d51473700890
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 03:54:31 2013 +0300

    dbox: Fixed "UIDVALIDITY=0" error race condition.
    If session 1 had mkdir()ed but not yet created the initial index, while
    session 2 attempted to open the mailbox, it would create an empty index and
    log the error.

commit 1f0da9f3740f8594aa7e8bda35b897277ead32e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 03:41:51 2013 +0300

    master: Make sure new processes aren't created after stop signal is received.

commit fc22ecbb03396eda9270472446a6065a986a43e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 02:38:53 2013 +0300

    mbox: Handle correctly if MAIL_FETCH_HEADER_MD5 lookup fails because mail is already expunged.

commit d5b366506a39870e6ea36dd89cf7ef548c5a9916
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 02:28:45 2013 +0300

    lib-auth: Don't leave stale pointers to stack lying around in memory.

commit 3eb142b9963c91854fac13ccd91bfd44f2c82511
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 00:59:36 2013 +0300

    ioloop-kqueue: Added assert

commit 6a67bcb469c615bd750542439b3242112aa50412
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 00:22:15 2013 +0300

    imap: If FETCH fails, log the stream's error string instead of errno.

commit 2c42748505ef4aed83ff59b34e50ed5606900c86
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 00:20:19 2013 +0300

    istream-chain/concat/seekable: When child stream fails, copy its error to ourself.

commit 9f131c8b6d88ffc65d94eae63e0b3c11d7c24cb9
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 00:14:11 2013 +0300

    istream-file: Assert-crash if read() fails with EBADF.
    Something's already wrong at that point and it may not be safe to continue.
    Also crashing makes it easier to debug such situation.

commit 1c6f6f5bef70f16546b3bc8f4cd5f93f373e82a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 00:12:45 2013 +0300

    iostreams: Set stream error string when it provides extra information.

commit 862ec874f9373e3e499e237d3b9f71fdf1413fee
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 20 00:00:49 2013 +0300

    iostream: Added ability to set/get error strings for streams.

commit cf4a4a35ace7747855e07eb4641ba83cbe8b5113
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 19 22:44:20 2013 +0300

    doveadm: Added "auth lookup" command to do a passdb lookup.

commit 1479a685cdb1641783ac02ba135450929f5c2658
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 19 22:43:45 2013 +0300

    auth: Fixed non-auth passdb lookup when password had ".<encoding>" suffix.

commit 9a7f22e2c14b507e6044e5534df978a0c3b638d0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 19 22:20:56 2013 +0300

    imapc: Abort pending commands before any deinitialization to avoid crashes.

commit 10962368c30afde135743fd9796122e88a708e87
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 18 23:24:30 2013 +0300

    lib-http: Created tests for http_request_parser.

commit ded5763b4ef26dbae59ca7990ada3e37c57d660a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 18 23:24:22 2013 +0300

    uri-util: Improved authority 'host' parse error.

commit 1490e4e923be08022fe68371251bda7980c63bc3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 18 23:24:11 2013 +0300

    lib-http: http-url: Fixed return of proper error message in case of a failure to parse request target Host header.
    Assigned the error to the parser object rather than returning it directly.

commit e74d62011e66ec205159869f3fc16d6ffd92a421
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Sep 18 23:24:02 2013 +0300

    lib-http: Fixed handling of limits=NULL parameter for http_request_parser_init.
    Got messed up in patch queue.

commit 329c2181e609b39294cc9cc76921a96a15e8f8a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 18 00:00:05 2013 +0300

    dsync: Don't attempt to access mailbox contents with -g "" or -m "" parameter.

commit 3a37fbef942ff122a59b91c8f6fc60858ea31661
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 17 23:32:57 2013 +0300

    lib-storage: Added a separate prefix for server metadata that aren't deleted with INBOX.

commit ec047a9c54a02338e85fb1767120b0923f6d4148
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 17 23:12:03 2013 +0300

    dsync: Improved debug/error logging for changes during sync.

commit 1e653c7406ec0b062c0bacfdf2e7568a3f860500
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 17 21:57:48 2013 +0300

    lib-http: Added (non-default) support for parsing user:pasword from HTTP URL.

commit 4c8646ca7a1bfe3e5a43f1f3e329f8ff8c24d851
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 17 21:57:14 2013 +0300

    lib-imap: imap-url: Forgot to check for the presence of ':' in userinfo, which is not allowed.

commit 47f00ff24adbde08eb2d8a47c3e420aeb482935e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 16 10:05:24 2013 +0300

    imap: Fixed/improved error logging for FETCH

commit 87c121a4c05b9cee46f1f757ec6999d441519abf
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue Sep 17 02:40:17 2013 +0300

    lib-http: http-client: Allow overriding all implicitly generated special headers.
    Which are: Connection, Content-Length, Date, Expect, Host, and Transfer-Encoding.

commit 3ec5378aadaa699c38b2e02be30aae1add36eb7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 16 13:17:52 2013 +0300

    Fixed uri_parse_slashslash_authority() to skip over "//".

commit 2e6f9d35d7b09ef87f347c67e7d77a28731a6bda
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Sep 16 01:02:03 2013 +0300

    lib-http: http-client: Fixed segfault caused by earlier improvement of connection output locking.
    Segfault was triggered when an aborted request received a response.

commit 2ccb0bce340110ab68d1a490103d7b0271962139
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:56:47 2013 +0300

    lib-http: http-client: Implemented explicit HTTP/1.0 support.

commit 81498cffac5fb96fcbab6a30418017b04ffb59d1
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:56:25 2013 +0300

    lib-http: Added support for handling HTTP/1.0 messages explicitly.
    This means that default connection persistence semantics are inverted for
    HTTP/1.0 and keep-alive Connection option is recognized.

commit 22b47ecd1e6fd11d69433e4111adc57c40dde270
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:55:57 2013 +0300

    lib-http: Added support for parsing Expect: header (currently only accepts `100-continue').

commit b8a1b8eb4f13971c0539ce95edcd99503cc6f475
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:55:11 2013 +0300

    lib-http: http-request-parser: Added function to test whether payload from previous request is still being parsed.
    This is needed in the server implementation to check whether a request is
    completely read.

commit fa4d00f73d120603a7886aed7433d6c3fceb9bf5
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:54:04 2013 +0300

    lib-http: Implemented limits on request method and target length.

commit 1175415b88ff168e367c77df23901eada13225b9
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:52:01 2013 +0300

    lib-http: Added support for enforcing a payload limit for incoming HTTP messages.

commit 208dcaf62332b80b220c8c66e776f7cc0c39253b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:50:08 2013 +0300

    lib-http: Adjusted message and request parsers to return an error code.

commit abd1c1f3b7f82c4f06d8ff447932416c63cfbbae
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:47:54 2013 +0300

    lib-http: Adjusted request parser to pre-parse the request target and host header into a proper target url.

commit e641c9f656f1788ca6226ef0d60b2d592e2ca6d1
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:47:29 2013 +0300

    lib-http: Added support for parsing request target URLs.

commit 101e78ae4d5705f196fba22db3261db042bfb3c2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:46:25 2013 +0300

    lib-http: Improved display of invalid characters in parse error messages.

commit feba5e502b2131c9a1c766b7ef9ff041dbf71d1d
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:46:12 2013 +0300

    lib-http: Implemented limits on overall HTTP header size, size of individual header fields and the number of fields in the header.

commit e8f1e510df3ab051a816715c2056f0d10aee929e
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:44:42 2013 +0300

    lib-http: Unified http-request.h and http-response.h headers.
    Renamed struct http_response_header to struct http_header_field,
    encapsulated the array in struct http_header and put it all in
    http-header.h/c Added inline utility functions for header querying and
    getting response/request payload size.

commit 9e7bf91667639a2390207ab4d90bf88e2afcec2a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:39:45 2013 +0300

    lib-http: Improved message header and body parsing for better RFC compliance.
    Added pre-parsed transfer-encoding and connection header content (array) to
    parsed message struct. Fixed message body handling for when both
    transfer-encoding and content-length headers are missing. Now duplicates of
    unique important message headers yield an error.

commit 233a96794faa7734dfc3aea19503c14b29cccfb7
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:37:59 2013 +0300

    lib-http: Added support for parsing HTTP word syntax, which includes quoted-string.

commit 6dad0888fcec8372f230941c70d8940b8c203b32
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:36:44 2013 +0300

    lib-http: Adjusted message parser to accept pool from caller.

commit 6a90041707f1290c8970a3bacb0f8f928aeaaba6
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:36:18 2013 +0300

    lib-http: Adjusted response and request parsers to accept a request/response object to fill with data, rather than have it return one.

commit a4e186e3ef267fc7a6b592788067c8c9c87d0785
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:35:04 2013 +0300

    lib-http: Added support for asynchronous payload for requests.
    This means that the payload stream passed to the request can be a
    non-blocking socket stream from some other connection (e.g. proxy client
    connection).

commit df70bf8c997cd91452cdb3a5c2e20605d30446d2
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:34:06 2013 +0300

    uri-util: Added support for parsing bare authority URI component (for use in HTTP).

commit 6d573191bea1a64d6046be070487a5705a2d0204
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:33:44 2013 +0300

    lib-http: http-client: Requests now automatically generate a Date header.
    The used date value is normally the submission time of the request, but it
    can be set explicitly.

commit 930a2323047a5f0cdcc79a090488b72205c913f3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:33:04 2013 +0300

    lib-http: Fixed client connection and peer log labels to show proper IPv6 peers.
    The labels did not put IPv6 addresses in square brackets.

commit 3fe92243970f9c0b7c449569fbd0c805e8719384
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:32:11 2013 +0300

    lib-http: Removed useless prev,next fields from struct http_client_request.

commit 188297bee5a2fb1bd5130019da4cd1955b753e15
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:31:51 2013 +0300

    lib-http: Fixed handling of non-standard CRLF at end of request.

commit fc94140acba51adafedafbc8491a3223a51db7a8
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:31:28 2013 +0300

    lib-http: http-client: Fixed request scheduling and connection management.

commit 27421074812b84d144b68388e597f4700f4f1c1b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:29:03 2013 +0300

    lib-http: http-client: Fixed leak of ostream when request was resubmitted upon 417 response regarding 100-continue.
    This would only occur when the server refuses Expect: 100-continue with a
    417 response. The payload_output stream would be overwritten without being
    freed first.

commit fde2e392f3003ec9adc4df7b0c395b4e498bfd28
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:28:21 2013 +0300

    lib-http: http-client: Connection was using wrong request index in request_wait_list to continue sending outgoing payload.

commit 858a13d06402d3d6e2dc683f6696c14192ad6b02
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sun Sep 15 03:27:31 2013 +0300

    lib-http: http-client: Fixed pipelining when payload synchronizatio (100-continue) is used.
    Forgot to lock the connection output, which meant that new requests would
    enqueued for the connection while waiting for 100 Continue. This would
    cause an assert failure.

commit b4a7dbfb4256abcd2f983d56bd032acd55f59591
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 14 00:26:58 2013 +0300

    Comment update.

commit b6ecc96ac80d70e25a5e83d14383e2b8e17d29dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Sep 14 00:26:45 2013 +0300

    lib-fs: If backend doesn't implement exists(), emulate it with stat().

commit 7bf0bc502847098575465a650c5967d17bc0e6ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 12 03:52:01 2013 +0300

    doveadm: Don't refer to old doveadm_proxy_port setting name in error message.

commit 202a34580f6204672d9b0d6a0756f35a3c4cdef6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 12 02:58:51 2013 +0300

    istream-hash: Data was hashed multiple times in some situations

commit 66d84e6f0ae34a3cf5b8fa8e009d6caf025b6a2a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 12 02:33:01 2013 +0300

    istream: Improved "stream not seekable" panic message.

commit cbb79ea1b1a49255c6edc46409a544666b22788f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 12 02:32:47 2013 +0300

    istream-hash: Allow seeking, but only after reading the hash.

commit 6523f54d1521edf894880f2d45e75cef5dd31c3d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 12 01:38:54 2013 +0300

    auth: auth-client socket should be owned by $default_internal_user
    It's mostly the same as auth-login, which is also owned by it.

commit 9c45f33d0e0ca0b8f87f9a3318dd505a78fd198e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 10 04:11:03 2013 +0300

    lib-fs: Added support for asynchronous fs iteration.

commit 67a163f3a07593446fab1cbbb8f92a89d4c6cb57
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Sep 10 00:27:12 2013 +0300

    lib-fs: Added support for giving a hash of the written data to be verified by storage.

commit 3157f61431f19e01173e2e0d270c28af86dc97aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 9 04:34:58 2013 +0300

    liblib: Added istream-hash, similar to ostream-hash.

commit 61f018f5b498420b044d6eed7c7795e224d0e1b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 9 04:34:45 2013 +0300

    Minor code cleanup.

commit d8361cc8576d9ede93a037f9b96f2a3f9b7e9054
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Sep 8 19:20:39 2013 +0300

    hmac: Fixed crashes on CPUs that don't allow unaligned memory access.

commit 1c1ded8e94004fb04abc17db4747ad253c14d23c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 6 18:30:54 2013 +0300

    auth: Removed unnecessary NULL check.

commit 8236d57101e1cc557057461fac333188a8d44d61
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 6 18:28:59 2013 +0300

    imapc: Don't crash if server sends EXISTS while mailbox isn't selected.

commit de3466de0dcc4b0da5a1205591cb1fb99eb1392f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 6 18:26:48 2013 +0300

    fts-lucene: Fixed crash in doveadm dumping lucene index.

commit 72e15c62aae18da5cd17b7e0c9124d23c06d2587
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 6 02:39:56 2013 +0300

    Avoid doing side effects in assert.

commit ee248252648e99f5d701ecd6e33640ea77e11cb7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Sep 6 02:39:16 2013 +0300

    lib-index: Minor fix to regenerating missing transaction log parts.

commit 16a92d0c84869c86c3d5e4cbb9fe1d455ff59457
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Sep 5 21:06:50 2013 +0300

    lib-lda: Fixed passing through error message when mailbox couldn't be opened.

commit 5e93930ec684cac19d71c44e5e42690acf452a74
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 4 22:43:47 2013 +0300

    And removed accidentally committed nbsp.

commit af8b1248fed8529d26985460acdc4b1e4b7de675
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 4 22:41:42 2013 +0300

    Fixed file descriptor leaks in rather unimportant places.
    Found by Coverity scan.

commit 76959d3d6fed45d5f5e1397fcdcf09a5adb87f24
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 4 22:16:02 2013 +0300

    lib-index: Fixed modseq updates when modseq was over 32bits long

commit 93dbad4bfd3347f6451d217cc9e115f9f0bf9f40
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 4 22:13:01 2013 +0300

    i_close_fd() didn't handle errors correctly with gcc.

commit 2a325b952fe47346d76221d2c07a3fe02faf8800
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Sep 4 21:23:33 2013 +0300

    Fixed off-by-one buffer overflows (practically non-exploitable).
    Found by Coverity scan.

commit 0de730a46cbc2adb61bda2f5ea097202e0c3c435
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 2 17:44:39 2013 +0300

    master: Fix to previous pre-forking change.

commit e7a4c77db3a37224b91e16d139fa80ce67dc37ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 2 17:37:47 2013 +0300

    master: Pre-fork processes only while master doesn't have more important things to do.

commit b52230a2649019208b13dcbc0469eecde80f76d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Sep 2 17:06:49 2013 +0300

    lib-master: If net_connect_unix() fails with EAGAIN, point to a wiki link for reasons.

commit 6bcbea70fc8315555bc6dda373fe6a8288e895cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 29 16:42:55 2013 +0300

    lib-ssl-iostream: Don't assert-crash if stream buffer gets full.

commit 8cadc80b21c1087b6dd1b48a6522dcc52a081eac
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 29 00:57:13 2013 +0300

    lib-storage: Auto-create dovecot-uidvalidity's missing parent directory

commit 30a5cfac4dc13cc89f36b7b54f889fbb149f7e08
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 29 00:53:30 2013 +0300

    Fixed compiling with old gcc.

commit dacb7917d99efc384dc506dc6d879ac9e92c845b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 27 04:06:43 2013 +0300

    dbox: When fixing a broken file, try harder to find only valid message/metadata positions.
    The previous method sometime broke with compressed mail content, because the
    magic blocks were so short.

commit ce28adabf2c47d3af9ef197787cdb5139424c69c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 21 23:30:07 2013 +0300

    director: Reset last-seen-sync-sequence after remote director restarts.

commit 2f1853d15059f374a0450b52d32f7800cc40dc40
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 21 20:03:13 2013 +0300

    lib-storage: When doing a fast sync, refresh index to see if it had any changes.
    I'm pretty sure this used to be done earlier, but probably some
    optimizations dropped it at some point.

commit 96581b055307a30ffde0e272902c161e4ca96c40
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 21 19:40:54 2013 +0300

    imap: Fixed potential assert crash in APPEND.

commit d6eb3cf3b45da1fb5bb7fd1e1f1b4ba89e2620d3
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Sat Aug 17 15:01:25 2013 +0000

    man: doveadm-pw.1: Option -p can also be used with -t.

commit fe30a45e565f7b803be8fb6abb31584daa219701
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 15 20:25:12 2013 +0300

    director: Previous change caused legitimate SYNC resends to be ignored.

commit 32efae185f1f86167b3f00ea84f8502940c6c677
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 13 21:02:04 2013 +0300

    lmtp: Make it clear that the lda_settings is unexpanded in struct client.

commit 7a4ba2c60813d20f040a7739c3de348d8bcb80c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 13 20:59:39 2013 +0300

    Minor change to prevent invalid code changes.

commit 4612f64419423cd0699a2a2fe104f0c6be3afcf9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 13 20:58:56 2013 +0300

    lib-lda: Default postmaster_address wasn't being set.
    This broke after it was set to allow %variables.

commit c9b225d28d8b36f2260464731d351a845a416407
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 13 20:57:41 2013 +0300

    lib-lda: Don't alow %variables for hostname setting after all.
    I was thinking maybe %d could be used there, but with LMTP the hostname is
    used already in the greeting message before any RCPT TO is even done.

commit f2bb07096ed9be01d1b759f9de1a00ecac7008f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 12 19:02:07 2013 +0300

    auth: Added %{domain_first} and %{domain_last} variables.
    They are both equal to %d normally, but differ when there are multiple '@'
    characters in the domain.

commit f24202d1a342ac63fb8c28e6fa74e16d37f29ca3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 12 17:24:05 2013 +0300

    lib-storage: If dovecot.index.thread corruption is noticed, delete the file.

commit d50ebf52e542a5e19d0cb9299f1a966963f51018
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 12 15:44:51 2013 +0300

    lib-lda: submission_host, sendmail_path and hostname settings can now contain %variables

commit 4a510b3ca2142ea0a30bf5994a42b732d3aebfec
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 12 15:44:39 2013 +0300

    lib-lda: sendmail_path setting can contain parameters now.

commit 72b3eaf5ed9b5abb410ed57e46370bcb750658bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 11 22:54:32 2013 +0300

    lib-storage: Improved error message in threading code's lost message-id.

commit 7ec4907a598d72dc058eb11d97a86b8cd254d5bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 10 16:31:27 2013 +0300

    lib-http: Removed more code duplication

commit 8608ffb77a62476c1edfaad30d7e0a64070b3258
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 10 15:00:36 2013 +0300

    lib-http: Removed duplicated code

commit 39622d42aa198b19fb77d203e78a2418de68f740
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 8 22:37:35 2013 +0300

    lmtp: Don't write extra ([]) to Received: line for mails via UNIX socket.

commit a23cb9e67529802ee6163166f5e853ed945fa13a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 7 19:47:17 2013 +0300

    imap: Fixed memory leak on APPEND error conditions.

commit 36ce71e1c9ce08c4e35b1899d32e45a29ed216ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 7 19:40:16 2013 +0300

    dsync: We didn't send the new protocol version in handshake.
    This caused problems when syncing mailbox formats that didn't support saving
    GUIDs.

commit e04e2ca2a536e2d1ea0c3d4dde68902ab14ea6c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 7 19:26:29 2013 +0300

    dsync: Avoid assert-crash after an error.

commit 385fd14a05d9bc74336bb93257480a36d99900e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 7 18:00:32 2013 +0300

    ssl: Fixed compiling with older OpenSSL libraries.

commit 61b0eeb704039e9837ef3dc7d133096851517d0f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 7 17:20:10 2013 +0300

    Compiler warning fixes.

commit 9b61a6db87c026656f8d2ae214e4486b98a069c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Aug 7 16:09:29 2013 +0300

    quota: Improved init() failure error logging.

commit dc6a2a935b84a63a1ff045434f322f9a40e35e3a
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Tue Aug 6 18:44:37 2013 +0000

    master: Added --hostdomain to the help message.

commit 3813074b3fa42234de37a7b35727cbb24f4cd913
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Tue Aug 6 18:35:02 2013 +0000

    man: dovecot.1: Added description of option --hostdomain.

commit 98bdd7c244be24484c98f6927fc5108173bd9694
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 18:28:31 2013 +0300

    doveadm: If server connection gets disconnected, log the reason.

commit cf91aa1a3b48004fa6f141ca58cdb7aca985b24d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 17:16:58 2013 +0300

    dsync: Stream disconnection error message improvement

commit ecd14e4323bfe9953db9be89dc75858592018a75
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 17:06:50 2013 +0300

    doveadm-server: Error message logging improvements.

commit 1d082a46e1676e7ec13928d588c4a25e062713cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 16:54:33 2013 +0300

    doveadm-server: Include client's IP address in logs.

commit 1f61b0a75f8040dbb9efb99c868b86713b1fa92a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 16:32:03 2013 +0300

    dsync: Don't leak iostreams when running via doveadm-server

commit f5fa1c506e8829b328a3b06827b3138c0d924cbf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 16:28:08 2013 +0300

    dsync: Memory leak fix at deinit.

commit b4f4552697bdc8e467955e262ae446dbe2914c14
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 16:07:50 2013 +0300

    lib-ssl-iostream: Deinitialization fixes.

commit 956b8eea7ae479a38b25175447fc8eac2df30480
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 15:11:14 2013 +0300

    doveadm: If we get disconnected from server, log the reason.

commit 91a58087aa77d102ede3960fe99f78afe42d09eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 14:53:23 2013 +0300

    net_ip2addr() changed to return "" instead of NULL on failure.
    Pretty much everything in the code assumed that it would never fail, which
    it normally doesn't except if the ip_addr was created for UNIX sockets.

commit fb28d085f3807864b1b2e2abfafd1ffac3bbc3f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 14:46:36 2013 +0300

    dsync: After reading remote hostname, use it for the log messages instead of IP.

commit c6c08650b03452755e4c63e575fe1c2ddf584f96
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 14:36:25 2013 +0300

    master: Added --hostdomain setting to show the current hostdomain.

commit 02ab29a23e630ed7237f5f82a75664d952b6c70f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 14:25:49 2013 +0300

    dsync: Name remote connections better.

commit e7d75716b5ece1ac741f3717d4eb2359723e4e24
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Aug 6 12:48:15 2013 +0300

    replicator: Fixed assert-crash if dsync server disconnected.

commit 1e0df4f191a7033cc2c579a04e5a0bc7b5b1191e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:22:51 2013 +0300

    Added signature for changeset 71f0696749ab

commit c50e67fe8afab1cd87e1e29b8bade7befc2cf98b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:22:47 2013 +0300

    Added tag 2.2.5 for changeset 71f0696749ab

commit 29b63e9d9b5803de086dc15403809ef13aa1cce8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:22:47 2013 +0300

    Released v2.2.5.

commit 430d256a6244b2a780c298febc66e74d6b6e8cc2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:21:29 2013 +0300

    Make static analyzer happier.

commit 49621bf0ef1d55aaaa2dc7d76011cbfeabdcfbe1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:16:02 2013 +0300

    lib-storage: Use a separate auth-userdb connection for iterating through users.
    This is required because the auth-userdb connection is also wanted in the
    middle of the iteration to do USER lookups.

commit 769dea751e901be63c3ce4303d0b1afbf47d9d44
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:15:08 2013 +0300

    lib-auth: Previous changes didn't set the current ioloop correctly, causing problems.

commit 57434d8add2f13b6d6dbd39b941e9e80c64be74e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 22:13:28 2013 +0300

    doveadm: Minor memory leak fixes at deinit.

commit 3d422a98304352692cb1f3585ac6481d5c4b4155
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 21:47:11 2013 +0300

    lib-auth: auth_master_user_list_*() shouldn't create ioloop if it already exists.

commit f600530d7aa98c8a027bf4bbb34b5d9d7abdc952
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 20:45:42 2013 +0300

    maildir: mailbox_create() was returning 1 instead of 0 on success.
    This broke acl plugin's check to copy the ACLs to the newly created mailbox.

commit c8ef5fc9c4bfa0ee237f9e1d1d94ac5ac2f1bc04
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 20:33:01 2013 +0300

    dns: Use EAI_NONAME, not EAI_ADDRFAMILY to indicate "no addresses".

commit a97a3ce5d82b16e8979de2d6cafbf6b0a129fe4e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 20:27:09 2013 +0300

    mbox: Don't use file_set_size() to grow mbox file size.
    posix_fallocate() apparently grows file size in 4kB blocks in GFS2 causing
    extra NULs to be written. The mbox file rarely needs to grow so much that
    there's any point in using any optimizations for it.
    
    Besides, this was the last place where file_set_size() was used. If no
    further use can be found for it, it could be removed entirely.

commit 0c26faa13d505338720edc5e336922d987fce91c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 20:12:10 2013 +0300

    lib-auth: Another crashfix to auth_master_user_list_*()

commit cae843989b30b6cf332749cb262df8f2967acdf5
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Mon Aug 5 15:52:52 2013 +0000

    man: Added doveadm-exec.1.

commit 1e9ea952b27104c3bab7832d8e0dce9af305dfe5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 17:38:13 2013 +0300

    lib-storage: Fixed listing INBOX's children with LAYOUT=fs and non-mbox format.

commit 68e8c4ace2e8d9e441969445808af470d0f3b099
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 16:59:21 2013 +0300

    net_gethosterror(): Never return NULL.

commit ebbb3d4af58b5166867f756db5bfd7cdad53ce2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 16:58:01 2013 +0300

    lib-dns, dns: Don't use IPv4-only error codes

commit 23079bf0a6e7489c5f542b0b897a71bdfd884a51
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 14:06:23 2013 +0300

    lib-index: Replaced assert-crash with "index corrupted" error.

commit 5efcaaace97d50e58e57424ee5bc51c7a0e942b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Aug 5 13:46:37 2013 +0300

    lib-index: Silently ignore next_uid shrinking without treating them as errors.

commit 069def4dc35022852d569b7ab75a3b19d2cb0f1c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 4 20:33:05 2013 +0300

    lib-http: Fixed redirect request target encoding and NULL target.
    Patch by Stephan Bosch.

commit fd1317a6186c461c5037b95793a28ee623208ea7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 4 18:34:43 2013 +0300

    imap: Various APPEND/CATENATE error handling bugfixes.
    Found using Apple's catenate.pl test script.

commit 9a449fb205b61613586b905ce3ee537486d5bd7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 4 14:03:54 2013 +0300

    lib-http: Ignore trailing whitespace in headers.
    Patch by Stephan Bosch.

commit cddbeddaefeff42d731a8b02f74815dfff034d50
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Aug 4 12:16:09 2013 +0300

    lib-http: Don't crash when receiving 304 or a redirect without Location: header.
    Patch by Stephan Bosch

commit 690ed6aab5015615bdb4a1e3c6cff4b00c1fd476
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 3 21:33:25 2013 +0300

    man: Fixed doveadm-deduplicate.1
    Patch by Pascal Volk

commit 2f45711505ab4564ee8a64ed7af87ae725a3f5d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Aug 3 15:26:58 2013 +0300

    Makefile: Fixed previous commit.

commit 0610b6dfbdcb6a8f234a6495ec243bcf996b5572
Author: Pascal Volk <user@localhost.localdomain.org>
Date:   Fri Aug 2 19:03:32 2013 +0000

    man: Added doveadm-deduplicate.1 and doveadm-flags.1.

commit 209335fbc1a5fe68e662242ea91e236fdb2ba29d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 2 16:20:08 2013 +0300

    doveadm flags: Fixed help text for subcommands.

commit d28a4f3578da61ac734981d87d7077dd4747417d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 2 15:19:22 2013 +0300

    quota-status: Added quota_status_toolarge message for mails larger than user's quota limit.
    Based on patch by Ulrich Zehl

commit cf0184bf140bec4262fb0434bbdc10cf2c3efc1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Aug 2 15:14:39 2013 +0300

    quota-status: Removed extra newlines from default quota_status_overquota message.
    Patch by Ulrich Zehl

commit af4cf954021adac7e021262bf6ae3cc3cec3ba54
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 15:35:35 2013 +0300

    ssl: Log SSL "close notify" alerts as debug messages, not warnings.
    They are clean shutdown messages after all.

commit 9a30df5ac82378e2706715eaf3ee6653d8b46161
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 15:00:59 2013 +0300

    quota: Don't log errors about missing namespaces for autocreated shared mail_users.

commit 20dca965f48c1d7600a268d380c0b5fb5f1011d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 14:23:33 2013 +0300

    lib-storage: Improved seteuid() error messages a bit.

commit 49fd8c950e3da2ed32506e617a4b1480a07f874f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 14:18:24 2013 +0300

    lib-storage: If settings can't be read because of permission denied, restart process.

commit cfa178a42cac8c4ddb34ca995253346873129d0d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 14:18:00 2013 +0300

    lib-master: Added master_service_settings_output.permission_denied error flag.

commit 1f73636296eb5ac856f36a08543fdc61983f1555
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 13:51:57 2013 +0300

    lib-master: If config socket closes, retry connecting to it automatically.

commit b7b9d4be2a1ff399026a5d6feeffd3a048f22be0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 13:42:51 2013 +0300

    lib-master: If MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN is set, open the config socket before dropping privileges.

commit 1cb065514fcfe00b684ee274239e3f0390c7fc47
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Aug 1 13:31:25 2013 +0300

    lib-storage: Ignore MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP if service user isn't root.

commit c5acac1fd44571aabefc1b4db291488b87f822a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 30 13:26:40 2013 +0300

    quota-status: Keep the config connection open.

commit 984e5c91288139f8a2582be705ee7ef0d157a3f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 30 13:26:07 2013 +0300

    lib-storage: With temporary privilege dropping, switch to root before doing config lookup.
    This fixes the problem of not having enough permissions to connect to the
    config socket.

commit 28abd7c6e719c430b7ab83b3e5d46f12d197b9ca
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jul 30 13:09:52 2013 +0300

    lib-auth: Don't crash in auth_master_user_list_*() if socket can't be connected to.

commit 468c28dfb03613ab8d487b5aebc985a969193ace
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 23:22:46 2013 +0300

    director: Avoid infinite SYNC loops if the originating director goes away for a long time.

commit 8621be3846dc097420cce325ad36d1b646f72a09
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 22:49:17 2013 +0300

    director: Update existing users' timestamps during handshake.

commit c9b3bbfb605ca19fbd39d083984241b2419e9fe1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 22:19:03 2013 +0300

    director: Fixes to director-test.

commit c6a5305674d2aa59ee52dc101ef87bbcb04f04ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 22:11:46 2013 +0300

    director: Fixes to handling users near expiration.

commit 06fc82430569125dccb8cd20e122e77b44698c7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 22:10:01 2013 +0300

    director: Log director disconnection errno correctly.

commit 2dcf09e68a6d84aba506b0a93897b186ea11520f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 22:08:26 2013 +0300

    director: Expire users a bit more correctly.
    Also make sure that the "user near expiring" interval is at least 3 seconds
    in case director_user_expire is very low.

commit 935960e45571872e38f730964f8ca1d116a1b532
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jul 29 22:06:13 2013 +0300

    director: Don't allow director_user_expire to be less than 10 seconds.

commit 88df77efd9ffdfd9a62bca0a9c8f403ecdbea3ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 17 10:23:21 2013 +0300

    liblib: connection_disconnect() didn't close fd_out if it was different from fd_in.

commit df6c7293d54523f5e7d5899af5a6b02893ff7fbd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 03:06:26 2013 +0300

    director: Don't log an error if login connection gets closed with ECONNRESET.

commit c87221e8d2e5eb41b29a41abcbf9fefcca5ce37a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 03:01:31 2013 +0300

    auth: With multiple passdbs the previous passdb's userdb_* fields weren't cleared.

commit a138ac12134564b151f00fdef86fba9cd9ba8af0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 02:43:43 2013 +0300

    auth: If blocking passdb returned only NULLs for userdb_ fields, use userdb prefetch anyway.

commit 1ce47e48d7231da6f18f02eab6bab6451b4ef12a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 02:29:00 2013 +0300

    auth: Use fewer syscalls for sending user list.

commit 0f4fb03953afa4a39d5e32e9ca0527c0a84f9aee
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 02:26:44 2013 +0300

    lib-auth: auth_master_user_list_*() no longer reads the entire user list into memory.

commit 4dc81fe17cc3aca2e8e9ccb988f90bae12ca2ad0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 02:17:31 2013 +0300

    lib-storage: mail_storage_service_all_init() no longer returns total number of users.
    In preperation for removing the count functionality, since it requires
    reading all the users into memory for it to work.
    
    This also required removing the /total from verbosity counter with
    doveadm -A.

commit 3340fc9aeaa655dc3bb8f329ebdfcb38a5121949
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 01:57:45 2013 +0300

    auth: Avoid wasting data stack when iterating users.

commit be240f6731f460e72d39ee81d83850625d4edec8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 01:39:47 2013 +0300

    man: Updated doveadm-director man page.

commit e3ffd73c8f536f0c9cdaff80b6b8503c594a9449
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jul 12 01:36:41 2013 +0300

    lib-ssl-iostream: Crashfix for recent change.

commit 7e59e4fdc89e55399fa60b3f6d866e7029c230fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 14:29:05 2013 +0300

    lib-http: Added a very dummy test-http-server

commit b72c3363092b73cab1da2de4a9d75592e7d8fd6b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 14:18:42 2013 +0300

    lib-http: Implemented http-request-parser for HTTP servers.
    Moved code common with it and http-response-parser to http-message-parser.

commit 1920ef85b63738a06914e56508049dd0afe38732
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 12:54:02 2013 +0300

    lib-http: Moved struct http_response* to http-response.h
    Also http-client.h now #includes only http-response.h

commit bfb3d8c8f2f156b0b2acec445375b8a08462ab1f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 10:25:32 2013 +0300

    lib-http: Minor change to make sure http_response_header.size is always correct.
    The current http-header-parser already guaranteed that it is, but this
    change just adds extra guarantees that it won't break in future. Besides,
    this change improves the performance slightly by avoiding strlen().

commit db37e13db93ec74da13e8f78c8e501763dfafe78
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 10:19:43 2013 +0300

    lib-http: Minor fix/cleanup to detecting stream errors when skipping payload.

commit 29349562badb1aaff085d72306a68a976ab0f0f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 10:17:49 2013 +0300

    lib-http: Updated test-http-response-parser

commit d1f1ad02d1ed5d83c62fba356259b7c9073608c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 09:33:13 2013 +0300

    lib-http: test-http-header-parser makes sure the parser works one byte at a time.

commit 7d2147734c94fa134de6ef5ba74c5c42ee24c547
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 09:29:36 2013 +0300

    lib-http: Fixed previous test-http-response-parser change.

commit e904d473a024c4379a06edd36c5da187dc58ddc6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 09:25:53 2013 +0300

    lib-http: Fixed handling responses whose header arrives in smaller pieces.

commit 1bc12a53ddc6696bb209fb79d7cc66262d2ea621
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 09:23:14 2013 +0300

    lib-http: Simplify http response status-line parsing code.
    Also by not using a temporary string buffer the istream can at least in
    theory limit the maximum status-line length (=max memory usage).

commit 0ffbb284f017f54ef9b8377ae6678066460a38e1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 00:30:28 2013 +0300

    lib-http: Http requests weren't freed when connection was aborted.
    Patch by Stephan Bosch.

commit d53c8496d77194cd45c05bbacc22dd3f7d881ddc
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jul 11 00:28:54 2013 +0300

    lib-ssl-iostream: Compiler warning fix

commit cc293ffe7994a85b727fc39dd8cd708c5fdfe2a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 10:01:26 2013 +0300

    lib-ssl-iostreams: ssl_protocols setting supports now TLSv1.1 and TLSv1.2 values.

commit 002442c41f7e0fffc23ae04cfd1d6aa119c10f2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 09:43:19 2013 +0300

    auth: Fixed crash for some lookups that didn't specify service name.

commit 52ec61a8d49986fa140639d371f75ac078c47be5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 09:37:06 2013 +0300

    Maildir++ quota: When recreating, don't use maildirsize.lock file.
    The point was never to even try to lock it, it just used to be an easier API
    to create the file. Nowadays safe_mkstemp_hostpid_group() works just as
    easily. This normally doesn't matter, but apparently Exim+CPanel leaves
    maildirsize.lock files lying around, causing Dovecot to not update
    maildirsize.

commit 231a59ca2b8f0b5a1d1edbd5b04c3840d540d7d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 08:58:36 2013 +0300

    lib-ssl-iostream: Added support for ECDH/ECDHE cipher suites
    Based on the login-common patch by David Hicks.

commit 1a193d25dfc64d5eccc7a35c2e92fb986f2f546e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 08:47:49 2013 +0300

    login-common: Compiler warning fix with OpenSSL v1.0.2+

commit 524d89a40565709964b7ee5e8324a400dc53656b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 08:42:09 2013 +0300

    lib-http: Minor comment update.

commit 8137a5d2298f069671ae8dfd3279d6b6b90a4c4d
Author: David Hicks <david@hicks.id.au>
Date:   Sat Jul 6 14:46:16 2013 +1000

    login-common: Add support for ECDH/ECDHE cipher suites
    
    ECDH temporary key parameter selection must be performed during OpenSSL
    context initialisation before ECDH and ECDHE cipher suites can be used.
    
    OpenSSL >= 1.0.2 automatically handles ECDH temporary key parameter selection.
    For OpenSSL < 1.0.2 we must manually specify a named elliptic curve that
    Dovecot will use to generate an ephemeral key pair. By default we try to use
    the same named curve as that used in the server's private EC key file. If this
    attempt fails, a fall back curve of NIST P-384 (secp384r1) is used instead.
    
    RFC 6460 states that NIST P-384 MUST be used for cipher suites that include
    AES-256. For cipher suites that include AES-128, RFC 6460 states that NIST
    P-256 MUST be used. No matter which curve is used as a fall back option,
    Dovecot will be non-compliant. The reason for selecting NIST P-384 as a fall
    back curve is to ensure that the non-compliance is in the form of providing
    too great a level of security for AES-128 cipher suites rather than too little
    security for AES-256 cipher suites.

commit 8e1dbcb9b249c37d00b420705777b103ffa6145d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 06:54:57 2013 +0300

    imapc: Reorganize code so that imapc_list works without imapc_storage.
    Most importantly fixes crashes when imapc_list is trying to lookup hierarchy
    separator before storage is created.

commit 9bc29938d8df24e64db865cba3b03d6c6cd95237
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 06:05:20 2013 +0300

    imapc: Code cleanup: Don't access imapc settings via storage.

commit 4ee385fb4e4b007d3fa907b7616988006a21e85f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 05:57:36 2013 +0300

    imapc: Minor code cleanup.

commit 190ba2ebc899bd114e1e4ab9ee119be10f0cc0ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 05:37:01 2013 +0300

    auth: If passdb ldap returned no values for userdb_ fields, use userdb prefetch anyway.

commit b4f35fa953a95e4d06fdae54d394095073fcfea0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 05:29:45 2013 +0300

    auth: If passdb sql returned only NULLs for userdb_ fields, use userdb prefetch anyway.

commit b8394a3bad30dcf8694e9b49edf05bee0b3aee77
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 05:19:22 2013 +0300

    pop3: Avoid assert-crash if client disconnects during LIST.

commit b3289b68d4c2e90fc369ea41539d49a6746764de
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 03:27:52 2013 +0300

    lib-http: Fix/cleanup to handling connect failures.
    There was some kind of double-error handling which messed up things.

commit e0bbc29e16360119a6193e83bf180b140acb2268
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 02:50:04 2013 +0300

    lib-http: Fixed tracking number of pending connections to host-port.

commit 6d2a126f5c19f5e09ba680c4b141bffebc196b31
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 02:31:05 2013 +0300

    lib-http: Don't assert-crash in case of somewhat unexpected failing connections.

commit 1a64096dcbea2765f370c9d35a3480d0e60c643b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jul 10 01:44:40 2013 +0300

    lib-http: Always try to connect to host's all IPs when connections fail.
    Previously this was done only when the new connections started from the
    first IP.

commit d29c3ac4da9857ffcce57eec726d042c292e2bec
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 28 19:48:37 2013 +0300

    dns, lib-dns: Added support for async DNS PTR lookups.

commit 684b65874c28386cc14e4d90eecf002ffefa15a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 28 19:48:15 2013 +0300

    Added net_gethostbyaddr() for DNS PTR lookups.
    This code assumes we have IPv6 capability. Perhaps we should just require it
    everywhere already..

commit edbfc217b093f6e2a6a8ebfd91ad8abcc0dc996a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 23:07:20 2013 +0300

    lib-http: Added more debug messages.

commit 798915d039b5c104a75b2d398c66b43985558569
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 22:49:50 2013 +0300

    lib-http: When successfully connected to a peer, don't drop the peer's pending connections.
    They could have been intentionally created for other urgent requests.

commit 270f75edb88360c5d76d51516bf9b9c89c38e718
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:37:46 2013 +0300

    lib-http: Don't crash if payload stream is referenced by caller after its connection is freed.

commit 06b1ec1b1b6b217811c999dd09d9642a5698f454
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:32:01 2013 +0300

    lib-http: Remove request timeout from being used during payload read.
    The reading is done by the lib-http caller, which should have its own
    timeouts.

commit fe681e6db72f30bd754b622005bbe298e5ca775a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:28:51 2013 +0300

    lib-http: Call request's destroy callback always, not just on success.

commit fd0ec0a782a9d361217155042a9ce4b2054aef9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:27:57 2013 +0300

    lib-http: If connection times out, set the stream's errno to ETIMEDOUT in case it's used.

commit 8615a72651c441aeaa439e174441128141ff6d9e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:26:50 2013 +0300

    lib-http: When connection is freed, abort also the pending request.

commit 92908d748f0982f726244904c2b444d63d4d3b6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:26:13 2013 +0300

    lib-http: Timeouts were being handled wrong/leaked by ioloop switching.

commit 6a33d6385601c89fdaeb437537f714b3a01dcea4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 20:24:45 2013 +0300

    lib-http: Minor code cleanup.

commit 659e3b41621ac3193b451f5ca6a2781c0fb246f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 18:04:04 2013 +0300

    lib-http: Fixed hang when many connections were being created and closed.

commit 17cd0e0963f2fb0e66d49703e8cd0bda1b842468
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 27 18:03:38 2013 +0300

    lib-http: Added http_client_get_pending_request_count()

commit fc5b80dc1f17a6695d0c8dc8663fd8ad8e25c9c4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 22:23:20 2013 +0300

    dsync: Recent changes broke remote dsync

commit bc4cb06efd149ff759ad5462c6cd1a352f735034
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 21:35:37 2013 +0300

    config: Give a somewhat better warning for when using protocols=imaps or pop3s.

commit 36723cf206a7b64b9d972ab0719bbfaacc9316fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 20:53:01 2013 +0300

    dsync: Added -1 parameter to do a "one way sync" without reverting changes.
    This can be useful during migration when you don't want to delete any mails,
    but you also don't want to send changes to the old server either.

commit f6da39b6a7a092965b9ec4db72039f52428c38f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 20:03:26 2013 +0300

    dsync: Send DSYNC_BRAIN_FLAG_NO_MAIL_SYNC via ibc-stream to slave brain.

commit 1ee74d70bb758637e560d556c7240563967d22c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 19:47:40 2013 +0300

    pop3c: Fixed mail saving to fail nicely, not assert-crash.

commit 34b8b14ce06c0939932b60f22f61aea124198438
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 19:33:38 2013 +0300

    dsync: Fixed syncing when one of the backends supported GUIDs.

commit 2e708f348f20caa47210cf46cf7654f167fa47bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 15:44:08 2013 +0300

    pop3c: Return error instead of crashing when trying to save a mail.

commit 173fc9ed37637e4609b1ecc9415a9b92067eeeb2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 15:29:43 2013 +0300

    dsync: Fixed handling expunges when GUIDs aren't supported by the backend(s).

commit de754cb78f75e8b3b994cddafe41c9ed1467c33d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 26 14:37:34 2013 +0300

    lib-sasl: Use dsasl_ prefix so we don't conflict with Cyrus SASL library.

commit 0d439f21c0943108897867afdd52e0ec7e6fb095
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 16:03:04 2013 +0300

    dsync: Don't log index errors if modseq points beyond the current view.

commit fa8d22c52790184e20ed5d5e79e9ee4a5942becd
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 15:48:24 2013 +0300

    mdbox: Resize mdbox index header if necessary also when rebuilding indexes.

commit 3b8a19184c37851d9794178dd7a612ed8ed1c4f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 15:47:48 2013 +0300

    lib-index: Assert-crash instead of writing a broken transaction with too large ext header update.

commit c3cb859d93a77d52d6af054d358b55d45b4a5188
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 15:46:50 2013 +0300

    lib-index: Don't write a broken transaction if extension resize is done at first use.

commit 579bd263cb2aed4a7a624ce92dffaebfc626fb8b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 02:23:02 2013 +0300

    Added signature for changeset 4b3c9c3e4fb8

commit 940095f1cae4d1ab30859ebbc1fb934d3b7f1e38
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 02:22:59 2013 +0300

    Added tag 2.2.4 for changeset 4b3c9c3e4fb8

commit 483b379a4359f96b0a8a6313e394618fcb8e1081
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 02:22:58 2013 +0300

    Released v2.2.4.

commit 3605fb862d3d15e3e747b0cd34729d61acbb332c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 01:24:51 2013 +0300

    Make static analyzer happier.

commit fad1d96662efb9121be5dd00d7a90e70a491ef29
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 01:23:17 2013 +0300

    doveadm deduplicate: Fixed error handling.

commit bc278f2c038268f6866f7e2981a32a59f04222ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 25 00:10:39 2013 +0300

    quota: Fixed quota_rule with non-uppercase INBOX.

commit 5324117274df8564eeaebe369cb1eca76edb3165
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 23:33:59 2013 +0300

    imap-login: If CAPABILITY is already in server banner, don't ask for it again.

commit 723f7be99e6de0f3905394283679acde0f1f2cce
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 23:14:35 2013 +0300

    dsync: Fixed "export:/count" value in verbose_proctitle=yes

commit 4780c036a0f52079068bd23e8a77b67ff457dba6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 23:10:20 2013 +0300

    mbox: Avoid assert-crashing by too optimistically upgrading a lock to write-lock.

commit 08bbf28bf9ca4965020fe8b29a3f8be5f0d03dff
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 23:06:45 2013 +0300

    dsync: Don't crash at deinit when dsync fails early.

commit 3c73d884362b72c86753939551c94f8baa5702f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 22:25:47 2013 +0300

    dsync: Don't try to find mailboxes from unwanted namespaces.

commit 47255691575e06a1c95ce78ff0a1b502199de3ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 16:37:48 2013 +0300

    dsync: If verbose_proctitle=yes, show the current state in it.

commit e7ee14568b0479f2fab7d91efa4dbeeea500f241
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 24 16:36:32 2013 +0300

    dsync: State names were wrong in debug/error messages.

commit 4809537f0c5a2e1cee9559ec842cc869884d2cb7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 18:56:15 2013 +0300

    lib-storage: Fixed crash with some autocreated (e.g. shared) namespaces.

commit 1127f3e1ad7135b6ee5d5e13f8fd1e72f85a76f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 18:54:20 2013 +0300

    sdbox: If sdbox header is corrupted, resize it to make sure its size is correct.

commit 138495d02aa177230a9f1eaf90b720b4ce0f6544
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 17:05:20 2013 +0300

    doveadm: Added deduplicate command.
    By default it deduplicates only by GUIDs. With -m parameter it deduplicates
    by Message-Id: header.

commit 6eb7938cd366fc087b39fc9a901e7de426131384
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 15:14:42 2013 +0300

    doveadm: Added "flags" command to modify messages' flags.

commit a81f34a27b12cd11ebb68d58c255730e44b2ed68
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 13:00:23 2013 +0300

    mdbox: If mdbox header is corrupted, resize it to make sure its size is correct.

commit 0b2d4626c6fb4e40bc81c56d8227191f3c7e1ea3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 12:59:17 2013 +0300

    lib-index: Don't bother tracking if header/records were changed.
    They aren't really needed. When mail_index_write() is called, we already
    know we want to update the index.

commit 8c6cb4ded4776b8968224bde670d21ff467ae16a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 12:56:27 2013 +0300

    lib-index: If error is found from transaction log, update dovecot.index so it won't be read again.

commit d581fad4d4794846b21cf3797ee1a1897c91a56d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 12:15:50 2013 +0300

    lib-sasl: API usage comment update

commit 26681e71837ebbb3eb92455ec4e3cadefa710f82
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jun 18 11:59:21 2013 +0300

    imap/pop3 proxy: Master user logins were broken by lib-sasl change.

commit 4e4c91642c9cd76d35d84a0ecbc3c73fe14644a5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 17 16:37:46 2013 +0300

    pop3: Fixed crash at deinit

commit 4dccd2090d3318bea1c4029fb660db77118f5944
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 17 14:39:59 2013 +0300

    dsync: Minor fixes to checking if namespace is wanted to be synced.

commit d229d26d263a57a77eec8fe7cba24fbfd9509966
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 17 00:03:16 2013 +0300

    Make static analyzer happier.

commit e6eefacd1abeb9c6bd8cf33c9ca23bf62ee7a17b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 17 00:31:22 2013 +0300

    Added signature for changeset 5d9f52c9a287

commit 8bdb49cc615e68456fbb7b9144f3a167ba499291
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 17 00:31:18 2013 +0300

    Added tag 2.2.3 for changeset 5d9f52c9a287

commit dc4d2077ac1db9b2a7a8dabcec9136aaeca5df70
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jun 17 00:31:18 2013 +0300

    Released v2.2.3.

commit 737ddab12d0d1b2ba09a23eb4ff2cd6f6838f414
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 16 23:56:28 2013 +0300

    mdbox: Minor fix to handling corrupted mdbox header.

commit 917f556f14686178586b4b8c8184c5b52db987f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 16 21:25:39 2013 +0300

    fts-lucene: Fixed building without libstemmer

commit 6b94ad24675cf006b0aafc6746d4419d78bc454c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 16 21:15:42 2013 +0300

    lib-imap: Fixed parsing literal8 in some situations.

commit a3736354b7eb292620cff0fbd8dc8e3ebaf31f4e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 16 21:08:40 2013 +0300

    istream-attachment-extractor: Fixed handling attachment as the message body without MIME.
    Don't crash at the end after parsing the base64 data.

commit b9dc21a94401638c00e40b695998875e1563ce77
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 16 20:15:42 2013 +0300

    lib-storage: mail_storage_service_lookup() ignored input->service.

commit d39ea6eeb3eb125489490d04e8a2a0f4a4a3af97
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 14 02:14:09 2013 +0300

    Compiler warning fix.

commit 28542ffed61d0b860e0d1f9c837e0eb622df6b51
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 14 00:23:45 2013 +0300

    dsync: Fixed syncing renaming mailboxes with children.
    So that the childrens' rename timestamps are at least as high as their
    parents'.

commit b67692d132511d389a25a2acade62bbdfec54f9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 14 00:16:58 2013 +0300

    dsync: Don't try to delete nonexistent mailbox directories.

commit c32a2a98d7dd630406410d39d2173f14b7e6eff8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 14 00:16:14 2013 +0300

    dsync: Avoid wasting data stack on larger renames.

commit c8fff8f35c459f8577694b585183228ba1631fe2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 23:31:00 2013 +0300

    quota-status: Fixed log prefix.

commit b966acda935f9ac9123974f4b73d817b4cd146f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 23:22:20 2013 +0300

    lib-storage: Fixed crash with listing shared mailboxes.

commit 0cb7298039df262d31f7683ca1acbc2a301a9786
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 18:54:07 2013 +0300

    fts-solr: Do only soft commits. Use a cronjob to do hard commits.

commit 21279888be557a1a31c7b4d47dd9c8daf14d12a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 18:53:22 2013 +0300

    solr-schema.xml: More updates for Solr v4.x and hopefully with better filters.

commit 3ea055b5ae0fedc6c682242e4ed00d81bfe93926
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 17:55:24 2013 +0300

    solr-schema.xml: Replaced EnglishPorterFilterFactory with SnowballPorterFilterFactory

commit d6b3cfd855c0eebed68be50d3111de1b5a6afeb0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 06:07:54 2013 +0300

    Call master_service_init_finish() only after all of the initialization is done.
    This way if the init crashes, the master process will throttle a buggy
    service.

commit 1729508f04e6c3271790c72c0c3710e647134bce
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 05:29:07 2013 +0300

    imapc: Fixed list iteration when namespace and backend separators differed.

commit cf05592015b99607095f970bf914f5d069bf0666
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 05:27:30 2013 +0300

    mailbox_list_index=yes: Fixed list iteration when namespace and backend separators differed.

commit 8ad7aa4ddf9e37fc1aefdf84f90071f49fc2619c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 04:35:06 2013 +0300

    doveadm: Pass through the exit code from doveadm-server to client.

commit a0ebe2a2271759599686f3480aee6a6fe445d16e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 04:33:41 2013 +0300

    dsync: Don't try to access mailboxes with no_mail_sync flag enabled.

commit 237a6211c7fc4d6dbb58dd0467da6dba1b8f21f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 13 03:26:22 2013 +0300

    Memory leak fixes.

commit 70b67fc19de667a939fe4b7e54de8604a3f370b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 23:01:26 2013 +0300

    zlib: Enable only for storages that support MAIL_STORAGE_CLASS_FLAG_BINARY_DATA

commit d46a1e3f999dda802dc5137e883adcd7a6629cd3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 22:58:42 2013 +0300

    lib-storage: Added MAIL_STORAGE_CLASS_FLAG_BINARY_DATA flag for classes.

commit 1c3dc4c08ced3948f52c3c6c171ed77310b2cbfd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 22:45:43 2013 +0300

    pop3-migration: struct mailbox must be freed before mail_storage is destroyed.
    Fixes a memory leak where the user wasn't destroyed at all because the
    mailbox still caused the user to be referenced.

commit 29dcd138546179e55e4dbcd3c256ba2fd6726e27
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 22:03:07 2013 +0300

    lib-dict: Error handling fixes to asynchronous transactions.

commit 8f948b86dc78f36c454453d36ef62811ff59843f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 21:41:09 2013 +0300

    Moved "INBOX can't be deleted" check from lib-storage to IMAP-specific code.
    Especially "doveadm backup" should be able to delete the INBOX if needed.

commit 3568ea090b5a072e498438e74db23b98103ff2de
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 21:25:09 2013 +0300

    lib-storage: Don't crash if backend doesn't have subscriptions file.

commit 39a97e88db1d6626469f905085b787c268502153
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 21:16:06 2013 +0300

    pop3c: Don't assert-crash if we can't do DNS lookup.

commit d2cf6522779802d0edeab7dcf960ffea2f2e1828
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 16:43:41 2013 +0300

    pop3c: Return Date: header's date also as received and saved date.
    Mainly to get dsync to not fail.

commit 5d4a0dac041964a04405bc6b94de51315ca917af
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 16:29:17 2013 +0300

    pop3c: Allow mailbox_update() for Dovecot's internal fields.

commit 82af96bbd5222a787a91efb9f939b4a96905bed2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 16:27:47 2013 +0300

    pop3c: Don't assert-crash when trying to list subscriptions.

commit cf35bb040d505e2fc333470850c65029992778a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 16:20:19 2013 +0300

    pop3c: Give GUID to the INBOX to avoid crashes with dsync.

commit fa2ac469f59e5841203cb9921fc74baa69e58cc4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 12 04:44:11 2013 +0300

    zlib plugin: Removed explicit checks for maildir/sdbox/mdbox.

commit 4d0230cbb50aa46bbf219f25d690f0f092e73771
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 21:06:49 2013 +0300

    man: Recent change accidentally changed LGPLv2.1 -> LGPLv2.2, reverted.

commit 5a6cbb69f18901d1dd7237bbd9016ac7cc2138b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 14:56:36 2013 +0300

    acl: Crashfix

commit fedb7a111ba2102edce8e55a1ba77cf907c6add9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 14:53:31 2013 +0300

    lib-storage: Fixed crashes caused by recent "multiple storages per namespace" change.

commit 1093de32efb2a231949566d4bd8aa55a8f43fb70
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 06:03:34 2013 +0300

    imap/pop3-login: Use libsasl for authenticating to remote IMAP/POP3 server.
    Also passdb lookup can return "proxy_mech" extra field to specify which SASL
    mechanism to use.

commit 78919bf7cb55e84e5f289f33526579f63c4797d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 06:02:14 2013 +0300

    Added initial libsasl for implementing client side SASL library.
    Initially supports PLAIN and LOGIN mechanisms.

commit f26ef7a3a562dc42a1e9a4dde546bd30df3241e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 03:10:43 2013 +0300

    fts-lucene: Support normalize setting also without snowball. Added no_snowball setting.
    Snowball seems to be converting / breaking words down rather annoyingly.

commit d6745154e4e3478c9657a1d4b942a7bc6722bb6c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 02:49:48 2013 +0300

    man pages: Updated v2.1 -> v2.2

commit 70505f4839520ac67895992621c97d2480c22e7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 02:46:50 2013 +0300

    lib-http: Added soft_connect_timeout_msecs setting to connect to multiple IPs in parallel.
    Based on patch by Stephan Bosch.

commit 6ce13ae0860bbacc1b8b45cd330a0c5ae57d7873
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 02:08:24 2013 +0300

    lib-http: If connect to peer failed, don't recreate a new connection to handle pending requests.
    The new connection would very likely fail as well. Another peer for the host
    should pick up the requests.

commit d2e74f2af690b8e2d536400f02f397cbed1334b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 00:48:14 2013 +0300

    lib-storage: Added mailbox { driver } setting to specify which storage to use.

commit 47ede56f4e6eebfe631a1f0febf74d7adcdbcd00
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 00:46:06 2013 +0300

    lib-storage: Added support for multiple storages per namespace.

commit af466fd3ee9d17f2e7b264079d25306c5598b200
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 00:42:36 2013 +0300

    imapc: imapc_storage no longer requires imapc_mailbox_list.

commit ec49140cbc37b568640dd22dc338eadd5c38f6eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jun 9 00:06:42 2013 +0300

    auth: If worker request has been queued for 60 secs, abort it.

commit 6604370500e3fc348555fdcf7b088a4cc0fb05b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 7 22:06:24 2013 +0300

    auth: Don't crash in non-plaintext auth if master user login is tried without master passdbs.

commit 08195adda397643b5074d647485897d6608a96f2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jun 7 20:12:15 2013 +0300

    imap-login: If PLAIN mechanism is disabled, advertise LOGINDISABLED always.

commit 5ef75c870a01703df34ce44ab9a5324b2beabc78
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 16:43:01 2013 +0300

    var_expand(): Fixed initializing variable to %N

commit 2e01cfaa0acc57a7f44478ecf82be8b8521a3fcf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 12:42:34 2013 +0300

    var_expand*(): Added small unit tests for %H and %N

commit 9217571849eb99d1003e150e3165aedf06b07521
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 12:36:30 2013 +0300

    var_expand*(): Fixed %N to work the same with little and big endian CPUs.
    Also use 64bit integer to do the MOD from, which should give somewhat better
    value distribution than with 32bit.

commit ffcdddd4ce50ae8021b69614790aeb663a49108a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 12:24:27 2013 +0300

    lib-imap-client: When switching ioloops, do it also for the DNS lookup.

commit c1a1abf895ce1d95ccbfc2cbe79a06ddbba7624d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 12:21:14 2013 +0300

    lib-imap-client: Make sure DNS lookups get aborted at disconnect.

commit 9dee78c19e1dfc66c2af2383b95aaa954a807f2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 12:20:54 2013 +0300

    lib-imap-client: Don't start another DNS lookup if there's already one ongoing.

commit 949fa97a4ab5c62e4db73c3973e35ae3b73a2b23
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 11:40:27 2013 +0300

    Avoid using mail_namespace.storage directly.

commit 8709b2fe6ec2b5ca1d90a63490f8371472062efd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 11:16:05 2013 +0300

    lib-storage: Renamed mailbox_list_get_closest_storage() to ..._get_default_storage()
    This function wasn't previously used by anyone.

commit 5c6952568475b1c42866d1a6d3dbdff2ff5b438d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 10:55:27 2013 +0300

    imapc: Minor code cleanup

commit 3ec969c5cee55a7b08ab5c5bf7afae310176e2bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 10:52:14 2013 +0300

    imapc: If imapc isn't the inbox=yes namespace, do the login and initial LIST in background.

commit cd467fe798861a560aeb95407018d6cd5dab66d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 09:47:39 2013 +0300

    lib-imap-client: When server sends BYE before disconnection, log it as the reason.

commit d95ad2a90cbec4489c8a6398780afce8e767d18a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 08:57:13 2013 +0300

    imapc: When deleting a mailbox, unselect the current one just in case they're the same.

commit 719e8f8c67bdf3f70695a26885f68e13a6ac0297
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 08:56:19 2013 +0300

    lib-imap-client: Added support for UNSELECT capability.

commit 1dde2133dca332946d8d0cc4eed37e2c66d4302e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 08:56:07 2013 +0300

    lib-imap-client: If SELECT/EXAMINE fails, set the connection as not being selected.

commit d80391da062e6603b144283b89bbd7036cc867bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 06:55:34 2013 +0300

    imapc: Index dirs were being wrongly deleted when imapc_list_prefix was set.

commit 381a4bd0f30fe99037047edcf3b18d76939f3197
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 06:32:58 2013 +0300

    lib-http: Treat connect() timeouts as retryable errors.

commit 1e9def6676e6535869b883886c7a1d7eb01761b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jun 6 05:58:16 2013 +0300

    lib-http: Fixed previous patch setting connection connected only after SSL handshake.
    This just caused crashes. The main point was anyway to include the SSL
    handshake as part of the connect_timeout_msecs. Apparently the easiest way
    is to set it immediately connected and delay removing the timeout.

commit ea4d4dad2827d782f35da2cd19520f0d800839ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 18:21:55 2013 +0300

    dsync: Set broken_char to a control char, so invalid mailbox names are handled properly.
    The dsync will now fail if there are invalid mailbox names (e.g. valid UTF8
    when they should have been mUTF7), instead of simply printing "mailbox
    doesn't exist" error and exiting with 0.

commit 1f4399a277b861419b82758ab0462e90c00a4c41
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 18:15:22 2013 +0300

    lib-storage: mailbox_list_settings.broken_char wasn't escaping 8bit chars correctly.

commit ba0ca241ea5003d9d5c1a0045473d1bf7949e83b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 17:49:46 2013 +0300

    lib-imap: Make sure imap_utf7_to_utf8() doesn't access invalid input string out of bounds.

commit fba71f7f73279a9d65c4eef0c3eb9c7fa715c3e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 17:48:48 2013 +0300

    lib-imap: Added imap_utf7_is_valid()

commit f40c798116d0b1d735d5eeb8db3dc2022e7e064d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 17:14:49 2013 +0300

    dsync: If unexpected changes happened during sync, log a warning and exit with code 2.
    This was done by v2.1 dsync, but the code got temporarily lost in v2.2.

commit 515bb2bea9a398cb17c34c16729bc4222881de14
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 16:40:01 2013 +0300

    lib-http: After peer has received 100 response, don't add ambiguity timeout anymore.
    The server should be sending the 100 responses then, and long delays
    shouldn't be confused with them being missing.

commit eca9a97f8e99703df155439d70bdf3bdc985fb45
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 16:28:16 2013 +0300

    lib-http: When receiving 1xx response while waiting for 100, don't restart timeout.
    The 100 response is missing only from HTTP/1.0 requests, which also didn't
    allow any 1xx responses. So if a 1xx response is returned, a 100 response is
    definitely also coming.

commit a8c4e79ff50fac21b05a7368b052583d410ca15c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 16:19:38 2013 +0300

    lib-http: Added connect and request timeout settings.

commit 4cadfabdf19b4be84d23356029d21deaa40c5138
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 15:43:42 2013 +0300

    lib-http: Mark the HTTP connection connected only after SSL handshake is finished.

commit 035dfd76345a57b69e939ac872eb3dd00598ed0a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jun 5 15:08:59 2013 +0300

    lib-http: Don't create a new HTTP connection when there is already one connecting.

commit b9dce659b9135c87c7708b2bb0f14e8742db7e15
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 17:17:47 2013 +0300

    lda/lmtp: If mail delivery fails with tempfail, don't fallback to saving to INBOX.

commit 4860b8746b3b7846a9fe65b8c2907ba8aebd422f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 17:11:55 2013 +0300

    lib-index: Avoid memcpy()ing data over itself.

commit 1424de6d63c9166d8091a3b3ea3c1c15e5beda1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 17:08:19 2013 +0300

    lib-fs: If fs_default_copy() fails, close the copy stream immediately.
    The stream's origin may already be freed by the time the fs_file_close() is
    trying to close the stream.

commit ed74f1121a4b8e814427fbce8325108e39e1c805
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 15:33:58 2013 +0300

    lmtp: Give the DATA input stream a name, so the raw mailbox gets a name and doesn't fail.

commit 53e8881f41752bbef1dc2fdd7cd6730a7d065b4d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 04:17:40 2013 +0300

    imapc: If imapc_list_prefix is set, don't skip it in filesystem paths.
    Most importantly this fixes the index path when accessing the
    imapc_list_prefix mailbox itself (so the indexes won't be in the mail root
    dir, where they don't get deleted when mailbox is deleted).

commit a04d8941a885f1d1972a76bd85e60ec946bc02c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 04:06:48 2013 +0300

    lib-storage: If mailbox autocreate fails with "already exists", ignore the error.
    This check was supposed to have been already there, but it was checking for
    the wrong error.

commit cb3a5950b05ae83b5f26a18e9b04c22922e034a6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 03:48:07 2013 +0300

    imapc: Return correct mailbox list flags for the imapc prefix mailbox itself.

commit d9a4e66f0d0310f24a0b21c874b4b243f55df819
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 03:37:21 2013 +0300

    imapc: Allow accessing the imapc_list_prefix itself.

commit 58ba0fe5a6904d3a65cfe268411f4cbb881234ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 03:20:15 2013 +0300

    imapc: Fixed mailbox deletion.

commit 44bce572c4f730ec2603bf2dbb2442574843faf7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 03:06:54 2013 +0300

    imapc: Don't assert-crash when trying to access imapc_list_prefix itself.

commit 066259712764880293320fa486366e5239e89bfc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 02:56:57 2013 +0300

    lib-imap-client: Ask CAPABILITY again after STARTTLS

commit 64ee8113a88e5d6e3cba7b1c4abd537cc2632bb9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 02:56:25 2013 +0300

    lib-storage: Empty mailbox name isn't valid.

commit ac4844274f20edd984b6e0f73a7d77ffa41b81fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jun 1 02:25:54 2013 +0300

    Make sure errno is preserved in non-delayed signal handlers.
    The current code didn't have any signal handlers that modified errno, so
    this doesn't fix any bugs.

commit 281c0a69d647c542a05ebf5ec06040da2fe09e7b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 31 17:36:45 2013 +0300

    imapc: Changed imapc_user setting's default to empty.

commit 0bf0c44fce1df29e60f4f5b312ebe862d44aa237
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 31 17:36:19 2013 +0300

    imapc: Empty imapc_user expands to namespace's owner, or with public namespaces to user itself.
    The main idea is that with shared namespaces it now expands to the shared
    username, allowing shared mailbox access via imapc.

commit 9f3b630d62d70fc0a06a07b85d9e66116fd444a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 31 17:05:13 2013 +0300

    lib-imap-client: Connect and command timeouts are now configurable.
    Also use the same connect timeout for the DNS lookup's timeout.

commit d3a3d31d1eb77c4d040ce77c9cd7babe3003901a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri May 31 02:29:49 2013 +0300

    imap: URLFETCH's URL callback would prematurely uncork the output stream when called for a local URL.

commit e4d51d29f9591e6efea8b34da4ec9a6c0ed557d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 22:44:54 2013 +0300

    imap: URLFETCH's tagged reply wasn't sent while TCP corked.

commit 2e97f876097e73f082db61c6edeafa536a6f2734
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 22:27:57 2013 +0300

    auth: Fixed error handling for proxy host dns_lookup()

commit 3874d5db41b7baef52f1f91c690af7a408e47528
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 22:27:23 2013 +0300

    Reverted previous wrong commit.

commit 604235bf657224583cde566b9e0c9d54421346bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 22:26:14 2013 +0300

    auth: Fixed error handling for proxy host dns_lookup()

commit 1da5113b93f5dd0543a155040daa7ae3f3718b8b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 21:45:13 2013 +0300

    layout=index: Allow mailbox create/delete/rename during mailbox list iteration.

commit 8ea491aa28c684d283d5fa62fee8a13a55cebd7b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 19:03:05 2013 +0300

    lib-index: Fixed a broken assert.

commit b22a040754a7011cfbb4f5cca02fb525a496e73f
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:04:58 2013 +0300

    lib-imap-urlauth: Added API for using the fetch interface with an already parsed IMAP URL object.

commit 620b60321d04006b32a116824d49b88b61be7131
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:04:52 2013 +0300

    imap: Fixed segfault in URLFETCH command.
    Command would be cleaned up while requests were still pending, causing a
    segfault once a request finished. Added API determining whether the URLAUTH
    fetch interface still has pending requests.

commit 69c5fffbba024bc531106f00a9469c1f810a084d
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:04:17 2013 +0300

    lib-imap-urlauth: Fixed handling of URLAUTH service connection resume after pending local request.
    This was erroneously removed in an earlier commit.

commit 636e3a4d35aeed92e50ceb72c4e0e815bb77ed0a
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:04:10 2013 +0300

    lib-imap-urlauth: Fixed pending_request counter difference between locally and remotely fetched URLAUTHs.

commit a103139eb1c241c2aff0c001758eb2da9d8abf44
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:03:53 2013 +0300

    lib-imap-urlauth: Fixed URLAUTH fetch reference counting for when requests are aborted at deinit.

commit 7cf790002e2fc9c260776862123d7af67032ad61
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:03:46 2013 +0300

    lib-imap-urlauth: Fixed URLAUTH connection resume after error.

commit 76e3f370791fc63e4c176432fe2e6b77f400f862
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu May 30 18:03:38 2013 +0300

    lib-imap-urlauth: Made sure callbacks from URLAUTH service connection are executed only once.

commit e95bc848767afa2e52cb988a6d3f5e5cc5933885
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 30 17:45:27 2013 +0300

    var_expand(): Added %N, which is the same as %H except based on MD5.
    This gives a better distribution of values than %H.

commit d8ce48fb2b068ceae03f8df3610e254c3ccd2b2e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 16:40:50 2013 +0300

    lib-imap: imap_append_string_for_humans() returned broken output for whitespace-only input.
    This returned broken IMAP ENVELOPEs, especially for subjects that contained
    only whitespace. Since the broken output returned a huge literal, it
    basically caused the IMAP client to hang.

commit 057284757a156a3494111f5fea5a1a5802a630a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 12:44:15 2013 +0300

    lib-settings: Support also "seconds" and "minutes" (instead of just secs/mins)

commit 4fac477307be1b5349e1c90314eed5cfa1aa233c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 12:33:17 2013 +0300

    dsync: Fixed dsync handshaking since recent change.

commit 6d8082441e480cf481bfb3f935d17fc419d789c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 03:47:38 2013 +0300

    lib-index: Fixed mail_cache_lookup_headers() when fields were still in memory buffer.

commit 5c95939662dc6e4317f4eec60289bb12fd51982b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 03:27:09 2013 +0300

    lib-storage: If INDEX=MEMORY, return index root dir as nonexistent instead of as "".

commit 3d027f35398f80cf09be84b740085e607b23e764
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 03:26:41 2013 +0300

    lib-storage: Reverted previous change after all.

commit 2d8d76a57173de7b7e1ff62f2deabd637ce908ae
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 03:23:40 2013 +0300

    lib-storage: Don't try to mkdir() empty directory with INDEX=MEMORY

commit f154234cb065444b54eef8cf3b6967e3e0968ae9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 29 03:18:04 2013 +0300

    Fixed compiling with gcc v3.3 and older.
    Perhaps the check needs to be also for somewhat newer versions?..

commit eaa9884158bc0cf98379939f72061e31c359cf39
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 28 18:18:45 2013 +0300

    auth ldap: If ldap debug_level>0, log how long initialization took.

commit 30cca82f3c2136395ff16e698b4f0af9c557887b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 28 17:30:42 2013 +0300

    auth: Keep auth_request referenced during DNS lookup.
    If the underlying auth connection gets closed, there's nothing else
    referencing the auth_request.

commit b372fc2d5331a7669e91b05a09404f3303895ce2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 28 17:10:03 2013 +0300

    doveadm-server: Pass local/remote_ip/port to passdb lookups so proxy_maybe works.

commit 7606d44ea3d7a324ee80805a6ceccbad0e1d461e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 28 16:30:38 2013 +0300

    auth: Fixed caching empty userdb result.

commit 5c253723e8ef84cb71a80ced19efe597e8a90ea6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 28 16:30:19 2013 +0300

    auth: If blocking userdb returns no fields, don't crash when trying to cache the result.

commit 75a2a8361aafd27d01eef00c23d784e329b695c2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 28 01:03:58 2013 +0300

    lib-fs: Added fs_get_root_driver()

commit 9865d9e7c5713e41db939222ed9c0225a11fb99e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 27 21:03:14 2013 +0300

    dbox: Don't cache pop3.uidl|order unless index header indicates there are those.
    They exist only when doing a migration, so it's pretty wasteful storing
    "doesn't exist" for all other installations.

commit c7fc0431b23dc8d29e12e09c8120e223fbee116b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 27 20:45:08 2013 +0300

    lib-index: Added mail_index_ext_resize_hdr()

commit 5e1dafd67b74273f0351b2bb96747d46e2e6b3e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 27 20:44:56 2013 +0300

    lib-index: Fixed resizing header when old&new sizes were the same when aligned.

commit 930d6db2ee2bbafd3c7cdaa39855ddccb999522f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 27 20:44:05 2013 +0300

    lib-index: Create ext-intro records using the latest sizes, not initial sizes.

commit ab8e5f7847ad483a12b8d6acea2be0f6e1a5f940
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 27 20:18:35 2013 +0300

    dbox: Return cached pop3.order=0 as empty string instead to fix sorting problems.

commit fd32c46c360e61de2c957c3d2241eaacab7b3eec
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 26 21:57:36 2013 +0300

    dsync: Added -x parameter to exclude mailboxes from sync.
    Multiple -x parameters can be added. Giving \flag as parameter means that
    the mailbox with the given SPECIAL-USE \flag is skipped. For example:
    
    doveadm sync -x '\All' -x '\Flagged' -x '\Important' mdbox:~/mdbox

commit 495c2961d1db56202afe2e54efeb3da9125a0183
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 26 21:44:50 2013 +0300

    imapc: Fixed assert-crash when copying messages.

commit f1a5b3a0176aa370830249ce5423bbc47fe032c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 26 21:20:47 2013 +0300

    dsync: Small code cleanup.

commit 2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 26 21:07:09 2013 +0300

    imapc: Pass through SPECIAL-USE LIST flags if imapc is in INBOX namespace.

commit 147a788fea2a88f7125b27226451271d55cf5b01
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 26 19:14:21 2013 +0300

    dbox: Added support for POP3 message order.

commit d33fc6c584718efd46159e1d8f46488b9dfc66f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 26 19:04:00 2013 +0300

    lib-index: mail_cache_lookup*() can now return fields recently added with mail_cache_add()
    Previously it was returning them if they had already been written to
    dovecot.index.cache, but not if they were still in the in-memory buffer.
    This avoids caching/parsing the same field multiple times when messages
    aren't accessed in ascending order (e.g. when sorting messages).

commit 35e962a9186b4e9b2001628c1d7b55c24b33ce84
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 23 17:36:54 2013 +0300

    lib-http: Added ssl_cert|key|key_password settings to be passed to ssl-iostream.
    These are used for sending client's SSL certificate.

commit 9e3b104abc79cf43016b72c3c74ce05dc9589b42
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 22 15:59:38 2013 +0300

    *-login: If ssl=required, don't list any SASL mechanisms before STARTTLS.

commit e2ce85866a669d1881d2d31791619d2e7c63c253
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 22 15:57:13 2013 +0300

    *-login: ssl=required should imply disable_plaintext_auth=yes

commit 79c8622544b937ff24d47b34921e038ed1ba4fdf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 22 15:44:05 2013 +0300

    lib-storage: Optimize SEARCH_MODSEQ query if it's higher than HIGHESTMODSEQ.

commit f5d3670e7e1c0da30a106ee8adef74afec657907
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 22 15:16:22 2013 +0300

    dsync: Fixed unsubscribing from mailbox within same session as the mailbox's deletion.

commit 5e925f68203ec92a12410dff37dd4c6c63b4dc83
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 22 14:56:41 2013 +0300

    dsync: Don't notify replicator process about successful dsync if the dsync failed.

commit 63e376747537cb2dfaa0e36d1bafd19df1443a4e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 21 22:57:06 2013 +0300

    *-login: If auth failed with a specified reason, the reason wasn't actually shown to client.

commit 659f431cb56f26ec07e308db4d6c563c0eaa5300
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue May 21 22:55:23 2013 +0300

    lib-imap-urlauth: Fixed deinitialization of the URLAUTH fetch handler.
    Added reference counting to make sure callbacks will not deinitialize the
    handler prematurely.

commit df97665f0f471d21566b38cc856253a0adadc3b7
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue May 21 22:55:17 2013 +0300

    lib-imap-urlauth: Fixed resuming in URLAUTH fetch handler.
    Fixed URLAUTH fetch handler to properly resume the URLAUTH connection, even
    when it is deinitialized.

commit 96fbbe9c6fd04bca25770020bf94eec50888bc9b
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Tue May 21 22:55:12 2013 +0300

    lib-imap-urlauth: Fixed local URLAUTH fetches that didn't immediately finish handling content.
    Local requests are now also properly counted.

commit 80ef919fa14d4196bcbf1e486d2d549154fa62e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 21 17:09:37 2013 +0300

    auth: Fixed crash if LDAP query returned multiple results.

commit 7b904cc67ed7bdd5f1c4e4fb2e132c96b0c9223c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 18:26:16 2013 +0300

    dsync: Previous have_save_guids change somewhat broke compatibility with earlier dsync versions.

commit 985acc0cfd9184b3f4f4cfd6b9e5686a65226147
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 17:30:23 2013 +0300

    dsync: Fixed unsubscribing from an already deleted mailbox.

commit 2194c73cdf05e93f1ea6397de2b7f9a49811cd99
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 02:25:26 2013 +0300

    Added signature for changeset 7aa929edd551

commit 2235f9ba57caacc02d5a448583402511112c8bc8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 02:25:23 2013 +0300

    Added tag 2.2.2 for changeset 7aa929edd551

commit 3da6df06483a600f2d0fda176061371185b69c11
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 02:25:23 2013 +0300

    Released v2.2.2.

commit 14f6fe5d6c4834f273ca573c23c0659a93123363
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 02:01:02 2013 +0300

    dsync: Don't try to sync with GUIDs if we can't set them on the needed side.
    With two-way syncing both sides need to have writable GUIDs. With one-way
    syncing only the writing side needs to have writable GUIDs.

commit 9a107dedb8f35727c21b3d1d54475d33f6e2eb1f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 01:52:25 2013 +0300

    maildir: If we notice an unexpectedly inserted file, retry the sync to fix it.
    Without this doveadm force-resync would just ignore the inserted files.

commit 001ec60f2fdec082ee5804b541cfbc37f377aa88
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 20 01:39:52 2013 +0300

    maildir: Reverted most of changeset c92ebbedc6f9.
    If dovecot-uidlist file is recreated, it gets a new inode number, and we
    should recognize by that alone that it has changed. More importantly this
    forced re-reading of dovecot-uidlist clears out the RACING flag, making it
    impossible to handle reappearing maildir files.

commit 9847ec56efa15fa063eea9988eee2d4ed9ec7d58
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 19 23:42:29 2013 +0300

    lib-storage: Added mailbox_status.have_save_guids.

commit aeab2134d21723e782b788616b83b4f4e17626ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 19 23:21:20 2013 +0300

    mbox: Previous change broke index updates to successful saves.

commit 5f39ad0314a68506312b2b7e2888429a1e69ef7f
Author: Christian Wiese <christian.wiese@securepoint.de>
Date:   Sun May 19 22:36:36 2013 +0300

    example-config: Added missing auth-dict.conf.ext to distribution

commit 6f7671007845a477c9008d33d4468badba8b89c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 19 22:30:52 2013 +0300

    http_url_escape_param(): Added more characters to be escaped.
    Most importantly '+', which encodes a space normally. The others may not be
    strictly necessary, but safer to escape them just in case.

commit 04d9ab8edbb7d9cf0905b3cc7848cc9e8bc1d410
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 19 19:55:41 2013 +0300

    lib-http: Fixed assert-crash when host had multiple IPs and first one had failed.

commit dfc3a20b33f265b54746c9c2768b997d5e1cf15e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun May 19 19:51:34 2013 +0300

    imap-urlfetch: Don't leak memory on error. Use TCP corking when sending data.

commit c42c256499dbf959b538175fe04b0f303707fd9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 17:18:29 2013 +0300

    mbox: Fixed committing transaction after a previous save had failed.

commit d6a8078c2e024acecc69e8d8d5d4ae9ec89d29af
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 17:10:28 2013 +0300

    mbox: If save's input stream fails, fail saving instead of ignoring the error.

commit a7349255f087039a057bfcc9660ac3eee764768a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 17:09:36 2013 +0300

    layout=fs: Always return INBOX uppercased when listing mailboxes.

commit 9fbb55191ad3d3064b0483435cc0b1574daffbcc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 16:10:48 2013 +0300

    lib-storage: Don't lose INBOX's \Subscribed flag when returning it is delayed.

commit a29b327319d0191621fc96d268c72a3e91d5a7bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 15:35:10 2013 +0300

    imap: Return how long SELECT or EXAMINE command took to answer.
    Could be useful to know sometimes if there's a large maildir where a lot
    files need to be rename()d.

commit aa8b823980e04306fa791281b6878df0681724d3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 15:26:47 2013 +0300

    maildir: Fixed handling over 26 keywords in a mailbox.

commit 25480af2e21cf136e461ec802177f52b43154485
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 15:06:24 2013 +0300

    Added asserts to binary searches to make sure we don't go to infinite loop.
    Using idx=left+(right-left)/2 would have worked also to allow 4GB sizes,
    but since none of the places in the code are likely to reach 2GB we might as
    well just add an assert. (Also if they do reach 2GB, it could be possible
    that they could reach also above 4GB and cause problems. Better to see an
    early error.)

commit b8164b588348c124acc469841ec7a5ca93a8efcd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 14:28:04 2013 +0300

    quota-status: If quota_status_* settings are set, don't free them before using.

commit e24f97a6f403df4103e85766ff7ed6b6ec1f7f79
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 13:44:01 2013 +0300

    lib-storage: Allow mail_*cache_fields settings to specify any hdr.* fields.
    Also the fields were previously set only once globally, so if the process
    served multiple users, it wouldn't have been possible to use per-user values
    for these fields.

commit c2d7c8a808e78ed256346fb8529a565dc68e92cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 13:36:43 2013 +0300

    lib-index: Don't mark field decisions dirty when registering initial cache fields.

commit a16d9a651aaa36a308f1aaae87e73e143fdff887
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 13:34:59 2013 +0300

    lib-index: Fixed mail_cache_register_fields() decision updates.
    Normally this shouldn't matter, except when mail_*cache_fields settings have
    been used.

commit 872d122a6f570e462f40341b7dd581dbd7d59f90
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 13:20:43 2013 +0300

    lib-storage: Added mail_always_cache_fields setting.

commit 9281d385594c4f158958977f1ead1d2270ef1a9e
Author: Florian Zeitz <florob@babelmonkeys.de>
Date:   Sat May 11 17:08:12 2013 +0200

    liblib: Fix Unicode decomposition

commit cb95df276774b6e7d5340a2d97067cb26e196a2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 12:52:29 2013 +0300

    example-config: Added comment how all *.conf.ext files are accessed typically.

commit b3b55a84b1db4f912cadfb8f7b00dbc047d468bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 12:50:29 2013 +0300

    Makefile: Removed dovecot-db.conf.ext

commit a71c8244451942346b088369f88a2008d1b2d017
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 12:50:03 2013 +0300

    example-config: Removed dovecot-db.conf.ext since Berkeley DB support is never built in.

commit 84ddb91797aa894f258033d6e5674c1885044c58
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed May 15 12:48:21 2013 +0300

    example-config: auth-*.conf.ext should say they're included by 10-auth.conf

commit daabad64d90d6008215e234287255a56312e7b72
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 23:34:38 2013 +0300

    auth passwd-file: If we fail to open passwd-file, log a request error directly.
    Instead of one error message and another info message.

commit a7b0916217f8ebb1da55e049f054e047f81bb911
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 22:23:27 2013 +0300

    Avoid strict aliasing warnings.

commit cf04ab5212f02ac369fe337c1b80dbcd7b6e2790
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 16:46:08 2013 +0300

    example-config: Moved imap_* and pop3_* settings outside protocol section.
    There's no need to keep them inside protocol {}, and in case of
    pop3_uidl_format=%m setting it's actually harmful.

commit f64b66ffacc4e42002d87b940ef74f08b1e5b12f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 16:32:30 2013 +0300

    pop3: Added pop3_deleted_flag setting.

commit 4f0ea8daa839118f4485e29df7253a571a3ec2bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 14:14:16 2013 +0300

    configure: Fixed checking for struct sockpeercred with OpenBSD <5.3

commit eeeedfdd2d1efa32ed7de93381b36ddefc293f7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 14:02:36 2013 +0300

    login-proxy: If login fails with timeout, log what the proxying state was.

commit 6a438f1cb934e221fc3af4e172d609d19c7aab30
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue May 14 14:00:21 2013 +0300

    login-proxy: Don't crash if connect() succeeds but login fails with timeout.

commit ea954a624a8c31a4d7f05ceaa2d7d3b7768da58b
Author: Dennis Schridde <devurandom@gmx.net>
Date:   Mon May 13 23:06:31 2013 +0200

    Fix out of source build of manpages

commit 89334d8c6915db0fc8630470b7f3cd5ee9aa29aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 23:59:41 2013 +0300

    lib-index: Previous commit sometimes broke scanning transaction log view.
    If min_file_seq+offset pointed to the end of the previous file that no
    longer existed, we didn't just skip over it.

commit 5c8a42e2860a0db7b8911c5479910a4f918436b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 20:21:27 2013 +0300

    imap: URLFETCH sometimes failed thinking it didn't receive all of the message data.

commit 7b6cc2bca3b2fb58bbbea5293ed8f63d352dc305
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 20:20:43 2013 +0300

    imap: URLFETCH leaked istream on failures.

commit d2dd9b7365c8efb4e205d521c9d66758dbf7300a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 20:15:58 2013 +0300

    imap: Fixed URLFETCH assert-crashes due to output_cmd_lock not being cleared.

commit f036539f6a236d974fc04087e6fe36f8d299a496
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 19:51:07 2013 +0300

    imap: Don't eat away the next command if CATENATE fails.

commit 693e839fb958599263ccef4fc0e9b844fa49b993
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 19:49:55 2013 +0300

    imap: Fixed assert-crash on invalid APPEND parameters.

commit fa0e8ffddec87e87127abd3e7bac174a770f0415
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 19:49:18 2013 +0300

    imap: Don't hang in APPEND when giving it invalid parameters.

commit ba9f57d777b213081ac7e780ea112d641af4e7f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 19:48:32 2013 +0300

    lib-imap: imap_parser_read_args() shouldn't append multiple EOLs when calling multiple times.

commit 8e5d894529f30fe6c9671495f678daf0ae7f6478
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 18:35:36 2013 +0300

    lib-imap-urlauth: Don't try to access garbage memory on error handling paths.

commit 68a3f1b03fb0014b856abd2fee4932a0576bbe89
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 17:30:07 2013 +0300

    doveadm: If search query attempts to access nonexistent mailbox, just ignore it.
    Most importantly running a query for multiple users wouldn't be an error if
    the mailbox existed only for some users. It's probably cleaner to then
    always just ignore the nonexistent mailboxes.

commit c57ba1788a6598993a9625bbf26a4fedca23815e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 17:27:36 2013 +0300

    doveadm_mail_iter_init(): Removed unnecessarily returning transaction.
    If it's needed in future just add a new doveadm_mail_iter_get_transaction().

commit dcf4c70f8358db12859c3ab5b81b3abaac4109a3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 16:43:29 2013 +0300

    lib-index: The previous assert-crashfix didn't actually fix the problem.

commit 48cfcd33ace8ffc438122e0d02ed3ceb59ca13ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 15:17:49 2013 +0300

    maildir++: Fixed mail_shared_explicit_inbox=no

commit 392cdeafd465b7adc99fc0d25aeec34f0ade771b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 15:04:57 2013 +0300

    namespace { prefix="" list=no } should never be listed.

commit 515d649c1802beb48433b90125518c00d0a1fbb4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 14:59:27 2013 +0300

    acl: Optionally get default ACL's for private/shared namespaces from user's INBOX.
    This probably should be the default always, but better not break anyone's
    existing setup until v2.3.0. So for now there's a setting for this:
    plugin { acl_defaults_from_inbox = yes }

commit 9199a1680a57988eacccce07f457c4fac6a108b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon May 6 14:58:55 2013 +0300

    acl: Mailbox creation ignored ACLs (due to API changes in v2.2).
    The created mailbox couldn't have been accessed however.

commit c958941fb778f253f647fced91f277f8bb633f2b
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri May 3 17:17:15 2013 +0300

    quota-status: Return 554 instead of 552 on quota failures.
    This is because RFC 5321/2821 recommends that 552 is treated the same as 452.

commit 7a151eaa1ca7725f9a67cdb2675e189a05ffa6f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 2 18:32:47 2013 +0300

    lib-imap-urlauth: Don't try to access garbage memory on error handling path.

commit 2d8ff6cda406da5c53e635fe31dfadc3bdb05235
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 2 18:29:50 2013 +0300

    imap-urlauth-worker: Fixed a crash (by removing unnecessary code)

commit 047f63233003cadd909bbb751e9e417353060d9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 2 18:18:26 2013 +0300

    imap: Don't allow empty CATENATE () list.

commit 6c3a5f03aa0331daa26085a678ef1c872e4078d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 2 18:11:56 2013 +0300

    imap: Fixed using literals for URLs in CATENATE.

commit e3d7df2094cae22f3c76cffc14d08999226cf76b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu May 2 16:20:02 2013 +0300

    example-config: Typofix

commit 61f78d8e0c3c7aab9044252f3593a8839a811fd2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 21:32:24 2013 +0300

    stats plugin: Don't try to send notifications to already dead stats process.

commit 57397188558fcd1a9e24dbbbd2952eac9c45c20d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 21:31:52 2013 +0300

    lib-master: Added master_service_is_master_stopped()

commit 3b09ea6d8593ea15cefbcd344671b8eac3719118
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 21:08:31 2013 +0300

    hash_table_clear(): Added a comment about API usage.

commit 208028f268ac67be00590267315bf7743db02a52
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 21:06:34 2013 +0300

    maildir: Crashfix after dovecot-keywords file was re-read.

commit f6f57175ba9e1d41ea01b71283dbcea2dacd500b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 21:06:00 2013 +0300

    lib-storage: Fixed crash with mailbox_list_index=yes after re-reading index.

commit 6e5abd4b78f74e49291f36b4a861d625f48ef932
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 20:53:53 2013 +0300

    istream-[b]zlib: Don't break if parent stream gets seeked in the middle of reads.

commit 8cdef6385cf57bc89ada48fdaa172c1298887b1c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 20:51:34 2013 +0300

    dbox: Close file's fd only after its istream is destroyed.
    For example zlib plugin keeps the stream open as a cache even after the
    dbox_file has been destroyed.

commit be51dfea768ad502e08ebd02917138f7a0f8f625
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 17:21:46 2013 +0300

    istream-seekable: Don't crash when seeking forwards past the data we haven't read yet.

commit ec383c7840663a34033f5b1b027e7c530af564be
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 16:20:48 2013 +0300

    lib-http: Makefile fix

commit c9af0202f84f04a7ae87274241df2a7e322470fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 13:47:46 2013 +0300

    fts-solr: Don't crash if fts_solr setting is invalid.

commit 066595d486e4ca5139442aac938a82879c93b424
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 13:33:12 2013 +0300

    master: Fixed warning log message.

commit 8920919abc0724ca01ab7f729213344ec0da6f5b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 23 13:28:17 2013 +0300

    OpenBSD compile fix: include sys/socket.h when checking for struct sockpeercred.

commit f9b31ae3142ac52279e4fdc6efdafe32a4b74ace
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 22 21:51:01 2013 +0300

    stats plugin: Use nonblocking open() for stats fifo.
    This fixes hangs in it. Alternative would be to use alarm().

commit 0c991793912b5bf230b7f6a25492510fccef8230
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 22 18:45:04 2013 +0300

    zlib: Keep the last read mail cached uncompressed in a temp file.
    This fixes performance problems with partial IMAP FETCH commands.

commit 4a254eb892bbd8004179decee1fec13e264f5348
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 20 21:57:47 2013 +0300

    lib-storage: Avoid wasting data stack during searches.

commit 96b8965a967dcaef1316f4f32d5cd956d844201b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 20 21:02:30 2013 +0300

    Fixed a memory leak.

commit e2854843b2caa252a27a0328d75fc99507d70d1d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 20 20:58:06 2013 +0300

    stats plugin: Fixed memory leak.

commit 01243115311a0da7c65bdce6d6e0b9632ff97186
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 19 14:29:23 2013 +0300

    Compiling fix for Sun compilers.
    I wish gcc/clang warned about these as well, as sometimes they indicate bugs.

commit 03a5062175629e7143f83012a6a3eb605715c7bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 19 00:38:05 2013 +0300

    Added signature for changeset 6fcf060b50f1

commit 16b277741e7d26fddd76e17e022109472fbe91fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 19 00:38:00 2013 +0300

    Added tag 2.2.1 for changeset 6fcf060b50f1

commit c4d85d3de043eacceeebcc65edb94761d64d6691
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 19 00:38:00 2013 +0300

    Released v2.2.1.

commit 90a2c5f48c5f88f07bbf0477e3023d2099252b92
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 18 18:49:55 2013 +0300

    layout=index: Fixed listing subscriptions.

commit 92bf0ad419f1aebcb1361d9d1bd64e8b4e3000f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 18 17:54:29 2013 +0300

    lib-storage: Set virtual/physical size in dest_mail when copying, if possible.
    Ideally lib-index would be fixed so this wouldn't be necessary. The
    lib-index way of fixing it would also be useful for more than just quota
    plugin.

commit a90616ab2d9ef49b7f82baff021bbb2b2663e987
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 18 17:48:38 2013 +0300

    lib-storage: mailbox_copy() didn't always copy all the cached fields to destination.
    If the destination mailbox's cache file wasn't already opened, the default
    cache decisions were used.

commit e3ca6e9e08c2aa6694bb81adbcab9bf31a36eaa6
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Apr 17 18:47:36 2013 +0300

    liblib: Added DLLIST2_INSERT_AFTER_FULL()
    For inserting a new element in a doubly-linked list after an existing
    element.

commit f82dfbdcc736987b8da09b75408393f2e074b891
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Apr 17 18:44:52 2013 +0300

    lib-imap-urlauth: Fixed connection error handling to abort all pending requests.

commit 8110bad16208840ed78ab1300f2f0eeecf592b84
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 17 16:19:42 2013 +0300

    lib-storage: mailbox_save_finish() internally does one final mailbox_save_continue()

commit 6766440ffdd8d3ff99a1f732eef212813089bb81
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 17 16:08:26 2013 +0300

    doveadm fs: Set base_dir.

commit 511a7ccd55cea57c9d953920b7d651720128ada9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 16 20:08:18 2013 +0300

    mbox: Handle broken Status: and X-Status: headers without sync errors.

commit a6a9e537d808b9a05e1f535907079713b63e1df9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 16 16:20:30 2013 +0300

    auth: Fixed multiple master passdbs.

commit 1235bbd139a1ff97f641fa0e77205eb9adbb0400
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 16 15:54:05 2013 +0300

    maildir: Fixed crash in some rare situations.

commit 96c1fc9f653f32ac4537d770651d7543e71d2e8a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 15 21:40:35 2013 +0300

    zlib: Don't crash when trying to use zlib_save for handler that isn't compiled in.

commit 9d257168090b9d1fc5c670b90b6c9a731eddaf11
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 15 17:22:06 2013 +0300

    lib-mail: Don't assert-crash when multipart doesn't actually have any parts.

commit f497d846932b4318866d4d00cb686f359a22a26a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 14 21:27:29 2013 +0300

    lib-storage: mailbox_list_index=yes was still broken.

commit eed1ec3ac96fddb8d9e4fa2af6e760ee42801fb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 14 20:40:47 2013 +0300

    Linking error fix.

commit c92163a6f82cc18c5f93abd6e6137cf6454059c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 12 21:19:38 2013 +0300

    Added tag 2.2.0 for changeset 1c8e7a295d4b

commit e81127c9212b42d010f09d27177ec349ed69b3fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 22:38:59 2013 +0300

    Added signature for changeset e2cd03cc9c69

commit 604fa82dac774d9a78af8cb9c6c2017cc7b271e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 22:38:54 2013 +0300

    Released v2.1.0.

commit 94785d5f7d1ca1d5830b6d342aa1fe126643f2f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 19:06:25 2013 +0300

    lib-storage: mailbox_list_index=yes was broken by previous change.
    Reverted the previous change and fixed it the right way.

commit 10ccd0e45768923d69be459e87ef6cd2574cec60
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 18:50:25 2013 +0300

    Removed ambiguous mail_user.admin flag. dsync shouldn't sync mailboxes without +r ACL.

commit 8c072aac2949d0c840162d1a1d334e8367fd2993
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 17:35:31 2013 +0300

    doveadm: Don't use MAILBOX_LIST_ITER_RAW_LIST when listing mailboxes.
    That skips ACLs and mailbox list. There's really no good reason to use that
    by default.

commit 6d84b0facfaebb4d630173cb01cd9c48118ea734
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 16:54:53 2013 +0300

    lib-storage: mailbox_list_index=yes wasn't working with ACLs.

commit 1409230a03f4e3764b709e12ba148a517e4b84fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 16:19:35 2013 +0300

    lib-storage: mail_update_pvt_modseq() shouldn't crash if there is no private index.

commit 43262d1555b839e2b1b792f744763ed2376fd94f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 13:38:16 2013 +0300

    net_getunixcred(): Fix to previous NetBSD<5 support: return pid as -1.

commit 921d4dd91e8959c9e9d6ffada7cd61f4d1ee504a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 13:15:39 2013 +0300

    net_getunixcred() support for NetBSD <v5.0. Fixed also building with other NetBSDs.
    Patch by Emmanuel Dreyfus

commit 5fb80928bb367d7410d510d0d889909652553003
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 11 13:13:14 2013 +0300

    Fixed getmntinfo() usage with NetBSD.
    Patch by Emmanuel Dreyfus

commit 2a7f9672ca0d8fc8a21a4c602e16b6b9058311ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 22:31:53 2013 +0300

    Added signature for changeset d7f29af73468

commit 81e86d1ea99fc028aa4c7d4bc2ac8bafc835c86b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 22:31:41 2013 +0300

    Added tag 2.2.rc7 for changeset d7f29af73468

commit c21978afb43ee463fc38a0399615d23b9e6c7f73
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 22:31:41 2013 +0300

    Released v2.2.rc7.

commit 03f2a189a0985d87cfe443a1a5cc8ab6da052c30
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 22:11:33 2013 +0300

    imapc: If APPEND to selected mailbox doesn't send EXISTS, try if NOOP sends it.
    This makes Dovecot behave better with Courier.

commit 1c3e5f6b1afaf119335e3892b0a5ca76a37acebd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 22:05:36 2013 +0300

    iostream-ssl: Don't hang if ostream's max buffer size is set to 0.

commit 0b32a8d139f6a4f2b18a6444fc66d31b4a1b0da6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 21:18:07 2013 +0300

    lib-fs: Added fs_file_close() to explicitly close all streams that the file has open.

commit dc39158a24fd58b6612f98d94cd313b7ed9756b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 18:48:54 2013 +0300

    lib-index: Fixed failing unit test

commit 0f37e68570ccf3230748cfbc697ddddbc00e2545
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 18:00:12 2013 +0300

    lib-http: Don't double-free request memory when aborting them.

commit c6494255de7b934281dd052960fd8ab5aa48e79e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 17:53:24 2013 +0300

    lib-http: http_client_deinit() calls any pending delayed failure callbacks.

commit 23c502c6ef08d83e8ed68f90ed75138e14a3a246
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 16:50:34 2013 +0300

    lib-index: Assert-crashfix on some rare situations.
    mail_index_modseq_get_next_log_offset() might have returned e.g. (seq=4,
    offset=40) to point to the beginning of a next file. The view itself could
    still have been pointing to seq=3 end of file. Now calling
    mail_transaction_log_view_set() with these two positions (that are basically
    the same) should result in an empty view instead of assert crash.

commit e062a4b1f8d94929f6fb9e6d27acfddf50439437
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 14:52:17 2013 +0300

    lib-fs: Add data stack frames to most API calls, so the backends/callers don't need to.

commit ccd968b44a40b9c2cf6278fabfa2a80cc5d9e46b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 14:51:37 2013 +0300

    lib-http: Added data stack frame to avoid unnecessary data stack wasting.

commit e1ac2af3efb53ff34c8257660429f2b9e6c6bd3f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 14:17:41 2013 +0300

    lib-storage: Fixed mailbox list index crashes with shared mailboxes.

commit 311d3dd2078c1b711a0cef013ba43a94078c115c
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 14:13:51 2013 +0300

    lib-storage: Added mail_namespaces_added hook.

commit 43487bb7de9e907ad61e186714956a83f5be4a15
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 14:00:47 2013 +0300

    lib-storage: Make sure index root dir is created when mailbox list index is created.

commit 719123a3ec5aeb45ef1c50c265039666c71981d7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 13:40:57 2013 +0300

    dsync: Don't fail the sync if attribute couldn't be set.
    It's probably a system configuration mismatch where some/all attributes
    don't work in one system but do on another. This might or might not be a
    problem, so it deserves an error message, but probably doesn't deserve
    failing entirely.

commit 7ee45b03d66c09e3a2f99e559c22171aad6b43fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 10 00:14:09 2013 +0300

    lib-storage: Fixed crash with mailbox_list_index=yes and out-of-date index.

commit 8451cf67733f6633510f6619301474be349c5035
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 9 23:54:52 2013 +0300

    istream-seekable: Fixed handling "buffer full" i_stream_read() result from underlying streams.

commit 933e663cc1805e11d42d4c5ad69038c0866c56a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 9 14:17:56 2013 +0300

    dsync: Fixed assert-crash caused by previous change

commit ec0cc8fa647794e44a1afaa448f495a713048dc4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 18:14:32 2013 +0300

    dsync: Commit large transactions every 100 new messages.
    This way if the dsync crashes or transaction fails in the middle, the next
    run can finish faster. Also the rollbacking finishes faster.

commit b6d4436601d4371b4fbf5347bcaaad4f5e114671
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 17:10:14 2013 +0300

    dsync: If saving mails fail, stop trying to save more of them and flooding logs.

commit 2e657dc3d6f973b13379e7c448f1ab96862799b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 15:33:23 2013 +0300

    dsync: -U parameter never updated replicator's full_sync state.

commit aaebcf0da12df7216be69961204fa64ec24c54b9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 15:13:39 2013 +0300

    quota: dsync shouldn't trigger quota warnings
    They would probably just be duplicates that were already triggered by the
    other replica.

commit 2d66fbf7a14d354cd7ffa3e504fc660a99f22f75
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 14:53:31 2013 +0300

    dsync: If dsync fails due to lock timeout, give a better error message.

commit 3ba55a69a61010f4af51e753d54174e7c76b2a9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 14:49:07 2013 +0300

    lib-master: Ignore mountpoints with type cgroup.

commit a1ac79f52bdb3b14c459f7701fae69b1cfc2b448
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 14:43:09 2013 +0300

    doveadm replicator: Fixed showing over 1h old timestamps.

commit b5ffdf79df3d9ace5a7c1fc08bb2b1d177157a01
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 14:38:30 2013 +0300

    replicator: doveadm commands and user list export may have skipped some users.
    The users were exported from the queue, but they are temporarily removed
    from there while the user is being replicated. The users always exist in the
    hash table though.

commit a74bc46dde2a422052458587b4336757d6b62227
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 13:25:18 2013 +0300

    checkpasword: Don't set AUTH_PASSWORD environment.

commit 1d80017c29866f808c279ba784f70d74dc69b7ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 13:09:52 2013 +0300

    restrict_process_count(): Don't die if process count can't be changed.
    SELinux has hard limits and doesn't allow root to increase them. The admin
    should fix the error one way or another, but it's not a total failure just
    leaving it.

commit 9a50449644cb4277d5a35f5ca7b04c7389f464e7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 13:03:12 2013 +0300

    lib-http: If remote SSL cert is invalid, treat it as non-retryable error.

commit 71b60849a773dd68bdc015cb6a8ea1664d16b359
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 13:02:27 2013 +0300

    lib-ssl-iostream: Added ssl_iostream_has_handshake_failed()

commit b09cf319d060364149ce32efd477eb8d355c9590
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 02:06:29 2013 +0300

    Added signature for changeset ae4341d0e83b

commit f6ce79f874fa2f0b431c47a28db5ddc53c237ef5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 02:06:25 2013 +0300

    Added tag 2.2.rc6 for changeset ae4341d0e83b

commit 0d511a2ded56df3c9d5da3f924cb0f8e3344f292
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 02:06:25 2013 +0300

    Released v2.2.rc6.

commit c3e0f0a114204c82139be5cead0a8db0c0addaa3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 01:56:25 2013 +0300

    dsync: Fixed crashes with dsync-server -U parameter

commit 9ec1ecbc19af5a312877c0f19d6adf5bc38a7111
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Apr 8 00:18:56 2013 +0300

    fs-posix: Set file's fd to -1 after closing it

commit bdff67545d78dd7295c0a37481564bbe69e2aab2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 23:56:01 2013 +0300

    istream-qp-decoder: Fixed assert-crashes caused by recent forced-CRLF q-p change.

commit a78468f42df768399d6e3890381a936b439297b0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 23:26:52 2013 +0300

    lib-fs: posix fs backend now closes the fd after reads are finished.
    This allows keeping more fs_file structs open than there are available fds.

commit 1a0ece3e873e3864269ed7eaed957dc10c56d25f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 23:17:37 2013 +0300

    istream API change: Added support for multiple destroy callbacks.

commit b60ba688ee49df2c2efba9071b717c8d2363cdc3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 22:55:42 2013 +0300

    ostream-metawrap: ..and compile fix to previous commit.

commit 6759ba36f2bac9e83547cfdcf233382a139f1283
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 22:54:48 2013 +0300

    ostream-metawrap: Copy parent ostream's errors.

commit eb376ebaa386d9a9d868e0c56650138398899b58
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 20:32:37 2013 +0300

    example-config: Added ssl_client_ca_file

commit 56d1345c43bbd28c36b7faa85e4163bd9e874290
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 20:28:31 2013 +0300

    Added ssl_client_ca_file to specify the CA certs as a file instead of as a dir.
    This is required for Redhat-based systems where there isn't a CA directory
    like in Debian/Ubuntu.

commit 713a54f695b8ad63826d22ebbe52f55c347e8c88
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 20:06:42 2013 +0300

    doveadm fs: Enable fs debug if doveadm -D parameter is given.

commit 1c31ad9a2e071bd8ac9b98ad8070209ff85f1351
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 20:06:28 2013 +0300

    lib-fs: Added debug setting.

commit 51f750db859e62e2c58a61806b53e0adb13e0775
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 19:50:29 2013 +0300

    Moved lib-fs/fs-test to "doveadm fs" command.

commit a0b32e0e5a7b7e3cbb6c402d2a3457c9d91a7923
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 18:50:31 2013 +0300

    lib-storage: mailbox list index didn't get its permissions from the root dir.

commit db7ca286e3ef53f73a3e8e46104a31247ebfe213
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 18:49:32 2013 +0300

    lib-storage: dovecot.mailbox.log should have used file permissions, not dir
    Although this didn't actually make any difference since 0666 mask was used.

commit 3cca2128cad5c534d7d945bbc32afc7af06d54f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 18:33:21 2013 +0300

    example-config: Added mailbox_list_index.

commit ee8d619694b0b96ba2a8b603468147ce3e12b886
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 18:01:52 2013 +0300

    Added "doveadm replicator remove" command to remove users from replicator queue.

commit 51a237cb7aa8eba62880a44f27ccb08277b31315
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 17:47:16 2013 +0300

    dsync: Fixed -U to send the notification on the remote server, not local.

commit b593b793d52043a304d74c48473aa6cfe7504334
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 16:36:00 2013 +0300

    lib-storage: If transaction commit fails, don't try to access garbage memory.

commit b8e6e314eb2f9f1fc8ce2999034321bfeb7a2269
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 15:36:35 2013 +0300

    dsync: Fixed talking to earlier dsync without mailbox attribute support.
    Most importantly it can now be used as an example how to add more features
    to dsync.

commit e25c9a57d651456a5f446a98e677c8c472c4ce98
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 15:10:36 2013 +0300

    connection_disconnect(): Explicitly close input/output stream.
    This makes sure that if the ostream has some data pending and is still
    referenced, the io_remove() won't be called after fd is already closed.

commit 9e10978b8632da8e50af18059205c44678c1dfed
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 15:03:36 2013 +0300

    test-http-client: Allow invalid SSL certs in tests.

commit 9d0aee99a8c80d71137aa9b8c216cc203bec7a9a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 15:02:46 2013 +0300

    lib-http: ssl_crypto_device and ssl_allow_invalid_cert settings were ignored.

commit bf48ae15501dcff377dbcf114a67c10076cdec0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 14:56:19 2013 +0300

    lib-http: Fixed receiving 100-continue reply after we already timed out waiting for it.

commit 6b7e1dfd1b5291242092dd669e04b2bf2b004133
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Apr 7 14:46:45 2013 +0300

    replicator: Have remote dsync notify the replicator that the user was just synced.
    This way the replicators are roughly in sync.

commit b1aa228609f9afde184c7facc0c53e3cf6dbe1e3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 6 21:01:41 2013 +0300

    replicator: Don't create replicator-doveadm socket by default.
    Also removed the service replicator { process_min_avail=1 } requirement.
    This new way allows replicator to give a flag to dsync so it will try to
    notify the replicator process when user gets synced, which can be silently
    ignored even if it fails (replica server doesn't need to have replicator
    or even Dovecot itself running).

commit 35e4905f732e1d25c71c47be3dbd747bc28cf642
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Apr 6 20:44:38 2013 +0300

    lib-index: Added missing NUL separator to attribute-update transaction log record.

commit bd9e7407f61422f369d2c568b50ab31c72cb2597
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 21:57:11 2013 +0300

    fs-metawrap: Fixed fs_copy_finish_async() wrapping

commit 30a12782a7cac43bdf63fe62482e6774f00b48ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 21:03:20 2013 +0300

    Added signature for changeset 9446df6da5a8

commit c367727853534b928c934833e3d904ae890b2f7a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 21:03:16 2013 +0300

    Added tag 2.2.rc5 for changeset 9446df6da5a8

commit ed930763abf5c771e788de56f11388f1df72331d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 21:03:16 2013 +0300

    Released v2.2.rc5.

commit 14a9f013488c67f705203eaf4e8a932f39dadf72
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 19:27:41 2013 +0300

    example-config: Added ssl_client_ca_dir setting.

commit 636d0f43138468f8efe685a681326b123f660e49
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 19:03:05 2013 +0300

    lib-http: Fixed moving delayed request error timeouts between ioloops.

commit 238812433b4f7965fd662dce0f4efccb092630a8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 16:37:45 2013 +0300

    lib-index: Add timestamps and value lengths to attribute change records in transaction log.
    The timestamps will be useful for dsync, and value lengths will be useful
    for metadata quota.

commit fd81c8f5a38df19d1ecdfd5d6605b114ab56841e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 15:44:32 2013 +0300

    imap: Fixed RESETKEY command to not return failure when it actually succeeded.

commit 791fb70b3255a11a91ce0c2dc3ae1460d4cf8459
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 15:17:30 2013 +0300

    Make static analyzer happier.

commit ba0d533587a20611104b82e602d1f63f378122c2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 14:05:54 2013 +0300

    doveadm batch: Fixed handling subcommand parameters and errors.

commit 2a80aa687a48d3d3d00f8405fbff2b09fab4cbf3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 13:19:17 2013 +0300

    quota-status: Unknown recipients caused a crash.

commit dfc96c43be0720d3a03faa1eb44032276cbf94cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 12:26:57 2013 +0300

    layout=index: Don't crash on mailbox_update() if the mailbox path couldn't be found.

commit 23d09920eedc401615061ab401bb5c2d837c1cc6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 12:25:29 2013 +0300

    dsync: Fixes to location parameter handling.

commit d25c1c36c324e5e3287f942c4f4d34df7daa68ca
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:24:39 2013 +0300

    Added signature for changeset 92c88eca562d

commit 92170d845d04499047c959757bab23725ee74758
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:24:36 2013 +0300

    Added tag 2.2.rc4 for changeset 92c88eca562d

commit 89d992b7a3293ee0463b53ebe5ae2d980d8d998d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:24:36 2013 +0300

    Released v2.2.rc4.

commit 47cf35bf36c7fa63ef4e83d61fc4f0df59155e40
Merge: 8761e72 284aa55
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:13:16 2013 +0300

    Merged changes from v2.1 tree.

commit 284aa558c9d7a4c7624bed437d361c2bc068d7cd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:08:40 2013 +0300

    Added signature for changeset 582108c190f8

commit 8be136307205adc463efeaee42b6987123b264a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:08:37 2013 +0300

    Added tag 2.1.16 for changeset 582108c190f8

commit e062b1ad61f57b3dcb317786c108858b48a89d1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Apr 5 00:08:36 2013 +0300

    Released v2.1.16.

commit 2169e77bd5749332659aa2ddad1bff543824f611
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:58:47 2013 +0300

    quota-status: Removed duplicate "action=" text from overquota messages.

commit dc03cb97c682a9d6b6e606008fd5ae884d01ff53
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:56:55 2013 +0300

    quota-status: Added quota_status_(success|nouser|overquota) settings.

commit 8761e726240fe7b655d77212174108829348e713
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:35:27 2013 +0300

    replicator: If replicator is unconfigured, fail at startup.

commit d4845c4245638fd6f02dc0cb92c3465fae763cbb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:35:08 2013 +0300

    lib-master: Added master_service_get_process_min_avail()

commit 89e94dc8041c66a40509aae1147a58ddf4fdbb48
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:03:47 2013 +0300

    dsync: Mailbox name fixing didn't work when namespace prefixes were used.

commit 607bca75bfd27ec94c87d412434fdf708c7d312b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:03:30 2013 +0300

    imapc: Don't assert-crash when ACL plugin tries to lookup "" mailbox.

commit 6eeb3fd0f42be578ea846fd13398df23505fe3b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 23:03:06 2013 +0300

    imapc: Give an early error message if imapc_list_prefix ends with separator.

commit 7b64db32b95286235612eebb5d37d296a49306f7
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 22:49:38 2013 +0300

    lib-storage: Crashfixes for handling shared mailboxes for nonexistent users.

commit 1a3254b83ba00315cfc47d3c6e99e837914594cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 22:09:02 2013 +0300

    istream-chain: Final fixes to handling merged streams.

commit 76f0cc074ea79151e968078906224d8b6a5806fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 21:46:59 2013 +0300

    istream-chain: More fixes to handling merged streams.

commit 5d3e31cae626840561c5313e97eef0272be26ae1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 21:23:49 2013 +0300

    istream-chain: Fixed memory leak.

commit 3aa038486527d331bc2050f1515b4f1a58a91fa8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 21:18:59 2013 +0300

    lib-imap-urlauth: Don't memcpy() data over itself.

commit 7af4788b402346c94496095dd819f95ce03fe431
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 21:18:45 2013 +0300

    i_stream_read(): Added assert.

commit d730192e34fbedbc590a5abc7351e5af5e120c5f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 21:18:28 2013 +0300

    istream-chain: Fixed handling small streams that get merged into same buffer.

commit 5acace56d99e0bef77b35e9b55113afde837680a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 20:32:28 2013 +0300

    ldap auth: Don't access freed memory.

commit 8b8227efef072d1e54e69b26f5408276f6c2d0a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 20:05:37 2013 +0300

    lib-storage: Add \Noinferiors flag to INBOX when such namespace config is used.

commit 82315b27e47c43fe5a699af9df6aa32f1848a37e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 19:45:28 2013 +0300

    auth: If passdb wasn't used, don't preserve its extra fields in auth request.

commit e8ee95581992b8f7d734981550018d7ecdaae6b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 19:18:22 2013 +0300

    lib-mail: quoted_printable_decode*() now returns all newlines as CRLF.
    This is required by BINARY fetches, since the original data had CRLFs.

commit d549ec5d174279916518b5490cd21baeda38dedf
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 19:03:26 2013 +0300

    lib-storage: Fixed searching with multiple parameters and prefetching.

commit 355384821d16af96455f008243e69f6a11822513
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 18:18:50 2013 +0300

    imapc, pop3c: Don't hide SSL handshake errors.

commit b4d850a0ffd519c1c745557568daf7d48e18c820
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 18:10:04 2013 +0300

    lib-ssl-iostream: Simplified certificate validation. Also give better error messages.

commit 3da95d05df2af53c3b7bd4222f966018d7e84a05
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 17:40:30 2013 +0300

    lib-http: Crashfix for previous change.

commit 3b4bd183cc469f70eb91d82a7f01f60ffc24ca5b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 17:39:17 2013 +0300

    lib-ssl-iostream: Added support for TLS SNI, which caused some API changes.

commit e1f9521e847757342e10b3c8d330e7a47f4ce286
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 17:34:23 2013 +0300

    lib-http: Prepare for TLS SNI support.

commit d47b9f1bd7274c7b2d9049c2e1718d1cf89cc572
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 16:53:08 2013 +0300

    lib-ssl: If debug=TRUE, set also SSL verbose=TRUE

commit 9709107819ba60d41f737279dd070b40d46b4120
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 15:40:08 2013 +0300

    lib-ssl-iostream: If handshake callback fails, close the iostreams immediately.
    This way the callback itself doesn't have to do it. Also fixes errors caused
    by it, since they didn't close the ostream.

commit 52ccd525937de3e914cc0c54f46de98414dd979d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 15:21:52 2013 +0300

    lib-http: Removed last traces of http_client_connection_error()

commit ac645fe16c0619771c0a961db91df16485513c52
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 15:21:00 2013 +0300

    lib-ssl-iostream: ssl_iostream_set_handshake_callback() API changed.
    The callback can now return the error message to caller instead of having to
    log it itself.

commit 2a889fc596b12639ac55e657816b8a4f90440f88
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:58:00 2013 +0300

    lib-http: Pass connect failures all the way to request callback's error string.

commit f5386adc7c2918ac44a53b6ea470189ed973dcb2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:55:03 2013 +0300

    lib-http: Reorder http_client_connection deinit code just to be safe.
    I'm not sure if this fixes any actual bugs, but just in case request
    callbacks cause the connection to be accessed/modified in some way abort the
    requests before doing anything else.

commit 9c8d244b701c9323e88c9506b78cbe3ad362910a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:51:20 2013 +0300

    lib-http: Fixed double-free on delayed connect() failures caused by recent change.

commit 32b6d861342775b20794ec927171def6fc595fb1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:41:06 2013 +0300

    lib-http: If SSL init/handshake fails for connection, destroy it.

commit 436c529e13e79db5f007196606d847589c6e54fe
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:30:41 2013 +0300

    lib-http: If connect() fails, destroy the http_client_connection.
    Fixes hanging requests when a peer has multiple connections.

commit a321ac56cfe330e3b28a4690f285419d36c3c6f4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:18:38 2013 +0300

    lib-http: Simplify error handling by delaying connect() failures.

commit 6bc9fb43cc1ac24693d030a6cbfa43bc7cbc82cb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 14:11:10 2013 +0300

    lib-http: If http_client_request_submit() fails, don't immediately call the callback.
    This simplifies the caller's error handling since there is now only one
    error code path instead of two.

commit 692ab2d0ea7f5390381326a9c1c2b78a84b54710
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 13:21:42 2013 +0300

    lib-http: Removed unused code.

commit ba1c847d0af4afe4787ed470d0c818e948e184e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 13:20:59 2013 +0300

    lib-ssl-iostream: API changes to return error strings if init() functions fail.
    This also fixed a couple of broken error handlings.

commit 111a251bf129a6aa53f3743f4340e814e771c051
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 13:12:26 2013 +0300

    lib-ssl-iostream: Removed unused iostream-ssl-none.c

commit 415e16c3dc185578695b7d88e561a52de6c8b1b1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 12:48:52 2013 +0300

    lib-http: Each peer doesn't need a separate ssl context, enough to have one for http_client.
    Also removed #ifdefs for building with SSL support. lib-ssl-iostream
    nowadays dynamically loads the SSL library when needed, and also handles
    failures if Dovecot was built without SSL support.

commit 18d2775f815cdeed9bc1a2da078e682f5d354cf9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Apr 4 12:21:04 2013 +0300

    lib-http: Pass DNS lookup error message to caller instead of logging it.

commit 29658a7e7af68fba25f9c9d50a1edf6bf56f392f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Apr 3 11:36:56 2013 +0300

    dovecot.m4: Reverted last change with added comments.

commit f54e601ca67d855b4ffc317aa5b76541101fb34e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 23:32:10 2013 +0300

    lib-master: If fifo isn't accepted, don't double-destroy the connection.

commit 30d917bcd48d70af0371baf27571cc198d621a62
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 23:29:43 2013 +0300

    lib-http: Added ssl_ca setting to specify the CA certificate directly.

commit 805c7671180aed7c7ded54c9f8fe5dcc0d74cff6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 23:11:30 2013 +0300

    dovecot.m4: Removed --without-dovecot-install-dirs from distcheck configure flags.
    Perhaps the whole feature should be designed some other way. Some plugins
    require the dovecot_* variables to point to their real paths.

commit f8b73b7a49b4471bdb92daa9284f181322709011
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 11:52:36 2013 +0300

    quota-status: If size parameter is given, use it to check quota.

commit 94100e1f65f5114153f1f5a58a0089a7e9c9521c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 11:32:24 2013 +0300

    lib-index: Backported MAIL_TRANSACTION_ATTRIBUTE_UPDATE from v2.2

commit 49fc09f995183d44e004bbc3eb9b6c6c7b6cae7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 11:22:52 2013 +0300

    auth: Fixed also DOVECOT-TOKEN (=URLAUTH) and NTLM/GSS-SPNEGO (via winbind) to work.

commit 0c7ccf0dba9d835b436badd34b01b6d26212c60a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Apr 2 11:18:45 2013 +0300

    auth: Fixed ANONYMOUS mechanism to work again.

commit b8a4aab1f117f6760184ad50b1af41ba810b51f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 19:02:32 2013 +0300

    quota: Added more debug logs about quota_grace

commit 789cb161ef9cb3126e6370c87a21a5a844d7dd0b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 18:43:13 2013 +0300

    dsync: Fixed syncing without GUIDs.

commit 1e06f30618cd04593911cb795b47050c42ec90d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 18:35:13 2013 +0300

    dsync: Don't crash if second user initialization fails.

commit 9e992397c2d66eea80177357323a6ce3f042097d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 18:24:54 2013 +0300

    dsync: If remote doesn't send some mails, don't exit with code 0.

commit 4307e3a2320dabbac53ad712790ffd250d527108
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 18:15:00 2013 +0300

    auth: nodelay and nopassword fields weren't handled correctly.

commit 1fa2054fba1012742cb327aaa3edb8e74e896d7a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 18:03:50 2013 +0300

    auth: Implemented userdb_import and userdb_userdb_import fields.

commit f96f042e48e88ca9450f5fa3498405184034ce05
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 17:47:52 2013 +0300

    auth: Fixed passdb_import not to crash when =value isn't given.

commit 0fbf1f84f4b1a51771812eea0a68fbc2440569a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 17:44:34 2013 +0300

    auth: Renamed userdb_userdb_import to passdb_import, since that's what it really is.

commit 6ca88ca580187da2eb7a26308f1d471921318e7a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 17:40:12 2013 +0300

    auth: Allow using userdb_userdb_import in passdb query to set multiple userdb fields.

commit 44320b37d20bb75e0d433423318db2f4e29d5b91
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 17:25:10 2013 +0300

    virtual plugin: Fixed saving/copying messages to virtual mailbox.

commit 75b6f320d3efe979f1994bb07e5eff05fd9f7d71
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 17:24:35 2013 +0300

    lib-storage: mailbox_get_status() no longer forces mailbox to be synced.
    This fixes copying messages with keywords to a virtual mailbox, where
    syncing happened too late and caused assert-crash (status was only used to
    lookup list of keywords).
    
    The crash could have been solved another way too, but it's probably better
    if automatic syncing isn't always performed. doveadm index -n parameter
    handling also relies on this behavior.

commit 9bc71fc132b63c913c352a62f59a8a0714ec2893
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 16:46:45 2013 +0300

    lib-storage: Don't reset mail_save_context.copying|moving|copying_via_save too early.

commit e9081684ea0808ed427cfd2624656d5f22fbb225
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 16:46:11 2013 +0300

    lib-storage: Create a default namespace for auto-created shared mail_users.
    Some code nowadays requires user to have prefix="" namespace.

commit 4ab5a44867ab336fde7221d01958c67de02378b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 31 11:23:42 2013 +0300

    lib-master: Ignore mountpoints under /tmp and /var/tmp by default.

commit ad0fe438255666726723a93f3112df6e103028af
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 28 11:37:07 2013 +0200

    maildir++ quota: Fixed relative quota_grace when taking limit from maildirsize file

commit 0fa25bd866479a9aac973e716ba04dd8be8c2814
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 27 21:10:35 2013 +0200

    maildir: If maildir_broken_filename_sizes=yes, don't try to fix sizes in filenames.

commit c4e3c997c04eb6f93f782c5fa53354390ed07a02
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 27 14:45:14 2013 +0200

    lib-fs: Always keep the error in the parentmost fs.
    This fixes problems with getting the correct error message when wrapper
    filesystems are used.

commit 9181786810d54da68fdfb95531c27bfc44f13b62
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 27 12:53:35 2013 +0200

    dsync: Use i_fatal() for invalid parameters, like the rest of doveadm commands.
    Probably the parse_arg() API should be changed to allow reporting errors.

commit cf50828320f608df7c58055c6d724430c8f3ac66
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 27 12:51:02 2013 +0200

    lib-index: Removed obsolete 16bit size check asserts from mail_index_update_header_ext()

commit 401bacb3603ada2b6f7173b4327f7e08530595c4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 27 09:16:56 2013 +0200

    dsync: Don't access uninitialized variable

commit faccb8e5140fb59650f1655a43f7cc58456bc294
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 27 09:16:42 2013 +0200

    Compiler warning fix

commit c161661e74ed29504a461110670f816ffa408b42
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 22:41:43 2013 +0200

    lib-storage: Added assert.

commit ecdf46d1115c1a6127e31777d138bf855ded886e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 22:41:32 2013 +0200

    dsync: Allow doveadm plugins to override local_location at run().

commit 7ea46e7d9f6cab571206bb898d57a2454d20bd55
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 22:40:57 2013 +0200

    dsync: Allow syncing same mail root dirs if indexes are different.
    Fixes dsyncing with storages that have no mail root dirs.

commit a1893588a73d32a322153f5a2f7a16ef2c724979
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 22:39:38 2013 +0200

    dsync: Crashfix when importing from storage without GUIDs.

commit 8d8dc14bf9df8b809582e5b76d80f45a45c70eb4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 14:38:30 2013 +0200

    ldap: Another fix to sub-dn-lookup.

commit b6df44e31bf9d54669b5903dfb5dd3fbbe896acc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 10:36:49 2013 +0200

    ldap: Crashfix

commit 872521e5ee7480b1002a9789a86874bd92e6aad8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 10:35:38 2013 +0200

    ldap: Compiling fix to previous change

commit f30ab1a83f91b92c6576d34c033332af6b2898b1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 26 10:25:50 2013 +0200

    ldap: Improved sub-dn-lookup error message.

commit f2f40b6ca4ce986d80ae0fe59efb542b3b837bfa
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 25 18:10:16 2013 +0200

    ldap: Various crashfixes

commit 068afb0ee323c59fd4830d49a40a59be11ea0212
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 25 17:56:53 2013 +0200

    ldap: Don't crash if attributes have no @subrequests.

commit 9f99b5c3e607c41c16a6380203d401250d9e2603
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 25 17:02:15 2013 +0200

    doveadm sync/backup: Added -g <guid> to sync only the specified mailbox (by GUID)
    Similar to -m <mailbox name>.

commit 5685e60e62a8e0d368bd28a1526056f97bbba022
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 25 16:19:54 2013 +0200

    doveadm: Added "batch" command to run multiple mail commands.
    This only makes sense when the commands are run with -A or -u <usermask>, so
    that the commands are run for the same user before moving onto the next user.

commit 861f4c69f28443b3450d1ed1bd28f0f950a74e7c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 25 14:18:20 2013 +0200

    dsync: Fixed syncing attribute streams.

commit b32b2375b68fed551b4efd786d1640f7d42bcebc
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 25 13:55:41 2013 +0200

    imap: Fixed more URL escaping in URLFETCH replies.

commit 96d12aa688454b6a1b5b2d3c752f66087ff0c7a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 19:04:15 2013 +0200

    mysql/pgsql: Don't bother logging about having connected to the database.
    There's probably no good reason to have them? Errors are of course still
    logged.

commit 01fde39bc865ee175e3d7e9f52d0e78a05d04a3a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 18:58:20 2013 +0200

    doveadm-server: Don't continue handling commands if input stream is already closed.
    This fixes trying to handle extra input from previous dsync command.

commit e98e8ba55a01427844b2d24becd791dde8b0178b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 18:48:28 2013 +0200

    imap: GENURLAUTH and URLFETCH didn't escape URL parameters when needed.

commit 5ca40db1f869421fc3798a304ad402834250ff50
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 18:14:11 2013 +0200

    doveadm replicator status: Without <usermask> parameter show overview status.

commit 0fa3852d310cf4d42a67fc53c955a14bd327ad8e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 18:13:53 2013 +0200

    doveadm: Table formatter now hides the titles if all of them are marked hidden.

commit 4bed69a78f335eca8794184f08731a24831aa677
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 17:48:17 2013 +0200

    doveadm: Added "replicator replicate" command to force replication of user(s).

commit 34d73a1789f9ecf5a159e7152d9d6aef35a7acc3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 17:23:33 2013 +0200

    replication_full_sync_interval default changed from 12h -> 24h
    This allows doing full resyncs only at nights.

commit f3e77a037a7ceef76d0d45432fb58c003dd61b32
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 17:21:49 2013 +0200

    replicator: If sync fails, retry it in 5 minutes.

commit a6355f01a236d29de9f3037653cb325788ba867a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 17:04:22 2013 +0200

    replicator: Replicator queue export/import at exit/startup wasn't really working.

commit f7239655d6a7cf69067e5970f6b1b733832255c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 16:53:32 2013 +0200

    doveadm replicator status: Show sync time as "-" for "never".

commit ce0aa35b402277e021d1d02288dbe4f41658ac41
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 16:52:39 2013 +0200

    doveadm replicator status: Fixed user mask to work.

commit d0695591414d27675914c7f6332d0ee56e8eeb72
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 16:48:53 2013 +0200

    doveadm: Added "replicator status" command.

commit 99a9e14caaf54d884dac6a520111cfc8849d8323
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 16:48:29 2013 +0200

    replicator: Added doveadm socket for communicating with "doveadm replicator".

commit 768370138da7eab93e7469df83daeda63ad025ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 16:04:37 2013 +0200

    lib-storage: Fixed listing subscribed namespace prefixes.

commit a184ef41af1aadbfbc9a6d26c590fb67b0b275b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 15:33:36 2013 +0200

    lib-storage: If INBOX isn't subscribed, don't return it in subscriptions list.

commit e36574dadcac802d6780fa94ee45951e75594c96
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 22 19:45:52 2013 +0200

    lib-storage: Compiling fix

commit 74ebeb391b7d0e34e4eadbe7855fb4356de3077d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 22 17:43:52 2013 +0200

    lib-storage: Fixed crash if shared namespace had subscriptions=yes

commit ae2b61a8c6318e56dabd44de17e227c95985aeda
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 22 17:30:36 2013 +0200

    lib-storage: Added mailbox_list_get_settings()

commit 44a529ca5ae82d6b11dc3096a51c3748856dcd08
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 22 12:48:21 2013 +0200

    dsync: Use fcntl() locking instead of flock().

commit 5e32f3d9e2c58b6db53cc3b063c9ee73949207ca
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 22 11:17:14 2013 +0200

    Compiler warning fix

commit 2721a77c55f8ec730a205c4514d8448e05d500bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 22 10:29:12 2013 +0200

    acl: Don't crash when rebuilding acl dict for "unusable" namespaces.

commit f0d93763f210ecdb85a115fdd0210a16cfc5ff5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 21 23:51:16 2013 +0200

    login proxy: Set a default 30s timeout.

commit fff19afbabb83c6ebed1eaa23ea6b614c81a0c93
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 21 23:50:53 2013 +0200

    login proxy: Stop proxy_timeout only after successfully logged in (not after connected).

commit f48fdb57185ca68e8c079e174f3e04da36646880
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 21 14:48:33 2013 +0200

    dsync: -m '' parameter now syncs mailbox list, but no actual mails.

commit adc403868c466ec0a77e1a16dc13daa16f87a4ef
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 22:06:06 2013 +0200

    Added signature for changeset 11bd79bf4866

commit 33158cf33a36ae4ca6fcac01778b866387ea860f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 22:05:53 2013 +0200

    Added tag 2.2.rc3 for changeset 11bd79bf4866

commit e33ff0746df70ea097708abbb1a2ecb6bab1bacf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 22:05:53 2013 +0200

    Released v2.2.rc3.

commit afaf4f293964cbe3c3cbab1249490f8d68c28904
Merge: e3677df e6debde
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 21:44:48 2013 +0200

    Merged changes from v2.1 tree.

commit e6debde4e52a172ecfa48666a41d3f1c44d958bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 21:13:20 2013 +0200

    doveadm pw -t: Don't ask for password if -p is also specified.
    Patch by Paul Wallingford.

commit e3677df81bc31e3ce3188f71f3833f9bbda5fc0b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 21:04:29 2013 +0200

    mbox: Moved .subscriptions back to control_dir/ root instead of control_dir/.imap/

commit 177295e3c4000a9ab0ff27ce4e6eba6b96aeac40
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 20:56:58 2013 +0200

    layout=fs: Fixed crash with mbox when control dir was enabled.

commit 3d651cf1a2171471bf6f0a41dcf7388d43206636
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 20:47:46 2013 +0200

    dsync: Fixed retrying a search when GUIDs aren't available.

commit 2fdcbdc25e34c7d83bb744f25b2d28335822c4a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 20:47:14 2013 +0200

    dsync: Avoid a creating a lot of searches for each synced mailbox.

commit d8bdf558c7ba173fc47a194633d9bd97af1b9c74
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 20:24:31 2013 +0200

    dsync: Don't crash when requested mail doesn't have a GUID.

commit 420809e4034fa5fc9add886c83140e58bc8e7430
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 20:17:15 2013 +0200

    layout=fs: Fixed assert-crash when mail root doesn't exist (pop3c).

commit d6dc20a131cca5e6b4e2bf725fce86ed20c8850d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 19:18:01 2013 +0200

    imap: Don't crash with invalid FETCH BODY[sections]

commit b46eb149f568e37aac95c9c266aa65f54c02be0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 18:52:51 2013 +0200

    example-config: Removed a warning about mail_attachment_dir not being tested.

commit db0fb9eb7da6059fa1af1e5429c898c81bdc2aa9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 18:46:10 2013 +0200

    fts: Fixed crash when searching virtual mailboxes and fts backend without lookup_multi().
    Patch by Mike Abbott / Apple

commit de3328eed20844d8afda4621a57e985f925a3055
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 18:24:21 2013 +0200

    lib-lda: Send QUIT after DATA replies have been received.

commit 8d9540a4536e294e69beb3d1f5b378eb06ba8bda
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 18:09:46 2013 +0200

    acl: Put ACL files to control dir if storage doesn't have a mail directory.

commit d71d05cf4417eaedb4d72491480a7d2bb46d8df3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 17:59:32 2013 +0200

    layout=index: Fixed mailbox_exists()

commit 005eb7a9e93a8799dd00341df9e06938371e644a
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 17:54:52 2013 +0200

    imap: Fixed RESETKEY assert-crashing

commit bdf6608a8215bcb8e50ced222616b6baa69e954d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 17:44:07 2013 +0200

    layout=index: Don't return a path for \Noselect mailboxes.

commit 06faee18bc70796cfc84ccd20fa3d6f17b27ec90
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 17:43:32 2013 +0200

    lib-storage: mailbox_rename() shouldn't require source mailbox to exist.
    \Noselect mailboxes may not exist. The nonexistence will be noticed
    eventually in the backend code.

commit 3010259e7834bdad8cb77e8bcbb9fc5c700897a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 17:10:47 2013 +0200

    lib-fs: Fixed fs_default_copy() to work with async writes.

commit cc116e6d7a2515f0089a449c22a3d61d9ec14642
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 12:04:39 2013 +0200

    replicator: Renamed doveadm-connection to dsync-client.

commit ab3c52cff40218f248fac2bd7c93125cc2ae4c9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 20 09:59:27 2013 +0200

    dsync: Fixed attribute value comparisons.

commit 3b1f449bb7a1e97adb95385765cb7f0cb6ccd260
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 23:31:41 2013 +0200

    Compiler warning fix.

commit e563b8a1457be8c08cc7567043c9f06b8243a025
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 19:08:17 2013 +0200

    lib-storage: Added a way to create plugins that forcibly hook into mail storage.
    Mostly meant for doveadm_sieve plugin.

commit 41e51b972f02e8b16c19fab9160294ea0a07c343
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 19:05:27 2013 +0200

    lib-storage: Mailbox attributes can now be accessed via istreams.
    The idea is to use istreams for larger values.

commit d995d22823fa220c816d8830c97a1bc4c768a507
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 18:52:39 2013 +0200

    dsync: Fixed sending mailbox attributes with stream ibc.

commit 4292c8c20c9740e42a214d190036b0cc2b618dbf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 18:50:55 2013 +0200

    dsync: Mail requests were lost when attributes were being synced.

commit c2fa1f8e9386dedcb1b8374514db5e28aa305635
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 18:48:47 2013 +0200

    acl: Don't iterate ACL attributes if prefix has no chance of matching them.

commit ed96771946f02d836bd671dbecdc287282b78ff6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 14:00:49 2013 +0200

    acl: Preserve dovecot-acl file's mtime when dsyncing.

commit 2d567b0304207290ba79948474bc63ae0cb05bab
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 14:00:21 2013 +0200

    acl: Don't unnecessarily rewrite dovecot-acl file when re-adding the same ACL.

commit 9307e4f91ea313a303b5473d9c53a3a2f383300f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 13:59:22 2013 +0200

    dsync: Set last_change timestamp for unset attributes.

commit d261a383b3506e3e6a7b88ee3a8261f73d627d2b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 13:59:02 2013 +0200

    lib-storage: Allow mailbox_attribute_set() to also unset values.
    This allows giving the last_change timestamp also when unsetting.

commit 6cc4cce2078aca138fbce19305e69e77edcee614
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 13:34:12 2013 +0200

    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.

commit 32a1beb2dd2092a5de1741e02e9667484c34b4c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 12:39:43 2013 +0200

    net_is_in_network(): Don't assert-crash with invalid IP.
    It's probably better to do the check here instead of remembering for caller
    to do the check.

commit 2d6c6f1d06d6d2e7b2ab0d46f7decdcf1cc80cd6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 12:18:25 2013 +0200

    test-json-parser: Fixed failing test with some non-gcc/clang compilers.

commit 6264b5ea568948885d269419ac4b4e3b00045042
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 12:13:33 2013 +0200

    ldap auth: Removed base() wrapper around @dn values.
    The idea was to provide extensibility, but it can better be done with LDAP
    URLs.

commit b433ae56aac7e40a3997945576cfdc9c4df33ba0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 11:52:15 2013 +0200

    lib-fs: fs-test now sets the ssl_client_set.ca_dir

commit 16cb5d65265dd0b216542803fd80c4b999ae118e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 11:42:51 2013 +0200

    Moved ssl_client_ca_dir and ssl_crypto_device to mail_storage_settings.
    Probably could also be moved to master_service_settings, but that makes
    accessing them a bit more tricky with the current code.

commit c4a629cd7110285f0046793e4d0b29dee327dfbf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 19 11:39:07 2013 +0200

    lib-fs: Allow passing through SSL client settings via struct fs_settings.

commit 626a206050bbe60b1f758c8918d09dad8accf225
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 21:31:34 2013 +0200

    ldap auth: "!ldapField" now requests the given field, but doesn't return it directly.
    It's only useful for listing fields that %{ldap_ptr} can potentially access.

commit a9b698e78ff0b4c71b1966c5a5d568c77632474c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 21:23:54 2013 +0200

    ldap auth: Added %{ldap_ptr:realAttr} to get the value from the realAttr.
    For example:
    
    password_attrs = \
      =proxy=y, \
      =host=%{ldap_ptr:activeHost}, \
      primaryHost, secondaryHost
    
    Where activeHost's value is either "primaryHost" or "secondaryHost".

commit c2bae70e86bab833f1f51a6d8333c8996275ff08
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 21:20:54 2013 +0200

    ldap auth: Fix to previous change.

commit 3fb1531681f9cbe49928f8e32357a692bf901c83
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 20:51:33 2013 +0200

    ldap auth: Support field values containing DNs to other LDAP records and getting them.
    For example:
    
    user_attrs = \
      =user=%{ldap:uid}, \
      @mail=base(%{ldap:mailDN}), \
      =uid=%{ldap:uidNumber@mail}, \
      =gid=%{ldap:gidNumber@mail}, \
      =home=%{ldap:rootPath@mail}/%d/%n
    
    This first does the regular lookup, and then does another lookup using
    mailDN's value as the new lookup's base. The other lookup's filter is
    currently hardcoded to "no filter".

commit 068ac108503f9b3c81bbdac3b95db545d479188a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 16:51:58 2013 +0200

    auth: Return "nologin" and "proxy" fields to login process without "=value".

commit 31a9637b38d37451b649c86301b2c12e53a7810e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 15:59:40 2013 +0200

    Compiling fix for Solaris

commit 512962b7553ac84f19583827a11b5308011dca54
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 15:47:14 2013 +0200

    istream-qp-decoder: Fixed assert-crashing with buffer size allocations.
    The original implementation was copy&pasted from istream-base64-decoder
    without enough thinking..

commit d5ecc28acbbacfc462452ddfa8f58e7f05d01ea0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 18 15:46:16 2013 +0200

    quoted-printable decoding: Don't add CR if it wasn't in input.
    This guarantees that the decoded Q-P won't be larger than its input.

commit 9c6a09aa16095ff72837799a37e0e3b3e93bb3d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 15 21:58:51 2013 +0100

    lib-master: include unistd.h for master_getopt() users.

commit 90814c0276d9f7bd6650e430b8cb64a8918ad4b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 15 21:55:40 2013 +0100

    Compile fix on non-gcc/clang.

commit 9a5980c7bb836f69a63082f4699c30596ea4ee74
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 15 20:49:39 2013 +0100

    Compile fix on non-gcc/clang.

commit eb4d4f557fa75aa2a47639e9deb75a21f44eb42a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 14 15:41:39 2013 +0200

    acl: Added ACL checks for attributes. Added ACL <-> mailbox attribute mapping.
    The ACL checks will be useful once IMAP METADATA extension is finished. The
    mapping is used by dsync to sync ACLs via generic attribute syncing.

commit 55d33f807765482eb47374aaaced1fe714e0b256
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 14 15:41:09 2013 +0200

    dsync: Added support for syncing mailbox attributes.

commit 50c617761ee9653bd44646a95178773a3686d62e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 14 15:32:14 2013 +0200

    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.

commit fee561b9d9162b130e662914fcebc9dd99b5c320
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 14 15:29:18 2013 +0200

    lib-index: mail_index_attribute_[un]set() adds changed attributes' keys to transaction log.
    This provides them both a modseq (so their changes become visible) as well
    as an efficient way to see what attributes have changed by reading the
    transaction log. The values themselves aren't written to the log, because
    they could be large.

commit 6303f32ad4af9cb08794561e6324df1c6c5fb637
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 14 15:24:48 2013 +0200

    lib-master: Added version_string_verify_full()

commit b3bf71e0c99a9ef00fe03c80ab92b2870c544fab
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Mar 14 15:25:07 2013 +0200

    istream-dot unit test updated.

commit e2ce8d4a6ac5d82a906178148453e7613fab9ba0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 13 22:11:39 2013 +0200

    iostreams: Added close_parent flag to close() handler and clarified close/destroy APIs.
    This makes it unambiguous how things work: Unless you explicitly call
    [io]_stream_close(), the parent streams won't be closed. This is what most
    (hopefully all!) of the existing code expects.
    
    I was wondering a bit if [io]_stream_destroy() should simply have been
    removed and replaced with [io]_stream_unref() calls, since they would have
    worked basically everywhere, but there might be some places where it's
    better to have explicitly closed the stream (and where closing the parent
    stream doesn't matter).

commit 8c30a8e508dd05b63c9b1fa7ae9c637d132dac6f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 13 15:05:05 2013 +0200

    lda, lmtp: postmaster_address = postmaster@%d works now.

commit 42d2fdfbe4047c0aab78c76a10f31766aa53ecd7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 11 17:25:46 2013 +0200

    lib-fs: Fixed fs_delete() API description.

commit 16d8e47d20a0061cb16ccaa2453ea8f1653013ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 11 14:44:48 2013 +0200

    acl: Delay initializing default backend ACLs.
    This fixes a crash with LAYOUT=index.

commit 293b45b56b85e95661107bfdf74393b3276f8c36
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 20:52:10 2013 +0200

    fts-solr: Removed unnecessary code.

commit ab4bd2aaf8d897dbfa61d3e3ec943685b2e85e4e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 20:49:51 2013 +0200

    lib-http: Don't crash if request callback manages to get the connection destroyed.

commit 667de5cf294d833b3d47dd455bacff4fd68dd146
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 20:38:35 2013 +0200

    lib-http: Added assert.

commit 6c768e0e1ca2da178e79f7435c32ced01f6bcb24
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 20:37:41 2013 +0200

    lib-http: Callback can now request a retry with http_client_request_try_retry()
    This can be useful for handling "try again" errors from HTTP servers.

commit 91547f2947738119cfa4156b72ed03fd8ce2cbe9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 20:34:49 2013 +0200

    lib-http: Removed unnecessary code from test-http-client

commit d66ad81661a62ff0ee32a1d11bb162a649fb0672
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 19:55:45 2013 +0200

    lib-http: Free peer if it can't be connected to and it has no pending requests.

commit 4d4f0aca019c31cf4b555a99d3c0b3f2c1e1e80f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 19:54:51 2013 +0200

    lib-http: If host can't be connected to, don't keep retrying with more than one connection.
    This also fixes infinitely trying to reconnect to host and retry.

commit a477aae12e54b3a1d00574bd3d1a21610d8be40f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 18:37:46 2013 +0200

    lib-http: If SSL connection gets lost, log the last SSL error.

commit ceddfbe396fa69df40e02af4e18d3dac5c984179
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 18:37:10 2013 +0200

    lib-ssl-iostream: Enable SSL_MODE_ENABLE_PARTIAL_WRITE

commit b1faf5924b03c6863d37f828b6dfb67f91dafec8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 18:36:40 2013 +0200

    lib-ssl-iostream: Fixed "bad write retry" errors when output had to be buffered.

commit 6a9bd9f9e6f3af9362160fdc886de116e4b08e9a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 18:16:28 2013 +0200

    iostream-rawlog: Pass through close() to parent input/output stream.

commit 296ad15ccfdc0a9e81b09b332c893d5ae7382126
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 17:19:14 2013 +0200

    lib-http: Fixed hangs with urgent requests.

commit 1d048c5050f03c24251e5af8087e640de21b2d62
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 10 17:17:47 2013 +0200

    lib-http: Allow caller to find out what state a request is in.

commit dd61a7356c4e00d733fd6cd99b29d979b9eb26df
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Mar 8 20:25:12 2013 +0200

    lib-http: Send Content-Length whenever payload is specified, even if its size is 0.

commit 2e5d4199ae0f51de146480d13780530c7dd9e3e4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Mar 6 11:39:43 2013 +0200

    Added ostream-hash for calculating a hash from data going through ostream.

commit 92e011227877493a1b6a5a38863aabde7e07bd76
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 21:44:07 2013 +0200

    lib-http: Avoid hanging on urgent requests.
    Patch by Timo & Stephan. There are still some problems though, all urgent
    requests don't seem to get a new connection.

commit f21b0af073359dfc5560a6187a0257b3000b39dc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 16:32:12 2013 +0200

    lib-http: Fixed crash caused by previous change.

commit 99feb6521535a7dc59d8dda89981ceac084b3e88
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 14:32:03 2013 +0200

    lib-http: If we get disconnected, say exactly what the error was.

commit d48e40d6c77d673ad402d96571198d1cce4da225
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 14:31:43 2013 +0200

    connection: Give input/output streams a name.

commit 00b706a9ea136a5945f4ebafaa4ba958b641635d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 14:31:29 2013 +0200

    connection_list_deinit(): Set disconnect_reason correctly to CONNECTION_DISCONNECT_DEINIT

commit dc189cb8997c7d379b281da9d19fe0a73932a037
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 12:20:41 2013 +0200

    lib-fs: istream-metawrap supports now seeking before reading the metadata.

commit 1a9a35a6b307f8d5b25345af55e40a99162b4072
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 11:45:26 2013 +0200

    lib-http: Fixed http_client_wait() assert.

commit 090489d44d0f1469a1de7220e330dcd4be6c0d8e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 11:45:10 2013 +0200

    Added io_loop_have_immediate_timeouts()

commit e1339aaa8ee91c233da5e08db67cbf4a2938624e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Mar 5 11:24:46 2013 +0200

    lib-http: If connection was refused to a host, retry again on next request.
    Instead of never retrying again for the host.

commit 1e83f6804a1a15008b3fc9eece5b462a7160c355
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 4 16:27:16 2013 +0200

    tcpwrap: Fixed crash at startup.

commit dcf4259a9de2a5c86cea67e5bb1321ff5222746d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 4 15:53:42 2013 +0200

    dbox: Crashfix on some failed save error conditions.

commit e0bfe93a72d26a4481468050b4d2f21779fc61de
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 4 15:18:08 2013 +0200

    lib-settings: Improved error messages when config server disconnects too early.

commit 8dc39d6dd0ee768e611b13694c339fe601ec7337
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 4 15:12:17 2013 +0200

    lib-storage: raw storage allows opening mails with absolute paths again.
    Fixed dovecot-lda -p parameter.

commit be2d3565d50ecafc42863c3ce3508196328f282e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Mar 4 14:59:13 2013 +0200

    Fixed compiling without zlib.

commit 79a9e6bc573dfd0022d9880c04764b7f6afe97af
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 18:00:29 2013 +0200

    doveadm: Fixed connecting to UNIX sockets.

commit 3bbd5fd417b3b91c509a9174f1c21d5d3665b0ad
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 14:26:28 2013 +0200

    acl: Don't assert-crash on storages that have no root directory.

commit 3d92258c9897ffc9382c333964a1ab69cd1e5984
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 13:07:35 2013 +0200

    message-decode: Minor fix to previous change.
    The == condition should probably never happen, but handle it anyway.

commit 2e0fa95785f9b41c1c6aaf541245579a49f94841
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 13:05:40 2013 +0200

    message-decoder: Fixed assert-crash when trying to decode partial character twice.

commit 4ddc84facf9bafde1e3d81fae017b420b4f092f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 12:34:18 2013 +0200

    timeout_add_short(1) may have caused infinite looping.

commit ea245d7a9683e7bb9cd74fcdf1a26d049b2947eb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 12:34:00 2013 +0200

    dsync: If I/O gets stalled, log the state in which it happened.

commit 4697a4140508776707dc9b7e2e928e4d8d6d03bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 12:07:06 2013 +0200

    dsync: Fixed running dsync for multiple users within same command.

commit 63420a1d2cd229877426bce5eeb55aec5618b123
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 12:00:03 2013 +0200

    dsync: When changing duplicate mailbox GUIDs, choose the same mailbox on both sides.

commit 8af1efbc980828e74b18d404f652e3d8566d3b42
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 11:47:08 2013 +0200

    dsync: Don't unnecessarily try to create all the mailboxes when they already exist.

commit e3df4d9063a06e0cd228a1713677ec105b0a4aa2
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 11:21:48 2013 +0200

    dsync: Change duplicate local mailbox GUIDs if they're found.

commit 0e9e7dcf1e0fc47c783fd588a295f27e87e5ea8b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 27 11:04:14 2013 +0200

    dsync: Skip mailbox aliases (symlinks) for now.

commit 4948718872b7dacb239e7db20393cd232bf4568b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 17:44:34 2013 +0200

    lib-fs: If fs_read_stream() creates a seekable stream, keep it open for future reads.

commit c99c242ab54a53df73050c64abb641d7989fac9c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 17:18:18 2013 +0200

    istream-seekable: Don't forcibly close underlying streams when stream is destroyed.
    The underlying streams may still have references and be reused for other
    purposes.

commit 1ce834a53e46f05538cedabd9f41b95eb824cb2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 17:16:33 2013 +0200

    istream-metawrap: Support seeking if underlying stream supports seeking

commit 459b43463e1d652e5e2b8274246f1fa5ecf54d32
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 17:16:18 2013 +0200

    fs-api: Fixed fs_copy() generic implementation's error messages

commit 9dc01e0d10a61cab14867b26bf0d2d1dcf8ad978
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 15:55:16 2013 +0200

    lib-http: Track peers using a linked list also.
    Mainly because this makes it much easier to debug using gdb. The overhead
    isn't that much extra either.

commit 141890ed1123f4bf95ff007d91bd561f63041ea1
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 15:53:30 2013 +0200

    lib-fs: fs-metawrap should prefetch using the same file as it uses for reading.

commit 42174e52368295ec35ba9841334c177fcedb7116
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 13:04:50 2013 +0200

    lib-http: Assert-crash in http_client_wait() if it's waiting without doing anything.

commit a4b14aa6a7367e6d72d57c6324ef32fccd8ded83
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 13:04:09 2013 +0200

    Added io_loop_have_ios()

commit aacf2a69acc59e9382578d6f4e030788abc79706
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 13:03:30 2013 +0200

    lib-http: Track list of hosts using a linked list also.
    http_client_switch_ioloop() is done very often, and scanning a few entries
    in a linked list is much faster than going through a hash table.

commit a8dcdc2e5fe1a232c8937461e4c406174c3ca6e5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 11:30:11 2013 +0200

    lib-storage: Write dovecot.mailbox.log entries using virtual names, not storage names.
    This file is used only by dsync, and the new dsync design uses only virtual
    names everywhere. This of course means that now it's not easily possible to
    use different virtual names for the same user, but nobody really did that
    before anyway. The only other fully working solution would be to send both
    the virtual and the storage names in dsync, but that's a bit of a waste.

commit 6a33ecc05e60b511c1ae176ef113546e1012c18f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 10:54:09 2013 +0200

    doveadm: Improved deciding whether to use TCP or UNIX socket for a given name.

commit f437d8feeb3b5f0426169fd8f43a5a2d846c0e35
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 10:37:19 2013 +0200

    lib-storage: If namespace has disabled=yes, don't verify alias_for validity.

commit b06633c63fde22b6c8837ae70b2f95fe60075b0a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 10:30:15 2013 +0200

    lib-storage: Never auto-remove the auto-created prefix="" namespace.

commit 1b8220e41cdf28fa228dc2e59ddfdcf53c81ceaf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 09:05:09 2013 +0200

    scram-sha1: Support authzid field. Check fields' correctness better.

commit f888f3029cf6418e34b21aace98cd1086c3f11b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 26 09:05:09 2013 +0200

    scram-sha1: Support authzid field. Check fields' correctness better.

commit d687a91469e556f210883c406ee8eb50a7dfe54f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 20:40:15 2013 +0200

    Added signature for changeset e62fa121f4a2

commit 0b04c1969c874874a0520e5eed963e212b98faee
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 20:40:12 2013 +0200

    Added tag 2.2.rc2 for changeset e62fa121f4a2

commit 1653d12e3fa947a9688ec4ffbe3fc66f3b5ac739
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 20:40:09 2013 +0200

    Released v2.2.rc2.

commit e27c711799aebc627f0089fe2216b874697f3b2c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 20:20:18 2013 +0200

    lib-storage: Still more fixing to listing subscriptions.

commit e1306020478ce2d7ecd93a8c479ef407bcc91336
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 20:09:52 2013 +0200

    lib-storage: Fixed up previous subscription list change.

commit 8b5c520883aa37bb55646286d375fdbae294d710
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 20:04:10 2013 +0200

    login: Don't fail at startup by trying to load SSL plugin.

commit a485cb14655f18bd890403c33f877dccdde27dc5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 19:52:40 2013 +0200

    lib-storage: Fixed listing subscriptions for namespaces with prefix.

commit 9bb59af4205ba7dac40b9e34fdbad699d5ee5541
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 19:37:53 2013 +0200

    configure: Fixed plugins when compiling --with-shared-libs

commit 8bbd9bb4c6949b9f2dcf16db2e843294f38eb55d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:33:16 2013 +0200

    Added signature for changeset 508d46f85815

commit 8212f944dfb7c6095c2d0a4a0e2970fa3fad251c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:33:13 2013 +0200

    Added tag 2.2.rc1 for changeset 508d46f85815

commit c03f054ea4c4946cc6ff6c12031c71b88e36ad69
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:33:02 2013 +0200

    Released v2.2.rc1.

commit 94b62bea1df0252de9367feb38a32a7e77f2ae52
Merge: 3e15508 a2667c4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:29:28 2013 +0200

    Merged changes from v2.1 tree.

commit 3e15508a14a2a5863f437fe2f554537d0b9d2e0b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:25:10 2013 +0200

    TODO updated

commit a2667c4d6b48ff8b4396c413e37db8314228e08a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:23:25 2013 +0200

    Fixed checking UTF8 input validity.

commit 6db7f0b2f156f8aa85b420a87247b78136c9d91c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:23:25 2013 +0200

    Fixed checking UTF8 input validity.

commit bad369077a441b6e8f8c06cecb053a76303baaa7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:07:55 2013 +0200

    dsync-server: Don't crash if connection didn't come from doveadm-server

commit 7cd527fb71b35690ab22f06d8e46f6af53c368ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 17:07:38 2013 +0200

    dsync: Minor code cleanup.

commit c0ea3df797cc880d7b2e36be504bf968b0fe8a5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 16:58:02 2013 +0200

    dsync: Don't close stdin/stdout when not supposed to.

commit e0719fca14e337eee5a0d924bc4e9d53151a7188
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 16:44:57 2013 +0200

    maildir: Preserve [SW]=sizes when renaming a maildir duplicate file.

commit e37aed073e70daf34e3791a01f232810626208e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 16:12:49 2013 +0200

    Reverted the recent hash.h changes. Instead use -Wno-duplicate-decl-specifier with clang.
    The modified version required hash table users to know the structs'
    contents, which isn't otherwise necessary.

commit 8c5d1951a2e5bced3bfcb7fc6c2fac8d4bf47341
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 15:55:06 2013 +0200

    dsync: Added tcps (TCP+SSL) target.

commit 1172b608624245a5b05ca299d3279e34003ed308
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 15:54:01 2013 +0200

    doveadm-server: Added support for ssl listeners.

commit 8969b39bc3034f841acad83e7b50e4678e49e3a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 15:52:00 2013 +0200

    lib-storage: Replaced pop3c_ssl_ca_dir and imapc_ssl_ca_dir with generic ssl_client_ca_dir.

commit 5a6343181a5183b1ae1c39d40fc5a1deb3b840d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 15:51:16 2013 +0200

    lib-master: If ssl settings are used, initialize ssl context automatically.

commit 08a8e936675284814b299ff5ec7fd7848a06a552
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 15:50:50 2013 +0200

    lib-ssl-iostream: Support wildcard certificates when verifying hostname.

commit 07ce366ac19bc96be354d26a04305de300c6fe3e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 14:00:10 2013 +0200

    dsync: Use iostreams instead of fd when receiving connection from doveadm-server.

commit 7f50258fb5e71ca7965d8527f879114c39d0a0fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 13:00:40 2013 +0200

    MODULE_LIBS is now part of LIBDOVECOT. No need to explicitly link it everywhere.

commit 1d58007c4f478fe3a969a0467da01bf69111f334
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 09:12:06 2013 +0200

    configure: Fix previous commit & implement AC_C_TYPEOF ourself.
    RHEL5's autoconf was old enough to not have AC_C_TYPEOF.

commit a55ac839a0cc6b31d51801d2d4ea0ec932ac58ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 25 09:07:13 2013 +0200

    configure: Removed accidentally enabled clang -fsanitize options for now.

commit 916c2e0b979a1fcb4d8dd949fdbf768ed364c9ea
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 19:48:55 2013 +0200

    imap: Handle UID commands without a wrapper UID command.
    This avoids calling command hooks once for UID command and again for the
    real command.

commit 0a9cb42cbb135e3200cbfbb657820304cca8ecb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 19:39:52 2013 +0200

    dsync: Added tcp:host[:port] target for syncing via doveadm-server.

commit 10a245789f3b0637dfb8fbd12c6bf5eab2a2b18e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 19:38:27 2013 +0200

    doveadm: If doveadm-server sends broken input, disconnect.

commit 250a06cde50c4004ac1cc72279b75a229a7f90f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 19:37:45 2013 +0200

    doveadm: When connecting to doveadm socket without :port, use doveadm_port setting.

commit 1e09e09669964343557a0027188f486e9d4ccba8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 19:35:39 2013 +0200

    doveadm: Renamed doveadm_proxy_port setting to doveadm_port.
    There's still an alias for doveadm_proxy_port.

commit 2ba9851abbaffe9592c06c0060dce40bb6da3b78
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 18:19:40 2013 +0200

    lmtp: Log a bit nicer message when client QUITs.
    I did think about removing the connect and successful disconnect messages
    entirely, but these may be useful when debugging problems with MTA.

commit d707f37a05c52594bd828f18e0844ca8b3c83695
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 18:02:25 2013 +0200

    dsync: Always skip alias namespaces.

commit 4a3413190593712896180d157c39d2ea65722a47
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 16:43:28 2013 +0200

    lazy-expunge: If lazy_expunge_only_last_instance is set, copy only last instances of mails.
    Requires storage backend to support refcounts.

commit 03de962febfc2ac572f9e4029463c16d29c1ed55
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 16:33:24 2013 +0200

    lib-storage: Added MAIL_FETCH_REFCOUNT for getting mail's reference count.
    This is useful only for backends where mailbox_copy() increases the
    refcount. With maildir&sdbox it can be looked up from the file's link count.
    With mdbox the refcount is stored in the map index. Other formats don't
    currently implement this.

commit edb47cfa7e676a4a5d5261e02092698082c62b81
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 16:15:23 2013 +0200

    lib-settings: Parse block names {} case-insensitively.
    This fixes namespace { mailbox foo { .. } } settings when they go through
    environment and get uppercased.

commit 4f993cf1cb425e97cee24bfe4f6b0137361e99c6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 16:02:47 2013 +0200

    imap: Don't leak mailboxes on CATENATE errors.

commit 2926f11b03d5c1c43e79e6d3c4cbd076d980c536
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 15:52:57 2013 +0200

    lib-storage: Fixed setting \Recent flags for sessions that didn't drop them.
    If another session wasn't dropping the \Recent flags, no new mails were
    getting them unless the mailbox was reopened.

commit d1661d953e0b3c9872de12772a1a438ccda2b887
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 15:50:26 2013 +0200

    lib-storage: Fixed \Recent flag race conditions.
    The \Recent flags should only be set while locked within
    mail_index_sync_begin()..commit(). The following view syncing syncs only up
    to how far the index was synced, so it won't see any new messages that
    haven't yet been assigned a \Recent flag.

commit 3e3045fa022cc6f5887c50737b8d3941a9b82c10
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 15:26:53 2013 +0200

    Compiler warning fix.

commit e0ec84491d72acab8adcaa41cbaea2f01c9123b3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 15:02:44 2013 +0200

    o_stream_send_istream(): Fixed copying when [io]streams neither have usable fds.

commit 81152dfa8dcc092882d09676df71fa95e85ecbd9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 15:00:13 2013 +0200

    Avoid unsigned integer overflows.

commit a5799aa3f9d425da7a515be62296f43f176dace9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 14:59:54 2013 +0200

    imap: Added assert+comment to give easier to understand error.

commit 73960a174675e8aa6e1d0fb98444c4858d6b4757
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 14:58:32 2013 +0200

    lib-storage: If mail saving is cancelled, don't check that all the input was read.

commit 1384fac439fea3026b16a9d8d24954200e413bcc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 11:58:46 2013 +0200

    Avoid under/overflows in unsigned integer calculations.

commit a18e2525cb076066784967d6c8118a01dd38ac6b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 11:55:07 2013 +0200

    test-json-parser: Don't access memory out of bounds.

commit 4082d5b171d1c3a00ba705093d62b8afc9cf17ae
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 11:54:00 2013 +0200

    seq_range_array_add(): Fixed handling sequence ranges that contain zeros.

commit dc21f1dd3744480855f6f9fb6b4d5b1269a08749
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 10:50:35 2013 +0200

    Avoid overflow error from clang -fsanitize=integer.

commit de7df9ed3417e4ac5b89c2250b635393db2807b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 10:49:38 2013 +0200

    lib-index: Don't unnecessarily update dovecot.index again after log rotation.

commit 8ae72ad7d0c69e972cfa65d1e2ce4e3e9a8b765c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 09:16:31 2013 +0200

    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).

commit 71fbc9af425dc9afc2fb58f911bfe4c5b4edba9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:58:03 2013 +0200

    Compiler warning fix.

commit 71ad5d5d7ffdab21a3f9ce7a6ba501a6cbeca296
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:54:58 2013 +0200

    Previous "duplicate const" fix accidentally deleted some checking code instead of fixing it.

commit 6d803d271cbc63ae3733824dfd96c75d65068fa1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:46:28 2013 +0200

    Fixed "duplicate const" warnings with new clang.

commit 025e4dfc239a749ebd80b882fd39962b9c24fed7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:43:34 2013 +0200

    Minor code cleanup

commit d00f983f78274192b9b312178a81a209ffbd4e15
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:44:27 2013 +0200

    Use proper HAVE_TYPEOF check instead of checking with gcc versions.

commit cd62b999690796343670d626aedf35d413c345f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:06:59 2013 +0200

    Compiler warning fix.

commit 1f90fa699028435332fae3181370e1bb0dc12654
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 24 08:06:51 2013 +0200

    dsync: Don't log about remote dsync status if we're not doing a remote sync.

commit 6b754cb8e57cbf50222310bdfb8ce18d6e89760e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 16:42:23 2013 +0200

    auth_debug_passwords: Add a warning to AUTH/CONT lines about them having sensitive data.

commit afb5de6acdd79680feef7981c4bedbde4d714255
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 16:21:20 2013 +0200

    pop3: Fixed infinite looping

commit 26ada766cfff6ebfb91d100936118cf8aa51e3ae
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 16:03:00 2013 +0200

    quota-fs: Support NetBSD 6.0 libquota.
    Patch by Emmanuel Dreyfus.

commit 2dadd5dacee37d409fa699597bfddc03074e4853
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 15:49:35 2013 +0200

    lib-index: Fixed assert-crash on some error conditions.

commit e8c5da6c2566707372fe0f2267a9c2c165d4c5b2
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 15:34:59 2013 +0200

    doveadm user: Write an error if user doesn't exist.

commit 4114cc5b5fccce169e00bc8ac82cead2a5f023ca
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 15:24:01 2013 +0200

    doveconf: Discourage using plain "doveconf" by recommending -n parameter in the output.

commit 82f71aaa55eba909aa180716483b4f2f9d5f7619
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 15:14:19 2013 +0200

    auth: userdb passwd iteration no longer skips shells.
    Some systems are using passwd for mail users with shell set to nologin.
    Maybe first_valid_uid check is good enough alone?

commit 5ad48957732be82ffd95e53047987d076f5c9725
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 14:49:27 2013 +0200

    fts-solr: Truncate header if it's over 1 MB.
    Previously we just warned about it.

commit 79b0f6ec3e5fde8f878bd85f4a1c3d669af66ebe
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 13:51:02 2013 +0200

    lib-dict: Fixed hang if async commit's callback did more dict access.
    Specifically this fixes a hang with dict-quota plugin when user didn't exist
    and quota was changed before calculating it.

commit 3ad4568a3f2a04e09f8e7d09150a67c11262b9f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 13:21:09 2013 +0200

    mail_shared_explicit_inbox: Switched the default from "yes" to "no".

commit 1df1abcfee5bdca3cc32a19fd5436b72d95a9650
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 13:05:21 2013 +0200

    auth: Use real_lip for proxy_maybe checks.

commit 325d17cdbb7a338f7c413788f5e8e42d2e80a7f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 13:04:45 2013 +0200

    auth: Added real_[lr]ip, real_[lr]port variables.
    The unreal ones differ when a trusted proxy overrides them.

commit 9508ac436fff0e1dcea975855c139cd251deb703
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 12:42:26 2013 +0200

    proxying cleanup: Send TTL=1 (instead of TTL=0) as "no more proxying".

commit 2a43c6f0971268606247de7b41af65d4c4123a2f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 12:19:36 2013 +0200

    lib-lda: Give a better error message if dotlocking duplicate db fails.

commit 9d12bcb7967abd3a05c04425c1d8a3ddd21c3497
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 12:12:26 2013 +0200

    dict-sql: Iterating with multiple SQL queries didn't free all the queries.

commit 5cba8fd913459269b521513e16e3afcbbd030ac5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:42:40 2013 +0200

    indexer-worker: Fixed keeping config connection open before dropping root privileges.
    The initial settings reading doesn't really do anything, since the real
    settings are again read by mail-storage-service.

commit 196124a7343c268c9edc018f86b98bd98401ea15
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:32:05 2013 +0200

    lib-storage: Make sure mailbox_get_open_status() can't be used with items that can fail.

commit c337f1e1797eab55f489228f53ad5f6054a26f38
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:31:38 2013 +0200

    doveadm, indexer: Don't crash if STATUS_LAST_CACHED_SEQ lookup fails.
    (I'm sure I did this change already once, where did it go?..)

commit bdb026e2dc8a7c77585ed5ba489f0056df8074d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Mar 24 12:09:39 2013 +0200

    "Mailbox doesn't exist" error mixed up using storage and virtual mailbox names.
    This could have allowed a user to figure out existence of a mailbox without
    having lookup ACL.

commit 7e7c61c704225990d686f02c17b11c7d87b8c6ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:31:38 2013 +0200

    doveadm, indexer: Don't crash if STATUS_LAST_CACHED_SEQ lookup fails.
    (I'm sure I did this change already once, where did it go?..)

commit e6231264bedab49be190f2e89fd9cb6ca59ae62d
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:17:14 2013 +0200

    fts: Don't send binary MIME parts to backend through UTF8 text conversion.
    Based on patch by Mike Abbott / Apple.

commit cf4354e1b47789d92dd2307f49ba02fe6a4a26db
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:09:19 2013 +0200

    lib-storage: Fixed assert-crash when saving mails if UIDs weren't assigned.

commit 2f705f3d22a6251791c2bc4e5bd72e76f6c336be
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 10:01:06 2013 +0200

    mdbox: If m.X file has no mails, don't try to fix it infinitely in storage rebuild.

commit 2a3a06974c2da8f8082b6a4e7e868c3dfa5e2e85
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 09:43:59 2013 +0200

    mdbox: Don't try to undelete any mailboxes in storage rebuild to avoid assert-crashes.

commit 53febe02364e20b2b95594ca8e7906a37973be01
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 22 07:37:18 2013 +0200

    quota-status: Fixed compiling with older autotools.

commit 94cd1e3ed5391a091da5589db438d732eb9dbf0c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 19:58:39 2013 +0200

    imap: Allocate LIST patterns from command pool so they don't get corrupted in long runs.

commit 4d3b1398622fb10cb1747912833c63b2ef3d22ed
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 19:30:38 2013 +0200

    mailbox_list_index=yes: Don't crash if destroying list before its init finished.

commit ffa32909ff6a746026cadcbfda9b681788109998
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 17:09:08 2013 +0200

    Added signature for changeset 018de2aa893a

commit e87dcdb048b704cf91054e58b68ad4fe59fce450
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 17:09:02 2013 +0200

    Added tag 2.2.beta2 for changeset 018de2aa893a

commit 784762b5f7fa9b2c4b50312822f682871d9bb274
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 17:07:55 2013 +0200

    Released v2.2.beta1.

commit c367bee43096e1dd7bdc48c455601418bd917bf3
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Feb 21 17:06:27 2013 +0200

    lib-http: Fixed hanging on errors

commit 0f5bce9305025085103a5684467f3e54debab20e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 14:16:45 2013 +0200

    Removed dead assignments.

commit 99fedfc2ad96cc28f0e8b7a2b68c174af3b19003
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 14:15:15 2013 +0200

    dsync: Fixed hiding the "remote command returned error" message when it was unnecessary.

commit 96f7cae3254c4daab09e0d32e1edf9ddde2cb788
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 13:27:42 2013 +0200

    quota-status: Fixed compiling

commit 7bf25e7b9ffe5f6e86d787de1d692ddf89e2a293
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 13:22:33 2013 +0200

    TODO updated

commit 09baabc97c588c41b2411f02635c70e7c3c5141d
Merge: 5b23fb7 3a53aff
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 13:21:18 2013 +0200

    Merged changes from v2.1 tree.

commit 5b23fb78a695f797b3c0fa4ec32d979283e995b7
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Thu Feb 21 10:23:08 2013 +0200

    lib-http: Minor improvements.

commit fb025942616dfec7770455a7092d01f2e516314d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 10:21:31 2013 +0200

    lib-http: Fixed hangs/crashes with chunked ostream.
    Based on patch by Stephan Bosch.

commit 3a53aff14d327af2819b4755864b3571703683b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 07:55:24 2013 +0200

    Added quota plugin's headers to LIBDOVECOT_STORAGE_INCLUDE.
    This allows creating external plugins that depend on the quota plugin
    (similar to trash plugin).

commit ab98519fd7b4987ae8c6ddb11260c58b862771d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Feb 21 06:22:40 2013 +0200

    lib-storage: Fixed crash with mailbox_list_index=no

commit 57e1401ef9cef3c4a7d8a3c19a022ac1842bd009
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Feb 20 19:34:51 2013 +0200

    lib-http: Fixed hang with failed DNS lookups

commit 7f5c66ef0fbdca9dc1657490099bdb87922099a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 16:58:45 2013 +0200

    quota-status: Load plugins after all.
    They may be needed for user initialization to work (e.g. virtual plugin) or
    maybe even for quota itself to work (external quota backend plugin).

commit f6e11660a066713579b713dc6aa2004a3a803fab
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 16:49:14 2013 +0200

    mailbox_list_index: Delay allocating the index so mbox can override the index path.

commit bd5825f0890717a98a2dd3fc006ad1d1795e6dea
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 16:03:53 2013 +0200

    mbox: Fixed mailbox_update() to not shrink uidnext.

commit 0e79d0c9a7ca3ee04f7d10a3be21aed1e1afcf35
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 15:56:56 2013 +0200

    acl: Skip ACLs if admin user flag is set (especially dsync).

commit 6695fbfc493422a810eb5d950bfd6f41990626a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 15:49:46 2013 +0200

    acl: If copy() doesn't have enough permissions, free mail_save_context properly.

commit f3d17e90d25c275fed01d453a6c415f377b4e12b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 15:49:06 2013 +0200

    lib-storage: Added more asserts to catch missing mail_save_context frees.
    Arguably mail_save_context could already freed at this time, but some other
    code relies on this as well. These could be removed later if this is no
    longer true.

commit 3a34692ce8a769c57582071fb894a482f2fd85e4
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 15:41:17 2013 +0200

    lib-storage: If mailbox is deleted, mailbox_save_begin() should cancel mail_save_context.

commit 47eeadbfd96fa3bddad9d4eb8c57978d095c3833
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 15:40:16 2013 +0200

    lib-storage: Reset saving/moving/copying_via_save flag between mail_save_context uses.

commit 85b5b20e1931039c0867894a405b62e3a8d2c660
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 12:24:36 2013 +0200

    test-http-client: Added POST functionality also.

commit fc3ac5b8207117163530be1dda58299c65e23d73
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 11:58:34 2013 +0200

    test-http-client: If given a parameter, GET it.

commit fb1be3de0159d6a10e916ad992e2bc53be64c6d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 11:57:55 2013 +0200

    lib-http: Avoid hanging in http_client_wait() while there's nothing to do.

commit 069b28a2ef54072a221fe4ac67aaeb4e83fee6c1
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 11:18:59 2013 +0200

    lib-http: Minor API change: Added http_client_request_finish_payload()

commit 9edd88a9da2c5a44f15a0925a1bbcfc0b8dcdad0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 10:58:02 2013 +0200

    mailbox_list_index: Removed race conditions from index updates.

commit a42fa06d6245a2b92776c705f427de07398d9ddc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 20 10:57:13 2013 +0200

    lib-index: Added assert.

commit c0699d9e0842a53c047fcbd695fa93ce435baa8f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 17:36:59 2013 +0200

    Added quota-status service for asking if user is over quota.
    Implemented Postfix-compatible policy server protocol initially. Usage:
    
    service quota-status {
      executable = quota-status -p postfix
      unix_listener /var/spool/postfix/private/quota-status {
        user = postfix
      }
      client_limit = 1
    }
    
    Postfix:
    
    smtpd_recipient_restrictions =
      ...
      check_policy_service unix:private/quota-status

commit 90d105df6e2b73ef085abb12fb55287eaac62146
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 15:52:21 2013 +0200

    hostpid_init() should die if hostname is invalid.
    This was accidentally changes during last commit.

commit 1deffbbcd7affd2ec89284f3c644cc73db0a2b90
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 13:43:42 2013 +0200

    lib-index: Give a better error message if index is readonly and log is tried to be locked.

commit 68b968ad67513632a02aa0f8f81679fe072ca3c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 13:18:38 2013 +0200

    LAYOUT=index: Index is the only source for mailbox info, don't try any syncing with storage.

commit 3a2f2adf5679aa383a2cab09f739d59233cada95
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 13:17:42 2013 +0200

    lib-storage: Fixed mailbox_update() when using mailbox_list_index=yes

commit 40ac30b9267c710f5fcdd4b2f6bcd7718a631843
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 13:17:05 2013 +0200

    Added guid_128_equals() helper function.

commit 241c0b8f9aa8ad1f11570fd01cdc82fcca673d2a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 11:25:21 2013 +0200

    auth: Fix to previous change.

commit f003421d8229323343169f66aba18752f5e1f11e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 11:22:57 2013 +0200

    auth: userdb passwd-file iteration now skips passdb-only entries if there are other userdbs.

commit d24f5d5563b9d444920e57d0c5cfc5797fcf687d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 11:08:49 2013 +0200

    dsync: Added more debug logging.

commit 953e717f0e7ba34e5bf7feef7e81af80be69e402
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 10:38:51 2013 +0200

    auth: If user in passwd-file has no userdb info, userdb lookup now returns it as nonexistent.

commit 9ed42a54bed303c68106e59b2072e98930048177
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 10:14:04 2013 +0200

    dsync: Improved debug output.

commit 2e86ce0239b4bc88c94d7edb5813d38ab080627e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 09:45:12 2013 +0200

    dsync: Assert-crashfix for handling conflicting private flags.

commit 9b47801c11a6063a58fe80d3ba854915b2d63450
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 09:35:10 2013 +0200

    replicator plugin: And crashfix for the previous change..

commit 152a3748e4c43e0fed074e0aeff306dd0d222842
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 09:32:11 2013 +0200

    replication plugin: Notify replicator also for changes in public mailboxes.

commit ad58254389ac8f9af6076a6ec1df97dd3f90b21f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 08:54:32 2013 +0200

    lib-storage: Copy initial private message flags from shared flags for public mailboxes.

commit 4cb8546b36c16b37ae9e5623315117b7e9b1ebce
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 08:35:57 2013 +0200

    replicator: Use -N parameter for dsync (replicate all visible namespaces).

commit 4fa4166f9b7770e11bc9969f78d66841f05e5939
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 08:35:23 2013 +0200

    dsync: Renamed -a parameter to -N. It also now skips invisible namespaces.

commit e2d268e9531227ead6a98466ecf3c046c857ef70
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 08:27:40 2013 +0200

    lib-storage: Saving/copying no longer discards private message flags.

commit ea26d341b160373e5fa99bb6931d38429c91745a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 19 08:17:50 2013 +0200

    log: Recent log parser change started logging "Invalid log line" errors unintentionally.

commit 93ded1a45ac1b9bf6911182de8c6a5d7e1969650
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 15:14:05 2013 +0200

    log: Don't crash if log client sends line with pid=0.

commit 9c50c41ab78887bccf775f8aed38059c92662dff
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 15:12:26 2013 +0200

    my_hostname was broken because of recent change.

commit 6272a4aa4b108b1676634f9019084f680c504733
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 08:46:06 2013 +0200

    doveconf: Added -H parameter to check for hostname hash duplicates.

commit af49da69a12b5383b89c7b2fa574c2a85b9ca310
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 08:45:54 2013 +0200

    Added guid_128_host_hash_get().

commit a8aec60b5359e5ea7fc7a9464217ae3626df8785
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 07:20:03 2013 +0200

    Master looks up system hostdomain now and sends it to child processes via environment.
    This avoids doing a gethostbyname() lookup at startup for each process that
    needs it.

commit 16e1bc9ee262481ec8bf6a1afbb539d1c2723912
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 07:12:44 2013 +0200

    master: Don't close stderr. If log process fails at startup, the errors are logged there.

commit 9e0a2abef1f08d979c67bcbb20dc4e8cfa762045
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 06:49:57 2013 +0200

    Free my_hostdomain at deinit.

commit 45b9cabc8d2420b40d5826e4e4c5f297cdb1284a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 06:35:41 2013 +0200

    example-config: Updated hostname setting's comments.

commit 49985fd8bc8d6556421830ee20107dbd1b34be5e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 18 06:31:51 2013 +0200

    dsync: Fix to checking which side should do the locking.

commit 8e817ed80f9362fbc429432cd94decf1e279276f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 12:03:06 2013 +0200

    mbox: If namespace prefix is used, don't show <prefix>/inbox mailbox.

commit 8b3a4836da0b032673918941cb49c956d3b89b25
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 11:48:16 2013 +0200

    dsync: Fixes to handling local changes during dsync.

commit 9d8f243a8765cb8dc0b513df7add7475affed0bb
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 11:47:32 2013 +0200

    dsync: Fail if changing mailbox GUID update doesn't work.

commit f828be2029091ad8d8765783422f8c1c11129298
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 11:46:14 2013 +0200

    mbox: Fixed mailbox_update() for changing mailbox GUID.

commit 795aeec896095aa8f08cc5d3282c88cc0921bff6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 10:47:40 2013 +0200

    lib-index: Make sure unused_old_sync_* fields are cleared in header in old inedx files.

commit add74aa767e4b6aaa08e3a389022883f0dd3f43d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 10:15:04 2013 +0200

    dsync: Fixed infinite loop in importer.

commit 9bbfe7f5ff821cac11d1d2550a91b148f389d82c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 10:14:49 2013 +0200

    dsync: Improved unexpected error logging.

commit 20cf8d14fc3304c274121192c11fa8a36e40d8c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 10:11:20 2013 +0200

    maildir: Don't try to preserve old filename when saving if uidlist couldn't be locked.

commit 6f1936d4f5424f2ce766b62ef41f4173ecf5e33b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 10:10:45 2013 +0200

    maildir: If we see old maildir file reappear, re-read uidlist before logging error.
    Sometimes the old file gets added back intentionally and the dovecot-uidlist
    is recreated (if necessary) to give it a new UID. Existing processes should
    handle this situation.

commit 0cffbb35d3921aaee6963e90f0669175fa4f7784
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 08:50:18 2013 +0200

    dsync: If locking fails, fail instead of continuing.

commit 564aa838fe1da8024510192b6f616b787e33ce85
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 17 07:05:08 2013 +0200

    dsync: Use full hostname+domain when comparing if hosts are different in locking.

commit 44aaf305985b22d0295aa780330c48927c2a7fc3
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 19:06:18 2013 +0200

    login-common: Updated obsolete login_process_size setting in error log message.

commit c3fcfca0df3cbc9277ba5bc147b5d492edc70986
Merge: 4927162 385b27e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 18:57:33 2013 +0200

    Merged changes from v2.1 tree.

commit 4927162e7b9ce1087b9125f1cb9b93ad5130d90e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 18:24:28 2013 +0200

    NEWS file updated.

commit 99fca7344684b93f14048745827b0b125aa52ab9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 18:22:23 2013 +0200

    pop3_lock_session: Use a separate dovecot-pop3-session.lock file instead of mailbox lock.
    This changes the behavior in a way that it's now possible for IMAP sessions
    to expunge mails during a POP3 session. But now it's no longer possible for
    POP3 sessions to hang new mail deliveries.

commit 279ac7e2783ed3b945e2ecb378d87da35dae42f9
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 17:58:20 2013 +0200

    pop3: Minor code cleanup

commit 348d897426ff46ae23aaa432aff0087ce4d034d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 17:54:57 2013 +0200

    pop3: Use RFC 3206 [SYS/*] and [AUTH] response codes.

commit 7268a99fe51400e1e3eca44bb6ce4acae9de5e12
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 17:33:27 2013 +0200

    pop3: Code cleanup: INBOX always exists, no need to check for it here.

commit 34421746925a2e1850549fa0fa07ddeeb1a271e2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 17:17:14 2013 +0200

    dsync: Merge last-common-* values from both local and remote when they differ.

commit 0e03baa885b89cd42fb76fe0282f272f035638cd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 16:47:40 2013 +0200

    dsync: -l parameter locking is now done on the server with "lower" hostname.
    This allows running multi-master replication on two servers without two
    dsyncs mixing up changes by running at the same time.

commit 264c6bd26df5380dc52687f6ec0351354012a948
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 16:45:47 2013 +0200

    dsync: If unexpected changes happen during sync, return a safe last-common-uid for state.

commit 54b50eb561486b1403fe094c863bbd48aa72bce1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 16:44:13 2013 +0200

    dsync: Don't hide the final error messages from remote.

commit c3aebe3bd173bb339947d4fb6fa4f0e090c38e69
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 14:51:50 2013 +0200

    dsync: Fixed last-common-uid lookup when local UID was expunged but remote wasn't.

commit fadb1a39a4d7da6592b4cc11ae401d2763ba66b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 14:09:42 2013 +0200

    dsync: Assert-crashfix for previous importer changes.

commit 03860f6dd70abfa2551a846e77a5c41cb40dc141
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:58:14 2013 +0200

    lib-index: Avoid getting expunged-status in index lookups when not necessary.
    This especially improves dsync performance.

commit 03010dbaa74ec70f062994dfe3cd39bedc99a28b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:51:05 2013 +0200

    mdbox, mbox, virtual: Avoid getting expunged-status in index lookups when not necessary.
    This especially improves dsync performance with mdbox.

commit e49e973f363a56ad186fce372310d5ec6d83d8fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:38:10 2013 +0200

    lib-index: Don't lookup mail's expunge-state in transaction log view if caller doesn't care.
    This was especially bad with dsync, which could trigger sorting of the
    expunges array each time after processing a mail (= potentially tens of
    thousands of sorts).

commit b09eaeb9a81e5b58c6e605eb762573a2b4a69e0e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:34:13 2013 +0200

    lib-storage: Assert-crash if mailbox_save_context isn't properly freed before reusing.

commit 385b27ed5f4b0b015e89af0a0b21e45f65a37e18
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:32:57 2013 +0200

    mdbox: mailbox_copy() didn't properly free the save context.

commit 08df28a63b3efb0f0ee30c3e7ef44c0a1e7bb459
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:32:57 2013 +0200

    mdbox: mailbox_copy() didn't properly free the save context.

commit 0c47c2096714b50880d48d00ce0bf28349eb4ace
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 13:31:37 2013 +0200

    dsync: Various importer fixes.

commit 0b39c7b1ce9ae3c3b920d3d3705ca0e8aaa48e6c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 08:09:41 2013 +0200

    fts-solr: Don't assert-crash on failures.

commit d52f5dcb05092e126058874772f2c367499e650a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 08:01:10 2013 +0200

    dsync: Avoid possibly long function recursion.

commit ba983500877fba77d02f3ba83784de9b280f12b4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 08:00:51 2013 +0200

    dsync: Don't log "remote failed with 75" if we already logged an error from remote.
    This reduces number of log lines when dsync fails.

commit d42cfc2e044993d41ed10cf075b6104e6ce2f92b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 07:59:44 2013 +0200

    dsync: Don't log a redundant "importing mailbox failed" error.

commit 7a6136f81be3141916355ae6cc1e74fcba8f0549
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 07:53:17 2013 +0200

    dsync: Don't log read() failed: EOF when remote intentionally fails early.

commit d9b9687bf8cae9cfb070b1b7aadefa683220269f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 07:15:55 2013 +0200

    dsync: Various importer fixes. Handle unexpectedly wrong mailbox state better.

commit 1bf8e5a225e40a8abdae2158b0e96c0a134e48e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 16 07:12:18 2013 +0200

    dsync: Wait for child process to close only after closing the stdin/out/err to it.
    Otherwise the ssh process doesn't shutdown.

commit 26b996251b6b3070fcdcbebe72d58b4a308d1d14
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 13 12:43:34 2013 +0200

    fs layout: Don't assert-crash if namespace prefix begins with the separator.

commit 50ecf65993bff429af04deef6c832deb019c76a5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 13 11:27:32 2013 +0100

    Renamed quota_last_extra to quota_grace.

commit ac1c78cce5eaa1298e8a302ec592e3a46a9a254d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 13 12:22:22 2013 +0200

    auth: When receiving SIGUSR2 log also about current cache usage.

commit 57c78fc3f2d94106b8ef941973b0fb2d52f3d754
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 03:13:45 2013 +0200

    NEWS, example-config: Add a note about quota_last_extra

commit a2f5f69de816fd9680ded4d1150e103f5dcda1be
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 03:07:24 2013 +0200

    quota: Use quota_last_extra only for LDA/LMTP (not for IMAP).

commit 342a5014a90bff8bcb98340c446889ca38e91ed1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 03:03:12 2013 +0200

    lib-lda: Assert-crashfix when sending a rejection mail failed.

commit bc7a4cf2c06702ebaedba9a7c15ce657d5856f63
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 03:02:49 2013 +0200

    quota: Added quota_last_extra setting, which defaults to 10%
    This can be used to save the last message when user is almost over quota.
    So by default the last message can bring the quota over 10% of the total
    quota limit. The setting allows also explicit values. Setting it to 0 brings
    it back to previous behavior.

commit 7b9197b917d6f546bfea70ba8a443e61de90242a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 02:03:43 2013 +0200

    lib-imap-urlauth: Use MAILBOX_ATTRIBUTE_PREFIX_DOVECOT for the imap-urlauth key.

commit 440b8b6666e62f80bb3aaca1e5e5c57fbf3bdcb0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 02:03:13 2013 +0200

    lib-storage: Added MAILBOX_ATTRIBUTE_DOVECOT_PREFIX macro.

commit 2d7df7973f80011033e8e9fa676d3ff4c14468d8
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Mon Feb 11 01:43:25 2013 +0200

    fts-solr: Use built-in lib-http instead of libcurl. Removed libcurl dependency.

commit 8576eb5abb66178f251c00209e564c7673c0e4cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 01:22:51 2013 +0200

    dsync: Minor fix to deciding when to use GUIDs vs. header hashes.

commit 975a784c2e02ecdcb56efb7a1db5e4769c7756d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 01:10:57 2013 +0200

    dsync: Fixes for syncing without GUIDs.

commit ccaaf1874bb0c569ca2589444717fde155e1beca
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 01:07:53 2013 +0200

    dsync: When doing a header-based sync, convert all linefeeds to LFs.
    Fixes syncing where one side used CRLFs and the other side used LFs.

commit 30c795b3ee48d753b75b2db8bfd4b88792017122
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 00:29:40 2013 +0200

    i_stream_sync() for file should reset eof flag immediately.

commit 979d89c147520f2934c14c31aeb9310fd2d62a46
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 00:28:28 2013 +0200

    dsync: Automatically figure out which mailboxes can sync with message GUIDs.

commit 8b31f966d9688e07672ef1958dcbdb7686523c04
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 00:26:15 2013 +0200

    lib-storage: Added mailbox_status.have_guids flag

commit fee8ee58c08fbfef76e3b43b29c3cea8af01bdb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 00:25:29 2013 +0200

    lib-storage: Minor code cleanup

commit f0efc5a8ea24b1899b8faefb637cb10bf8b9a1a6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 00:24:56 2013 +0200

    lib-storage: Don't unnecessarily clear mailbox_status multiple times.

commit 458e154ebe7fe7fdb845ad82d4e400ed805cb2c8
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 11 00:23:07 2013 +0200

    lib-storage: mailbox_status.nonpermanent_modseqs is now only set with STATUS_HIGHESTMODSEQ

commit 271ba0b2a103e8040021597a3922f27b40d5b5dc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 10 23:27:49 2013 +0200

    dsync: When looking up header hashes, use only Date: and Message-Id: headers
    This makes it more efficient, at least in future when imapc backend
    optimizes this.

commit 887a9fbbb2ca6afd53365ba2ccae0ef8728d6948
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 10 23:11:52 2013 +0200

    dsync: Renamed "guid_requests" to "mail_requests"
    The mails aren't necessarily requested by their GUID.

commit c267b524417ac7472ac58675e61ff4370484cb1a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 10 23:09:55 2013 +0200

    dsync: Removed unused DSYNC_MAILBOX_IMPORT_FLAG_MAILS_HAVE_GUIDS flag.

commit 266fdb27c8aaf224266c6337b0a81afd3eb8d3ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 10 23:05:46 2013 +0200

    dsync: Fixed mailbox tree sync with some backends (imapc)

commit 183aac2ac8fcd220ad4bf9809165237b1f6c7819
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 8 16:42:21 2013 +0200

    mdbox: Crashfix for storage rebuild

commit 9aac330837b7d846ccc5d710b41c24e4039b490a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 8 15:05:40 2013 +0200

    Added signature for changeset fc75811f3c08

commit 154dd25b4c76344904ec5f7f761f8626a59e6016
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 8 15:05:37 2013 +0200

    Added tag 2.1.15 for changeset fc75811f3c08

commit b2aa4eabd7379b81e27e208a5094bab583d3ad42
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 8 15:05:36 2013 +0200

    Released v2.1.15.

commit 386fe825af6a4147c8c463d6f7573c1fd0093fae
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 6 19:00:52 2013 +0200

    lib-storage: Convert INBOX to uppercase also when namespace has inbox=no.
    This fixes assert-crash in mailbox_check_mismatching_separators().

commit 4f7fea346ca3ab31fc1f421dc179a540663b1450
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Feb 6 18:29:22 2013 +0200

    lib-index: Avoid assert-crashing later if mmap(dovecot.index.cache) fails.

commit 30fc0b14f0d99a86c04aacff311e4cf2ddd5ff12
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 16:48:29 2013 +0200

    lmtp: If verbose_proctitle=yes, update the process state in the title.

commit 9c32eb25e7b90e753e0cd7b30f7a70e8ca9121d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:53:40 2013 +0200

    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.

commit d11111fc5356108b6408a58b4ff1811d5b5678ed
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:37:47 2013 +0200

    lib-fs: Changed FS_OPEN_FLAG_UNIMPORTANT to a reversed FS_OPEN_FLAG_FSYNC.
    This explains its behavior better.

commit 6772f52a7b2e9ba7d4edf9a05d78a900c2b8f73f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:30:01 2013 +0200

    fs-metawrap: Don't duplicate work if fs_get_metadata() is called multiple times.

commit a4d796994ba01c207f1d3e373f58f06c6779af53
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:24:45 2013 +0200

    cydir, dbox, maildir: Don't leak the stream if mail.istream_opened() fails

commit 67641f44b660d4f1cced9970b6ef38381ab487e9
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:23:59 2013 +0200

    lib-index: Memory leak fix

commit 0e6e2c5ca5fee3a7f4cdaae14ceb7d96ac7f6c20
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:23:46 2013 +0200

    fs-metawrap: Memory leak fixes

commit ef064b29e237d6093727e18f997f680881567771
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 03:23:30 2013 +0200

    lib-fs: Avoid memory leaks if file was closed before fs_read()/fs_copy() was finished.

commit 26aa7d1e627eb7cdaa096ac6ea80f1ce12fae0f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Feb 5 01:16:48 2013 +0200

    fs-metawrap: Set underlying file async only for fs_read_stream() lookups.

commit c096257fbdaf4b9fcf8eb97aae94afdbb4e71ed4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 22:15:59 2013 +0200

    iostream-temp: Set a name for the returned istream.

commit 4521d35c263add6af3f1ae55b3760291767ce50c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 22:07:14 2013 +0200

    lib-http: If http_client_request_set_payload() fails to get stream size, log an error.

commit e44028b5df7045dd9e7f324175e73e3ff490cb5d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 22:03:10 2013 +0200

    iostream-temp: Don't try to dup() the stream fd if it's already closed.

commit deed0441882796b3d985ab867e96b9c56d9fc0d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 22:02:42 2013 +0200

    fs-metawrap: Delay writing the metadata headers until first data is written.
    Also some other read/write fixes.

commit a06af8e117e14e2ddc5835bcbe0d2f0370cbc0a1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:18:22 2013 +0200

    lib-fs: Added FS_OPEN_FLAG_SEEKABLE. Globally handle fs_read_stream() seekability and waits.

commit 05d80389f3ae892f2206140fe5f3b6197019114d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:17:14 2013 +0200

    fs-metawrap: Fixed stat() to work when parent file's input stream didn't have a parent.

commit 5ca0738418192b994708602178402c703a2332e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:15:32 2013 +0200

    fs-metawrap: Error handling fixes

commit b2c16f3a54ffc0c416ab1e48f762dad3eedc7dbb
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:14:16 2013 +0200

    i_stream_create(): Copy stream_errno/eof immediately from the parent stream.
    This makes wrapper istream behavior more reliable when the original istream
    is an istream-error.

commit d5b3f66491101aba8667369586c95c615cb26ae6
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:13:26 2013 +0200

    istream: Fail in the default stat() implementation if stream_errno is set.

commit 2a8b891366a3fc69524c2bb07f68d42c16223a56
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:12:10 2013 +0200

    istream-seekable: Fail stat() if stream_errno is set.

commit 4124bebe6daab2cd05acb0416096fc47cb9abd92
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 20:10:59 2013 +0200

    lib-http: Added http_client_request_set_destroy_callback()
    This is useful for io_remove()ing the payload stream's fd at the right time.

commit c911297407bdcc7c7936305eb8f791b450d6375c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 18:17:21 2013 +0200

    lib-http: Added http_url_escape_param()

commit 97144a346898fb62f9fae44fa5c076986553c66b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 17:06:40 2013 +0200

    lib-index: Bug in cache file size verification caused the whole cache file to be mapped.

commit 722a8fc90a08aacdeccf5a7523b22cdf76b0c771
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 16:10:50 2013 +0200

    lib-storage: If message parser's input stream is closed early, don't treat it as error.
    This seems to happen sometimes during message saving(?), although I'm not
    exactly sure why. In any case it shouldn't log an error about it. This
    behavior is probably better than failing. The caller should be the one to
    figure out if saving has failed or not.

commit e41e4ac648a67857bdf9afa0ece38c2b37c35571
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 16:03:54 2013 +0200

    imap: Set [io]stream name for imap client connections.

commit d3e02d997e791e8ca624965e5b49e49a08793528
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 15:59:50 2013 +0200

    istream-tee: Copy the parent stream's name to child streams.

commit 8f28cbec73c17c119b66e198d843ff03bdbc0191
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Feb 4 15:59:12 2013 +0200

    i_stream_close(): Set stream_errno to EPIPE instead of ENOENT.

commit baf346e71ebd7b44fcba4b48f4d39845453b778b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 3 21:53:24 2013 +0200

    iostream-temp: Avoid copying data if IOSTREAM_TEMP_FLAG_TRY_FD_DUP is set.

commit d14e62b7b37dc78fcc940aca25042eceb358b156
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 3 21:52:48 2013 +0200

    i_stream_create_error() should have set eof=TRUE immediately.

commit f6754d90ea6bbe1386eb4d39f603cf01edde4ef1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 3 21:52:19 2013 +0200

    lib-fs: fs_write_stream_finish(file, NULL) is now alias to fs_write_stream_finish_async(file)
    This makes wrapper implementations easier.

commit 1c9cfe77c67389fbb43cfc386e3c32a13aea63e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 3 21:51:40 2013 +0200

    lib-fs: fs-posix now allows reading from the same file that was created.

commit 0e1b468a72f189e1aa289354b3de184ee9cff6c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Feb 3 21:48:58 2013 +0200

    lib-fs: istream-metawrap is a bit more flexible now, allowing stat()ing and reading from fd

commit 5b7cf8d961f7930414ea956f80bba8dfbf546c55
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 2 22:21:36 2013 +0200

    fts-solr: Compile warning fix

commit 5a580c3a38ced62d4bcc95b8ac7c4f2935b5d294
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 2 17:02:55 2013 +0200

    Oops :) Update copyrights to 2013 without breaking all .c files.

commit cca4ba2a504d70a9fe9fee37f8433997359de52c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 2 17:01:07 2013 +0200

    Updated copyright notices to include year 2013.

commit 683d9f20766cd13e72f7d16ce1e341a8811b2679
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 2 16:52:23 2013 +0200

    fts-solr: Deinit solr connection at plugin unload.

commit f3ef965d5c79680b63ceb172af60a82013c9a8d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Feb 2 00:31:44 2013 +0200

    dbox: Fail if trying to create a mailbox that already exists.

commit d62bcaa9e22fb1488666fe77059dd8ac217fd3fa
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 1 02:25:18 2013 +0200

    fts-solr: Reverted previous change, it only crashes.
    The plugin is already unloaded at lib_atexit() time.

commit cdabeadb179b747da6e93775659d9a78fd579af7
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 1 02:18:54 2013 +0200

    fts-solr: Free the solr_connection at exit.

commit eb325a5a90c1d2655e74972bde0de6a699d2c864
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Fri Feb 1 01:39:41 2013 +0200

    lib-http: Various bugfixes

commit f01eb1f51d618633c0189be9ab60a774f47fb7df
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Feb 1 01:03:05 2013 +0200

    auth: first/last_valid_uid settings shouldn't have had auth_ prefix.

commit 4881b4b19c3c2dc634396f8d265e4817ecc74662
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 22:59:13 2013 +0200

    ostream: If stream is closed with stream_errno=0, set it to EPIPE.

commit d78be924ad150840e018eda6a8a7d5e46a39bda2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 22:58:24 2013 +0200

    ostream: Default seek&write_at implementations should fail with ESPIPE, not EPIPE.

commit ea664cc5ad8a2c2bcbb363f09b56e39cd2d2a82f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 22:14:12 2013 +0200

    replicator: Don't try to reuse doveadm connections (and have them immediately fail)

commit e3b36e450630fb27223dc18df8a1192f4f3fcace
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 22:13:36 2013 +0200

    replicator plugin: Use non-blocking open for the replicator fifo.
    This fixes an infinite hang if the replicator process isn't running.

commit 5c88745f67e63562dcec436bf9988444fe95ac7b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 21:49:00 2013 +0200

    replicator: Use locking when running dsync.

commit 3edcc1d78bccb69c96d160ef29ba953ce5918707
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 21:01:09 2013 +0200

    replicator: Crashfix at deinit

commit 5446576156fbe26e07a5cb964a900281d283f387
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 19:58:34 2013 +0200

    dsync: More fixes to merging flag/keyword changes.

commit 5e46f82843a13cc590900352d34c899cd5967de0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 19:45:50 2013 +0200

    doveadm fetch: Added "modseq" field.

commit 252f5c6a63878e7a8a7ffb5847eecbad7f8737e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 19:45:33 2013 +0200

    dsync: Fixed syncing message keywords.
    "add" and "final" can't be mixed together always without causing keywords to
    be added back unintentionally.

commit cf848255bf65a5e2382c59c093da72f877f7535a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 19:44:28 2013 +0200

    dsync: If both local and remote have the same message flags, don't go changing them.

commit 53c384be5f8f27945fd61b8a0d731a93a261628f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 19:05:55 2013 +0200

    dsync: When we know that remote does a flag update, try to guess the remote's new modseq and set it

commit 4aefbee3c3095f418a5f979031d54d3a25d6d37a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 18:47:20 2013 +0200

    dsync: If mailbox UIDVALIDITY is 0, sync it to assign it instead of assert-crashing.

commit 59bf1df59552b6898749a87ae28476debd9b77d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 18:39:44 2013 +0200

    dsync: Fixed syncing keyword removals.

commit a5f2ad4bd3b44b3e974b067bf0f4fcfe9a5fc4aa
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 18:27:22 2013 +0200

    lib-ssl-iostream: Pass the plain istream's fd to ssl_istream.

commit 38780588be700298377ed1102a07676312344cff
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 18:17:10 2013 +0200

    iostream-rawlog: Ignore 0 byte writes instead of assert-crashing.

commit 6c3293c2e1cba0fa38889626a7c72b38c77cb262
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 17:03:16 2013 +0200

    dsync: Increased "remote cmd exit wait" from 5 to 30 seconds.

commit d097ad375f7fc532ab5cb91020c206c0def55179
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 17:01:46 2013 +0200

    dsync: Ignore GUID mismatch on expunged message pair.

commit 3bdc09026fdb0ddf4b085e47ae188eaa1b2308bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 00:27:17 2013 +0200

    auth: Removed assert-checks, allowing plugins to set skip_password_check.

commit 5bac4693a3febebecf69603f0ca6e60c4dc15b56
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 31 00:14:28 2013 +0200

    dsync: If remote command child process doesn't die at exit, kill -9 it.

commit 70d732b529047e14857d484ec1aebd636f5b70de
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 23:45:10 2013 +0200

    Added signature for changeset b314c97d4bbf

commit 4b1041c273931299df226ae5c3092cecb584f200
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 23:45:06 2013 +0200

    Added tag 2.1.14 for changeset b314c97d4bbf

commit e9cbc7950c095a662d634213bbc15a9e2bb5a841
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 23:45:06 2013 +0200

    Released v2.1.14.

commit 8521def0d87912647884064f4c549935cbdd0c7e
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 23:24:20 2013 +0200

    auth: Fixed compiling GSSAPI after recent changes.

commit 559f278a4c54d9fa7e0f2e96ebceda30562f9009
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 22:44:48 2013 +0200

    auth: Added passdb { result_* and skip } settings.
    
    passdb { skip = never | authenticated | unauthenticated } can be used to
    skip over a passdb lookup based on previous passdb lookups.
    
    passdb { result_success, result_failure, result_internalfail } can be used
    to specify what to do on those conditions. Choices as continue,
    continue-ok, continue-fail, return, return-ok, return-fail. The -ok and
    -fail variants update the current "success" flag, while continue/return uses
    the current flag. The authentication succeeds only if the success flag is
    set after the last lookup. The continue variants continue to the next
    passdb, while return variants finish the lookup immediately.

commit c3e50b854dec3f9a51dbaecf2ee56197125a003f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 22:23:09 2013 +0200

    auth: Code cleanup: Renamed some fields used in internal communication with worker.

commit 83d2e37f065eabe38dc92db485c5ca39ee43ce05
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 22:19:13 2013 +0200

    auth: Auth requests' flag fields were never passed to worker processes.

commit 420d037be8e15683cca8ae0a10525a49498c1d4b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 22:18:09 2013 +0200

    auth: Fixed login USER reply broken by recent changes.

commit 31633d676642b83305b8d46da495d9bb4e2d1ff8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 21:08:58 2013 +0200

    auth: Cleaned up flags in auth request. Removed those that already exist in extra_fields.
    It's now slightly slower to check for those flags in extra_fields, but it's
    going to be easier to make commit/rollback feature to extra_fields.

commit 32e0da4449754351bcff1e7c3fd1262fc26d4973
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 20:06:43 2013 +0200

    auth: Allocate auth-fields array lazily. Also some naming cleanups.

commit ee6df9526e9716b3f1734d85b566e00fc41208bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 19:57:20 2013 +0200

    auth: Code cleanup: Renamed auth-stream to auth-fields.

commit 2f35a2fbe2c525380487464fad7cf85f16e0dded
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 19:46:58 2013 +0200

    auth: Code cleanup: Merged extra_cache_fields into extra_fields.
    They are separated using a hidden-flag in the extra field. This required a
    new implementation for auth-streams.

commit 273b7c451ee03fc9ddbbf5dfeb1b7a02bd036db5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 19:11:30 2013 +0200

    auth: Code cleanup: Minor auth_stream API simplifications.

commit eb7b8855cc45292334056f425645215e348ec493
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 19:08:00 2013 +0200

    auth: Code cleanup: Avoid using auth_stream_reply as temporary strings.

commit cd5a70b520f84f929e1994a797666f872ec30435
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 18:40:49 2013 +0200

    auth: Code cleanup: Removed unnecessary userdb_ prefix checks.
    The userdb_ fields are nowadays placed to userdb_reply immediately.

commit b0e9375a1ff97c9c7d40655922af5ccc73ecaa76
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 18:35:02 2013 +0200

    auth: Code cleanup: Removed unnecessary auth_stream_reply usage from auth-worker communication.

commit 7926d224dbd0bb2539a2f7a704bf58f6b8d460f8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 30 18:12:23 2013 +0200

    auth: Code cleanup - removed auth_stream_split()

commit b14bdce468df7d98afb3e5e8c71b74a75cad2453
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 29 17:55:20 2013 +0200

    lib-index: Fixed invalidating buffered cache file with map_with_read.

commit c2a800e3d07e63dbe0be2b0443f4f9e1ba3d2259
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 29 13:31:05 2013 +0200

    README: Added RFC 6851

commit b66f5d51fdf3561b308caa234102ecf5c4ee8a07
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 28 14:37:59 2013 +0200

    lib-storage: Allow mail_storage_copy_error() with the same source and dest.
    If it was used without checking it would try to free the error string and
    after that strdup() it.

commit f5d3d7a0e1e517c6dff9bb1750334c8d9e4dce99
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 28 13:56:24 2013 +0200

    dsync: When syncing locally, mailbox_copy() the mail to attempt a fast copy.

commit 620be64316510eb83e8f58e668687d253ec4c4cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 28 13:48:09 2013 +0200

    dsync: Fixed syncing locally when GUIDs weren't available.

commit f9c0883a53d8128bf3ed144058c52586ed92ffc4
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 24 16:30:33 2013 +0200

    lib-storage: Fixed mailbox_exists() for LAYOUT=index.

commit 9bd08aa09ea0cbd7b221aae9fc0534eb762d3de6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 22 16:53:52 2013 +0200

    lib-index: Fixes to handling broken cache records that point outside file.
    Especially try to avoid failing by trying to allocate gigabytes of memory.

commit 49be238e250e99af8c69321264a461d8f6ceef62
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 22 16:31:17 2013 +0200

    lib-storage: Catch input stream errors when parsing mail.

commit 63f01d5e4c9efe985fad63d5851dd1c5c153affa
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 22 12:59:32 2013 +0200

    dsync: Error handling crashfix

commit 6bb12832eb490920803b5ad184b1759c63f455bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 22 12:59:22 2013 +0200

    imapc: Handle mailbox_update() when possible, instead of always just failing.

commit 14e45b91d0ce2c213b6f8f8e027171f0d08a84ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 22 12:58:56 2013 +0200

    imapc: Return INTERNALDATE as save-date (better than error).

commit 40c0aad390ce459959f5e26bab8a2ea7818d1add
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 22 12:49:04 2013 +0200

    imapc: Avoid unnecessarily selecting a mailbox when looking up its GUID.

commit 16349f13aef2374edf743cb1c684aa3c40823d01
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 19:45:13 2013 +0200

    Increased initial memory pool sizes.

commit 9eef11df882f9c14d164f42cb438f32fe724041c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 19:43:39 2013 +0200

    dsync: Added a quick way to debug unexpected changes.

commit 03936179f87aebde358dbe1ca8c34e5b5551db45
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 19:41:24 2013 +0200

    dsync: Fixes to handling storage formats that don't use 128bit GUIDs.

commit f86f5b0a323047cbf37c3e855592efd2efe52e8a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 18:33:55 2013 +0200

    dict-cdb: Handle cdb_read() errors.

commit 09b15d7b0619e8a1ad5a78b1f86b864a7f76b3c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 18:31:08 2013 +0200

    dict: Added support for cdb backend.
    Based on patch by Hleb Valoshka.

commit c9dcbfeaebca24537fc0865a258efaf011d9c461
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 18:12:41 2013 +0200

    dsync: Fixed infinite loop when message suddenly got expunged.

commit 1731683fb0c6afceb20903b1c0a45912d00ed5da
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 18:12:12 2013 +0200

    lib-index: Fixed sorting appended messages when some were assigned new UIDs.

commit 1c95b8403d2d4dcf35e23fc0a1b51922f120a82a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 17:57:18 2013 +0200

    dsync: If remote doesn't send some message bodies, log an error about each one separately.

commit 471a6b2b4e64eca5d5779ae20a477312b32c89ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 17:56:36 2013 +0200

    dsync backup: Old unwanted messages weren't deleted as they should have.

commit 1e16e4fb4b1d99e835f19f0f5720d6c75d8c6783
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 17:45:18 2013 +0200

    lib-index: mail_transaction_log_view_set_all() didn't necessarily scan .log.2 file.

commit 45ce71b79700c057074ae847bc3d0d9d86b34919
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 17:44:16 2013 +0200

    dsync: GUIDs weren't set properly to expunge records, causing non-optimal behavior.

commit 89f0ab8c7daae308fbcb1c8537ee415d236816c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 16:57:49 2013 +0200

    dsync: Fixed crashes when sending already expunged messages.

commit cd70f7aec3bf49147fa80b77dd7ede7d7697202e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 16:52:49 2013 +0200

    dsync: Verify messages' GUIDs better.

commit a0b769af89a57f87a1abf3b3fd3e874a7b9a3940
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 16:44:33 2013 +0200

    dsync: Fixed syncing to non-remote locations.

commit 84669c712403b742cc07ae70229725c486ef1235
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 14:43:09 2013 +0200

    lib-fs: Added "metawrap" wrapper to implement metadata as headers in the file content.

commit c0b1543512bc3e0a3a9f526056a3678a07ce32f5
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 14:42:10 2013 +0200

    i_stream_read_next_line() should have also set eof=TRUE on ENOBUFS errors.

commit 3dcb9fd82c1edd40bea1ad572ed39f024686e463
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 14:19:21 2013 +0200

    lib-fs: fs_file_path() is now a virtual function.
    This fixes it returning the correct filename when file was created using
    FS_OPEN_MODE_CREATE_UNIQUE_128 and a wrapper fs.

commit 63e94e8f57920b510fcdc479c5482ba9f4337a5c
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 21 11:40:38 2013 +0200

    lib-fs: Added flags to iteration, and FS_ITER_FLAG_DIRS as the first flag.

commit 2a15ce3abe14099b94535f6dfc2d4ee023a7c455
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 17 09:00:54 2013 +0200

    doveadm: Compiling fix

commit badb675af0ee245ffff36e5809ecc4e9526403d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 16 12:02:18 2013 +0200

    sdbox: Fixed rebuilding index when UIDVALIDITY is missing.

commit c97431cae10cb4daed062feb326f839fd04c0abb
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 16 09:15:38 2013 +0200

    sdbox: next-uid may have been set wrong when rebuilding indexes for empty mailbox.

commit dc7102740b85dff18de6fd5b5deb1f0b8c9155bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 16 08:01:40 2013 +0200

    dsync_remote_cmd: The -l parameter no longer exists.

commit 4a49e252826cfe5326527fe4f13e879bf96b6ee3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 15 08:39:30 2013 +0200

    lib-index: Newly added messages weren't always sorted by UIDs.

commit 612c4777cca7fa0d18a5cc23d2910f783fda936c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 15 08:30:57 2013 +0200

    dovecot-config: Removed unnecessary/duplicate ssl library links.

commit 8e4a702a1f96f118976da6eb9ece344df625eabb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 15 08:30:03 2013 +0200

    buffer: Always keep +1 byte available for str_c()'s NUL.

commit 4b6ec040fd7999b8be22aee9c7b4bbd4b11c0a5f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 18:24:19 2013 +0200

    lib-index: Added asserts.

commit e925f007930955f10fa8728509a44f7a53d2b13e
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 17:58:09 2013 +0200

    lib-index: Fixed marking transaction log file corrupted due to added O_APPEND flag.

commit f6aaa31ebed57cbb3a44fa5b0b21e7dee0470fba
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 13:01:33 2013 +0200

    doveadm acl: Added "recalc" command to rebuild acl_lookup_dict for the user.

commit c952f362b5f98b76c5d585d852d816985eb05ead
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 12:56:09 2013 +0200

    doveadm user: Avoid initializing the user as much as possible.

commit 29a6405eefa55d6b698b1a47ff1e178ef7fdb088
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 08:38:36 2013 +0200

    example-config: Added mail_attribute_dict

commit f5d8b6d7374afa210a391777652603c44ac935d4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 08:01:47 2013 +0200

    Several fixes to handling "istream input line too long" conditions.

commit a0b6b441fc679e562e79be0fb2819ffc24ab5b74
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 14 07:57:39 2013 +0200

    i_stream_read_next_line() now sets stream_errno=ENOBUFS if input buffer gets full.
    Previously the caller couldn't easily separate this condition from "more
    data needed", potentially causing infinite loops.

commit 44d5bf8e6deec13fc610db8e152a65e4a699002f
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Jan 13 19:15:37 2013 +0200

    doveadm: Increased doveadm client's max command line length.

commit 90b2203b039d0784a49950ecf0c5101363b4aedb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 11 06:18:36 2013 +0200

    lib-imap-storage: Removed broken optimization for seeking to partial offset.
    The optimization worked only when physical_start=0. It would have been
    possible to fix it by finding the message_part where its header of body
    offset is physical_start and only then start decreasing virtual_skip, but
    probably too much complexity to be worth the trouble, especially since
    clients rarely would benefit from this optimization.

commit e689e77716e8acf110032d8752f80920629a9647
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 11 03:59:50 2013 +0200

    lib-imap-storage: Added imap_msgpart_get_partial_size() missing from previous commit.

commit 00ad194782790bba351225d7ae546140263b3cb8
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 11 03:58:54 2013 +0200

    imap: Improved unexpected FETCH error messages.

commit aa7a40090bf0cf6dc8588b428489a630ffd3a22f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 14:20:07 2013 +0200

    dsync: Added "remoteprefix:" destination, which is same as "remote:" except sends "username\n" prefix.

commit 437421ed8836cbe32ff60871cf148ddf8592321f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 14:00:10 2013 +0200

    dsync: Wait for remote command to finish before shutting down.
    This makes sure that any error messages during deinit stage are logged. Also
    non-zero exit codes are logged.

commit b991ad9a6eb1b82834ea0e9fa668b7aa813dc180
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 13:56:59 2013 +0200

    dsync server: Fixed crash at deinit

commit f476a2abe41082176e65425358bf01bdcc86a41c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 12:12:50 2013 +0200

    dsync: Close mail streams earlier on failures to avoid assert-crashing

commit a58e63b4928017b5af123967c1c98f8bcb242a9a
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 11:52:27 2013 +0200

    lib-storage: Maildir++ layout shouldn't disallow "cur", "new" or "tmp" mailbox names.

commit dbc86748934bc34826d9cc8c43d24df09b3ba402
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 10:23:44 2013 +0200

    lib-storage: Improved "Using permissions" debug message.

commit 4306246063bce2251d44fd71282382326347345b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 10:21:27 2013 +0200

    dsync: Added support back for dsync locking.
    Only the source directory is now locked to avoid deadlocks when both source
    and destination are locked. This of course now means that both source and
    destination is allowed to run dsync at the same time, which isn't ideal
    either..

commit 113ad88e9506a02dfa6fc7f4927c47272cf1b461
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 10:02:47 2013 +0200

    dsync: Attempt to preserve \Recent flag as well

commit 875d5305dd1aa7ab4e88f9f027ea9e1a47c77f1b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 09:33:19 2013 +0200

    dsync: Handle syncing mailboxes with same name but different GUIDs.

commit 183b3fb003600debc52866fca2fcec9a7588978f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 08:07:19 2013 +0200

    dsync: Removed unnecessary -n parameter from dsync-server.
    The setting is sent within dsync protocol.

commit 593bf2d333dc67e9d9e6552273332157793731c0
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 07:54:39 2013 +0200

    replicator: Use stateful dsyncing whenever possible.

commit 97ad3cac32b380e0a451f5c7a06d7a7a7f557045
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 07:53:26 2013 +0200

    replicator: doveadm connections weren't reset properly

commit 200c47440bda8ae9bccf361965073fbad37bc0b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 07:39:02 2013 +0200

    dsync: Fixed parsing state string.

commit a3054152e716a9fabf8f32989bf6bea9ba7add0f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 07:31:51 2013 +0200

    mdbox: Crashfix for storage rebuild

commit 7c3df7b7e9549a76862dd2350bfb0b39ae6b582f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 06:52:37 2013 +0200

    dsync: Fixed printing output state when running via doveadm-server.

commit 9269bbf0d2ad5491b09145458b56a3da92b67246
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 10 06:51:19 2013 +0200

    doveadm: Added assert.

commit a5f297ac8cb8fb168edabf9fe93a7061539a0afa
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 11:03:43 2013 +0200

    dsync: Another fix to handling expunges from the end of mailbox.

commit c45baa023828a14f440eb184c24d186ffe8666ed
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 09:11:09 2013 +0200

    dsync: Mailbox syncing fix

commit 91ec3b77f0bb5365ff9601422f09c729a0e19897
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 07:53:53 2013 +0200

    dsync: Error handling fix.

commit 631913684cb253147e4e9f055aec017bdb0d377b
Merge: 14460e2 8a743d6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 07:02:28 2013 +0200

    Merged changes from v2.1 tree.

commit 8a743d6403fe59aa6fcfd15b422ceeb13fd1a725
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 07:01:41 2013 +0200

    mdbox rebuild: Update to previous commit

commit b707e097fa4a58c250690477c8536c7931a202be
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 06:59:51 2013 +0200

    mdbox rebuild: Don't always duplicate messages that have conflicting GUIDs.

commit 054e0ccbe785bbbb8f8c018319d65bc1ffa7b5ff
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 06:57:34 2013 +0200

    mdbox rebuild: Use mail size instead of record size when guessing if the mails are the same.

commit 14460e21d9acf5812876832c53f7625b23a0bd69
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:43:09 2013 +0200

    dsync: Fixed handling UID renumbering when new mail was saved during dsync.

commit 307ec6c2c319e3335ddb1a7aca2d2884fe17fae0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:42:03 2013 +0200

    dsync: Don't wrongly log errors about missing message bodies.
    Also added some debug logging related to it.

commit 553cf4f8a8850efffdc714ec1d1ae45a5fc7905d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:35:20 2013 +0200

    mdbox: Allow reflink-copying a mail when wanted GUID matches the current GUID.

commit 817b0fcafd62b39accae5e43589662fe919ff853
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:33:32 2013 +0200

    lib-storage: dest_mail wasn't reset if previous save was aborted.
    This could have happened only with dsync.

commit b0e62f0a402e768a7aa6fe43b15e990c8df5b069
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:30:06 2013 +0200

    dbox: Give a name to the file's output stream (for improved error logging).

commit 456127254258721062ddb1b0c16b7dd14f8c4bfe
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:28:58 2013 +0200

    o_stream_send_istream(): Fixed copying within same file, when istream's size is unknown.
    This fixes copying a mail from mdbox's m.* file to the end of the same file.

commit d48860922190d08427ceaf30475994017ef09e2b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:29:13 2013 +0200

    lib-index: Comment update

commit 61279c3c77aa4a6f8d1de82b468ab01b14418318
Merge: 4e5f5ed 553cf4f
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Jan 9 05:38:13 2013 +0200

    Merged changes from v2.1 tree.

commit 4e5f5ed63cb1c3ded29bc25b8cf3e39696001918
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 16:24:20 2013 +0200

    dsync: Make remote's stderr fd nonblocking to avoid hanging.

commit 151a807134b60b8442e2aeff10e2dae9a67d9722
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 10:57:34 2013 +0200

    dsync: Fixes to printing remote's stderr output.

commit 9d3025fa9f8dbb080e3aa649626e819383b2caaf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 10:25:21 2013 +0200

    dsync: Print remote's stderr line-buffered.
    Especially when debugging is enabled there can be a lot of output, which
    makes this useful.

commit 66088eb6144f98adbbd9799f902c87cbdd0a4eeb
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 07:43:29 2013 +0200

    dsync: Fixes to handling output stream buffering.

commit c596b18e23b6b5146d665bba0f78eda76fbc5f62
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 07:42:38 2013 +0200

    replicator: Send only one sync command to doveadm-server per connection.
    This fixes setuid()/setgid() problems when multiple UIDs are used.

commit 4e5b49c5485a44990c34b0b57d91b71a7ce429bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 06:41:56 2013 +0200

    dsync: Minor fix for talking with remote dsync.

commit bfdef55e14ade87589bd10a6a1dafce53427ecf4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 05:37:43 2013 +0200

    DEBUG: buffer_verify_pool() crashed with empty buffer.

commit d8504a5ac72efb86a8da852c8d814ccaf0ae8625
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 05:23:06 2013 +0200

    dsync: Crashfix for handling expunges from end of mailbox.

commit f3053c3637f64633c8ef642e1b9b689b333ebf73
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 05:19:37 2013 +0200

    dsync: Fixed syncing expunge for last mail in mailbox.

commit ccd7b4e0a5f09058a59cc4b3f878254e93e7cb0a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 04:58:08 2013 +0200

    dsync: Avoid updating modseqs unnecessarily.
    lib-index perhaps should do this automatically as well.

commit b16de4d0b7d86168f0c6837ea5e65ca2870e2b3d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 04:33:01 2013 +0200

    dsync: Avoid infinite looping.

commit a5bf21895bda5a7d6e9015e3ba820ce87b93639f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 04:00:04 2013 +0200

    dsync: Assert-crashfix for handling keywords.

commit 6e37fcb7feb9a333e4c8c80d813fadfa2c6f0dac
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:44:14 2013 +0200

    DEBUG: buffer_verify_pool() crashed with static sized buffers.

commit 650441dd8282f8fa6ae58d231c0c34488c3bdb49
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:39:34 2013 +0200

    lib-index: Fixed failing transaction log test.

commit e54a0fb59805eea0d6102d88b8e47d34e9a6c8f2
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:31:36 2013 +0200

    test-imap-bodystructure: Fixed the test to pass with new imap-quote logic.

commit 54073bf3354f35b25091a89fb33f2ab5d9c8bfbc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:25:55 2013 +0200

    run-test.sh didn't exit with failure code when the test failed

commit 9570664a8f2e49af919e457421a78a4ad2032921
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:25:55 2013 +0200

    run-test.sh didn't exit with failure code when the test failed

commit cd19bab478e64649f4a2d28c46cbac4d50f9ae71
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:19:14 2013 +0200

    net_connect_unix(): If path is too long, return ENAMETOOLONG if it's available.

commit 49beae176b0fadb122c776bbdfa0ea789c30f47f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Jan 8 03:03:21 2013 +0200

    Makefile: Removed test-http-client from "make check".
    Not really a good idea to connect to remote servers (that might fail) during
    a normal make check.

commit 3f8cd756f3ec8ac18fbaf0cc5ca706ec905de629
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 12:25:01 2013 +0200

    Added signature for changeset 86bccdf46d17

commit 2bf81fc7e562aa42780ae1ce0402859db480c573
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 12:24:58 2013 +0200

    Added tag 2.2.beta1 for changeset 86bccdf46d17

commit 1b48b9102e5dba74ac5f85252b7ecc5affc309a9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 12:24:58 2013 +0200

    Released v2.2.beta1.

commit 65c0e43da8cfc730eeb4634f8aa384081bbfa4e7
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 12:24:29 2013 +0200

    lib-http: Various fixes
    Patch by Stephan Bosch.

commit 6fa505bf334c01b8bee15b244eb07249b9563055
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 10:55:27 2013 +0200

    Added signature for changeset cf9d62fd0b14

commit 4a8d76f01eff11d48c156663828cb18080ecf268
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 10:55:17 2013 +0200

    Added tag 2.1.13 for changeset cf9d62fd0b14

commit 8c46dcd6ba549f530fe8368be84dea4cfff3d1d1
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Jan 7 10:55:17 2013 +0200

    Released v2.1.13.

commit 70a2782edc5cb342ed67a46ce30a95ca316f86c9
Merge: 548193b d1a27d8
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 5 01:14:11 2013 +0200

    Merged changes from v2.1 tree.

commit d1a27d8dd525c8720f0a30cb49136c4030e435ed
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 5 00:50:04 2013 +0200

    auth: Fixed handling usernames with the same name as userdb extra fields.
    This is a bit kludgy fix, but pretty much guaranteed not to break anything.
    v2.2 has a cleaner fix, but it's a bit more invasive.

commit 548193b7d6c19a14eff810202cd334f364b75e36
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 5 00:37:26 2013 +0200

    auth: Don't keep username duplicated in userdb_reply string.
    This fixes bugs where userdb_reply is accessed via auth_stream_*() functions
    that remove/replace existing fields, which may have ended up
    removing/replacing the username.

commit f2b491e4795ccab8da05d8e67f735131e8b2bcfe
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Jan 5 00:12:54 2013 +0200

    lazy_expunge: Allow expunging from lazy_expunge namespace via virtual mailbox.
    (Instead of copying the message all over again to the lazy_expunge
    namespace.)

commit 1f5670bce3e5ec0c1ddf8d95c57ebb428f1339f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 23:59:42 2013 +0200

    quota: Don't crash if shared namespace's owner doesn't have quota enabled (but you have).

commit 86763e4c68313df83606e1060fc1795280590677
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 23:24:26 2013 +0200

    uni_utf8_*(): Treat overlong UTF8 sequences as invalid.

commit 4578f6ac39e5deeefbb7878c0e47b0ce42ef81ba
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 21:39:07 2013 +0200

    example-config: Added a note about protocol/local/remote {} sections.

commit 2bfa4f4e042def419b7b80b05f7d2cf5d0f9f6a0
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 05:49:33 2013 +0200

    configure: Use pkg-config with clucene if available.

commit 8813889171eb9a85552a8f342ee76e26293a722f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 05:29:25 2013 +0200

    acl: Treat empty plugin { acl } setting the same as if it didn't exist.
    This allows using -o plugin/acl= to disable ACLs.

commit 0cc3ea49823321704eaf2bb7146e8dcd89cc11d5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 03:50:35 2013 +0200

    DEBUG: Call buffer_verify_pool() on str_c*()

commit a94f166ade968e8127b3eeda729417db9c6ad52f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 03:50:18 2013 +0200

    Added buffer_verify_pool()

commit 13e130c3af3032982de6b1d13c6dcddda9164848
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 01:43:59 2013 +0200

    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.

commit 6abf66a3731d52889517bd644595c540e3a9b3ec
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 01:13:05 2013 +0200

    dsync: Use private modseqs to support syncing private flags in shared mailboxes.

commit f46885a5b78b15a8d2419f6e5d13b643bd85e41f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Jan 4 01:12:24 2013 +0200

    lib-storage: Added support for "private modseqs" for INDEXPVT index.
    Used by dsync (next commit).

commit 33738ccbd30d28497e265500d487c8b37f47b3fb
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 3 22:53:18 2013 +0200

    dsync: Fixed parsing mailbox state from remote dsync.

commit 45d47bc4660fe4bbb07817c9580deef9cca63646
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Jan 3 07:30:54 2013 +0200

    virtual storage: get_first_header() always returned "doesn't exist", breaking SORT/THREAD.

commit c5c51ded95283595dbe77c326a183d7bac1a5779
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 28 17:02:18 2012 +0200

    configure: Use -lrt for check_gettime() only if needed.

commit a45c5bbebf7cb03dd6a24c37f6c175ec00690839
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 19 23:34:21 2012 +0200

    lib-http: Compile fix for previous change.

commit f06cc4cb6542c49430ed96b1a1459a2952d820c3
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 19 14:41:01 2012 +0200

    json-parser: Fixed infinite looping in some situations.

commit 86bd046ecbb495c69ec088fe6d8938d8a36740d9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 19 14:39:55 2012 +0200

    lib-http: Host entries were added to hash table using wrong hostname pointer.

commit 0cc875d28852d15005cff2a77252e7836c862a01
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 18:56:59 2012 +0200

    auth: When auto-loading auth mechanisms from plugins, generate the name better.

commit 57962a937b214be3a131f78005509afaa26fe4bf
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 18:55:00 2012 +0200

    lib-http: Fixed a crash when http_client_request_submit() failed immediately

commit 787d28c5d61cf24582b96d7275aee001e03520dd
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 18:54:31 2012 +0200

    uri-util: Control characters weren't properly escaped.
    e.g. "%0a" is correct, "% a" is not.

commit e67ccfba723334c3e3cbeebff0627b8072afe0c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 10:44:28 2012 +0200

    lib-storage: Fixed assert-crash when trying to fetch a binary section for empty message.

commit 9f542af9292ed59e7429dcf6b8a89364a12ec763
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 15:33:12 2012 +0200

    lib-storage: Refresh private index before syncing to make sure we see latest changes.

commit 69e03163071126463a421ac8a67e154775a2f147
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 14:37:20 2012 +0200

    maildir: Fixed a crash caused by previous mailbox_update() change

commit 94f6821d69026fe0fda75da0b38e710256404445
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 14:27:56 2012 +0200

    dsync: Minor (probably unnecessary) fix for i_stream_read() API usage.
    Avoid the first read returning -2.

commit a1543aa56119f340f8c1f1062a3cfe399394414d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 14:24:41 2012 +0200

    dsync: Fixed hang when sending mail stream to remote dsync.

commit bca1c5f83108993e8e49b77aec5f07c797cda1cf
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:56:16 2012 +0200

    dsync: Fixed remote syncing due to recent changes

commit 1d54bf820c6060b0b89ec4a02cb3aebd5f7e2535
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:55:33 2012 +0200

    dsync: Set doveadm exit codes properly on errors.

commit 6556f02c704778bad4240363768cdaf2d3a1a79c
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:48:22 2012 +0200

    i_stream_close(): Set stream_errno to EPIPE instead of ENOENT.
    ENOENT implies that this stream pointed to a file that never existed. EPIPE
    isn't perfect either, but probably clearer than the alternatives.

commit df16c7e87511fed827e6890a2a47d13ca48716de
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:43:44 2012 +0200

    i_stream_next_line(): Don't reset stream_errno if stream is already closed.

commit c7be65f5adbc2990fbe6eeffb6df5054a8a49d9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:31:31 2012 +0200

    dsync: Don't start reading a mailbox until we know we actually need to sync it.

commit e69a4b1f3542090660c31680e00f95546d5afc3b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:30:02 2012 +0200

    mbox: Removed assert that caused dsync to crash.
    This is valid:
    
    1. dsync opened an internal transaction and locked mbox
    2. dsync opened an external transaction, which didn't lock mbox
    3. dsync committed internal transaction
    <assert crash fixed>
    4. dsync locks mbox with external transaction

commit 3028a9180cf9fd91aabde4179e38dd1944c58a11
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:28:04 2012 +0200

    mbox: Mailbox GUID generation re-opened the mailbox using wrong name, possibly crashing.

commit 1aaed980f2f6f2d6ab084a4714b10cc8602231b1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:26:48 2012 +0200

    mbox: Mailbox GUID lookup unnecessarily always synced mbox.

commit 0f0e729b16f1a52fa61ff8c027cf03e9c8894ecf
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:25:49 2012 +0200

    mbox: If mailbox_update() doesn't affect the mbox file, don't sync it.

commit 491319353df4a71dbfe0e4be2f88fd381d4a8be1
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:25:34 2012 +0200

    maildir: If mailbox_update() doesn't affect dovecot-uidlist file, don't lock it.

commit 707f172cd4e4c91af86ff5bd82a60a873dec6f70
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 13:01:09 2012 +0200

    dsync: Added back support for syncing only one mailbox (-m parameter)

commit e0c10ab25f82f3b5b099de5d84ece39efd18bc6a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 15 12:31:56 2012 +0200

    dsync: Error handling fix when mailbox is unexpectedly lost.

commit ec66a68735096e81df73176231b49179222ad9ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 15:34:56 2012 +0200

    dsync: Added -a parameter to sync all namespaces, not just the default one.

commit ad859755efbf4b0c7787b6868f92ceafffdb368f
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 15:34:00 2012 +0200

    dsync: Mark mailbox tree memory pool as "growing" to avoid warnings.

commit 805f510bb81cdd97ba899fee55e2240ebae02d23
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 15:32:43 2012 +0200

    dsync: Fixes to creating/renaming mailboxes
    This gets rid of unnecessary mailbox renames when they should have simply
    been created. The algorithm appears to work, but again really should be
    fully thought out later to figure out why exactly it works. I only wanted to
    get it working now for other tests..

commit a99b87c2b030d81e3afc32d60b005f9d69ca9a91
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 12:03:55 2012 +0200

    dsync: Never try to create INBOX via temporary name and rename.

commit 9d4c027e7de01ab948d6221bc27c9b45d32d1ea5
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 11:45:54 2012 +0200

    lib-storage: Fixed vname -> storage name conversion for some nonexistent mailbox names.
    For example prefix=INBOX/ name=INBOX-foo would have converted the name to ""
    instead of keeping "INBOX-foo".

commit 5332128f69ad688cc024897c2a92f6b37ef8d05c
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 11:20:04 2012 +0200

    dsync: Added debugging and rawlogging support.

commit e65600bfe1995ddb88fd56cc7fa8791f658c25bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 14 11:17:19 2012 +0200

    dsync: Fixed hangs with remote dsyncing

commit 9345a14605e87c749048d37965d5c92caaab2ee9
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 13 12:24:32 2012 +0200

    dbox: dbox-alt-root symlink now points to the alt root directory, not to mailboxes dir.
    Existing mailboxes/ symlinks are silently changed to new ones. This also
    means that accessing the dbox with an older version will log a warning about
    the change.

commit 02da50edce6812808600f9ce20fd90057ef9c4b5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 12 15:21:45 2012 +0200

    lib-http: Fixed sending HTTP request's payload.

commit 50a6d26bd9041f44b4cad0c0357c0c604c132cc8
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Dec 12 11:34:09 2012 +0200

    lib-http: Added support for chunked input/output streams and some bugfixes.

commit 406ea4e54dc603e381749b5c29176a4e756e9a99
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 11 08:08:12 2012 +0200

    quota: Fixed quota calculation with mailbox_move().

commit 201437e07fd40d296377cc20ed1dab1f2777544a
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 09:37:21 2012 +0200

    layout=index: If MAILBOX_LIST_FLAG_NO_MAIL_FILES is set, don't try to delete any mail files.

commit bba5900b66f2413676981ff3c92919e35115079e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 09:36:54 2012 +0200

    lib-storage: Copy MAIL_STORAGE_CLASS_FLAG_NO_ROOT to MAILBOX_LIST_FLAG_NO_MAIL_FILES

commit e298b836845e07c9c95b4f068244f6c24252687e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 09:18:43 2012 +0200

    lib-fs: Added FS_PROPERTY_DIRECTORIES.
    This is a hint for fs API users if they should call fs_delete() for
    directories.

commit d95065a4ca76ab3f17abce9f761d7e11e470d7b2
Author: lion@ubuntu.ubuntu-domain <lion@ubuntu.ubuntu-domain>
Date:   Fri Dec 7 08:50:35 2012 +0400

    lib-index: Optimized single sequence lookup of newly created mails in transaction view.

commit 90d077832b1e37952675b85bcd24a0e948bb09d9
Author: lion@ubuntu.ubuntu-domain <lion@ubuntu.ubuntu-domain>
Date:   Fri Dec 7 08:50:35 2012 +0400

    lib-index: Fixed sequence lookup of newly created mails in transaction view.

commit de9b2ee7878a73346ba0eee34798abb22ffcfcb6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 19 15:00:45 2012 +0200

    lib-index: If map_with_read gets disabled, reset the cache buffers properly.

commit 5028f44d64e960bbf6c342fb2d7b786dd74ee6b6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 22:13:48 2012 +0200

    auth: Added CLEAR as yet another alias to PLAIN/CLEARTEXT password scheme.
    This apparently is used by Sun LDAP server.

commit dad1d7b721e80a7e6c0282ace93aef86312fa579
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 22:07:36 2012 +0200

    lib-index: MAIL_INDEX_OPEN_FLAG_SAVEONLY was buggy when reading data near end of dovecot.index.cache.
    We assumed that we read as much as we requested, even if the file was
    smaller.

commit 05d1312c8456f9d548470bf5662481a4cf812d70
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 22:05:55 2012 +0200

    lib-index: Make sure a corrupted mail_cache_header_fields.size doesn't cause crashes.

commit b512e566e8c899484bf42419b6153a66815ad146
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 21:45:08 2012 +0200

    raw storage: Make sure "from envelope" isn't returned as NULL.

commit 1af33d3c483b1759c4b184937b5f9829afb6b238
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 21:37:57 2012 +0200

    config: Notify process creation success to master only after parsing config file

commit c5c509ac296e4d13a90a68ab78061c758e20ef0d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 21:20:38 2012 +0200

    example-config: Added missing dovecot-dict-auth.conf.ext

commit 4bed2aacac5ad4bb86ab034cd9adee8a565a4f1b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 21:15:19 2012 +0200

    lib-index: If sure mail_index_alloc_cache_destroy_unrefed() closes indexes it alone keeps open.
    This makes sure that all index files are closed within process when mailbox
    is deleted.

commit cc3baa5b92de8d492bdb757bb6165b3eddb1a92e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 20:48:36 2012 +0200

    indexer-worker: Don't assert-crash with some mailbox names in some configurations.
    Virtual mailbox name shouldn't be accessed directly using mailbox_list_*()
    functions, since they expect a storage name. In some configurations this
    could have caused assert-crashes with mailbox names that contained invalid
    characters.

commit 665bb236cf9d0546363ef70b783d3af18df8fa79
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 18 18:57:41 2012 +0200

    auth: When auto-loading auth mechanisms from plugins, generate the name better.

commit 97943a36e08923d625898f5ca8ffd38325a3986d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 13 12:14:57 2012 +0200

    dict-file: Automatically mkdir missing parent directories if they don't exist.

commit 2eb22deb4bf53ef9f40732bea9f04b842fdff15b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 13 12:14:03 2012 +0200

    lib-storage: Use stat_first_parent() instead of doing it ourself.

commit 766814de3fbfeb8ca7c4d6b592f6ca09f14d5690
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Dec 13 12:13:42 2012 +0200

    Added stat_first_parent() helper function.

commit 8a524e87e44ae629cf90262e92f7972ea3450c35
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 11 20:04:10 2012 +0200

    virtual plugin: Don't fail if mailbox patterns don't match anything.

commit 62dc0ce640e8fc8d0f5751bff13ddba71ee15c04
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 11:13:51 2012 +0200

    lib-master: Ignore /Volumes and /private/tmp mountpoints with OSX (only).

commit 22f3ce803a3ae0ceaf5dcb065cebcf4f151a3531
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 11:12:10 2012 +0200

    lib-master: Ignore mountpoints under /Volumes by default.

commit 69b728ce94379c297dc0d9247db25648871e5a34
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 10:48:23 2012 +0200

    doveadm: table formatter supports now writing by streaming.
    This fixes it to work with doveadm server, which sometimes may use
    streaming.

commit 1973c7c4f46abec48e1015823a304f17da35b2f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 10:43:21 2012 +0200

    imap: If mailbox doesn't have read ACL, hide APPENDUID/COPYUID resp-codes.

commit dafbec2c6b4275233a78cb137f41dd8041aa1c46
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 8 09:35:33 2012 +0200

    fts-solr: Fixed memory leak

commit b7eccb91e43ad9d973861dbe85e33837dc28f14e
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Dec 7 05:53:53 2012 +0200

    ostream-buffer: Fixed o_stream_sendv() with multiple iovs.
    Patch by Stephan Bosch

commit 267aae3d13876f22871457b47e2faef6863c2f65
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Dec 5 07:57:35 2012 +0200

    lib-http: Parser didn't always fully skip over the previous request's payload.

commit e4f1a5fdad77884e1de516521504c15dc936fa9d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 14:10:34 2012 +0200

    lib-mail: Detect errors in quoted-printable input.

commit d186b3a6506fc5012f23304ba9e62abc8bf666e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 13:04:59 2012 +0200

    imap: Don't crash in IDLE if remote IP isn't known (PREAUTH)

commit 56b134799a457fd55830355f4c8d746d6bb5206f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 13:02:22 2012 +0200

    imap: Fixed handling FETCH BINARY for broken content.

commit c7e810d05cf60af8f53523e9631e8d07e8263086
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 11:40:35 2012 +0200

    lib-mail: quoted-printable decoder istream shouldn't treat trailing "=" as error.

commit 07725eacefe66333b9c7e4c7bfa423f5fa5aa74b
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 11:33:16 2012 +0200

    lib-storage: Set name for the "binary istream".

commit 251457b81928bab1ad25193e8a09bda829abe9ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 07:18:03 2012 +0200

    lib-fs: Added a default fs_read() implementation using the fs_read_stream().

commit 03c4172a134bcd828607d1cf57622202a6068438
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 07:04:54 2012 +0200

    lib-http: Increased initial memory pool size

commit 0fb5804c1c6023fecccd979fdb25d2affda934a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 07:04:32 2012 +0200

    lib-fs: Added a default fs_write() implementation using the fs_write_stream*().

commit 8bfb2ecbe654afe6893052959c42b4851119e76d
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Dec 4 05:39:36 2012 +0200

    lib-fs: Comment update

commit 3a916a3c77a476a799425b958a0ac83b93808088
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Dec 3 02:21:54 2012 +0200

    Makefile: Added missing \

commit 32f02789693d38b5470f0406bda0cbdf6fc1560e
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Dec 2 02:35:05 2012 +0200

    Makefile: Reordered directories to fix build failure

commit 89a43b20d21343c2d7d6881a57a61995b5394ad4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 1 06:56:02 2012 +0200

    lib-fs: Added fs-test to easily test FS API calls.

commit 4ca2ccd50ad25260865f561e4ebf36899d7fe966
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 1 06:54:55 2012 +0200

    Added json_append_escaped()

commit 9a5fadfa108d778c6ff02304838e5d024811123b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Dec 1 02:41:34 2012 +0200

    lib-http: Don't free connection immediately in payload-destroyed callback.
    This caused a crash in http_client_connection_return_response() after the
    stream was unrefed.

commit 37de9a0b609a984383741a9a7a88d0ba02265e83
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 30 08:56:55 2012 +0200

    Added signature for changeset 75bfda4a7c6c

commit d5aeb2b76cd03d9fd219f845e26674fa77028011
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 30 08:56:44 2012 +0200

    Added tag 2.1.12 for changeset 75bfda4a7c6c

commit ab932cc0bc5a8fff5e725ab1ef579feb319f3948
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 30 08:56:44 2012 +0200

    Released v2.1.12.

commit a8281b7c770f4a9a842b19303083fc7f6859e756
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 30 03:14:10 2012 +0200

    expire plugin: Don't crash when doveadm is run with proxying

commit 5c11e0266909761239275095eb9583595f75b8f1
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 12:43:54 2012 +0200

    Makefile: dovecot-config was missing quotes in LIBDOVECOT_LOGIN

commit 86bdb644d147a73df85abce4325254d694217a5f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 10:29:19 2012 +0200

    JSON parser: Added support for arrays.
    The parser should be complete now.

commit 2eccb2637d0153bb7f9ad39a70f254cece74342c
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 09:38:34 2012 +0200

    JSON parser: Added json_parse_skip_next() to skip over unwanted values.

commit 41c6bfad3b4d62738a93cac5c406bc625c6eea07
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 08:41:28 2012 +0200

    Added signature for changeset 741d800a192f

commit e976194db6485a7adcc0c001c596ce87ac72067e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 08:41:21 2012 +0200

    Added tag 2.1.11 for changeset 741d800a192f

commit efdf7a064ebbfc983e543b4b03a67737f24bd400
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 08:41:21 2012 +0200

    Released v2.1.11.

commit 80fbf2394fb1071e2bcc50a8c1da1fe876a961a2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 08:35:51 2012 +0200

    doveadm: Don't truncate printed output that contain NUL bytes.
    doveadm fetch text output especially could have been truncated.

commit 7877db7b5daad125b6cb3e015574f33871c9a51b
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 07:52:51 2012 +0200

    JSON parser: Added support for reading string value as istream.

commit 4e8e7a93628b4ed60aaaa47c6f72c1433f21e81d
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 07:30:23 2012 +0200

    JSON parser fixes

commit ae9691f7ef36d5272d72c90fa51393dfea5dd126
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 06:26:29 2012 +0200

    JSON parser supports now nested objects and parsing from non-blocking input stream.

commit 58833e210155643709c401db21b934304ad2125f
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 02:30:15 2012 +0200

    uri-util.h always requires net.h to compile, #include it

commit 9f8559a5ac7b53b83378c894de6578773dc1e392
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 02:12:54 2012 +0200

    lib-http: http-url.h always requires net.h to compile, #include it

commit 63caffb9cc139bd63a50a01aa667a0b7803d1c1e
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 02:01:56 2012 +0200

    lib-http: http_url_parse() didn't allocate all strings from the given pool.

commit d45ab3fff7c47f1719b9cd310228c0dac2bdd1b2
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 29 01:57:40 2012 +0200

    lib-http: http_url_parse() now returns the http_url allocated from given memory pool.

commit 1d40278513aafd35dcac239729fd3194833f9674
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 09:14:33 2012 +0200

    dsync: Don't crash when syncing multiple namespaces.

commit 2d05af5ce21d020aba7368746d936827033a2b8b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 07:25:18 2012 +0200

    lib-storage: Notify about \Seen flag changes in private index.
    Some earlier "don't send unnecessary flag changes" optimizations caused
    this.

commit 4cff388b610ed8ea79c04ca27d3ad49c0c1ab7e8
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 07:24:01 2012 +0200

    lib-storage: When updating flags in private index and nothing changes, don't increase modseq.

commit 764ba36a11257baf9a254d27f4e88124c070f571
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 06:51:16 2012 +0200

    lib-storage: Fixed assert-crash with private indexes when looking for first unseen msg.

commit 0bb5699d56b7c9f897ee8e627ae4a8ba4fe0c21b
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 06:43:55 2012 +0200

    Make static analyzer happier

commit daf0035ef39182601facf6d01c5c39e113c024c5
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 06:42:40 2012 +0200

    lib-index: Fixed randomly failing to write to dovecot.index.cache file

commit 27c534a3675ab0eee4eac2a61732065265b23090
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 04:29:58 2012 +0200

    stats: Log username and service for invalid UPDATE-SESSIONs

commit 14d7b92eac24469cac5933da5ba549a51efde7f6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 04:21:03 2012 +0200

    stats: Fixed crash when handling multiple users within same process.

commit 9af06b76539445d2d84d6e1bcb91685b6abeb4e0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 03:56:06 2012 +0200

    lib-index: Fixed assert-crash caused by recent cache file changes.

commit 122ee3c9e8cf7f51c323204626970c314a32df05
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 03:55:25 2012 +0200

    lib-index: Fixed memory leak with MAIL_INDEX_OPEN_FLAG_SAVEONLY

commit cd8bd47fd52b3835253b0f341c8cab3d40a50cec
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 03:32:31 2012 +0200

    doveadm: Log better errors for failing passdb proxy lookups.

commit 89fda66c5c4204f3bc27e160fbadb463e028b811
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 03:32:01 2012 +0200

    lib-auth: Added auth_master_get_socket_path()

commit 3f7b9d04c1fb9b0a55ea2082214ea66a0ace96c7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 02:35:37 2012 +0200

    ostream-rawlog: Make sure rawlog logs only the data that got actually sent.

commit 949b368882333eb707399386526e47436ee2c390
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 02:35:15 2012 +0200

    iostream-rawlog: Buffered output kept logging the same data over and over again.

commit 91dad1ec260a45694c28837c2594ad2ee04beca6
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 01:52:32 2012 +0200

    lib-storage: Don't assert-crash when fetching BINARY contents for empty body.

commit 898e99166f46b4f37ae45fe5594ed952b5befe6d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 01:44:53 2012 +0200

    lib-fs: Don't crash when trying to initialize nonexistent fs driver.

commit 9db5ade1c16c7f67c51004f28c28ea335755d3f0
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 28 01:43:24 2012 +0200

    i_stream_default_stat(): If we can't know the size, return -1 instead of assert crash.
    This fixes a crash saving to mdbox when input stream's size wasn't known.

commit 52a16a4a391483c9f38e45e74540a74818557f21
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 23:06:38 2012 +0200

    fts-solr: XML-encode non-body fields as well

commit 8722fa5c6594486332241a973008e7e8e7712f40
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 10:49:41 2012 +0200

    lib-storage: Handle better when attempting to access shared mailboxes for nonexistent users.

commit 496184578081a201b6a4fb346070d2eb20e6f5de
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 10:49:18 2012 +0200

    lib-storage: Added struct mail_user.nonexistent flag, which is filled by userdb lookup.

commit 4e22f1ec83a3a3f627a8101187d5bfd09c9f7bd6
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 10:48:11 2012 +0200

    fts_parser: Minor error logging improvement

commit c50bf33ef19cb4a0ab462915d9ad7d731d11c46e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 10:39:26 2012 +0200

    mdbox: When rebuilding storage, fsck the map index first to make sure it's valid.
    This fixes assert-crash when the map index contained records with UIDs in
    wrong order.

commit f67c2a7415cbd1a783920cc84ded731dcafa4ffc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 10:02:59 2012 +0200

    mailbox-alias plugin: Error handling fix.

commit 691759a4555a52aa0dc3119ad6053b4ef23ab58a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 10:00:42 2012 +0200

    NEWS updated

commit 285e73e04966dd57d5eda183be56e8a59e081c93
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 09:53:33 2012 +0200

    lib-index: Added v2.2+ forwards compatibility to dovecot.index.cache

commit fbe2c18c8396a4c7b2bd08f410c4cf55dd5ee996
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 09:13:57 2012 +0200

    login: Reverted previous fix attempt for SSL_accept() busy-looping.
    Apparently didn't work. Probably this patch doesn't help anything then, so
    just remove the extra complexity.

commit fd7a5919cfd68a347d6eb1b3e6e8627e1b656c75
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 08:43:15 2012 +0200

    auth: userdb passwd lookups should have been done via worker processes by default.

commit 636f1fc2ef67ccdeafd8a5b7bd4ad7e1ff8556bc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 08:08:50 2012 +0200

    fts-solr: Removed deprecated waitFlush parameter from commit.

commit c51afc0ab251923fbfcad5059af27a7fefab3502
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 07:50:06 2012 +0200

    Reversed recent "short utf8" changes.
    Solr code needs to parse the UTF8 input explicitly anyway to encode the XML
    characters. And all the character checks were already done in it.

commit 5a26150fe469a4e76a3a21d01edd6c835b7d8994
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 06:21:18 2012 +0200

    doveadm-server: Reset headers in print output between running commands.

commit 47e89f0f02ffecb174bb937eb27650c0d1621979
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 06:20:44 2012 +0200

    doveadm-server: Avoid eating CPU when client disconnects before authentication is done.

commit ceae307cf6506c655039fc64d93dfc5e071d86ac
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 06:19:57 2012 +0200

    doveadm: Don't disconnect from server too early while there are still commands.

commit ab530005cbeae9ea2301ef884c913e51870ea912
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 06:19:10 2012 +0200

    doveadm: Include username in internal errors and "no such user" errors when running via server.

commit ba28af088174f139df6a6de3e67fd01551b29362
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 03:49:36 2012 +0200

    fts-solr: Marked as FTS_BACKEND_FLAG_BUILD_SHORT_UTF8

commit 119cbc046f3c6c245d1f5ad4f5d14ea20d520bdc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 03:49:25 2012 +0200

    fts: Added FTS_BACKEND_FLAG_BUILD_SHORT_UTF8 to require sending only short UTF8 data to backend.

commit cb0b320bea887d305e0e283c6bc74677d51a785e
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 03:48:15 2012 +0200

    liblib: Added uni_utf8_short_*() for handling UTF8 data where [56]-byte sequences are invalid.

commit 95d50c6f87501978687a1bc0685d8bc469645e7f
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 02:41:53 2012 +0200

    quota: mailbox_get_status(STATUS_CHECK_OVER_QUOTA) returned wrong value on success.
    This fixes lmtp_rcpt_check_quota=yes

commit 4eda07effc1e3f72aa4c2787fdbef1c5289c9e72
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 02:20:37 2012 +0200

    man: Added -d parameter to doveadm expunge.
    Patch by Pascal Volk.

commit 87c1c4f838638cfa17e78dcf3fc82ae20d341541
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 00:44:34 2012 +0200

    dovecot-config: LIBDOVECOT_INCLUDE was missing path to lib-http

commit 6e8fce0589289d10e6dcd9b71fde763492bb29b8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 00:43:53 2012 +0200

    lib-fs: Automatically try to load missing driver as plugin.

commit 9d78abdbffa721696329e6c070d46b65c5cf23dc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 00:43:23 2012 +0200

    liblib: Added lib_atexit() to register process deinit callbacks.

commit 73cf2211482650c85dc057a1f8d12dfdbdbbb3b7
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 27 00:31:40 2012 +0200

    liblib: Added module_dir_find()

commit 1be4d775c341bcc6b979eec2e0c8a4b4bcb85862
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:24:48 2012 +0200

    doveadm dump: Added support for "obox" index records.

commit 9b0284ea5d2fb419aa7aa2f1ecfd80217026b764
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:23:52 2012 +0200

    lib-imap-storage: When returning an error istream, give it a useful name.

commit 29543188462c9348f365ec29115d777ffe4769d3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:20:59 2012 +0200

    lib-storage: Fixes to LAYOUT=index backend.

commit d9a129b491613014ce5f31fe1ab20903e2899ea4
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:19:04 2012 +0200

    lib-storage: Comment update for mail_prefetch()

commit 0aa9422140741897889b3e369bbf160812e65e41
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:18:30 2012 +0200

    lib-storage: If MAIL_STORAGE_CLASS_FLAG_NO_ROOT is set, don't even try to mkdir it.

commit 6eb098154104af1d60a3e2ceef86511322657c8d
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:16:41 2012 +0200

    lib-storage: Don't crash when trying to sync private index, if syncing had already failed.

commit c6227d7ecc972b6c58602d78602210f75190ae3f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:16:00 2012 +0200

    sdbox: Verify that mail_attachment_fs backend supports RENAME property.
    This isn't needed by mdbox.

commit 0001f76bf725c5cf403bade8556f142dd43144ee
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:15:01 2012 +0200

    lib-storage: Code cleanup: dbox_save_context.cur_file doesn't need to be in dbox-common.

commit bf5015e723acc912db1854733a85f547ebf64f13
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:12:29 2012 +0200

    Added libhttp to libdovecot.so

commit 905fb741e6f9a40e7721bff095c52a87110b4de3
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:11:57 2012 +0200

    lib-http: Removed explicit safe-memset.lo links
    At least in all my systems they just complain about duplicates..

commit 884cc4cc720145bb3aa506543a96f7acad221370
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:09:25 2012 +0200

    lib-dns: Added DNS_CLIENT_SOCKET_NAME macro for the default socket name.

commit eed08ce5de4c715b93951bb00aa7590a43d9cf9b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:08:50 2012 +0200

    unlink_directory(): Added UNLINK_DIRECTORY_FLAG_FILES_ONLY

commit cf636afb3826f0d8e15c248aa1fc04ce72820e08
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:08:10 2012 +0200

    Added iostream-temp for easily creating a temporary istream (to memory/file).

commit f0a386b29f2c9163e8fff6a8e26077b59708c980
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:06:24 2012 +0200

    liblib: Added assert-check to epoll code to make sure we don't wait infinitely with no events.

commit 1680fed5026a52fa4f47eb4cc6d82ec8dddcc50b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:03:09 2012 +0200

    lib-fs: Added a temp_dir setting that the caller can specify.

commit 8804300e6c170eea0cab8e570bf5ebd3b2895c0a
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:02:51 2012 +0200

    lib-fs: Added ITER and RELIABLEITER properties for backends.

commit 6937ddd8bda6a452164090b4b7cf9a07836866ce
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:01:53 2012 +0200

    lib-fs: Fixed iteration with POSIX backend.

commit a58b73c69e2d608843406b5809063d038ae67699
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 23:01:28 2012 +0200

    lib-fs: Iterating a nonexistent directory should be the same as iterating an empty directory.

commit 2766f1de8141c09767a959d2d2c3065c5a300bf0
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 26 22:59:37 2012 +0200

    lib-fs: fs_wait_async() can now return an error.

commit 216455c400f01a866198e8e615d0ab9206d3077b
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 24 00:32:56 2012 +0200

    lib-http: Compiler warning fixes

commit 7384b4e78eaab44693c985192276e31322155e32
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Sat Nov 24 00:30:14 2012 +0200

    lib-http: Added initial HTTP client implementation.

commit c61b8f90a428180e3deb9b628e21e99f236c1e6a
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 23 23:49:39 2012 +0200

    bsdauth: Use "auth-<service>" as the auth type.

commit d765b8ed45490515ebc5b519bf0c7aeadf497764
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 23 08:52:06 2012 +0200

    login: Try to avoid busy-looping on SSL_accept() when client doesn't behave nicely.

commit 74d5f3c4e3fd49d966a87f317f439a71954b3c70
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 23 08:32:13 2012 +0200

    auth: Added a way to set default values for nonexistent LDAP attributes.
    %{ldap:attrName:default_value} expands to default_value if attrName doesn't
    exist.

commit 3d24361e648c120637f6fa250b423a063626bbbb
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 16 17:39:25 2012 +0200

    lib-imap: imap_append_string_for_humans() was broken for empty input string.

commit fe91058fafc4da453161aecde6f2d48a8fae4a96
Author: Timo Sirainen <tss@iki.fi>
Date:   Fri Nov 9 00:31:07 2012 +0200

    iostream-rawlog: Don't assert-crash if trying to write 0 bytes.

commit 4240acc84d065472e5b21becd6481553fc38fe38
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 7 18:14:20 2012 +0200

    auth: Give a better error message for "client doesn't have lookup permissions".

commit aafdd2035354f2e38b5e0387385fa774bd2bf56d
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 7 17:44:32 2012 +0200

    Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_LOGIN if needed.

commit 3fc62f5a9b1646f0e385f0708c652fbd8b944ba9
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 7 17:37:16 2012 +0200

    var_expand*(): Don't use a data stack frame when expanding long %{variables}
    This avoids potential crashes if the destination string is also allocated
    from data stack and requires growing.

commit 3c40cf45bb10548bf434aea0fca32b99acc99a35
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Nov 7 17:05:47 2012 +0200

    mdbox: Don't leave extra records to dovecot.map.index if mailbox index locking fails.
    Fixes errors such as:
    Corrupted dbox file /mdbox/storage/m.1 (around offset=2652): EOF reading msg header (got 0/30 bytes)

commit 1a108b2aeaeb47a46c83166c428591c8785293a5
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 23:53:11 2012 +0200

    module_dir_unload(): Don't dlclose() modules if GDB environment is set.

commit d8e54934fbcdf59fc329353c3e3cccbaf69b1bf8
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 23:49:57 2012 +0200

    lib-ssl-iostream: Unload ssl_iostream_openssl plugin at exit.

commit 6ca79dbc2a9f54eb99559f1475da45a079c036fd
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 23:49:24 2012 +0200

    module_dir_deinit(): If no modules were actually initialized, avoid doing memory allocation.
    This allows calling module_dir_unload() with atexit(), as long as the module
    doesn't need to call deinit().

commit d39da67847a6c730195a65d7fb133cbfd781ac73
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 23:23:19 2012 +0200

    auth: Require auth-token-secret.dat owner to be auth process's uid, not necessarily root.

commit 270f00aeab7bede38764291e21a314211b884ab4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 22:15:51 2012 +0200

    imap: Various fixes for handling expunges in mailbox sync.

commit 591cdcb3a9b345c916c6bfb9348d810d6512f64a
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 22:13:13 2012 +0200

    imap: Avoid sending multiple unnecessary VANISHED lines when sync had lots of changes.

commit 8d56f3334e22619abf56833d290bb1f49ac6722c
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 17:40:34 2012 +0200

    istream-seekable: Underlying stream errors weren't handled correctly.

commit 37938a05ec4e58c92aa82a93d1243a1fc5e699fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 14:20:00 2012 +0200

    lib-ssl-iostream: Compiler warning fix when compiling without ssl

commit 4e9410678e3cc78c68e31722d9dba10b836370f3
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 02:33:38 2012 +0200

    Makefile: Build lib-ssl-iostream before lib-http

commit bc64a795f4f7f9443b2a1fa7b886b54603147d71
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 01:40:17 2012 +0200

    Makefile: Fixed building libdovecot.so

commit c75dd2d03a98ed46d199f57b3e4cf3ea8aaa53c4
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 01:16:20 2012 +0200

    dovecot-config: Removed LIBDOVECOT_SSL, which is no longer needed.

commit 0db42260be85e797aa9909a29b20296996f52e75
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 01:11:03 2012 +0200

    Reverted 269104a0821b (Build imapc and pop3c always as plugins.)
    This is no longer needed now that lib-ssl-iostream can be linked without
    linking openssl.

commit 3faa1040e5a3f9f35ffad29110216094ab2f5880
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Nov 6 01:04:24 2012 +0200

    lib-ssl-iostream now dynamically loads openssl library instead of linking to it.
    This allowed removing the separate libdovecot-ssl library. In future if
    GnuTLS/NSS support is added it would also allow switching between them
    dynamically.

commit 6f5a72c9782ce3baf28d0703532da31a54db2e0f
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 5 18:16:56 2012 +0200

    lib-ssl-iostream: Call all of the OpenSSL deinit functions at exit

commit 19ebf930ec4a3f120840fce9afdc6f4083843f83
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 5 14:28:24 2012 +0200

    lib-ssl-iostream: [io]streams were added an unnecessary reference, causing memory leaks.

commit 942dc911789875d8f0bda347f4efc31d2b4f938b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Nov 5 14:27:52 2012 +0200

    lib-ssl-iostream: [io]streams were added an unnecessary reference, causing memory leaks.

commit c01803010e0f00b04f2234a494c877e3af7da9fc
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 4 20:04:21 2012 +0200

    lib-ssl-iostream: Fixed potential assert-crash when reading.

commit adbca485f59f9876e626fcfdb73ad5191c4d57bd
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 4 19:16:59 2012 +0200

    lib-ssl-iostream: Copy the original istream's fd to the ssl istream.

commit bba52ecbb0cfb6585f1a4ff29695dd2d27af98d2
Author: Timo Sirainen <tss@iki.fi>
Date:   Sun Nov 4 17:26:24 2012 +0200

    lib-index: MAIL_INDEX_OPEN_FLAG_SAVEONLY may have caused stale data to be read from cache.

commit f0ff961282e618945dfe997dc45ff95d656e5790
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 20:25:17 2012 +0200

    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.)

commit 920b9f0fdfa5a5d7763e05736601a31bcb291a53
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 19:37:47 2012 +0200

    lib-index: Added minor version to dovecot.index.cache file header.

commit 330d54e9e3bf076efe91f101c562d1268160b128
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 19:35:54 2012 +0200

    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.

commit 131b073bdc3650083b00616dc778dd3017c2bbb5
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 19:25:35 2012 +0200

    lib-index: Cache record linking is now while writing new records, not later with pwrite().
    This should make performance somewhat better. It also means that now the
    only overwrites to cache file are to the file header and the fields header.
    This means that we no longer have to invalidate file_cache (with
    mmap_disable=yes) except when reading the headers, which is always done
    anyway.
    
    It would be nice to move the overwritten fields in the headers to a cache
    header in dovecot.index file, but this is a bit tricky currently. When
    writing these headers the cache file needs to be locked to avoid race
    conditions. To avoid deadlocks the transaction log would have to be locked
    before the cache. The code to do all this would still be a bit complex, and
    to keep backwards compatibility with old Dovecot versions it would still
    have to do the overwriting until the backwards compatibility code is
    disabled.

commit 3ef21e8aeacd1e75511eb87cc7a20d0a4c83d6a4
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 19:13:24 2012 +0200

    lib-index: Transaction view shouldn't return ext records if the ext was already reset.

commit 600848916ea123b89235bb51d660f662f2670538
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 18:43:00 2012 +0200

    lib-index: Recent cache file changes broke writing.

commit c028c93338799bd7053deac3d553896083cb5858
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 18:43:00 2012 +0200

    lib-index: Recent cache file changes broke writing.

commit 6494ec1398bbc56e63beba727e2c4538ba5521a7
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 14:11:29 2012 +0200

    lib-storage: Crashfix when doing userdb lookup.

commit bd503f12eb667df389a99162f567bd8785798f55
Author: Timo Sirainen <tss@iki.fi>
Date:   Sat Nov 3 13:47:55 2012 +0200

    lib-index: Write to transaction log using O_APPEND flag.
    Most OSes should do the writes atomically so that reads won't see partially
    written data. We don't currently rely on this, but it would be possible in
    future to remove locking entirely from writing to transaction log.

commit a21489e6547de79aba653aa8a21b71c37b8432ab
Author: Timo Sirainen <tss@iki.fi>
Date:   Thu Nov 1 12:32:30 2012 +0200

    lib-storage: Error logging fixes.

commit 0a77b33ae273fb5d98121074b4929fca01e13fab
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 31 14:44:24 2012 +0200

    hostpid_init(): Don't allow gethostname() to fail. Be more strict about what chars it can contain.

commit 97155df79590b5d4b4a380d02e84470a0e179876
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 31 13:34:52 2012 +0200

    lib-storage: Don't require mailbox to be synced for MAILBOX_METADATA_GUID lookup
    None of the mailbox formats currently require it, and lib-lda code
    assert-crashes with it since syncing is done with a transaction already
    open.

commit 3371db20109a89bcbef502bc0b30661c23d9e6e7
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 31 13:29:16 2012 +0200

    lib-storage: When mailbox_get_status/metadata() auto-syncs mailbox, use MAILBOX_SYNC_FLAG_FAST

commit 4b51bdad1c724d59663f62b8e2e3755e75119074
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 31 13:24:49 2012 +0200

    Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_STORAGE if needed.

commit 96e3a90451b495d8bedbe5dd731539269cb8c08d
Author: Stephan Bosch <stephan@rename-it.nl>
Date:   Wed Oct 31 13:12:22 2012 +0200

    lib-dns: Added dns_lookup_switch_ioloop()

commit a98f0fc93c32a4f4835427a0b2a1b5ea3356e117
Author: Timo Sirainen <tss@iki.fi>
Date:   Wed Oct 31 13:11:11 2012 +0200

    auth: Don't assert-crash in auth-token writing if process isn't running as root.

commit f69cd5cc5117123812ec1eacf8024738098e4378
Author: Timo Sirainen <tss@iki.fi>
Date:   Tue Oct 30 15:05:45 2012 +0200

    lib-lda: Avoid doing a costly mailbox sync when delivering mail to multiple recipients.

commit 9d60b2ea60484b62117f784810b06089c9100db9
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 29 23:03:59 2012 +0200

    doveadm sync/backup: Added -s parameter to usage string.

commit 12b1956587e5311e45cde90eb4afc5f18a0af5cc
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 29 22:47:35 2012 +0200

    Added signature for changeset f5941f3ac762

commit be061d4055c5094000875e256a6e588d31f1ce6b
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 29 22:47:32 2012 +0200

    Added tag 2.2.alpha1 for changeset f5941f3ac762

commit fb541fdd826e4b2332a7d6a4410000528a6baddb
Author: Timo Sirainen <tss@iki.fi>
Date:   Mon Oct 29 19:04:36 2012 +0200

    login proxy: For connect() failures log also the used local IP:port if available.

commit a5abb99ca9d1756d6ccef757b6e1f3865dd66a10
Author: Dennis Schridde <devurandom@gmx.net>
Date:   Sun Oct 30 12:39:53 2011 +0100

    Add DOVECOT_PREREQ to src/lib/macros.h - convenience macro to test the version of dovecot

commit 00d1c86198ec3db82a71a7faa550ea2267c738a8
Author: Dennis Schridde <devurandom@gmx.net>
Date:   Sun Oct 30 12:23:28 2011 +0100

    Add macros DOVECOT_VERSION_{MAJOR,MINOR} to config.h to allow version checks in the preprocessor
    
    Version number set as PACKAGE_VERSION is assumed to be D.D* with D=digits
