2013-08-05 Timo Sirainen * .hgsigs: Added signature for changeset 71f0696749ab [b846a046d978] [tip] * .hgtags: Added tag 2.2.5 for changeset 71f0696749ab [20e7fab87ad8] * NEWS, configure.ac: Released v2.2.5. [71f0696749ab] [2.2.5] * src/director/user-directory.c, src/lib-http/test-http-response- parser.c: Make static analyzer happier. [c3901ac774cb] * src/lib-storage/mail-storage-service.c: 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. [c41eab7d5d05] * src/lib-auth/auth-master.c: lib-auth: Previous changes didn't set the current ioloop correctly, causing problems. [19719ea2cddb] * src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail- mailbox.c: doveadm: Minor memory leak fixes at deinit. [647ef2264398] * src/lib-auth/auth-master.c: lib-auth: auth_master_user_list_*() shouldn't create ioloop if it already exists. [f7dc5389ab0a] * src/lib-storage/index/maildir/maildir-storage.c: 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. [a3f645bc5195] * src/dns/dns-client.c, src/lib/net.h: dns: Use EAI_NONAME, not EAI_ADDRFAMILY to indicate "no addresses". [556475a5c1be] * src/lib-storage/index/mbox/mbox-sync.c: 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. [42b2736f146b] * src/lib-auth/auth-master.c: lib-auth: Another crashfix to auth_master_user_list_*() [1adb8998c2a6] 2013-08-05 Pascal Volk * .hgignore, doc/man/Makefile.am, doc/man/doveadm-exec.1.in, doc/man/doveadm.1.in, doc/man/sed.sh: man: Added doveadm-exec.1. [d3e554bccf68] 2013-08-05 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Fixed listing INBOX's children with LAYOUT=fs and non- mbox format. [692c1797a8c9] * src/lib/net.c: net_gethosterror(): Never return NULL. [dc60e46f0cb5] * src/dns/dns-client.c, src/lib-dns/dns-lookup.c, src/lib/net.h: lib-dns, dns: Don't use IPv4-only error codes [f69e08188622] * src/lib-index/mail-index-sync-update.c: lib-index: Replaced assert-crash with "index corrupted" error. [d6290bd28253] * src/lib-index/mail-index-sync-update.c: lib-index: Silently ignore next_uid shrinking without treating them as errors. [374e338bb3d6] 2013-08-04 Timo Sirainen * src/lib-http/http-client-request.c, src/lib-http/http-url.c, src /lib-http/http-url.h: lib-http: Fixed redirect request target encoding and NULL target. Patch by Stephan Bosch. [3af0ae411b37] * src/imap/cmd-append.c: imap: Various APPEND/CATENATE error handling bugfixes. Found using Apple's catenate.pl test script. [3c2e1879fdf6] * src/lib-http/http-header-parser.c, src/lib-http/test-http-header- parser.c: lib-http: Ignore trailing whitespace in headers. Patch by Stephan Bosch. [2d6497a4f124] * src/lib-http/http-client-connection.c: lib-http: Don't crash when receiving 304 or a redirect without Location: header. Patch by Stephan Bosch [97fcb2904b22] 2013-08-03 Timo Sirainen * doc/man/doveadm-deduplicate.1.in: man: Fixed doveadm-deduplicate.1 Patch by Pascal Volk [292991f2d504] * doc/man/Makefile.am: Makefile: Fixed previous commit. [0e38ca2aa8d6] 2013-08-02 Pascal Volk * .hgignore, doc/man/Makefile.am, doc/man/doveadm-deduplicate.1.in, doc/man/doveadm-flags.1.in, doc/man/doveadm.1.in: man: Added doveadm-deduplicate.1 and doveadm-flags.1. [78a3b43af482] 2013-08-02 Timo Sirainen * src/doveadm/doveadm-mail-flags.c: doveadm flags: Fixed help text for subcommands. [f16816a69130] * src/plugins/quota/quota-status.c: quota-status: Added quota_status_toolarge message for mails larger than user's quota limit. Based on patch by Ulrich Zehl [78225937a030] * src/plugins/quota/quota-status.c: quota-status: Removed extra newlines from default quota_status_overquota message. Patch by Ulrich Zehl [3e98654cbb54] 2013-08-01 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl.c, src/login-common/ssl-proxy- openssl.c: ssl: Log SSL "close notify" alerts as debug messages, not warnings. They are clean shutdown messages after all. [2714f51e2355] * src/plugins/quota/quota-storage.c: quota: Don't log errors about missing namespaces for autocreated shared mail_users. [1705bf7bf484] * src/lib-storage/mail-storage-service.c: lib-storage: Improved seteuid() error messages a bit. [f7f3ea4cb6df] * src/lib-storage/mail-storage-service.c: lib-storage: If settings can't be read because of permission denied, restart process. [2bccde4027ea] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Added master_service_settings_output.permission_denied error flag. [5696b0162527] * src/lib-master/master-service-settings.c: lib-master: If config socket closes, retry connecting to it automatically. [96ea65bf653c] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-master/master-service.c, src/lib-master /master-service.h: lib-master: If MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN is set, open the config socket before dropping privileges. [eb63eca74471] * src/lib-storage/mail-storage-service.c: lib-storage: Ignore MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP if service user isn't root. [43488e1044c9] 2013-07-30 Timo Sirainen * src/plugins/quota/quota-status.c: quota-status: Keep the config connection open. [51b8020b29f6] * src/lib-storage/mail-storage-service.c: 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. [2470bb9106b0] * src/lib-auth/auth-master.c: lib-auth: Don't crash in auth_master_user_list_*() if socket can't be connected to. [0cab916b28c6] 2013-07-29 Timo Sirainen * src/director/director-connection.c, src/director/director-host.h, src/director/director.c, src/director/director.h: director: Avoid infinite SYNC loops if the originating director goes away for a long time. [a6736e42301e] * src/director/director-connection.c, src/director/user-directory.c, src/director/user-directory.h: director: Update existing users' timestamps during handshake. [5ef62caea61b] * src/director/director-test.c, src/director/director-test.sh: director: Fixes to director-test. [366024103c09] * src/director/director-connection.c: director: Fixes to handling users near expiration. [9b8b5ce6ecb0] * src/director/director-connection.c: director: Log director disconnection errno correctly. [0ad8da149774] * src/director/user-directory.c: 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. [0e0eb964685a] * src/director/director-settings.c: director: Don't allow director_user_expire to be less than 10 seconds. [d95ca476098c] 2013-07-17 Timo Sirainen * src/lib/connection.c: liblib: connection_disconnect() didn't close fd_out if it was different from fd_in. [50117c22151e] 2013-07-12 Timo Sirainen * src/director/login-connection.c: director: Don't log an error if login connection gets closed with ECONNRESET. [ebbe00999da8] * src/auth/auth-request.c, src/auth/auth-request.h: auth: With multiple passdbs the previous passdb's userdb_* fields weren't cleared. [3e6b136d936c] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth- worker-client.c: auth: If blocking passdb returned only NULLs for userdb_ fields, use userdb prefetch anyway. [2be295a0b64f] * src/auth/auth-master-connection.c, src/auth/auth-worker-client.c: auth: Use fewer syscalls for sending user list. [86275093e7b3] * src/lib-auth/auth-master.c, src/lib-auth/auth-master.h: lib-auth: auth_master_user_list_*() no longer reads the entire user list into memory. [328bc770af54] * src/doveadm/doveadm-mail.c, src/lib-storage/mail-storage-service.c, src/lib-storage/mail-storage-service.h: 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. [c0b0f46ff581] * src/auth/auth-worker-client.c: auth: Avoid wasting data stack when iterating users. [7172b893101d] * doc/man/doveadm-director.1.in: man: Updated doveadm-director man page. [a97caa1ce2b7] * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Crashfix for recent change. [50b1d59912eb] 2013-07-11 Timo Sirainen * src/lib-http/Makefile.am, src/lib-http/test-http-server.c: lib-http: Added a very dummy test-http-server [6d986d132fb8] * src/lib-http/Makefile.am, src/lib-http/http-message-parser.c, src /lib-http/http-message-parser.h, src/lib-http/http-request-parser.c, src/lib-http/http-request-parser.h, src/lib-http/http-response- parser.c: lib-http: Implemented http-request-parser for HTTP servers. Moved code common with it and http-response-parser to http-message-parser. [c55bd41133a2] * src/lib-http/Makefile.am, src/lib-http/http-client.h, src/lib-http /http-response-parser.h, src/lib-http/http-response.h: lib-http: Moved struct http_response* to http-response.h Also http- client.h now #includes only http-response.h [c5952dd642c6] * src/lib-http/http-response-parser.c: 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(). [69cc86583da2] * src/lib-http/http-response-parser.c: lib-http: Minor fix/cleanup to detecting stream errors when skipping payload. [dbda2f84aeaa] * src/lib-http/test-http-response-parser.c: lib-http: Updated test-http-response-parser [1ab7d7dd3087] * src/lib-http/test-http-header-parser.c: lib-http: test-http-header-parser makes sure the parser works one byte at a time. [feac6ec9fa6e] * src/lib-http/test-http-response-parser.c: lib-http: Fixed previous test-http-response-parser change. [55ae488349d2] * src/lib-http/http-response-parser.c, src/lib-http/test-http- response-parser.c: lib-http: Fixed handling responses whose header arrives in smaller pieces. [07fb7d4665c6] * src/lib-http/http-response-parser.c: 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). [d7244f7ceca4] * src/lib-http/http-client-connection.c: lib-http: Http requests weren't freed when connection was aborted. Patch by Stephan Bosch. [a99b211f0409] * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Compiler warning fix [dff200f433d2] 2013-07-10 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl-common.c: lib-ssl-iostreams: ssl_protocols setting supports now TLSv1.1 and TLSv1.2 values. [3a08bd30d180] * src/auth/auth.c: auth: Fixed crash for some lookups that didn't specify service name. [aff54366b1b6] * src/plugins/quota/quota-maildir.c: 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. [24d6708cea76] * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Added support for ECDH/ECDHE cipher suites Based on the login-common patch by David Hicks. [dc99912e5047] * src/login-common/ssl-proxy-openssl.c: login-common: Compiler warning fix with OpenSSL v1.0.2+ [ac0dd2fbdbf0] * src/lib-http/http-client-private.h: lib-http: Minor comment update. [f296a05246fb] 2013-07-06 David Hicks * src/login-common/ssl-proxy-openssl.c: 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. [331d0a4fe772] 2013-07-10 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-list.h, src/lib-storage/index/imapc/imapc- mail-fetch.c, src/lib-storage/index/imapc/imapc-save.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c: 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. [620876853f6f] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-list.h: imapc: Code cleanup: Don't access imapc settings via storage. [e45ad5524f1a] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Minor code cleanup. [673648c6fb4b] * src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c, src/auth/userdb-ldap.c: auth: If passdb ldap returned no values for userdb_ fields, use userdb prefetch anyway. [939aa051e3f1] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth/passdb- sql.c: auth: If passdb sql returned only NULLs for userdb_ fields, use userdb prefetch anyway. [9091d0f2d971] * src/pop3/pop3-commands.c: pop3: Avoid assert-crash if client disconnects during LIST. [debbcfe5577a] * src/lib-http/http-client-connection.c, src/lib-http/http-client- peer.c, src/lib-http/http-client-private.h: lib-http: Fix/cleanup to handling connect failures. There was some kind of double-error handling which messed up things. [4707096101a4] * src/lib-http/http-client-host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client-private.h: lib-http: Fixed tracking number of pending connections to host-port. [129ae6342b28] * src/lib-http/http-client-host.c: lib-http: Don't assert-crash in case of somewhat unexpected failing connections. [843208699cbc] * src/lib-http/http-client-host.c, src/lib-http/http-client-private.h: 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. [dee7822501b0] 2013-06-28 Timo Sirainen * src/dns/dns-client.c, src/lib-dns/dns-lookup.c, src/lib-dns/dns- lookup.h: dns, lib-dns: Added support for async DNS PTR lookups. [1fbac590b9d4] * src/lib/net.c, src/lib/net.h: Added net_gethostbyaddr() for DNS PTR lookups. This code assumes we have IPv6 capability. Perhaps we should just require it everywhere already.. [eaa712530f3f] 2013-06-27 Timo Sirainen * src/lib-http/http-client-connection.c, src/lib-http/http-client- peer.c: lib-http: Added more debug messages. [a6b00756ab2c] * src/lib-http/http-client-host.c: 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. [e405105a0c24] * src/lib-http/http-client-connection.c: lib-http: Don't crash if payload stream is referenced by caller after its connection is freed. [20a0595e6e5d] * src/lib-http/http-client-connection.c: 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. [9fd54d123e22] * src/lib-http/http-client-request.c: lib-http: Call request's destroy callback always, not just on success. [eb63569f0f73] * src/lib-http/http-client-connection.c: lib-http: If connection times out, set the stream's errno to ETIMEDOUT in case it's used. [3fdfbabf3dcf] * src/lib-http/http-client-connection.c: lib-http: When connection is freed, abort also the pending request. [110d18bf9e30] * src/lib-http/http-client-connection.c: lib-http: Timeouts were being handled wrong/leaked by ioloop switching. [975fdf5a6987] * src/lib-http/http-client-connection.c, src/lib-http/http-client- peer.c, src/lib-http/http-client-private.h: lib-http: Minor code cleanup. [cf9024b01720] * src/lib-http/http-client-peer.c: lib-http: Fixed hang when many connections were being created and closed. [af23c7a899a9] * src/lib-http/http-client.c, src/lib-http/http-client.h: lib-http: Added http_client_get_pending_request_count() [185dfd05b57a] 2013-06-26 Timo Sirainen * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Recent changes broke remote dsync [c2c09416d8a4] * src/config/old-set-parser.c: config: Give a somewhat better warning for when using protocols=imaps or pop3s. [e8cba978850d] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree-sync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync /dsync-brain.h, src/doveadm/dsync/dsync-ibc-stream.c: 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. [0144704e1b99] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Send DSYNC_BRAIN_FLAG_NO_MAIL_SYNC via ibc-stream to slave brain. [2e6829462405] * src/lib-storage/index/pop3c/pop3c-storage.c: pop3c: Fixed mail saving to fail nicely, not assert-crash. [42a5acba17e5] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed syncing when one of the backends supported GUIDs. [f3b9325509fd] * src/lib-storage/index/pop3c/pop3c-storage.c: pop3c: Return error instead of crashing when trying to save a mail. [230f111056b4] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed handling expunges when GUIDs aren't supported by the backend(s). [af8ce0a84bb5] * src/imap-login/imap-proxy.c, src/lib-sasl/Makefile.am, src/lib-sasl /dsasl-client-private.h, src/lib-sasl/dsasl-client.c, src/lib-sasl /dsasl-client.h, src/lib-sasl/mech-login.c, src/lib-sasl/mech- plain.c, src/lib-sasl/sasl-client-private.h, src/lib-sasl/sasl- client.c, src/lib-sasl/sasl-client.h, src/login-common/client- common-auth.c, src/login-common/client-common.c, src/login-common /client-common.h, src/login-common/main.c, src/pop3-login/pop3-proxy.c: lib-sasl: Use dsasl_ prefix so we don't conflict with Cyrus SASL library. [2dd27b0e7e49] 2013-06-25 Timo Sirainen * src/doveadm/dsync/dsync-transaction-log-scan.c: dsync: Don't log index errors if modseq points beyond the current view. [d6b18c237be5] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Resize mdbox index header if necessary also when rebuilding indexes. [be970e7928eb] * src/lib-index/mail-index-transaction-export.c: lib-index: Assert-crash instead of writing a broken transaction with too large ext header update. [8cf482b749e2] * src/lib-index/mail-index-transaction-export.c: lib-index: Don't write a broken transaction if extension resize is done at first use. [04c64300f81f] * .hgsigs: Added signature for changeset 4b3c9c3e4fb8 [a2555de348a7] * .hgtags: Added tag 2.2.4 for changeset 4b3c9c3e4fb8 [e7f3acd34e7b] * NEWS, configure.ac: Released v2.2.4. [4b3c9c3e4fb8] [2.2.4] * src/doveadm/dsync/dsync-brain-mailbox-tree.c: Make static analyzer happier. [b5e8aed1bf61] * src/doveadm/doveadm-mail-deduplicate.c: doveadm deduplicate: Fixed error handling. [09b278416493] * src/plugins/quota/quota.c: quota: Fixed quota_rule with non-uppercase INBOX. [f68a955f4c5c] 2013-06-24 Timo Sirainen * src/imap-login/imap-proxy.c: imap-login: If CAPABILITY is already in server banner, don't ask for it again. [6e8bbc150fa9] * src/doveadm/dsync/dsync-mailbox-export.c: dsync: Fixed "export:/count" value in verbose_proctitle=yes [082fe68e38c9] * src/lib-storage/index/mbox/mbox-lock.c: mbox: Avoid assert-crashing by too optimistically upgrading a lock to write-lock. [04c7cf45a597] * src/doveadm/dsync/dsync-brain.c: dsync: Don't crash at deinit when dsync fails early. [07e314199f56] * src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h: dsync: Don't try to find mailboxes from unwanted namespaces. [84014270ee37] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync- brain.h, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync /dsync-mailbox-export.h, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h: dsync: If verbose_proctitle=yes, show the current state in it. [b5876fa03b0e] * src/doveadm/dsync/dsync-brain.c: dsync: State names were wrong in debug/error messages. [83bea7e1f136] 2013-06-18 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: Fixed crash with some autocreated (e.g. shared) namespaces. [8a81c5a1b60f] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: If sdbox header is corrupted, resize it to make sure its size is correct. [07642120b6ea] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-deduplicate.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added deduplicate command. By default it deduplicates only by GUIDs. With -m parameter it deduplicates by Message-Id: header. [3683d7bff095] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-flags.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added "flags" command to modify messages' flags. [5e51c5545029] * src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: If mdbox header is corrupted, resize it to make sure its size is correct. [3056feb418b1] * src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-map.c, src /lib-index/mail-index-modseq.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index-sync- keywords.c, src/lib-index/mail-index-sync-update.c, src/lib-index /mail-index-write.c: 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. [37bd40e27b67] * src/lib-index/mail-index-sync.c: lib-index: If error is found from transaction log, update dovecot.index so it won't be read again. [3794e6cb0da8] * src/lib-sasl/sasl-client.h: lib-sasl: API usage comment update [3dc92ec58aef] * src/imap-login/imap-proxy.c, src/pop3-login/pop3-proxy.c: imap/pop3 proxy: Master user logins were broken by lib-sasl change. [ba720ff91a75] 2013-06-17 Timo Sirainen * src/pop3/pop3-client.c: pop3: Fixed crash at deinit [1352949265cc] * src/doveadm/dsync/dsync-brain-mailbox-tree.c: dsync: Minor fixes to checking if namespace is wanted to be synced. [014003da870e] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/test-dsync- mailbox-tree-sync.c, src/imap-login/imap-proxy.c, src/pop3-login/pop3-proxy.c: Make static analyzer happier. [178fe5bf943b] * .hgsigs: Added signature for changeset 5d9f52c9a287 [5a137e3eb51e] * .hgtags: Added tag 2.2.3 for changeset 5d9f52c9a287 [c3c923724276] * NEWS, TODO, configure.ac: Released v2.2.3. [5d9f52c9a287] [2.2.3] 2013-06-16 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: Minor fix to handling corrupted mdbox header. [5a429604923c] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Fixed building without libstemmer [3c9bb07ea92e] * src/lib-imap/imap-parser.c: lib-imap: Fixed parsing literal8 in some situations. [dd04b4ef530d] * src/lib-mail/istream-attachment-extractor.c: istream-attachment-extractor: Fixed handling attachment as the message body without MIME. Don't crash at the end after parsing the base64 data. [9dcbcc0871f0] * src/lib-storage/mail-storage-service.c: lib-storage: mail_storage_service_lookup() ignored input->service. [c290383e60da] 2013-06-14 Timo Sirainen * src/doveadm/dsync/test-dsync-mailbox-tree-sync.c: Compiler warning fix. [30f00db1a8b0] * src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync/test- dsync-mailbox-tree-sync.c: dsync: Fixed syncing renaming mailboxes with children. So that the childrens' rename timestamps are at least as high as their parents'. [d36f6b256bc0] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: dsync: Don't try to delete nonexistent mailbox directories. [3ef37c649d27] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: dsync: Avoid wasting data stack on larger renames. [1c657812991b] 2013-06-13 Timo Sirainen * src/plugins/quota/quota-status.c: quota-status: Fixed log prefix. [e6aa668477d8] * src/lib-storage/index/shared/shared-list.c: lib-storage: Fixed crash with listing shared mailboxes. [04ee59c96fc9] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Do only soft commits. Use a cronjob to do hard commits. [91765ba4d534] * doc/solr-schema.xml: solr-schema.xml: More updates for Solr v4.x and hopefully with better filters. [0e56484c665a] * doc/solr-schema.xml: solr-schema.xml: Replaced EnglishPorterFilterFactory with SnowballPorterFilterFactory [cfd442fcc672] * src/anvil/main.c, src/auth/main.c, src/dict/main.c, src/director /director-test.c, src/director/main.c, src/doveadm/main.c, src/imap- urlauth/imap-urlauth-worker.c, src/imap/main.c, src/indexer/indexer- worker.c, src/indexer/indexer.c, src/ipc/main.c, src/lib-master /master-service.c, src/lib-master/master-service.h, src/lmtp/main.c, src/log/main.c, src/plugins/quota/quota-status.c, src/pop3/main.c, src/replication/replicator/replicator.c, src/ssl-params/main.c, src/stats/main.c, src/util/script.c: 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. [754d244b8249] * src/lib-storage/index/imapc/imapc-list.c: imapc: Fixed list iteration when namespace and backend separators differed. [c012f8df87f9] * src/lib-storage/list/mailbox-list-index-iter.c, src/lib-storage/list /mailbox-list-index.h: mailbox_list_index=yes: Fixed list iteration when namespace and backend separators differed. [949ef3625aa2] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/server-connection.c, src/doveadm/server-connection.h: doveadm: Pass through the exit code from doveadm-server to client. [63092465c522] * src/doveadm/dsync/dsync-brain-mailbox.c: dsync: Don't try to access mailboxes with no_mail_sync flag enabled. [d8fc9bba98ab] * src/doveadm/client-connection.c, src/doveadm/dsync/dsync-brain- mailbox.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync- ibc-pipe.c, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/main.c, src/lib-fs/fs-api.c: Memory leak fixes. [5ed2f41431c4] 2013-06-12 Timo Sirainen * src/plugins/zlib/zlib-plugin.c: zlib: Enable only for storages that support MAIL_STORAGE_CLASS_FLAG_BINARY_DATA [235be95cb378] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib-storage/mail- storage-private.h: lib-storage: Added MAIL_STORAGE_CLASS_FLAG_BINARY_DATA flag for classes. [102d8a59eeda] * src/plugins/pop3-migration/pop3-migration-plugin.c: 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. [c903fbcbf5d2] * src/lib-dict/dict-client.c: lib-dict: Error handling fixes to asynchronous transactions. [db1f217e53b3] * src/imap/cmd-delete.c, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h: 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. [db5d4c5164b3] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-index- backend.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-subscriptions.c: lib-storage: Don't crash if backend doesn't have subscriptions file. [4b9a43201a71] * src/lib-storage/index/pop3c/pop3c-client.c: pop3c: Don't assert-crash if we can't do DNS lookup. [7057dfeaeb1a] * src/lib-storage/index/pop3c/pop3c-mail.c: pop3c: Return Date: header's date also as received and saved date. Mainly to get dsync to not fail. [d447dcc6b611] * src/lib-storage/index/pop3c/pop3c-storage.c: pop3c: Allow mailbox_update() for Dovecot's internal fields. [8cf22cba16d4] * src/lib-storage/list/mailbox-list-subscriptions.c: pop3c: Don't assert-crash when trying to list subscriptions. [09ac72cdfa8e] * src/lib-storage/index/pop3c/pop3c-storage.c: pop3c: Give GUID to the INBOX to avoid crashes with dsync. [7a7d4d8123d5] * src/plugins/zlib/zlib-plugin.c: zlib plugin: Removed explicit checks for maildir/sdbox/mdbox. [d212cfb92ce9] 2013-06-09 Timo Sirainen * doc/man/dovecot.1.in: man: Recent change accidentally changed LGPLv2.1 -> LGPLv2.2, reverted. [45399357008a] * src/plugins/acl/acl-backend-vfile.c: acl: Crashfix [921017adcb7b] * src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail- namespace.c: lib-storage: Fixed crashes caused by recent "multiple storages per namespace" change. [73b7fce1643e] * src/imap-login/Makefile.am, src/imap-login/client.h, src/imap-login /imap-proxy.c, src/login-common/Makefile.am, src/login-common /client-common-auth.c, src/login-common/client-common.c, src/login- common/client-common.h, src/login-common/main.c, src/pop3-login/Makefile.am, src/pop3-login/pop3-proxy.c: 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. [266101990d63] * configure.ac, src/Makefile.am, src/lib-dovecot/Makefile.am, src/lib- sasl/Makefile.am, src/lib-sasl/mech-login.c, src/lib-sasl/mech- plain.c, src/lib-sasl/sasl-client-private.h, src/lib-sasl/sasl- client.c, src/lib-sasl/sasl-client.h: Added initial libsasl for implementing client side SASL library. Initially supports PLAIN and LOGIN mechanisms. [1cbff0a8a849] * src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene /fts-lucene-plugin.h, src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Support normalize setting also without snowball. Added no_snowball setting. Snowball seems to be converting / breaking words down rather annoyingly. [7e54af474ea4] * doc/man/doveadm-altmove.1.in, doc/man/doveadm-auth.1.in, doc/man /doveadm-director.1.in, doc/man/doveadm-dump.1.in, doc/man/doveadm- expunge.1.in, doc/man/doveadm-fetch.1.in, doc/man/doveadm-force- resync.1.in, doc/man/doveadm-help.1.in, doc/man/doveadm-import.1.in, doc/man/doveadm-index.1.in, doc/man/doveadm-instance.1.in, doc/man /doveadm-kick.1.in, doc/man/doveadm-log.1.in, doc/man/doveadm- mailbox.1.in, doc/man/doveadm-mount.1.in, doc/man/doveadm-move.1.in, doc/man/doveadm-penalty.1.in, doc/man/doveadm-purge.1.in, doc/man /doveadm-pw.1.in, doc/man/doveadm-quota.1.in, doc/man/doveadm- search-query.7, doc/man/doveadm-search.1.in, doc/man/doveadm- user.1.in, doc/man/doveadm-who.1.in, doc/man/doveadm.1.in, doc/man/doveconf.1.in, doc/man/dovecot-lda.1.in, doc/man/dovecot.1.in, doc/man/dsync.1.in: man pages: Updated v2.1 -> v2.2 [1f3f21081ee5] * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h, src/lib-http/http-client.c, src/lib-http/http-client.h: lib-http: Added soft_connect_timeout_msecs setting to connect to multiple IPs in parallel. Based on patch by Stephan Bosch. [07f72970bf61] * src/lib-http/http-client-peer.c: 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. [ac78c4c88ba9] * src/lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage-settings.h, src/lib-storage/mailbox-list.c: lib-storage: Added mailbox { driver } setting to specify which storage to use. [7e91b0709f06] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/mail-namespace.c, src/lib-storage/mail-namespace.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Added support for multiple storages per namespace. [d952b4091425] * src/lib-storage/index/imapc/imapc-storage.c: imapc: imapc_storage no longer requires imapc_mailbox_list. [e7ea508f36ca] * src/auth/auth-worker-server.c: auth: If worker request has been queued for 60 secs, abort it. [dbf8bbb7e51e] 2013-06-07 Timo Sirainen * src/auth/auth-request.c: auth: Don't crash in non-plaintext auth if master user login is tried without master passdbs. [ee2a3cf464f4] * src/imap-login/client.c: imap-login: If PLAIN mechanism is disabled, advertise LOGINDISABLED always. [bee2dfd00ac5] 2013-06-06 Timo Sirainen * src/lib/var-expand.c: var_expand(): Fixed initializing variable to %N [e5bd0a7c6a1e] * src/lib/test-var-expand.c: var_expand*(): Added small unit tests for %H and %N [561f36451dc2] * src/lib/var-expand.c: 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. [956324a5fc86] * src/lib-imap-client/imapc-connection.c: lib-imap-client: When switching ioloops, do it also for the DNS lookup. [8f192f64fd98] * src/lib-imap-client/imapc-connection.c: lib-imap-client: Make sure DNS lookups get aborted at disconnect. [612a679aeb03] * src/lib-imap-client/imapc-connection.c: lib-imap-client: Don't start another DNS lookup if there's already one ongoing. [d2756f3edb9c] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail.c, src /lib-storage/index/shared/shared-list.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/mail- storage.c, src/lib-storage/mailbox-list.c, src/plugins/acl/acl- backend-vfile.c, src/plugins/acl/acl-shared-storage.c: Avoid using mail_namespace.storage directly. [5ba3d95aba9d] * src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Renamed mailbox_list_get_closest_storage() to ..._get_default_storage() This function wasn't previously used by anyone. [3467c60014ec] * src/lib-storage/index/imapc/imapc-list.c: imapc: Minor code cleanup [34babd1e2858] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-list.h, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: If imapc isn't the inbox=yes namespace, do the login and initial LIST in background. [cdb0e127f010] * src/lib-imap-client/imapc-connection.c: lib-imap-client: When server sends BYE before disconnection, log it as the reason. [55624c42bfb8] * src/lib-storage/index/imapc/imapc-list.c: imapc: When deleting a mailbox, unselect the current one just in case they're the same. [cc243b748a1c] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h: lib-imap-client: Added support for UNSELECT capability. [2690bcbd37d0] * src/lib-imap-client/imapc-connection.c: lib-imap-client: If SELECT/EXAMINE fails, set the connection as not being selected. [375becde3b42] * src/lib-storage/index/imapc/imapc-list.c: imapc: Index dirs were being wrongly deleted when imapc_list_prefix was set. [0a88c358cf82] * src/lib-http/http-client-connection.c: lib-http: Treat connect() timeouts as retryable errors. [452cecc7e708] * src/lib-http/http-client-connection.c: 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. [554774a328b9] 2013-06-05 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c: 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. [12a0c383703e] * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_settings.broken_char wasn't escaping 8bit chars correctly. [66a6ff2fdee9] * src/lib-imap/imap-utf7.c: lib-imap: Make sure imap_utf7_to_utf8() doesn't access invalid input string out of bounds. [b3c6f97ad3ac] * src/lib-imap/imap-utf7.c, src/lib-imap/imap-utf7.h, src/lib-imap /test-imap-utf7.c: lib-imap: Added imap_utf7_is_valid() [a38a7b5fb195] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h: 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. [5593d6129712] * src/lib-http/http-client-connection.c, src/lib-http/http-client- private.h: 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. [bcf93c30a500] * src/lib-http/http-client-connection.c: 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. [49e7a1c206f1] * src/lib-http/http-client-connection.c, src/lib-http/http-client- private.h, src/lib-http/http-client.c, src/lib-http/http-client.h: lib-http: Added connect and request timeout settings. [a551409911f9] * src/lib-http/http-client-connection.c: lib-http: Mark the HTTP connection connected only after SSL handshake is finished. [20b065a5299d] * src/lib-http/http-client-peer.c: lib-http: Don't create a new HTTP connection when there is already one connecting. [686d2dc1d8dd] 2013-06-01 Timo Sirainen * src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-lda/mail- deliver.h, src/lmtp/commands.c: lda/lmtp: If mail delivery fails with tempfail, don't fallback to saving to INBOX. [fa87cd91a11a] * src/lib-index/mail-index-transaction-finish.c: lib-index: Avoid memcpy()ing data over itself. [74875424373d] * src/lib-fs/fs-api.c: 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. [09a57e2f07df] * src/lmtp/commands.c: lmtp: Give the DATA input stream a name, so the raw mailbox gets a name and doesn't fail. [05b6cd9220de] * src/lib-storage/index/imapc/imapc-list.c: 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). [7b1152c83e3e] * src/lib-storage/mail-storage.c: 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. [0faaee4060c5] * src/lib-storage/index/imapc/imapc-list.c: imapc: Return correct mailbox list flags for the imapc prefix mailbox itself. [9e50919d7e8b] * src/lib-storage/index/imapc/imapc-list.c: imapc: Allow accessing the imapc_list_prefix itself. [92b4183ede17] * src/lib-storage/index/imapc/imapc-storage.c, src/lib-storage/index /index-storage.c, src/lib-storage/mail-storage-private.h: imapc: Fixed mailbox deletion. [7af6795f40ed] * src/lib-storage/index/imapc/imapc-list.c: imapc: Don't assert-crash when trying to access imapc_list_prefix itself. [cd314aa81805] * src/lib-imap-client/imapc-connection.c: lib-imap-client: Ask CAPABILITY again after STARTTLS [3ed452837a8d] * src/lib-storage/mailbox-list.c: lib-storage: Empty mailbox name isn't valid. [c4a85c9df948] * src/lib/lib-signals.c: 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. [fbeac7272069] 2013-05-31 Timo Sirainen * src/lib-storage/index/imapc/imapc-settings.c: imapc: Changed imapc_user setting's default to empty. [199769f2979f] * src/lib-storage/index/imapc/imapc-storage.c: 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. [6e07d290066c] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h, src/lib-imap-client/imapc-connection.c: lib-imap-client: Connect and command timeouts are now configurable. Also use the same connect timeout for the DNS lookup's timeout. [a6b0a45319ab] 2013-05-31 Stephan Bosch * src/imap/cmd-urlfetch.c: imap: URLFETCH's URL callback would prematurely uncork the output stream when called for a local URL. [a3b5b762639a] 2013-05-30 Timo Sirainen * src/imap/cmd-urlfetch.c: imap: URLFETCH's tagged reply wasn't sent while TCP corked. [04b325dbb7bc] * src/auth/auth-request.c: auth: Fixed error handling for proxy host dns_lookup() [1cf6ce033a25] * src/auth/auth-worker-server.c: Reverted previous wrong commit. [f98fdf0a7ba4] * src/auth/auth-worker-server.c: auth: Fixed error handling for proxy host dns_lookup() [b8a175d93ef6] * src/lib-storage/list/mailbox-list-index-iter.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h: layout=index: Allow mailbox create/delete/rename during mailbox list iteration. [e90e9a7c4ff8] * src/lib-index/mail-index-transaction-export.c: lib-index: Fixed a broken assert. [528c64739e39] 2013-05-30 Stephan Bosch * src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-imap-urlauth /imap-urlauth-fetch.h: lib-imap-urlauth: Added API for using the fetch interface with an already parsed IMAP URL object. [fc2ba01feb78] * src/imap/cmd-urlfetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.h: 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. [8d20f3cde49a] * src/lib-imap-urlauth/imap-urlauth-fetch.c: lib-imap-urlauth: Fixed handling of URLAUTH service connection resume after pending local request. This was erroneously removed in an earlier commit. [b2541217f74b] * src/lib-imap-urlauth/imap-urlauth-fetch.c: lib-imap-urlauth: Fixed pending_request counter difference between locally and remotely fetched URLAUTHs. [ec5d1686852c] * src/lib-imap-urlauth/imap-urlauth-fetch.c: lib-imap-urlauth: Fixed URLAUTH fetch reference counting for when requests are aborted at deinit. [8f09509323cd] * src/lib-imap-urlauth/imap-urlauth-connection.c: lib-imap-urlauth: Fixed URLAUTH connection resume after error. [bb221f236d4f] * src/lib-imap-urlauth/imap-urlauth-connection.c: lib-imap-urlauth: Made sure callbacks from URLAUTH service connection are executed only once. [3ee64234a125] 2013-05-30 Timo Sirainen * src/lib/var-expand.c: var_expand(): Added %N, which is the same as %H except based on MD5. This gives a better distribution of values than %H. [4d711ec26847] 2013-05-29 Timo Sirainen * src/lib-imap/Makefile.am, src/lib-imap/imap-quote.c, src/lib-imap /test-imap-quote.c: 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. [714320c3cfa6] * src/lib-settings/settings-parser.c: lib-settings: Support also "seconds" and "minutes" (instead of just secs/mins) [f294d40a8978] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed dsync handshaking since recent change. [239e0e2098c1] * src/lib-index/mail-cache-lookup.c: lib-index: Fixed mail_cache_lookup_headers() when fields were still in memory buffer. [e7c474011934] * src/lib-storage/mailbox-list.c: lib-storage: If INDEX=MEMORY, return index root dir as nonexistent instead of as "". [1a565186aee0] * src/lib-storage/mailbox-list.c: lib-storage: Reverted previous change after all. [429a8cd829d6] * src/lib-storage/mailbox-list.c: lib-storage: Don't try to mkdir() empty directory with INDEX=MEMORY [2306acef767e] * src/lib/macros.h: Fixed compiling with gcc v3.3 and older. Perhaps the check needs to be also for somewhat newer versions?.. [8307019ce491] 2013-05-28 Timo Sirainen * src/auth/db-ldap.c: auth ldap: If ldap debug_level>0, log how long initialization took. [c6165b5d6cce] * src/auth/auth-request.c: auth: Keep auth_request referenced during DNS lookup. If the underlying auth connection gets closed, there's nothing else referencing the auth_request. [5a223c6d833f] * src/doveadm/client-connection.c, src/doveadm/client-connection.h, src/doveadm/doveadm-mail-server.c: doveadm-server: Pass local/remote_ip/port to passdb lookups so proxy_maybe works. [feee5a1527d9] * src/auth/auth-request.c: auth: Fixed caching empty userdb result. [c40d67ee9de2] * src/auth/userdb-blocking.c: auth: If blocking userdb returns no fields, don't crash when trying to cache the result. [f9f6467001b9] * src/lib-fs/fs-api.c, src/lib-fs/fs-api.h: lib-fs: Added fs_get_root_driver() [16183ae98947] 2013-05-27 Timo Sirainen * src/doveadm/doveadm-dump-index.c, src/lib-storage/index/dbox-common /dbox-save.c, src/lib-storage/index/dbox-common/dbox-save.h, src /lib-storage/index/dbox-common/dbox-storage.c, src/lib-storage/index /dbox-common/dbox-storage.h, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.h, src/lib-storage/index/dbox-single /sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-save.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c: 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. [967ef2a7fa6f] * src/lib-index/mail-index-transaction-update.c, src/lib-index/mail- index.h: lib-index: Added mail_index_ext_resize_hdr() [bd8ec99cf502] * src/lib-index/mail-index-sync-ext.c: lib-index: Fixed resizing header when old&new sizes were the same when aligned. [ad78dcbe67be] * src/lib-index/mail-index-transaction-export.c: lib-index: Create ext-intro records using the latest sizes, not initial sizes. [a8bc96640cf0] * src/lib-storage/index/dbox-common/dbox-mail.c: dbox: Return cached pop3.order=0 as empty string instead to fix sorting problems. [360fd0ccd3dd] 2013-05-26 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync- mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree.h: 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 [4883a8e1db13] * src/lib-storage/index/imapc/imapc-save.c: imapc: Fixed assert-crash when copying messages. [0b02dc66e9f1] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h: dsync: Small code cleanup. [2d6a3035a6f7] * src/lib-storage/index/imapc/imapc-list.c, src/lib-storage/mailbox- list.h: imapc: Pass through SPECIAL-USE LIST flags if imapc is in INBOX namespace. [e0f7eb1c8e42] * src/doveadm/doveadm-dump-dbox.c, src/lib-storage/index/dbox-common /dbox-file.h, src/lib-storage/index/dbox-common/dbox-mail.c, src /lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-mail.h: dbox: Added support for POP3 message order. [8ee242b6e417] * src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache-transaction.c: 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). [b9a312951881] 2013-05-23 Timo Sirainen * src/lib-http/http-client.c, src/lib-http/http-client.h: lib-http: Added ssl_cert|key|key_password settings to be passed to ssl-iostream. These are used for sending client's SSL certificate. [af9947e1e5f7] 2013-05-22 Timo Sirainen * src/login-common/sasl-server.c: *-login: If ssl=required, don't list any SASL mechanisms before STARTTLS. [9d21241fa792] * src/imap-login/client.c, src/login-common/client-common-auth.c: *-login: ssl=required should imply disable_plaintext_auth=yes [787ef06c4c95] * src/lib-storage/index/index-search.c: lib-storage: Optimize SEARCH_MODSEQ query if it's higher than HIGHESTMODSEQ. [3b6ec8db4166] * src/doveadm/dsync/dsync-brain-mailbox-tree.c: dsync: Fixed unsubscribing from mailbox within same session as the mailbox's deletion. [33efc5396e44] * src/doveadm/dsync/doveadm-dsync.c: dsync: Don't notify replicator process about successful dsync if the dsync failed. [3984f384257e] 2013-05-21 Timo Sirainen * src/login-common/client-common-auth.c: *-login: If auth failed with a specified reason, the reason wasn't actually shown to client. [b05b772ff78f] 2013-05-21 Stephan Bosch * src/imap/cmd-urlfetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.h: lib-imap-urlauth: Fixed deinitialization of the URLAUTH fetch handler. Added reference counting to make sure callbacks will not deinitialize the handler prematurely. [5a36736445e9] * src/lib-imap-urlauth/imap-urlauth-fetch.c: lib-imap-urlauth: Fixed resuming in URLAUTH fetch handler. Fixed URLAUTH fetch handler to properly resume the URLAUTH connection, even when it is deinitialized. [9dbcd10cac28] * src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-imap-urlauth /imap-urlauth-fetch.h: lib-imap-urlauth: Fixed local URLAUTH fetches that didn't immediately finish handling content. Local requests are now also properly counted. [fd35705fbde6] 2013-05-21 Timo Sirainen * src/auth/db-ldap.c: auth: Fixed crash if LDAP query returned multiple results. [0e324209d885] 2013-05-20 Timo Sirainen * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Previous have_save_guids change somewhat broke compatibility with earlier dsync versions. [e0156c479a12] * src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-ibc-stream.c, src/doveadm/dsync/dsync-mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync- mailbox-tree.h: dsync: Fixed unsubscribing from an already deleted mailbox. [9878986a028d] * .hgsigs: Added signature for changeset 7aa929edd551 [4f76d60ba7dd] * .hgtags: Added tag 2.2.2 for changeset 7aa929edd551 [2560f791f6f7] * NEWS, configure.ac: Released v2.2.2. [7aa929edd551] [2.2.2] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- ibc-stream.c, src/doveadm/dsync/dsync-mailbox.h: 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. [c6fee677172a] * src/lib-storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-sync.h: 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. [096054ae8584] * src/lib-storage/index/maildir/maildir-uidlist.c: 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. [422d165d4b8e] 2013-05-19 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-storage.h: lib-storage: Added mailbox_status.have_save_guids. [35871cb142df] * src/lib-storage/index/mbox/mbox-save.c: mbox: Previous change broke index updates to successful saves. [bfca9879f7b6] 2013-05-19 Christian Wiese * doc/example-config/conf.d/Makefile.am: example-config: Added missing auth-dict.conf.ext to distribution [fbe04e687f6f] 2013-05-19 Timo Sirainen * src/lib-http/http-url.c: 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. [fe66746d8a66] * src/lib-http/http-client-host.c: lib-http: Fixed assert-crash when host had multiple IPs and first one had failed. [8ee30aa47930] * src/imap/cmd-urlfetch.c: imap-urlfetch: Don't leak memory on error. Use TCP corking when sending data. [dd0cf0bfdb0c] 2013-05-15 Timo Sirainen * src/lib-storage/index/mbox/mbox-save.c: mbox: Fixed committing transaction after a previous save had failed. [1d6f42853492] * src/lib-storage/index/mbox/mbox-save.c: mbox: If save's input stream fails, fail saving instead of ignoring the error. [02f2ed55d568] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Always return INBOX uppercased when listing mailboxes. [9fcdd9f80e30] * src/lib-storage/list/mailbox-list-iter.c: lib-storage: Don't lose INBOX's \Subscribed flag when returning it is delayed. [0d4d5f7f93df] * src/imap/cmd-select.c: 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. [21ab416ea0cd] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Fixed handling over 26 keywords in a mailbox. [2c770b01d21f] * src/lib-index/mail-index-map.c, src/lib-index/mail-index- transaction-update.c, src/lib-storage/index/index-sort-string.c, src/lib/bsearch-insert-pos.c, src/lib/bsearch-insert-pos.h, src/lib /seq-range-array.c: 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.) [38ca85ccd5af] * src/plugins/quota/quota-status.c: quota-status: If quota_status_* settings are set, don't free them before using. [03aac782261e] * src/lib-storage/index/index-storage.c: 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. [07bc030f18d3] * src/lib-index/mail-cache-fields.c: lib-index: Don't mark field decisions dirty when registering initial cache fields. [ac0170b8db14] * src/lib-index/mail-cache-fields.c: lib-index: Fixed mail_cache_register_fields() decision updates. Normally this shouldn't matter, except when mail_*cache_fields settings have been used. [f8b99f6d993c] * src/lib-storage/index/index-storage.c, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h: lib-storage: Added mail_always_cache_fields setting. [9275238a88bb] 2013-05-11 Florian Zeitz * src/lib/test-unichar.c, src/lib/unichar.c, src/lib/unicodemap.pl: liblib: Fix Unicode decomposition [4c9420265987] 2013-05-15 Timo Sirainen * doc/example-config/dovecot-dict-auth.conf.ext, doc/example-config /dovecot-dict-sql.conf.ext, doc/example-config/dovecot- ldap.conf.ext, doc/example-config/dovecot-sql.conf.ext: example-config: Added comment how all *.conf.ext files are accessed typically. [6b61d3578ef0] * doc/example-config/Makefile.am: Makefile: Removed dovecot-db.conf.ext [c60fd665e37c] * doc/example-config/dovecot-db.conf.ext: example-config: Removed dovecot-db.conf.ext since Berkeley DB support is never built in. [77b95c6d4a16] * doc/example-config/conf.d/auth-checkpassword.conf.ext, doc/example- config/conf.d/auth-deny.conf.ext, doc/example-config/conf.d/auth- dict.conf.ext, doc/example-config/conf.d/auth-ldap.conf.ext, doc /example-config/conf.d/auth-master.conf.ext, doc/example- config/conf.d/auth-passwdfile.conf.ext, doc/example-config/conf.d /auth-sql.conf.ext, doc/example-config/conf.d/auth-static.conf.ext, doc/example-config/conf.d/auth-system.conf.ext, doc/example- config/conf.d/auth-vpopmail.conf.ext: example-config: auth-*.conf.ext should say they're included by 10-auth.conf [93bcbf5cabca] 2013-05-14 Timo Sirainen * src/auth/db-passwd-file.c: auth passwd-file: If we fail to open passwd-file, log a request error directly. Instead of one error message and another info message. [df20af39dc51] * src/lib/hash.h, src/plugins/fts-lucene/lucene-wrapper.cc: Avoid strict aliasing warnings. [bf98dc25e3e4] * doc/example-config/conf.d/20-imap.conf, doc/example- config/conf.d/20-pop3.conf: 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. [0e3c924ff5b4] * doc/example-config/conf.d/20-pop3.conf, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: pop3: Added pop3_deleted_flag setting. [5984de096e3e] * configure.ac: configure: Fixed checking for struct sockpeercred with OpenBSD <5.3 [139ab37f69df] * src/login-common/login-proxy.c: login-proxy: If login fails with timeout, log what the proxying state was. [8a0abbf545ce] * src/login-common/login-proxy-state.h, src/login-common/login- proxy.c: login-proxy: Don't crash if connect() succeeds but login fails with timeout. [cda830ebf6ee] 2013-05-13 Dennis Schridde * doc/man/Makefile.am: Fix out of source build of manpages [8d7d2564dbc9] 2013-05-06 Timo Sirainen * src/lib-index/mail-transaction-log-view.c: 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. [62874b472dc6] * src/imap/cmd-urlfetch.c: imap: URLFETCH sometimes failed thinking it didn't receive all of the message data. [0a97502855df] * src/imap/cmd-urlfetch.c: imap: URLFETCH leaked istream on failures. [bed8c39349fa] * src/imap/cmd-urlfetch.c: imap: Fixed URLFETCH assert-crashes due to output_cmd_lock not being cleared. [01560ee1a4b8] * src/imap/cmd-append.c: imap: Don't eat away the next command if CATENATE fails. [113cb77256a7] * src/imap/cmd-append.c: imap: Fixed assert-crash on invalid APPEND parameters. [0b7039a614f7] * src/imap/cmd-append.c: imap: Don't hang in APPEND when giving it invalid parameters. [ea0390e1789f] * src/lib-imap/imap-parser.c: lib-imap: imap_parser_read_args() shouldn't append multiple EOLs when calling multiple times. [67ec8bb5c27a] * src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-imap-urlauth /imap-urlauth.c: lib-imap-urlauth: Don't try to access garbage memory on error handling paths. [a45bfb4c7d66] * src/doveadm/doveadm-mail-iter.c: 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. [63555663efbc] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- copymove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm- mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm /doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h, src/doveadm /doveadm-mail-search.c: doveadm_mail_iter_init(): Removed unnecessarily returning transaction. If it's needed in future just add a new doveadm_mail_iter_get_transaction(). [7808096bb674] * src/lib-index/mail-transaction-log-view.c: lib-index: The previous assert-crashfix didn't actually fix the problem. [664ec741de8c] * src/lib-storage/list/mailbox-list-maildir-iter.c: maildir++: Fixed mail_shared_explicit_inbox=no [3de486622779] * src/lib-storage/list/mailbox-list-iter.c: namespace { prefix="" list=no } should never be listed. [e45bb6b86e3c] * src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-backend- vfile.c, src/plugins/acl/acl-backend.c: 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 } [714dfc072d60] * src/plugins/acl/acl-mailbox.c: acl: Mailbox creation ignored ACLs (due to API changes in v2.2). The created mailbox couldn't have been accessed however. [11712979c8ab] 2013-05-03 Timo Sirainen * src/plugins/quota/quota-status.c: 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. [aefdf65442cc] 2013-05-02 Timo Sirainen * src/lib-imap-urlauth/imap-urlauth.c: lib-imap-urlauth: Don't try to access garbage memory on error handling path. [24aa10efe132] * src/imap-urlauth/imap-urlauth-worker.c: imap-urlauth-worker: Fixed a crash (by removing unnecessary code) [2a3134b0c25d] * src/imap/cmd-append.c: imap: Don't allow empty CATENATE () list. [5e2fa592c268] * src/imap/cmd-append.c: imap: Fixed using literals for URLs in CATENATE. [8e5ff6809d75] * doc/example-config/dovecot.conf: example-config: Typofix [73d67860db85] 2013-04-23 Timo Sirainen * src/plugins/stats/Makefile.am, src/plugins/stats/stats-connection.c: stats plugin: Don't try to send notifications to already dead stats process. [83d83f55e5c2] * src/lib-master/master-service.c, src/lib-master/master-service.h: lib-master: Added master_service_is_master_stopped() [b8be0d35228e] * src/lib/hash.h: hash_table_clear(): Added a comment about API usage. [25679980d267] * src/lib-storage/index/maildir/maildir-keywords.c: maildir: Crashfix after dovecot-keywords file was re-read. [dd6316615025] * src/lib-storage/list/mailbox-list-index.c: lib-storage: Fixed crash with mailbox_list_index=yes after re- reading index. [d3d380221043] * src/lib-compression/istream-bzlib.c, src/lib-compression/istream- zlib.c: istream-[b]zlib: Don't break if parent stream gets seeked in the middle of reads. [ba63c27667ff] * src/lib-storage/index/dbox-common/dbox-file.c: 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. [6d19a0f32a1b] * src/lib/istream-seekable.c: istream-seekable: Don't crash when seeking forwards past the data we haven't read yet. [2784b88a4260] * src/lib-http/Makefile.am: lib-http: Makefile fix [43e7606b31e2] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c: fts-solr: Don't crash if fts_solr setting is invalid. [d728b4682b0a] * src/master/master-settings.c: master: Fixed warning log message. [2bf265dc0e68] * configure.ac: OpenBSD compile fix: include sys/socket.h when checking for struct sockpeercred. [da8120a3a98d] 2013-04-22 Timo Sirainen * src/plugins/stats/stats-connection.c: stats plugin: Use nonblocking open() for stats fifo. This fixes hangs in it. Alternative would be to use alarm(). [c95cea6e1389] * src/plugins/zlib/zlib-plugin.c: zlib: Keep the last read mail cached uncompressed in a temp file. This fixes performance problems with partial IMAP FETCH commands. [fe56ba75d6ef] 2013-04-20 Timo Sirainen * src/lib-storage/index/index-search.c: lib-storage: Avoid wasting data stack during searches. [e819374de157] * src/lib-mail/istream-attachment-connector.c: Fixed a memory leak. [994488139eca] * src/plugins/stats/stats-plugin.c: stats plugin: Fixed memory leak. [cac2978505b8] 2013-04-19 Timo Sirainen * src/imap-urlauth/imap-urlauth-worker.c, src/lib/ioloop.c: Compiling fix for Sun compilers. I wish gcc/clang warned about these as well, as sometimes they indicate bugs. [46dc61f6acae] * .hgsigs: Added signature for changeset 6fcf060b50f1 [999564a5b2a5] * .hgtags: Added tag 2.2.1 for changeset 6fcf060b50f1 [ff45bebb36bd] * NEWS, TODO, configure.ac: Released v2.2.1. [6fcf060b50f1] [2.2.1] 2013-04-18 Timo Sirainen * src/lib-storage/list/mailbox-list-index-backend.c: layout=index: Fixed listing subscriptions. [2da229987a81] * src/lib-storage/index/index-storage.c: 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. [f0b232b956a6] * src/lib-storage/index/index-storage.c: 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. [61e567c7fdd7] 2013-04-17 Stephan Bosch * src/lib/llist.h: liblib: Added DLLIST2_INSERT_AFTER_FULL() For inserting a new element in a doubly-linked list after an existing element. [bafcb428167b] * src/lib-imap-urlauth/imap-urlauth-connection.c: lib-imap-urlauth: Fixed connection error handling to abort all pending requests. [cc0dd0d79952] 2013-04-17 Timo Sirainen * src/imap/cmd-append.c, src/lib-storage/mail-storage.c: lib-storage: mailbox_save_finish() internally does one final mailbox_save_continue() [8a07a5f6fd54] * src/doveadm/doveadm-fs.c: doveadm fs: Set base_dir. [7f00331058ef] 2013-04-16 Timo Sirainen * src/lib-storage/index/mbox/mbox-sync-parse.c, src/lib- storage/index/mbox/mbox-sync-private.h, src/lib-storage/index/mbox /mbox-sync-update.c: mbox: Handle broken Status: and X-Status: headers without sync errors. [c473f8d2540e] * src/auth/auth-request.c: auth: Fixed multiple master passdbs. [854469baa57c] * src/lib-storage/index/maildir/maildir-util.c: maildir: Fixed crash in some rare situations. [f33bacb03cc2] 2013-04-15 Timo Sirainen * src/plugins/zlib/zlib-plugin.c: zlib: Don't crash when trying to use zlib_save for handler that isn't compiled in. [9a5b132b6832] * src/lib-mail/message-parser.c: lib-mail: Don't assert-crash when multipart doesn't actually have any parts. [b38d5ebacf25] 2013-04-14 Timo Sirainen * src/lib-storage/mail-namespace.c: lib-storage: mailbox_list_index=yes was still broken. [fc9ef7d2251a] * src/doveadm/doveadm-mail.h: Linking error fix. [a7d0bb66639f] 2013-04-12 Timo Sirainen * .hgtags: Added tag 2.2.0 for changeset 1c8e7a295d4b [4af6b464ef9b] 2013-04-11 Timo Sirainen * .hgsigs: Added signature for changeset e2cd03cc9c69 [1c8e7a295d4b] [2.2.0] * NEWS, configure.ac, doc/example-config/conf.d/11-object- storage.conf: Released v2.1.0. [7ea8f20e5195] * src/lib-storage/list/mailbox-list-index.c: lib-storage: mailbox_list_index=yes was broken by previous change. Reverted the previous change and fixed it the right way. [cf898dbcbffb] * src/doveadm/dsync/doveadm-dsync.c, src/lib-storage/mail-user.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl-attributes.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/quota/quota.c: Removed ambiguous mail_user.admin flag. dsync shouldn't sync mailboxes without +r ACL. [7a7fa88aafe7] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- copymove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm- mail-import.c, src/doveadm/doveadm-mail-index.c, src/doveadm /doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm-mail.c: 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. [81a111f1c420] * src/lib-storage/list/mailbox-list-index.c: lib-storage: mailbox_list_index=yes wasn't working with ACLs. [309abf35676e] * src/lib-storage/index/index-mail.c: lib-storage: mail_update_pvt_modseq() shouldn't crash if there is no private index. [17b037da123b] * src/lib/net.c: net_getunixcred(): Fix to previous NetBSD<5 support: return pid as -1. [c802c0b960e2] * src/lib/net.c: net_getunixcred() support for NetBSD * .hgsigs: Added signature for changeset d7f29af73468 [d44c04dc68b9] * .hgtags: Added tag 2.2.rc7 for changeset d7f29af73468 [b0c696c48051] * NEWS, TODO, configure.ac: Released v2.2.rc7. [d7f29af73468] [2.2.rc7] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: If APPEND to selected mailbox doesn't send EXISTS, try if NOOP sends it. This makes Dovecot behave better with Courier. [1bdb2765499c] * src/lib-ssl-iostream/ostream-openssl.c: iostream-ssl: Don't hang if ostream's max buffer size is set to 0. [0ff3c63eb183] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- api.h, src/lib-fs/fs-metawrap.c, src/lib-fs/fs-posix.c, src/lib-fs /fs-sis-queue.c, src/lib-fs/fs-sis.c: lib-fs: Added fs_file_close() to explicitly close all streams that the file has open. [5ce775d70c7d] * src/lib-index/test-mail-transaction-log-view.c: lib-index: Fixed failing unit test [a3bd79aec23a] * src/lib-http/http-client-connection.c: lib-http: Don't double-free request memory when aborting them. [79a74a23b742] * src/lib-http/http-client-host.c, src/lib-http/http-client-request.c: lib-http: http_client_deinit() calls any pending delayed failure callbacks. [6466af800ed4] * src/lib-index/mail-transaction-log-view.c: 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. [286fa7f9538c] * src/lib-fs/fs-api.c: lib-fs: Add data stack frames to most API calls, so the backends/callers don't need to. [08602cf498ea] * src/lib-http/http-client-request.c: lib-http: Added data stack frame to avoid unnecessary data stack wasting. [e8f366822a59] * src/lib-storage/list/mailbox-list-index.c: lib-storage: Fixed mailbox list index crashes with shared mailboxes. [61ee2da538e1] * src/lib-storage/mail-storage-hooks.c, src/lib-storage/mail-storage- hooks.h, src/lib-storage/mail-user.c: lib-storage: Added mail_namespaces_added hook. [3d8c08c19190] * src/lib-storage/list/mailbox-list-index.c, src/lib-storage/mailbox- list.c, src/lib-storage/mailbox-list.h: lib-storage: Make sure index root dir is created when mailbox list index is created. [52233547b371] * src/doveadm/dsync/dsync-mailbox-import.c: 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. [8da591260f7c] * src/lib-storage/list/mailbox-list-index-status.c: lib-storage: Fixed crash with mailbox_list_index=yes and out-of-date index. [f39664bd4b29] 2013-04-09 Timo Sirainen * src/lib/istream-seekable.c: istream-seekable: Fixed handling "buffer full" i_stream_read() result from underlying streams. [fbef40826602] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed assert-crash caused by previous change [194df093a05f] 2013-04-08 Timo Sirainen * src/doveadm/dsync/dsync-mailbox-import.c: 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. [548e59794f2e] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: If saving mails fail, stop trying to save more of them and flooding logs. [e0acf38f6199] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h: dsync: -U parameter never updated replicator's full_sync state. [1a58d4bcb49c] * src/plugins/quota/quota-private.h, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c: quota: dsync shouldn't trigger quota warnings They would probably just be duplicates that were already triggered by the other replica. [54cdc5b6727c] * src/doveadm/dsync/dsync-brain.c: dsync: If dsync fails due to lock timeout, give a better error message. [e41a13ae504d] * src/lib-master/mountpoint-list.c: lib-master: Ignore mountpoints with type cgroup. [b9758a044222] * src/doveadm/doveadm-replicator.c: doveadm replicator: Fixed showing over 1h old timestamps. [db5ce75d70b9] * src/replication/replicator/doveadm-connection.c, src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-queue.h: 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. [cff14ef4cce5] * src/auth/db-checkpassword.c: checkpasword: Don't set AUTH_PASSWORD environment. [9feb2986945c] * src/lib/restrict-process-size.c: 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. [dd0d5981ad42] * src/lib-http/http-client-connection.c: lib-http: If remote SSL cert is invalid, treat it as non-retryable error. [ac0e59dfe081] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-openssl.h, src/lib-ssl-iostream/iostream-ssl-private.h, src/lib-ssl-iostream/iostream-ssl.c, src/lib-ssl-iostream/iostream- ssl.h: lib-ssl-iostream: Added ssl_iostream_has_handshake_failed() [c7555e6d13fd] * .hgsigs: Added signature for changeset ae4341d0e83b [be767af05259] * .hgtags: Added tag 2.2.rc6 for changeset ae4341d0e83b [bc279284fe91] * NEWS, configure.ac: Released v2.2.rc6. [ae4341d0e83b] [2.2.rc6] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed crashes with dsync-server -U parameter [f55fbfc909d1] * src/lib-fs/fs-posix.c: fs-posix: Set file's fd to -1 after closing it [57960f02d1bb] 2013-04-07 Timo Sirainen * src/lib-mail/istream-qp-decoder.c: istream-qp-decoder: Fixed assert-crashes caused by recent forced- CRLF q-p change. [bb25fa35d887] * src/lib-fs/fs-posix.c: 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. [73bef641620d] * src/lib-http/http-client-connection.c, src/lib-imap-urlauth/imap- urlauth-connection.c, src/lib-storage/index/index-mail.c, src/lib /iostream-private.h, src/lib/iostream-temp.c, src/lib/iostream.c, src/lib/istream.c, src/lib/istream.h, src/lib/json-parser.c: istream API change: Added support for multiple destroy callbacks. [81d87e43e167] * src/lib-fs/ostream-metawrap.c: ostream-metawrap: ..and compile fix to previous commit. [f00cc6d783cf] * src/lib-fs/ostream-metawrap.c: ostream-metawrap: Copy parent ostream's errors. [daf6803df4ac] * doc/example-config/conf.d/10-ssl.conf: example-config: Added ssl_client_ca_file [32289a1d44fb] * src/doveadm/doveadm-fs.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/dsync/doveadm-dsync.c, src/lib-http/http-client.c, src/lib-http/http-client.h, src/lib-http /test-http-client.c, src/lib-imap-client/imapc-client.c, src/lib- imap-client/imapc-client.h, src/lib-ssl-iostream/iostream-openssl- context.c, src/lib-ssl-iostream/iostream-ssl.h, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/pop3c /pop3c-client.c, src/lib-storage/index/pop3c/pop3c-client.h, src /lib-storage/index/pop3c/pop3c-storage.c, src/lib-storage/mail- storage-settings.c, src/lib-storage/mail-storage-settings.h: 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. [f0c997709b4d] * src/doveadm/doveadm-fs.c: doveadm fs: Enable fs debug if doveadm -D parameter is given. [de165567386d] * src/lib-fs/fs-api.h: lib-fs: Added debug setting. [821a2b489039] * .hgignore, src/doveadm/Makefile.am, src/doveadm/doveadm-fs.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/lib- fs/Makefile.am, src/lib-fs/fs-test.c: Moved lib-fs/fs-test to "doveadm fs" command. [d09aa718221f] * src/lib-storage/list/mailbox-list-index.c: lib-storage: mailbox list index didn't get its permissions from the root dir. [0b7cb5fdc7b5] * src/lib-storage/mailbox-list.c: 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. [6e8d5d78ce0d] * doc/example-config/conf.d/10-mail.conf: example-config: Added mailbox_list_index. [b945403c491f] * src/doveadm/doveadm-replicator.c, src/replication/replicator /doveadm-connection.c, src/replication/replicator/replicator- queue.c, src/replication/replicator/replicator-queue.h: Added "doveadm replicator remove" command to remove users from replicator queue. [872b06768835] * src/doveadm/doveadm-settings.c, src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed -U to send the notification on the remote server, not local. [8b13ef2e9569] * src/lib-storage/mail-storage.c: lib-storage: If transaction commit fails, don't try to access garbage memory. [3c4712bcf473] * src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-private.h, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync- ibc.h: 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. [d79cf48f1072] * src/lib/connection.c: 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. [cb2e3676547d] * src/lib-http/test-http-client.c: test-http-client: Allow invalid SSL certs in tests. [6bddc6d3530c] * src/lib-http/http-client.c: lib-http: ssl_crypto_device and ssl_allow_invalid_cert settings were ignored. [abe0256dd3c0] * src/lib-http/http-client-connection.c: lib-http: Fixed receiving 100-continue reply after we already timed out waiting for it. [3647c414c67d] * src/doveadm/dsync/doveadm-dsync.c, src/replication/replicator /doveadm-connection.c, src/replication/replicator/dsync-client.c: replicator: Have remote dsync notify the replicator that the user was just synced. This way the replicators are roughly in sync. [f1ba737bc241] 2013-04-06 Timo Sirainen * src/replication/replicator/replicator-settings.c, src/replication/replicator/replicator.c: 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). [9824f8df62a3] * src/lib-index/mail-index-transaction-export.c: lib-index: Added missing NUL separator to attribute-update transaction log record. [edbfb39bc10d] 2013-04-05 Timo Sirainen * src/lib-fs/fs-metawrap.c: fs-metawrap: Fixed fs_copy_finish_async() wrapping [c24783148d78] * .hgsigs: Added signature for changeset 9446df6da5a8 [e8ea4aacf329] * .hgtags: Added tag 2.2.rc5 for changeset 9446df6da5a8 [d63e1bf77774] * NEWS, configure.ac: Released v2.2.rc5. [9446df6da5a8] [2.2.rc5] * doc/example-config/conf.d/10-ssl.conf: example-config: Added ssl_client_ca_dir setting. [fa860c46d794] * src/lib-http/http-client.c: lib-http: Fixed moving delayed request error timeouts between ioloops. [e342046d25ca] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index.h, src/lib-storage/index/index-attribute.c, src/plugins/acl/acl-mailbox.c: 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. [1ef57aca7d2f] * src/imap/cmd-resetkey.c, src/lib-imap-urlauth/imap-urlauth- backend.c: imap: Fixed RESETKEY command to not return failure when it actually succeeded. [c4a017da9b3e] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/lib-http /http-client-request.c, src/lib/test-json-parser.c: Make static analyzer happier. [83568daabff6] * src/doveadm/doveadm-mail-batch.c: doveadm batch: Fixed handling subcommand parameters and errors. [2918bfacf565] * src/plugins/quota/quota-status.c: quota-status: Unknown recipients caused a crash. [b6f69bdcf63f] * src/lib-storage/list/mailbox-list-index-backend.c: layout=index: Don't crash on mailbox_update() if the mailbox path couldn't be found. [9c3bf2cb62e8] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixes to location parameter handling. [831351968d3a] * .hgsigs: Added signature for changeset 92c88eca562d [4f62a9a86a97] * .hgtags: Added tag 2.2.rc4 for changeset 92c88eca562d [53082e1f3ae8] * NEWS, TODO, configure.ac: Released v2.2.rc4. [92c88eca562d] [2.2.rc4] * .hgsigs, .hgtags, NEWS, configure.ac, src/auth/auth-request.c, src/doveadm/Makefile.am, src/doveadm/doveadm-dump-log.c, src/doveadm /doveadm-mail-batch.c, src/doveadm/doveadm-mail-index.c, src/doveadm /doveadm-mail.c, src/doveadm/doveadm-mail.h, src/indexer/master- connection.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail- index-sync-update.c, src/lib-index/mail-index-transaction-update.c, src/lib-index/mail-transaction-log.h, src/lib-master/mountpoint- list.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/pop3c/pop3c-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/list/mailbox- list-delete.c, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/mailbox-list- private.h, src/lib/macros.h, src/plugins/acl/acl-mailbox.c, src/plugins/virtual/virtual-config.c: Merged changes from v2.1 tree. [249305f71c73] * .hgsigs: Added signature for changeset 582108c190f8 [c42846219939] * .hgtags: Added tag 2.1.16 for changeset 582108c190f8 [9fbc51f4448b] * NEWS, configure.in: Released v2.1.16. [582108c190f8] [2.1.16] 2013-04-04 Timo Sirainen * src/plugins/quota/quota-status.c: quota-status: Removed duplicate "action=" text from overquota messages. [852cfd3e4933] * src/plugins/quota/quota-status.c: quota-status: Added quota_status_(success|nouser|overquota) settings. [c7da636a09c4] 2013-04-02 Timo Sirainen * src/plugins/quota/quota-status.c: quota-status: If size parameter is given, use it to check quota. [2493ec20df8c] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index-sync-update.c, src/lib-index/mail- transaction-log.h: lib-index: Backported MAIL_TRANSACTION_ATTRIBUTE_UPDATE from v2.2 [b2fad9b21e60] 2013-03-31 Timo Sirainen * src/auth/auth-request.c: auth: Implemented userdb_import and userdb_userdb_import fields. [78eb04213251] * src/auth/auth-request.c: auth: Fixed passdb_import not to crash when =value isn't given. [00de06c6cc21] * src/auth/auth-request.c: auth: Renamed userdb_userdb_import to passdb_import, since that's what it really is. [963c6f616aa4] * src/auth/auth-request.c: auth: Allow using userdb_userdb_import in passdb query to set multiple userdb fields. [cd919c490ea6] * src/lib-master/mountpoint-list.c: lib-master: Ignore mountpoints under /tmp and /var/tmp by default. [9d79ef9cf337] 2013-03-27 Timo Sirainen * src/lib-index/mail-index-transaction-update.c: lib-index: Removed obsolete 16bit size check asserts from mail_index_update_header_ext() [87d0c4056b4d] 2013-03-25 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-batch.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added "batch" command to run multiple mail commands. This only makes sense when the commands are run with -A or -u , so that the commands are run for the same user before moving onto the next user. [8cc28a5a3f4f] 2013-02-22 Timo Sirainen * src/doveadm/doveadm-mail-index.c, src/indexer/master-connection.c: 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?..) [73feea4d22aa] 2013-03-24 Timo Sirainen * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/maildir/maildir- storage.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/pop3c/pop3c-storage.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/list/mailbox-list-delete.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox-list- maildir.c, src/lib-storage/mailbox-list-private.h, src/plugins/acl /acl-mailbox.c, src/plugins/virtual/virtual-config.c: "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. [eece943c7521] 2011-10-30 Dennis Schridde * src/lib/macros.h: Add DOVECOT_PREREQ to src/lib/macros.h - convenience macro to test the version of dovecot [a588b743d695] * configure.in: 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 [e294e416f5ba] 2013-04-04 Timo Sirainen * src/replication/replicator/replicator.c: replicator: If replicator is unconfigured, fail at startup. [c67d787164fa] * src/lib-master/master-interface.h, src/lib-master/master-service- private.h, src/lib-master/master-service.c, src/lib-master/master- service.h, src/master/service-process.c: lib-master: Added master_service_get_process_min_avail() [c32bfc54bc50] * src/doveadm/dsync/dsync-brain-mailbox-tree.c: dsync: Mailbox name fixing didn't work when namespace prefixes were used. [ef0669c017df] * src/lib-storage/index/imapc/imapc-list.c: imapc: Don't assert-crash when ACL plugin tries to lookup "" mailbox. [bb81deef6b42] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Give an early error message if imapc_list_prefix ends with separator. [e9cab6d5e82a] * src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail- user.c: lib-storage: Crashfixes for handling shared mailboxes for nonexistent users. [9891526c2def] * src/lib/istream-chain.c: istream-chain: Final fixes to handling merged streams. [0f88312ef951] * src/lib/istream-chain.c: istream-chain: More fixes to handling merged streams. [29fdc9ff273d] * src/lib/istream-chain.c: istream-chain: Fixed memory leak. [a4dae80c419f] * src/lib-imap-urlauth/imap-urlauth-backend.c: lib-imap-urlauth: Don't memcpy() data over itself. [3c84909de2e2] * src/lib/istream.c: i_stream_read(): Added assert. [285e1c6a2115] * src/lib/istream-chain.c: istream-chain: Fixed handling small streams that get merged into same buffer. [096ad7cd6e9e] * src/auth/db-ldap.c, src/auth/db-ldap.h: ldap auth: Don't access freed memory. [2294f815a4f0] * src/lib-storage/list/mailbox-list-iter.c: lib-storage: Add \Noinferiors flag to INBOX when such namespace config is used. [96381ea68124] * src/auth/auth-request.c: auth: If passdb wasn't used, don't preserve its extra fields in auth request. [05d2b6003495] * src/lib-mail/quoted-printable.c, src/lib-mail/quoted-printable.h, src/lib-mail/test-quoted-printable.c: lib-mail: quoted_printable_decode*() now returns all newlines as CRLF. This is required by BINARY fetches, since the original data had CRLFs. [6821794943a5] * src/lib-storage/mail-search.c: lib-storage: Fixed searching with multiple parameters and prefetching. [088481a77a7a] * src/lib-imap-client/imapc-connection.c, src/lib-storage/index/pop3c /pop3c-client.c: imapc, pop3c: Don't hide SSL handshake errors. [ec933ef95687] * src/doveadm/server-connection.c, src/lib-http/http-client- connection.c, src/lib-imap-client/imapc-connection.c, src/lib-ssl- iostream/iostream-openssl.c, src/lib-ssl-iostream/iostream-ssl.c, src/lib-ssl-iostream/iostream-ssl.h, src/lib-storage/index/pop3c /pop3c-client.c: lib-ssl-iostream: Simplified certificate validation. Also give better error messages. [ef939a32de27] * src/lib-http/http-client-peer.c: lib-http: Crashfix for previous change. [41c10ddda867] * src/doveadm/server-connection.c, src/lib-http/http-client- connection.c, src/lib-imap-client/imapc-connection.c, src/lib-master /master-service-ssl.c, src/lib-ssl-iostream/iostream-openssl- context.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl- iostream/iostream-openssl.h, src/lib-ssl-iostream/iostream-ssl- private.h, src/lib-ssl-iostream/iostream-ssl.c, src/lib-ssl-iostream /iostream-ssl.h, src/lib-storage/index/pop3c/pop3c-client.c: lib-ssl-iostream: Added support for TLS SNI, which caused some API changes. [f4bac0352464] * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h: lib-http: Prepare for TLS SNI support. [52efc1740e15] * src/lib-http/http-client.c: lib-ssl: If debug=TRUE, set also SSL verbose=TRUE [c040fa0fcfdf] * src/doveadm/server-connection.c, src/lib-http/http-client- connection.c, src/lib-http/http-client.h, src/lib-imap-client/imapc- connection.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib- storage/index/pop3c/pop3c-client.c: 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. [4e9851e24c28] * src/lib-http/http-client-connection.c: lib-http: Removed last traces of http_client_connection_error() [c1f1624a299c] * src/doveadm/server-connection.c, src/lib-http/http-client- connection.c, src/lib-imap-client/imapc-connection.c, src/lib-ssl- iostream/iostream-openssl.c, src/lib-ssl-iostream/iostream- openssl.h, src/lib-ssl-iostream/iostream-ssl-private.h, src/lib-ssl- iostream/iostream-ssl.c, src/lib-ssl-iostream/iostream-ssl.h, src /lib-storage/index/pop3c/pop3c-client.c: 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. [970914436288] * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h: lib-http: Pass connect failures all the way to request callback's error string. [3580439c06d8] * src/lib-http/http-client-connection.c: 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. [998afe8ffed9] * src/lib-http/http-client-connection.c: lib-http: Fixed double-free on delayed connect() failures caused by recent change. [18a0b570df80] * src/lib-http/http-client-connection.c: lib-http: If SSL init/handshake fails for connection, destroy it. [d3921050f540] * src/lib-http/http-client-connection.c: lib-http: If connect() fails, destroy the http_client_connection. Fixes hanging requests when a peer has multiple connections. [74eb53f797d6] * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h: lib-http: Simplify error handling by delaying connect() failures. [1bd5972eac0a] * src/lib-http/http-client-host.c, src/lib-http/http-client-private.h, src/lib-http/http-client-request.c: 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. [b4927eea33fd] * src/lib-http/http-client-peer.c: lib-http: Removed unused code. [ace3911ca077] * src/doveadm/client-connection.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/server-connection.c, src/lib-http/http-client- connection.c, src/lib-http/http-client.c, src/lib-imap-client/imapc- client.c, src/lib-imap-client/imapc-connection.c, src/lib-master /master-service-ssl.c, src/lib-master/master-service-ssl.h, src/lib- ssl-iostream/iostream-openssl-context.c, src/lib-ssl-iostream /iostream-openssl-params.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream/iostream-openssl.h, src/lib-ssl-iostream /iostream-ssl-private.h, src/lib-ssl-iostream/iostream-ssl.c, src /lib-ssl-iostream/iostream-ssl.h, src/lib-storage/index/pop3c/pop3c- client.c: lib-ssl-iostream: API changes to return error strings if init() functions fail. This also fixed a couple of broken error handlings. [02f6b66458b1] * src/lib-ssl-iostream/iostream-ssl-none.c: lib-ssl-iostream: Removed unused iostream-ssl-none.c [778daa3852ef] * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h, src/lib-http/http-client.c: 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. [cb4dc46f3327] * src/lib-http/http-client-host.c: lib-http: Pass DNS lookup error message to caller instead of logging it. [25d77e31d914] 2013-04-03 Timo Sirainen * dovecot.m4: dovecot.m4: Reverted last change with added comments. [cd3482684bd2] 2013-04-02 Timo Sirainen * src/lib-master/master-service.c: lib-master: If fifo isn't accepted, don't double-destroy the connection. [5f365feb5a2b] * src/lib-http/http-client-peer.c, src/lib-http/http-client.c, src /lib-http/http-client.h: lib-http: Added ssl_ca setting to specify the CA certificate directly. [c256b246302d] * dovecot.m4: 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. [f11ffd0e8b16] * src/auth/mech-dovecot-token.c, src/auth/mech-winbind.c: auth: Fixed also DOVECOT-TOKEN (=URLAUTH) and NTLM/GSS-SPNEGO (via winbind) to work. [ac54838e9071] * src/auth/mech-anonymous.c: auth: Fixed ANONYMOUS mechanism to work again. [caead8e506dc] 2013-03-31 Timo Sirainen * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: Added more debug logs about quota_grace [c75b26e1d17f] * src/doveadm/dsync/dsync-mailbox-export.c: dsync: Fixed syncing without GUIDs. [800836bd8f2e] * src/doveadm/dsync/doveadm-dsync.c: dsync: Don't crash if second user initialization fails. [85e619b556ee] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: If remote doesn't send some mails, don't exit with code 0. [0eef38d78069] * src/auth/auth-request.c: auth: nodelay and nopassword fields weren't handled correctly. [37cd62516b37] * src/lib-storage/mail-storage.c, src/plugins/virtual/virtual-save.c: virtual plugin: Fixed saving/copying messages to virtual mailbox. [9a8119326bd0] * src/lib-storage/index/index-status.c, src/lib-storage/mail- storage.h: 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. [12136db6e31f] * src/lib-storage/index/index-storage.c, src/lib-storage/mail- storage.c: lib-storage: Don't reset mail_save_context.copying|moving|copying_via_save too early. [f31d241d5371] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Create a default namespace for auto-created shared mail_users. Some code nowadays requires user to have prefix="" namespace. [f617e2fcce66] 2013-03-28 Timo Sirainen * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: maildir++ quota: Fixed relative quota_grace when taking limit from maildirsize file [426701831d00] 2013-03-27 Timo Sirainen * src/lib-storage/index/maildir/maildir-mail.c: maildir: If maildir_broken_filename_sizes=yes, don't try to fix sizes in filenames. [6d9444ea1c9a] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- metawrap.c: lib-fs: Always keep the error in the parentmost fs. This fixes problems with getting the correct error message when wrapper filesystems are used. [d4014211c154] * src/doveadm/dsync/doveadm-dsync.c: 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. [b4040180f30c] * src/doveadm/dsync/doveadm-dsync.c: dsync: Don't access uninitialized variable [37711fb8369f] * src/replication/replication-common.h: Compiler warning fix [10bcadab431c] 2013-03-26 Timo Sirainen * src/lib-storage/mail.c: lib-storage: Added assert. [11d61991a525] * src/doveadm/dsync/doveadm-dsync.c: dsync: Allow doveadm plugins to override local_location at run(). [d7893c4460c3] * src/doveadm/dsync/doveadm-dsync.c: dsync: Allow syncing same mail root dirs if indexes are different. Fixes dsyncing with storages that have no mail root dirs. [0c52fb39ca3d] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Crashfix when importing from storage without GUIDs. [494d1a69fc1c] * src/auth/db-ldap.c: ldap: Another fix to sub-dn-lookup. [0fbeb82f3f95] * src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c, src/auth/userdb-ldap.c: ldap: Crashfix [aa8e77ab2b60] * src/auth/db-ldap.c: ldap: Compiling fix to previous change [3396bc2575f5] * src/auth/db-ldap.c: ldap: Improved sub-dn-lookup error message. [8ca1aba14888] 2013-03-25 Timo Sirainen * src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/userdb-ldap.c: ldap: Various crashfixes [a6f8c4d6252e] * src/auth/db-ldap.c: ldap: Don't crash if attributes have no @subrequests. [3de93139afce] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync- mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree.h: doveadm sync/backup: Added -g to sync only the specified mailbox (by GUID) Similar to -m . [c51873a8e0d9] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed syncing attribute streams. [acb88f199704] * src/imap/cmd-urlfetch.c: imap: Fixed more URL escaping in URLFETCH replies. [0634cf4acf8d] 2013-03-24 Timo Sirainen * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c: 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. [33e78edac8f5] * src/doveadm/client-connection.c: doveadm-server: Don't continue handling commands if input stream is already closed. This fixes trying to handle extra input from previous dsync command. [ce2b9b430eed] * src/imap/cmd-genurlauth.c, src/imap/cmd-urlfetch.c: imap: GENURLAUTH and URLFETCH didn't escape URL parameters when needed. [d3e5585778f8] * src/doveadm/doveadm-replicator.c, src/replication/replicator /doveadm-connection.c, src/replication/replicator/replicator- queue.c, src/replication/replicator/replicator-queue.h: doveadm replicator status: Without parameter show overview status. [a4d4edb63ff9] * src/doveadm/doveadm-print-table.c: doveadm: Table formatter now hides the titles if all of them are marked hidden. [210282ae46e1] * src/doveadm/doveadm-replicator.c, src/replication/replicator /doveadm-connection.c: doveadm: Added "replicator replicate" command to force replication of user(s). [1b269672e33b] * src/replication/replicator/replicator-settings.c: replication_full_sync_interval default changed from 12h -> 24h This allows doing full resyncs only at nights. [1fa248d2aef7] * src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-queue.h, src/replication/replicator/replicator.c: replicator: If sync fails, retry it in 5 minutes. [c4138d8db3dd] * src/replication/replicator/replicator-queue.c: replicator: Replicator queue export/import at exit/startup wasn't really working. [1af7c6f22793] * src/doveadm/doveadm-replicator.c: doveadm replicator status: Show sync time as "-" for "never". [85f4f6ff4551] * src/doveadm/doveadm-replicator.c, src/replication/replicator /doveadm-connection.c: doveadm replicator status: Fixed user mask to work. [ae5699ba6324] * src/doveadm/Makefile.am, src/doveadm/doveadm-replicator.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added "replicator status" command. [660d1fd6fc9c] * src/replication/replication-common.h, src/replication/replicator/Makefile.am, src/replication/replicator /doveadm-connection.c, src/replication/replicator/doveadm- connection.h, src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-queue.h, src/replication/replicator/replicator-settings.c, src/replication/replicator/replicator.c: replicator: Added doveadm socket for communicating with "doveadm replicator". [5271c894700c] * src/lib-storage/list/mailbox-list-iter.c: lib-storage: Fixed listing subscribed namespace prefixes. [7671f07867b7] * src/lib-storage/list/mailbox-list-iter.c: lib-storage: If INBOX isn't subscribed, don't return it in subscriptions list. [438561ec237b] 2013-03-22 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: Compiling fix [fed3adf86ab5] * src/lib-storage/index/shared/shared-list.c: lib-storage: Fixed crash if shared namespace had subscriptions=yes [6f5b14d4ad56] * src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Added mailbox_list_get_settings() [304cd3067061] * src/doveadm/dsync/dsync-brain.c: dsync: Use fcntl() locking instead of flock(). [b436c1f6bd06] * src/doveadm/dsync/dsync-mailbox-import.c: Compiler warning fix [b839613c1573] * src/plugins/acl/acl-lookup-dict.c: acl: Don't crash when rebuilding acl dict for "unusable" namespaces. [d211174a2392] 2013-03-21 Timo Sirainen * src/login-common/client-common-auth.c: login proxy: Set a default 30s timeout. [9439a43bd645] * src/login-common/login-proxy.c: login proxy: Stop proxy_timeout only after successfully logged in (not after connected). [a4ea6946c621] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync /dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h: dsync: -m '' parameter now syncs mailbox list, but no actual mails. [38774adaddaf] 2013-03-20 Timo Sirainen * .hgsigs: Added signature for changeset 11bd79bf4866 [f722e60f9811] * .hgtags: Added tag 2.2.rc3 for changeset 11bd79bf4866 [fe8f92d44f56] * NEWS, configure.ac: Released v2.2.rc3. [11bd79bf4866] [2.2.rc3] * src/auth/mech-scram-sha1.c, src/doveadm/doveadm-pw.c, src/lib-mail /message-decoder.c, src/lib-settings/settings-parser.c, src/lib- storage/index/dbox-common/dbox-save.c, src/lib-storage/mail-storage- settings.c, src/plugins/fts/fts-api.c: Merged changes from v2.1 tree. [f874733b4029] * src/doveadm/doveadm-pw.c: doveadm pw -t: Don't ask for password if -p is also specified. Patch by Paul Wallingford. [e511408bd991] * src/plugins/fts/fts-api.c: fts: Fixed crash when searching virtual mailboxes and fts backend without lookup_multi(). Patch by Mike Abbott / Apple [87a9eec10145] 2013-03-04 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-save.c: dbox: Crashfix on some failed save error conditions. [a7928075f0fd] * src/lib-settings/settings-parser.c: lib-settings: Improved error messages when config server disconnects too early. [09fcb43c47a4] 2013-02-27 Timo Sirainen * src/lib-mail/message-decoder.c: message-decode: Minor fix to previous change. The == condition should probably never happen, but handle it anyway. [311371856dcf] * src/lib-mail/message-decoder.c: message-decoder: Fixed assert-crash when trying to decode partial character twice. [cf7b590d19f9] 2013-02-26 Timo Sirainen * src/lib-storage/mail-storage-settings.c: lib-storage: If namespace has disabled=yes, don't verify alias_for validity. [a46951762a27] * src/auth/mech-scram-sha1.c: scram-sha1: Support authzid field. Check fields' correctness better. [0af0def22533] 2013-03-20 Timo Sirainen * src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/list /mailbox-list-subscriptions.c: mbox: Moved .subscriptions back to control_dir/ root instead of control_dir/.imap/ [9a913c803608] * src/lib-storage/list/mailbox-list-fs.c: layout=fs: Fixed crash with mbox when control dir was enabled. [f39c649057ea] * src/doveadm/dsync/dsync-mailbox-export.c: dsync: Fixed retrying a search when GUIDs aren't available. [3d5a065e18bb] * src/doveadm/dsync/dsync-brain-mails.c: dsync: Avoid a creating a lot of searches for each synced mailbox. [1a5a0b7cf37a] * src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync-mail.h, src/doveadm/dsync/dsync-mailbox-export.c: dsync: Don't crash when requested mail doesn't have a GUID. [19ce7403114f] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Fixed assert-crash when mail root doesn't exist (pop3c). [fb934cb4a37e] * src/imap/imap-fetch-body.c, src/lib-imap-storage/imap-msgpart.c: imap: Don't crash with invalid FETCH BODY[sections] [ab434891f2af] * doc/example-config/conf.d/10-mail.conf: example-config: Removed a warning about mail_attachment_dir not being tested. [1ae6a51450f2] * src/lib-lda/lmtp-client.c: lib-lda: Send QUIT after DATA replies have been received. [b61be8a47126] * src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl- backend-vfile.c: acl: Put ACL files to control dir if storage doesn't have a mail directory. [abd9763e91d1] * src/lib-storage/list/mailbox-list-index-backend.c: layout=index: Fixed mailbox_exists() [c742a7bf48a6] * src/imap/cmd-resetkey.c: imap: Fixed RESETKEY assert-crashing [8bacc34cead9] * src/lib-storage/list/mailbox-list-index-backend.c: layout=index: Don't return a path for \Noselect mailboxes. [4649782a4213] * src/lib-storage/mail-storage.c: 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. [d44ae1527bc0] * src/lib-fs/fs-api.c: lib-fs: Fixed fs_default_copy() to work with async writes. [653d81709dd0] * src/replication/replicator/Makefile.am, src/replication/replicator /doveadm-connection.c, src/replication/replicator/doveadm- connection.h, src/replication/replicator/dsync-client.c, src/replication/replicator/dsync-client.h, src/replication/replicator/replicator-brain.c: replicator: Renamed doveadm-connection to dsync-client. [fccd79d41d37] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed attribute value comparisons. [8b5c098cbd0f] 2013-03-19 Timo Sirainen * src/doveadm/dsync/dsync-mailbox.c: Compiler warning fix. [a4c01707feb7] * src/lib-storage/mail-storage-hooks.c, src/lib-storage/mail-storage- hooks.h, src/lib-storage/mail-storage-private.h: lib-storage: Added a way to create plugins that forcibly hook into mail storage. Mostly meant for doveadm_sieve plugin. [7a334ebc0145] * src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync- mailbox.c, src/doveadm/dsync/dsync-mailbox.h, src/lib-storage/index /index-attribute.c, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/plugins/acl/acl-attributes.c: lib-storage: Mailbox attributes can now be accessed via istreams. The idea is to use istreams for larger values. [0e5a359b7b7f] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed sending mailbox attributes with stream ibc. [46b223892373] * src/doveadm/dsync/dsync-brain-mails.c: dsync: Mail requests were lost when attributes were being synced. [ccba138bc1c6] * src/plugins/acl/acl-attributes.c: acl: Don't iterate ACL attributes if prefix has no chance of matching them. [64c0449b8fec] * src/plugins/acl/acl-api.h, src/plugins/acl/acl-attributes.c, src/plugins/acl/acl-backend-vfile.c: acl: Preserve dovecot-acl file's mtime when dsyncing. [394e1c6f0aaf] * src/plugins/acl/acl-backend-vfile.c: acl: Don't unnecessarily rewrite dovecot-acl file when re-adding the same ACL. [45999b94692c] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Set last_change timestamp for unset attributes. [3e4c4f9c230b] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Allow mailbox_attribute_set() to also unset values. This allows giving the last_change timestamp also when unsetting. [cdfc9f30b482] * src/doveadm/dsync/dsync-mailbox-import.c, src/lib-imap-urlauth/imap- urlauth-backend.c, src/lib-storage/index/index-attribute.c, src/lib- storage/index/index-storage.h, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/plugins/acl/acl-attributes.c, src/plugins/acl/acl- storage.h: 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. [2396eb0a3e3f] * src/lib/net.c, src/lib/net.h: 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. [790bb5dfadc6] * src/lib/test-json-parser.c: test-json-parser: Fixed failing test with some non-gcc/clang compilers. [ea6636b36b1c] * src/auth/db-ldap.c: ldap auth: Removed base() wrapper around @dn values. The idea was to provide extensibility, but it can better be done with LDAP URLs. [5b975ddc1c9a] * src/lib-fs/Makefile.am, src/lib-fs/fs-test.c: lib-fs: fs-test now sets the ssl_client_set.ca_dir [70dd78cd89ab] * src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/dsync/doveadm-dsync.c, src/lib-storage/index/imapc /imapc-settings.c, src/lib-storage/index/imapc/imapc-settings.h, src /lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/pop3c/pop3c-settings.c, src/lib-storage/index/pop3c /pop3c-settings.h, src/lib-storage/index/pop3c/pop3c-storage.c, src /lib-storage/mail-storage-settings.c, src/lib-storage/mail-storage- settings.h: 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. [cf9f36e8ada0] * src/lib-fs/fs-api.h: lib-fs: Allow passing through SSL client settings via struct fs_settings. [aa255de644d0] 2013-03-18 Timo Sirainen * src/auth/db-ldap.c, src/auth/db-ldap.h: 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. [16a410a546de] * src/auth/db-ldap.c: 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". [b6986edec17f] * src/auth/db-ldap.c: ldap auth: Fix to previous change. [0b33047566a9] * src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c, src/auth/userdb-ldap.c: 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". [07a52d0edd46] * src/auth/auth-fields.c, src/auth/auth-fields.h, src/auth/auth- request-handler.c: auth: Return "nologin" and "proxy" fields to login process without "=value". [d7d7cbcc2b67] * src/lib-master/master-service.h: Compiling fix for Solaris [1728871f6d21] * src/lib-mail/istream-qp-decoder.c: istream-qp-decoder: Fixed assert-crashing with buffer size allocations. The original implementation was copy&pasted from istream-base64-decoder without enough thinking.. [ee7352f46d1e] * src/lib-mail/quoted-printable.c, src/lib-mail/test-quoted- printable.c: 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. [689dbeadf168] 2013-03-15 Timo Sirainen * src/lib-master/master-service.h: lib-master: include unistd.h for master_getopt() users. [69c26a9e3be5] * src/lib-storage/index/maildir/maildir-uidlist.c: Compile fix on non-gcc/clang. [5f14a12a1700] * src/lib/istream-chain.c: Compile fix on non-gcc/clang. [afdad7fbe8a6] 2013-03-14 Timo Sirainen * src/plugins/acl/Makefile.am, src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl-api.h, src/plugins/acl/acl-attributes.c, src/plugins/acl/acl-backend- vfile.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl- plugin.h, src/plugins/acl/acl-storage.h, src/plugins/acl/doveadm- acl.c, src/plugins/imap-acl/imap-acl-plugin.c: 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. [3ba8fa6d3cc2] * src/doveadm/dsync/Makefile.am, src/doveadm/dsync/dsync-brain- mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync /dsync-brain-private.h, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-private.h, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync- ibc.h, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync /dsync-mailbox-export.h, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h, src/doveadm/dsync/dsync- mailbox.c, src/doveadm/dsync/dsync-mailbox.h, src/doveadm/dsync /dsync-transaction-log-scan.c, src/doveadm/dsync/dsync-transaction- log-scan.h: dsync: Added support for syncing mailbox attributes. [c6082de4bf5b] * src/lib-imap-urlauth/imap-urlauth-backend.c, src/lib-storage/index /index-attribute.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index- transaction.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h: 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. [f3cd9e5cbe99] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index.h, src/lib-index/mail-transaction-log-file.c, src /lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.h: 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. [db0136374bb0] * src/lib-master/master-service.c, src/lib-master/master-service.h: lib-master: Added version_string_verify_full() [9a8eaf97559d] * src/lib-mail/test-istream-dot.c: istream-dot unit test updated. [e5b5e2ce7578] 2013-03-13 Timo Sirainen * src/lib-compression/istream-bzlib.c, src/lib-compression/istream- zlib.c, src/lib-compression/ostream-bzlib.c, src/lib-compression /ostream-zlib.c, src/lib-fs/ostream-cmp.c, src/lib-http/http- transfer-chunked.c, src/lib-mail/istream-attachment-extractor.c, src /lib-mail/istream-binary-converter.c, src/lib-ssl-iostream/istream- openssl.c, src/lib-ssl-iostream/ostream-openssl.c, src/lib/iostream- private.h, src/lib/iostream-temp.c, src/lib/iostream.c, src/lib /istream-concat.c, src/lib/istream-file.c, src/lib/istream-mmap.c, src/lib/istream-rawlog.c, src/lib/istream-seekable.c, src/lib /istream-tee.c, src/lib/istream.c, src/lib/istream.h, src/lib /ostream-file.c, src/lib/ostream-rawlog.c, src/lib/ostream.c, src/lib/ostream.h: 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). [6cabb95d32ec] * doc/example-config/conf.d/15-lda.conf, src/lda/main.c, src/lib-lda /lda-settings.c, src/lmtp/commands.c: lda, lmtp: postmaster_address = postmaster@%d works now. [34d61f447433] 2013-03-11 Timo Sirainen * src/lib-fs/fs-api.h: lib-fs: Fixed fs_delete() API description. [dc4be035a038] * src/plugins/acl/acl-backend.c: acl: Delay initializing default backend ACLs. This fixes a crash with LAYOUT=index. [20955c64bde3] 2013-03-10 Timo Sirainen * src/plugins/fts-solr/solr-connection.c: fts-solr: Removed unnecessary code. [30baa62d8e72] * src/lib-http/http-client-connection.c: lib-http: Don't crash if request callback manages to get the connection destroyed. [5606f1a6cbc6] * src/lib-http/http-client-request.c: lib-http: Added assert. [81172305f1b2] * src/lib-http/http-client-connection.c, src/lib-http/http-client- private.h, src/lib-http/http-client-request.c, src/lib-http/http- client.h: 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. [59572bce44fe] * src/lib-http/test-http-client.c: lib-http: Removed unnecessary code from test-http-client [7db226db28df] * src/lib-http/http-client-peer.c: lib-http: Free peer if it can't be connected to and it has no pending requests. [904f78e80fa5] * src/lib-http/http-client-connection.c, src/lib-http/http-client- peer.c, src/lib-http/http-client-private.h: 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. [69407b54a557] * src/lib-http/http-client-connection.c: lib-http: If SSL connection gets lost, log the last SSL error. [0eaa4fddd61d] * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Enable SSL_MODE_ENABLE_PARTIAL_WRITE [1a5414423958] * src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Fixed "bad write retry" errors when output had to be buffered. [09037e62447b] * src/lib/istream-rawlog.c, src/lib/ostream-rawlog.c: iostream-rawlog: Pass through close() to parent input/output stream. [01cfcf2b1c3c] * src/lib-http/http-client-connection.c, src/lib-http/http-client- peer.c: lib-http: Fixed hangs with urgent requests. [d3e3edf8f7eb] * src/lib-http/http-client-private.h, src/lib-http/http-client- request.c, src/lib-http/http-client.h: lib-http: Allow caller to find out what state a request is in. [5e63f628e3ca] 2013-03-08 Timo Sirainen * src/lib-http/http-client-request.c: lib-http: Send Content-Length whenever payload is specified, even if its size is 0. [0aea43f87c0b] 2013-03-06 Timo Sirainen * src/lib/Makefile.am, src/lib/ostream-hash.c, src/lib/ostream-hash.h: Added ostream-hash for calculating a hash from data going through ostream. [7a08461c5559] 2013-03-05 Timo Sirainen * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h: 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. [52e5d4186006] * src/lib-http/http-client-connection.c: lib-http: Fixed crash caused by previous change. [00ee7a8306c7] * src/lib-http/http-client-connection.c, src/lib-http/http-client- private.h, src/lib-http/http-client-request.c: lib-http: If we get disconnected, say exactly what the error was. [f89ebdc1625d] * src/lib/connection.c: connection: Give input/output streams a name. [194ec0e10f3a] * src/lib/connection.c: connection_list_deinit(): Set disconnect_reason correctly to CONNECTION_DISCONNECT_DEINIT [310c5ce38ef3] * src/lib-fs/istream-metawrap.c: lib-fs: istream-metawrap supports now seeking before reading the metadata. [3dcdbab51347] * src/lib-http/http-client.c: lib-http: Fixed http_client_wait() assert. [bdca6ecb5bb4] * src/lib/ioloop.c, src/lib/ioloop.h: Added io_loop_have_immediate_timeouts() [6daf58f568a0] * src/lib-http/http-client-host.c: lib-http: If connection was refused to a host, retry again on next request. Instead of never retrying again for the host. [a2d59816565d] 2013-03-04 Timo Sirainen * src/util/tcpwrap.c: tcpwrap: Fixed crash at startup. [b5a1a40348b8] * src/lib-storage/index/raw/raw-storage.c: lib-storage: raw storage allows opening mails with absolute paths again. Fixed dovecot-lda -p parameter. [cda5cb307619] * src/doveadm/doveadm-zlib.c, src/lib-compression/compression.c: Fixed compiling without zlib. [65705d9d94f1] 2013-02-27 Timo Sirainen * src/doveadm/doveadm-util.c: doveadm: Fixed connecting to UNIX sockets. [976bf9e69367] * src/plugins/acl/acl-backend-vfile-acllist.c: acl: Don't assert-crash on storages that have no root directory. [2020ed15efb9] * src/lib/ioloop.c: timeout_add_short(1) may have caused infinite looping. [2bbec4dadcb6] * src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync- brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync /dsync-ibc-private.h, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync-ibc.h: dsync: If I/O gets stalled, log the state in which it happened. [f6377e089dee] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed running dsync for multiple users within same command. [82ce71d8625c] * src/doveadm/dsync/dsync-mailbox-tree-fill.c: dsync: When changing duplicate mailbox GUIDs, choose the same mailbox on both sides. [1aa33a573234] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: dsync: Don't unnecessarily try to create all the mailboxes when they already exist. [fe170fd8168e] * src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h, src/doveadm/dsync/test- dsync-mailbox-tree-sync.c: dsync: Change duplicate local mailbox GUIDs if they're found. [6bebab0d5c02] * src/doveadm/dsync/dsync-mailbox-tree-fill.c: dsync: Skip mailbox aliases (symlinks) for now. [323b76127e3a] 2013-02-26 Timo Sirainen * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c: lib-fs: If fs_read_stream() creates a seekable stream, keep it open for future reads. [d84c7c11d7b7] * src/lib/istream-seekable.c: 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. [9297e1fcbe9e] * src/lib-fs/istream-metawrap.c: istream-metawrap: Support seeking if underlying stream supports seeking [526cd348936a] * src/lib-fs/fs-api.c: fs-api: Fixed fs_copy() generic implementation's error messages [38b9ea9fef2c] * src/lib-http/http-client-peer.c, src/lib-http/http-client-private.h, src/lib-http/http-client.c: 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. [287e48607c96] * src/lib-fs/fs-metawrap.c: lib-fs: fs-metawrap should prefetch using the same file as it uses for reading. [2f8ccc958a6d] * src/lib-http/http-client.c: lib-http: Assert-crash in http_client_wait() if it's waiting without doing anything. [90d6ba26fb95] * src/lib/ioloop.c, src/lib/ioloop.h: Added io_loop_have_ios() [4517f9b201f2] * src/lib-http/http-client-host.c, src/lib-http/http-client-private.h, src/lib-http/http-client.c: 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. [4655adf5affc] * src/lib-storage/index/index-storage.c, src/lib-storage/mailbox- list.c: 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. [b90a89ca840f] * src/doveadm/doveadm-util.c, src/doveadm/doveadm-util.h: doveadm: Improved deciding whether to use TCP or UNIX socket for a given name. [91631438abce] * src/lib-storage/mail-user.c: lib-storage: Never auto-remove the auto-created prefix="" namespace. [c9491a07998b] * src/auth/mech-scram-sha1.c: scram-sha1: Support authzid field. Check fields' correctness better. [2583040ca9aa] 2013-02-25 Timo Sirainen * .hgsigs: Added signature for changeset e62fa121f4a2 [508e677af12d] * .hgtags: Added tag 2.2.rc2 for changeset e62fa121f4a2 [98dbd335085a] * NEWS, configure.ac: Released v2.2.rc2. [e62fa121f4a2] [2.2.rc2] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Still more fixing to listing subscriptions. [ef7eb84d9a3a] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Fixed up previous subscription list change. [c8fc02c88cf6] * src/lib-master/master-service.c, src/lib-master/master-service.h, src/login-common/main.c: login: Don't fail at startup by trying to load SSL plugin. [effecdd32cb0] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Fixed listing subscriptions for namespaces with prefix. [e47910ee4459] * configure.ac: configure: Fixed plugins when compiling --with-shared-libs [1ad404473d81] * .hgsigs: Added signature for changeset 508d46f85815 [1739a61bcd39] * .hgtags: Added tag 2.2.rc1 for changeset 508d46f85815 [37126d25c614] * NEWS, configure.ac: Released v2.2.rc1. [508d46f85815] [2.2.rc1] * src/imap/cmd-list.c, src/indexer/indexer-worker.c, src/lib-dict /dict-client.c, src/lib-dict/dict-sql.c, src/lib-index/mail- transaction-log-file.c, src/lib-lda/duplicate.c, src/lib- storage/index/dbox-common/dbox-file-fix.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync- rebuild.c, src/lib-storage/index/index-status.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index-sync.c, src/lib-storage/index/maildir/maildir-sync.c, src/lib-storage/mail- storage.c, src/lib/unichar.c, src/plugins/fts-solr/fts-backend- solr.c, src/plugins/fts/fts-build-mail.c, src/plugins/quota/Makefile.am: Merged changes from v2.1 tree. [d3815278ed19] * src/lib/unichar.c: Fixed checking UTF8 input validity. [fa9387588430] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Preserve [SW]=sizes when renaming a maildir duplicate file. [cfd3f39102bd] 2013-02-24 Timo Sirainen * src/lib-storage/index/index-storage.h, src/lib-storage/index/index- sync.c: 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. [10c1eb4ddef2] * src/lib-storage/index/index-status.c: 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. [cd413ab7aeb3] 2013-02-22 Timo Sirainen * src/lib-index/mail-transaction-log-file.c: lib-index: Fixed assert-crash on some error conditions. [e33fe1a7bb89] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Truncate header if it's over 1 MB. Previously we just warned about it. [0a932ba1f01f] * src/lib-dict/dict-client.c: 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. [225c64ed0439] * src/lib-lda/duplicate.c: lib-lda: Give a better error message if dotlocking duplicate db fails. [81ea622b6394] * src/lib-dict/dict-sql.c: dict-sql: Iterating with multiple SQL queries didn't free all the queries. [0e0fd4b5a582] * src/indexer/indexer-worker.c: 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. [6d45b9bd1cff] * src/plugins/fts/fts-build-mail.c: fts: Don't send binary MIME parts to backend through UTF8 text conversion. Based on patch by Mike Abbott / Apple. [b0e68c53771e] * src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib- storage/index/dbox-common/dbox-file.h, src/lib-storage/index/dbox- multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync-rebuild.c: mdbox: If m.X file has no mails, don't try to fix it infinitely in storage rebuild. [b91e1b94af21] * src/lib-storage/mail-storage.c: mdbox: Don't try to undelete any mailboxes in storage rebuild to avoid assert-crashes. [9cb64709dd8c] * src/plugins/quota/Makefile.am: quota-status: Fixed compiling with older autotools. [8ec52854e823] 2013-02-21 Timo Sirainen * src/imap/cmd-list.c: imap: Allocate LIST patterns from command pool so they don't get corrupted in long runs. [6c9b182d9a8c] 2013-02-25 Timo Sirainen * TODO: TODO updated [539baf0adc2e] * src/lib/unichar.c: Fixed checking UTF8 input validity. [2aee41cd72b0] * src/doveadm/dsync/doveadm-dsync.c: dsync-server: Don't crash if connection didn't come from doveadm- server [c0deb3a9bb3d] * src/doveadm/dsync/doveadm-dsync.c: dsync: Minor code cleanup. [c20696d7ecb0] * src/doveadm/dsync/doveadm-dsync.c: dsync: Don't close stdin/stdout when not supposed to. [608d07701d54] * configure.ac, src/lib/hash-decl.h, src/lib/hash.h, src/lib/macros.h: 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. [4baf0183f13d] * src/doveadm/doveadm-server.h, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/server-connection.c, src/doveadm/server-connection.h: dsync: Added tcps (TCP+SSL) target. [95ecdd9e13bf] * src/doveadm/Makefile.am, src/doveadm/client-connection.c, src/doveadm/client-connection.h, src/doveadm/main.c: doveadm-server: Added support for ssl listeners. [9a7680fe65ce] * src/lib-storage/index/imapc/imapc-settings.c, src/lib- storage/index/imapc/imapc-settings.h, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/pop3c/pop3c-settings.c, src /lib-storage/index/pop3c/pop3c-settings.h, src/lib- storage/index/pop3c/pop3c-storage.c: lib-storage: Replaced pop3c_ssl_ca_dir and imapc_ssl_ca_dir with generic ssl_client_ca_dir. [5998396f0928] * src/lib-master/master-service.c: lib-master: If ssl settings are used, initialize ssl context automatically. [6b0c284ecede] * src/lib-ssl-iostream/iostream-openssl-common.c: lib-ssl-iostream: Support wildcard certificates when verifying hostname. [ca262f790338] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/server-connection.c, src/doveadm/server-connection.h: dsync: Use iostreams instead of fd when receiving connection from doveadm-server. [1841a4b95783] * Makefile.am, configure.ac, dovecot-config.in.in, src/anvil/Makefile.am, src/auth/Makefile.am, src/config/Makefile.am, src/dict/Makefile.am, src/dns/Makefile.am, src/doveadm/Makefile.am, src/imap-urlauth/Makefile.am, src/imap/Makefile.am, src/indexer/Makefile.am, src/ipc/Makefile.am, src/lda/Makefile.am, src/lib-compression/Makefile.am, src/lib-sql/Makefile.am, src/lib- storage/Makefile.am, src/lmtp/Makefile.am, src/plugins/quota/Makefile.am, src/pop3/Makefile.am, src/replication/aggregator/Makefile.am, src/replication/replicator/Makefile.am, src/stats/Makefile.am, src/util/Makefile.am: MODULE_LIBS is now part of LIBDOVECOT. No need to explicitly link it everywhere. [217fb4ca9b5a] * configure.ac: configure: Fix previous commit & implement AC_C_TYPEOF ourself. RHEL5's autoconf was old enough to not have AC_C_TYPEOF. [61508a42a44b] * configure.ac: configure: Removed accidentally enabled clang -fsanitize options for now. [5be9659a2738] 2013-02-24 Timo Sirainen * src/imap/Makefile.am, src/imap/cmd-uid.c, src/imap/imap-client.c, src/imap/imap-commands.c: imap: Handle UID commands without a wrapper UID command. This avoids calling command hooks once for UID command and again for the real command. [558b0b13779d] * src/doveadm/client-connection.c, src/doveadm/client-connection.h, src/doveadm/doveadm-mail.h, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/server-connection.c, src/doveadm/server-connection.h: dsync: Added tcp:host[:port] target for syncing via doveadm-server. [08edb5716823] * src/doveadm/server-connection.c: doveadm: If doveadm-server sends broken input, disconnect. [8e54e73bdade] * src/doveadm/doveadm-util.c, src/doveadm/doveadm-util.h, src/doveadm /server-connection.c: doveadm: When connecting to doveadm socket without :port, use doveadm_port setting. [b2bc9dd5f8d9] * src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h: doveadm: Renamed doveadm_proxy_port setting to doveadm_port. There's still an alias for doveadm_proxy_port. [75d76f1b884d] * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: 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. [df3da60fa137] * src/doveadm/dsync/dsync-brain-mailbox-tree.c: dsync: Always skip alias namespaces. [f5fb1ca222e3] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: If lazy_expunge_only_last_instance is set, copy only last instances of mails. Requires storage backend to support refcounts. [5c31615ce111] * src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-single/sdbox-mail.c, src/lib-storage/index/index-mail.c, src /lib-storage/index/maildir/maildir-mail.c, src/lib-storage/mail- storage.h: 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. [5e0c1ecad4a5] * src/lib-settings/settings-parser.c: lib-settings: Parse block names {} case-insensitively. This fixes namespace { mailbox foo { .. } } settings when they go through environment and get uppercased. [a4f82af20821] * src/imap/cmd-append.c: imap: Don't leak mailboxes on CATENATE errors. [514b8fc1e278] * src/lib-storage/index/index-mail.c: Compiler warning fix. [12f12add18d2] * src/lib/ostream-file.c: o_stream_send_istream(): Fixed copying when [io]streams neither have usable fds. [2747055fc91b] * src/imap/imap-commands-util.c, src/lib-index/mail-index-util.c: Avoid unsigned integer overflows. [94ebc333c47a] * src/imap/cmd-append.c: imap: Added assert+comment to give easier to understand error. [b0682d64a990] * src/lib-storage/index/index-mail.c: lib-storage: If mail saving is cancelled, don't check that all the input was read. [b787cf83bca8] * src/lib/str-find.c, src/lib/test-bsearch-insert-pos.c, src/lib/time- util.c: Avoid under/overflows in unsigned integer calculations. [f74bf0521d69] * src/lib/test-json-parser.c: test-json-parser: Don't access memory out of bounds. [573682b34a76] * src/lib/seq-range-array.c, src/lib/test-seq-range-array.c: seq_range_array_add(): Fixed handling sequence ranges that contain zeros. [db0ada89b81a] * src/lib/istream-crlf.c: Avoid overflow error from clang -fsanitize=integer. [11858b3dbd84] * src/lib-index/mail-index-sync.c: lib-index: Don't unnecessarily update dovecot.index again after log rotation. [76f576fc28dc] * configure.ac, src/anvil/anvil-settings.c, src/auth/db-ldap.c, src/config/doveconf.c, src/director/director-settings.c, src/director/doveadm-connection.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-stats.c, src /lib-auth/auth-master.c, src/lib-dict/dict-sql.c, src/lib- dict/dict.c, src/lib-http/http-client-peer.c, src/lib-imap/imap- envelope.c, src/lib-index/mail-cache-compress.c, src/lib-index/mail- cache-fields.c, src/lib-index/mail-cache-lookup.c, src/lib-index /mail-cache-transaction.c, src/lib-index/mail-cache.h, src/lib-index /mail-index-map.c, src/lib-index/mail-index-sync-keywords.c, src /lib-index/mail-index-sync.c, src/lib-index/mail-index.c, src/lib- index/mail-index.h, src/lib-index/mail-transaction-log-file.c, src /lib-mail/test-message-address.c, src/lib-master/master-service.c, src/lib-settings/settings-parser.c, src/lib-sql/driver-sqlpool.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/index- mail-headers.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-rebuild.c, src/lib-storage/index/index-search.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/list/mailbox-list-index.c, src /lib-storage/list/mailbox-list-iter.c, src/lib-storage/mail-storage- hooks.c, src/lib-storage/mail-storage.c, src/lib/istream-concat.c, src/lib/priorityq.c, src/lib/strnum.c, src/lib/test-aqueue.c, src/lib/test-base64.c, src/lib/test-bsearch-insert-pos.c, src/lib /test-seq-range-array.c, src/lmtp/commands.c, src/log/log- settings.c, src/master/service-monitor.c, src/plugins/fts/fts-build- mail.c, src/plugins/quota/quota.c, src/replication/replicator /replicator-settings.c, src/stats/stats-settings.c: 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). [d3cf06639864] * src/doveadm/doveadm-mail-fetch.c: Compiler warning fix. [f1e8f8a73196] * src/lib/hash.h: Previous "duplicate const" fix accidentally deleted some checking code instead of fixing it. [ecd923186510] * src/lib/hash-decl.h, src/lib/hash.h, src/lib/macros.h: Fixed "duplicate const" warnings with new clang. [871154fc93f2] * src/lib-storage/mail-search-register-human.c: Minor code cleanup [88c325e81c7c] * configure.ac, src/lib/macros.h: Use proper HAVE_TYPEOF check instead of checking with gcc versions. [e2ffe53ac89c] * src/lib/test-json-parser.c: Compiler warning fix. [357b1f1285ea] * src/doveadm/dsync/doveadm-dsync.c: dsync: Don't log about remote dsync status if we're not doing a remote sync. [c05773011313] 2013-02-22 Timo Sirainen * src/auth/auth-client-connection.c: auth_debug_passwords: Add a warning to AUTH/CONT lines about them having sensitive data. [0ceb0029a781] * src/pop3/pop3-client.c, src/pop3/pop3-client.h: pop3: Fixed infinite looping [dcbebe49922a] * configure.ac, src/plugins/quota/Makefile.am, src/plugins/quota /quota-fs.c, src/plugins/quota/quota-fs.h: quota-fs: Support NetBSD 6.0 libquota. Patch by Emmanuel Dreyfus. [b3f890c4a41c] * src/doveadm/doveadm-auth.c: doveadm user: Write an error if user doesn't exist. [bf817bc963f7] * src/config/doveconf.c: doveconf: Discourage using plain "doveconf" by recommending -n parameter in the output. [eb03b24ffa65] * src/auth/userdb-passwd.c: 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? [4eea2224e16b] * NEWS, doc/example-config/conf.d/10-mail.conf, src/lib-storage/mail- storage-settings.c: mail_shared_explicit_inbox: Switched the default from "yes" to "no". [c3d3d3360425] * src/auth/auth-request.c: auth: Use real_lip for proxy_maybe checks. [68c9d01ae5d2] * src/auth/auth-request.c, src/auth/auth-request.h, src/lib-auth/auth- client-request.c, src/lib-auth/auth-client.h, src/login-common /client-common.c, src/login-common/client-common.h, src/login- common/main.c, src/login-common/sasl-server.c: auth: Added real_[lr]ip, real_[lr]port variables. The unreal ones differ when a trusted proxy overrides them. [c43fcfa2c4b4] * src/imap-login/imap-proxy.c, src/lib-lda/lmtp-client.c, src/lib-lda /lmtp-client.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src /login-common/login-proxy.c, src/pop3-login/pop3-proxy.c: proxying cleanup: Send TTL=1 (instead of TTL=0) as "no more proxying". [48c1c58948f5] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Make sure mailbox_get_open_status() can't be used with items that can fail. [8740056e9b2f] * src/doveadm/doveadm-mail-index.c, src/indexer/master-connection.c: 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?..) [994298d9c3d5] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Fixed assert-crash when saving mails if UIDs weren't assigned. [0158c7b2c5db] 2013-02-21 Timo Sirainen * src/lib-storage/list/mailbox-list-index.c: mailbox_list_index=yes: Don't crash if destroying list before its init finished. [3fb9a8bc35aa] * .hgsigs: Added signature for changeset 018de2aa893a [5c83eacce0de] * .hgtags: Added tag 2.2.beta2 for changeset 018de2aa893a [2a52cc85c67d] * configure.ac: Released v2.2.beta1. [018de2aa893a] [2.2.beta2] 2013-02-21 Stephan Bosch * src/lib-http/http-client-connection.c: lib-http: Fixed hanging on errors [fc9bfa8a3980] 2013-02-21 Timo Sirainen * src/lib-http/test-http-transfer.c, src/lib-storage/list/mailbox- list-fs-iter.c: Removed dead assignments. [fda302d15042] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed hiding the "remote command returned error" message when it was unnecessary. [69af3ef3a482] * src/plugins/quota/Makefile.am: quota-status: Fixed compiling [87c206c1eaf4] * TODO: TODO updated [28f4d5a841e7] * .hgignore, dovecot-config.in.in, src/lib-storage/list/mailbox-list- fs-iter.c, src/login-common/ssl-proxy-openssl.c: Merged changes from v2.1 tree. [68e855648d92] * dovecot-config.in.in, src/plugins/quota/Makefile.am: Added quota plugin's headers to LIBDOVECOT_STORAGE_INCLUDE. This allows creating external plugins that depend on the quota plugin (similar to trash plugin). [20ea109b30a7] 2013-02-20 Timo Sirainen * src/plugins/quota/Makefile.am, src/plugins/quota/quota-status.c: 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). [f12f2f2f7459] 2013-02-19 Timo Sirainen * .hgignore, src/plugins/quota/Makefile.am, src/plugins/quota/quota- status.c: 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 [980be1dc80c2] 2013-02-17 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: mbox: If namespace prefix is used, don't show /inbox mailbox. [b96df105ec55] 2013-02-16 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: login-common: Updated obsolete login_process_size setting in error log message. [1713ffc870c1] 2013-02-21 Stephan Bosch * src/lib-http/http-client-peer.c, src/lib-http/http-response- parser.c, src/lib-http/test-http-client.c: lib-http: Minor improvements. [b0c4a5ce4933] 2013-02-21 Timo Sirainen * src/lib-http/http-client-request.c, src/lib-http/http-transfer- chunked.c: lib-http: Fixed hangs/crashes with chunked ostream. Based on patch by Stephan Bosch. [3b905464ea09] * src/lib-storage/list/mailbox-list-index.c: lib-storage: Fixed crash with mailbox_list_index=no [c945d06207b8] 2013-02-20 Stephan Bosch * src/lib-http/http-client-host.c: lib-http: Fixed hang with failed DNS lookups [fe24e69ea0c5] 2013-02-20 Timo Sirainen * src/lib-storage/list/mailbox-list-index-status.c, src/lib- storage/list/mailbox-list-index.c, src/lib-storage/list/mailbox- list-index.h: mailbox_list_index: Delay allocating the index so mbox can override the index path. [f703e1fd7c21] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed mailbox_update() to not shrink uidnext. [808a64899e8a] * src/plugins/acl/acl-api.c: acl: Skip ACLs if admin user flag is set (especially dsync). [8e992ae76c45] * src/plugins/acl/acl-mailbox.c: acl: If copy() doesn't have enough permissions, free mail_save_context properly. [cfdd31b26493] * src/lib-storage/mail-storage.c: 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. [990ff0e1eb6a] * src/lib-storage/mail-storage.c: lib-storage: If mailbox is deleted, mailbox_save_begin() should cancel mail_save_context. [e383647dc9dd] * src/lib-storage/index/index-storage.c, src/lib-storage/mail- storage.c: lib-storage: Reset saving/moving/copying_via_save flag between mail_save_context uses. [7df4ca451d2e] * src/lib-http/test-http-client.c: test-http-client: Added POST functionality also. [07dfd4391d22] * src/lib-http/test-http-client.c: test-http-client: If given a parameter, GET it. [98c86534d4b7] * src/lib-http/http-client-request.c, src/lib-http/http-client.c: lib-http: Avoid hanging in http_client_wait() while there's nothing to do. [164c70254dd0] * src/lib-http/http-client-request.c, src/lib-http/http-client.h, src/plugins/fts-solr/solr-connection.c: lib-http: Minor API change: Added http_client_request_finish_payload() [3bc84d6c9e8d] * src/lib-storage/list/mailbox-list-index-status.c: mailbox_list_index: Removed race conditions from index updates. [5a068b9c04a9] * src/lib-index/mail-index-sync.c: lib-index: Added assert. [61a61657d887] 2013-02-19 Timo Sirainen * src/lib/hostpid.c: hostpid_init() should die if hostname is invalid. This was accidentally changes during last commit. [cce9a8ebb386] * src/lib-index/mail-transaction-log-file.c: lib-index: Give a better error message if index is readonly and log is tried to be locked. [d40e3bf2de89] * src/lib-storage/list/mailbox-list-index-backend.c: LAYOUT=index: Index is the only source for mailbox info, don't try any syncing with storage. [d977a746819d] * src/lib-storage/list/mailbox-list-index-backend.c, src/lib- storage/list/mailbox-list-index-status.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h: lib-storage: Fixed mailbox_update() when using mailbox_list_index=yes [2529f4e12665] * src/lib/guid.c, src/lib/guid.h: Added guid_128_equals() helper function. [19e24db0bbd4] * src/auth/userdb-passwd-file.c: auth: Fix to previous change. [670e8d50ce73] * src/auth/userdb-passwd-file.c: auth: userdb passwd-file iteration now skips passdb-only entries if there are other userdbs. [0fc8856e24aa] * src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c: dsync: Added more debug logging. [2ee278eaa1e3] * src/auth/db-passwd-file.c, src/auth/userdb-passwd-file.c: auth: If user in passwd-file has no userdb info, userdb lookup now returns it as nonexistent. [31e48b4732a5] * src/doveadm/dsync/dsync-brain-mailbox.c: dsync: Improved debug output. [ff56652304dd] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Assert-crashfix for handling conflicting private flags. [7f5c29a81f03] * src/plugins/replication/replication-plugin.c: replicator plugin: And crashfix for the previous change.. [c79e5ff5e30d] * src/plugins/replication/replication-plugin.c: replication plugin: Notify replicator also for changes in public mailboxes. [556d05100810] * src/lib-storage/index/index-sync-pvt.c: lib-storage: Copy initial private message flags from shared flags for public mailboxes. [0e236dd1bad3] * src/replication/replicator/doveadm-connection.c: replicator: Use -N parameter for dsync (replicate all visible namespaces). [fc2dca0b54c5] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc-stream.c: dsync: Renamed -a parameter to -N. It also now skips invisible namespaces. [607758d425e7] * src/lib-storage/index/index-sync-private.h, src/lib-storage/index /index-sync-pvt.c, src/lib-storage/index/index-sync.c, src/lib- storage/index/index-transaction.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/plugins/acl/acl- mailbox.c, src/plugins/virtual/virtual-save.c: lib-storage: Saving/copying no longer discards private message flags. [02529503c59c] * src/log/log-connection.c: log: Recent log parser change started logging "Invalid log line" errors unintentionally. [be857a95b381] 2013-02-18 Timo Sirainen * src/log/log-connection.c: log: Don't crash if log client sends line with pid=0. [3ca7e0eaaf4b] * src/lib/hostpid.c: my_hostname was broken because of recent change. [19e4448dee4f] * src/config/doveconf.c: doveconf: Added -H parameter to check for hostname hash duplicates. [62a930eb22b5] * src/lib/guid.c, src/lib/guid.h: Added guid_128_host_hash_get(). [80344aedd8fd] * src/lib/hostpid.c, src/lib/hostpid.h, src/master/service-process.c: 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. [a6b40687c0a4] * src/master/main.c: master: Don't close stderr. If log process fails at startup, the errors are logged there. [cc681437372a] * src/lib/hostpid.c, src/lib/hostpid.h, src/lib/lib.c: Free my_hostdomain at deinit. [420477745a17] * doc/example-config/conf.d/15-lda.conf: example-config: Updated hostname setting's comments. [6a67a1440e15] * src/doveadm/dsync/dsync-brain.c: dsync: Fix to checking which side should do the locking. [df29194c1ab6] 2013-02-17 Timo Sirainen * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixes to handling local changes during dsync. [953594b35bb3] * src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c: dsync: Fail if changing mailbox GUID update doesn't work. [945ea8abe713] * src/lib-storage/index/mbox/mbox-storage.c: mbox: Fixed mailbox_update() for changing mailbox GUID. [7d1479aa534b] * src/lib-index/mail-index-map-hdr.c, src/lib-index/mail-index.h: lib-index: Make sure unused_old_sync_* fields are cleared in header in old inedx files. [1dd1e88ba0a2] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed infinite loop in importer. [e7396c0f7f66] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Improved unexpected error logging. [9c095a50ba3e] * src/lib-storage/index/maildir/maildir-save.c: maildir: Don't try to preserve old filename when saving if uidlist couldn't be locked. [e07a8b17af8b] * src/lib-storage/index/maildir/maildir-uidlist.c: 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. [c92ebbedc6f9] * src/doveadm/dsync/dsync-brain.c: dsync: If locking fails, fail instead of continuing. [adb9857a3879] * src/doveadm/dsync/dsync-brain.c: dsync: Use full hostname+domain when comparing if hosts are different in locking. [e7aabd79c9d5] 2013-02-16 Timo Sirainen * .hgsigs, .hgtags, NEWS, configure.ac, src/auth/auth-request.c, src/imap/imap-client.c, src/lib-index/mail-cache-fields.c, src/lib- index/mail-cache-lookup.c, src/lib-index/mail-cache-sync-update.c, src/lib-index/mail-cache.c, src/lib-ssl-iostream/istream-openssl.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/dbox- multi/mdbox-storage-rebuild.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/mail-storage.c, src/lib/Makefile.am, src/lib/buffer.c, src/lib/iostream-rawlog.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/str.c, src/lib/test-lib.c, src/lib/test- lib.h, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/plugins/acl/doveadm-acl.c: Merged changes from v2.1 tree. [e63d1cf19ec7] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: mailbox_copy() didn't properly free the save context. [dd0eebe378fe] 2013-02-08 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Crashfix for storage rebuild [2def25f07ca6] * .hgsigs: Added signature for changeset fc75811f3c08 [26fa19903dcd] * .hgtags: Added tag 2.1.15 for changeset fc75811f3c08 [5fe181f1497a] * NEWS, configure.in: Released v2.1.15. [fc75811f3c08] [2.1.15] 2013-02-06 Timo Sirainen * src/lib-storage/mail-storage.c: lib-storage: Convert INBOX to uppercase also when namespace has inbox=no. This fixes assert-crash in mailbox_check_mismatching_separators(). [3ec0d772be49] * src/lib-index/mail-cache.c: lib-index: Avoid assert-crashing later if mmap(dovecot.index.cache) fails. [a54f749f5a44] 2013-02-05 Timo Sirainen * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: lmtp: If verbose_proctitle=yes, update the process state in the title. [63117ab893dc] 2013-02-04 Timo Sirainen * src/lib-index/mail-cache.c: lib-index: Bug in cache file size verification caused the whole cache file to be mapped. [443ff272317f] * src/lib-storage/index/index-mail.c: 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. [b15a98fd8e15] * src/imap/imap-client.c: imap: Set [io]stream name for imap client connections. [23fb615c3628] * src/lib/istream-tee.c: istream-tee: Copy the parent stream's name to child streams. [eb117a619075] * src/lib/istream.c: i_stream_close(): Set stream_errno to EPIPE instead of ENOENT. [93633121bc9d] 2013-02-02 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-storage.c: dbox: Fail if trying to create a mailbox that already exists. [004b69090776] 2013-01-31 Timo Sirainen * src/lib-ssl-iostream/istream-openssl.c: lib-ssl-iostream: Pass the plain istream's fd to ssl_istream. [bf80034a547d] * src/lib/iostream-rawlog.c: iostream-rawlog: Ignore 0 byte writes instead of assert-crashing. [f35a8649634c] * src/auth/auth-request.c: auth: Removed assert-checks, allowing plugins to set skip_password_check. [5751963a3be8] 2013-01-30 Timo Sirainen * .hgsigs: Added signature for changeset b314c97d4bbf [57eb9a6ac6c0] * .hgtags: Added tag 2.1.14 for changeset b314c97d4bbf [49e85db52ae4] * NEWS, configure.in: Released v2.1.14. [b314c97d4bbf] [2.1.14] 2013-01-29 Timo Sirainen * src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache-sync- update.c, src/lib-index/mail-cache.c: lib-index: Fixed invalidating buffered cache file with map_with_read. [0b0399f1b6aa] 2013-01-22 Timo Sirainen * src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache.c: lib-index: Fixes to handling broken cache records that point outside file. Especially try to avoid failing by trying to allocate gigabytes of memory. [99b7be36631b] * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-mail.h: lib-storage: Catch input stream errors when parsing mail. [2b76d357a56a] 2013-01-15 Timo Sirainen * src/lib/Makefile.am, src/lib/buffer.c, src/lib/str.c, src/lib/test- lib.c, src/lib/test-lib.h, src/lib/test-str.c: buffer: Always keep +1 byte available for str_c()'s NUL. [c762a9af72c1] 2013-01-14 Timo Sirainen * src/plugins/acl/doveadm-acl.c: doveadm acl: Added "recalc" command to rebuild acl_lookup_dict for the user. [6bee6d0c611f] 2013-02-16 Timo Sirainen * NEWS: NEWS file updated. [890b5b52ffd0] * doc/example-config/conf.d/20-pop3.conf, src/pop3/pop3-client.c, src/pop3/pop3-client.h: 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. [473c0389eb10] * src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: pop3: Minor code cleanup [35194cf0693e] * README, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/client.h, src/pop3/main.c, src/pop3/pop3-capability.h, src/pop3/pop3-client.c: pop3: Use RFC 3206 [SYS/*] and [AUTH] response codes. [7e292b8352d9] * src/pop3/pop3-client.c: pop3: Code cleanup: INBOX always exists, no need to check for it here. [928deb8a0b8c] * src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-mailbox-state.h: dsync: Merge last-common-* values from both local and remote when they differ. [502a50925641] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync- brain.h, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync /dsync-ibc.h: 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. [6f024e0289da] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: If unexpected changes happen during sync, return a safe last- common-uid for state. [5a3586ffc644] * src/doveadm/dsync/doveadm-dsync.c: dsync: Don't hide the final error messages from remote. [e4aba707f867] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed last-common-uid lookup when local UID was expunged but remote wasn't. [4e90a6911b26] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Assert-crashfix for previous importer changes. [e49424a3b13e] * src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache- transaction.c: lib-index: Avoid getting expunged-status in index lookups when not necessary. This especially improves dsync performance. [a709ae98a728] * src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox- save.c, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- sync.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual /virtual-search.c, src/plugins/virtual/virtual-sync.c: mdbox, mbox, virtual: Avoid getting expunged-status in index lookups when not necessary. This especially improves dsync performance with mdbox. [e3eaa8303987] * src/lib-index/mail-index-transaction-view.c, src/lib-index/mail- index-view.c: 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). [f9b1aaf844c8] * src/lib-storage/index/index-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c: lib-storage: Assert-crash if mailbox_save_context isn't properly freed before reusing. [9847164c6fd7] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: mailbox_copy() didn't properly free the save context. [2cf0049a8e75] * src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h: dsync: Various importer fixes. [360661d99c42] * src/plugins/fts-solr/solr-connection.c: fts-solr: Don't assert-crash on failures. [e247f3a74947] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Avoid possibly long function recursion. [516a337480f4] * src/doveadm/dsync/doveadm-dsync.c: 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. [77ef526e6a0a] * src/doveadm/dsync/dsync-brain-mails.c: dsync: Don't log a redundant "importing mailbox failed" error. [5ff6ff443b4c] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Don't log read() failed: EOF when remote intentionally fails early. [93a8a32adfd8] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-mails.c, src/doveadm/dsync/dsync-mail.c, src/doveadm/dsync /dsync-mail.h, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync- mailbox-import.h: dsync: Various importer fixes. Handle unexpectedly wrong mailbox state better. [4260244e57e2] * src/doveadm/dsync/doveadm-dsync.c: dsync: Wait for child process to close only after closing the stdin/out/err to it. Otherwise the ssh process doesn't shutdown. [44eda990f757] 2013-02-13 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Don't assert-crash if namespace prefix begins with the separator. [fb367a977077] * NEWS, doc/example-config/conf.d/90-quota.conf, src/plugins/quota/quota.c: Renamed quota_last_extra to quota_grace. [c0c38c4070f5] * src/auth/auth-cache.c: auth: When receiving SIGUSR2 log also about current cache usage. [75c686b526d4] 2013-02-11 Timo Sirainen * NEWS, doc/example-config/conf.d/90-quota.conf: NEWS, example-config: Add a note about quota_last_extra [ed5fa76f0dc7] * src/plugins/quota/quota.c: quota: Use quota_last_extra only for LDA/LMTP (not for IMAP). [c890fa3b5efd] * src/lib-lda/smtp-client.c: lib-lda: Assert-crashfix when sending a rejection mail failed. [7a2ca282a53e] * src/plugins/quota/quota-private.h, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c: 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. [e866b9e64f09] * src/lib-imap-urlauth/imap-urlauth-backend.c: lib-imap-urlauth: Use MAILBOX_ATTRIBUTE_PREFIX_DOVECOT for the imap- urlauth key. [d4080bea7286] * src/lib-storage/mail-storage.h: lib-storage: Added MAILBOX_ATTRIBUTE_DOVECOT_PREFIX macro. [0ed27889cd70] 2013-02-11 Stephan Bosch * configure.ac, src/plugins/fts-solr/Makefile.am, src/plugins/fts-solr /fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts-solr/solr- connection.h: fts-solr: Use built-in lib-http instead of libcurl. Removed libcurl dependency. [b9b8286fd9fd] 2013-02-11 Timo Sirainen * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Minor fix to deciding when to use GUIDs vs. header hashes. [f6a8f0522634] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h: dsync: Fixes for syncing without GUIDs. [f58e7b386c6e] * src/doveadm/dsync/dsync-mail.c: 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. [d73d04e24eee] * src/lib/istream-file.c: i_stream_sync() for file should reset eof flag immediately. [45c39743f406] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync /dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-mailbox.h: dsync: Automatically figure out which mailboxes can sync with message GUIDs. [5a1fc3723371] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-storage.h: lib-storage: Added mailbox_status.have_guids flag [91f60f0d72df] * src/lib-storage/fail-mailbox.c: lib-storage: Minor code cleanup [490fa658b66d] * src/lib-storage/fail-mailbox.c, src/lib-storage/index/index- status.c, src/lib-storage/list/mailbox-list-index-status.c: lib-storage: Don't unnecessarily clear mailbox_status multiple times. [2492fa1232a0] * src/lib-storage/index/index-status.c: lib-storage: mailbox_status.nonpermanent_modseqs is now only set with STATUS_HIGHESTMODSEQ [2aa20ea42d6d] 2013-02-10 Timo Sirainen * src/doveadm/dsync/dsync-mail.c: 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. [f7a0ef7fdaad] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync /dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc- stream.c: dsync: Renamed "guid_requests" to "mail_requests" The mails aren't necessarily requested by their GUID. [b4e2b3b54f0a] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h: dsync: Removed unused DSYNC_MAILBOX_IMPORT_FLAG_MAILS_HAVE_GUIDS flag. [9a9d408336ea] * src/doveadm/dsync/dsync-mailbox-tree-fill.c: dsync: Fixed mailbox tree sync with some backends (imapc) [28db20f9c0cf] 2013-02-05 Timo Sirainen * src/lib-imap-urlauth/imap-urlauth-backend.c, src/lib-storage/index /index-attribute.c, src/lib-storage/index/index-storage.h, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h: 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. [03a0af22100d] * src/lib-fs/fs-api.h, src/lib-fs/fs-posix.c, src/lib-storage/index /index-attachment.c: lib-fs: Changed FS_OPEN_FLAG_UNIMPORTANT to a reversed FS_OPEN_FLAG_FSYNC. This explains its behavior better. [397253f15f36] * src/lib-fs/fs-metawrap.c, src/lib-fs/istream-metawrap.c: fs-metawrap: Don't duplicate work if fs_get_metadata() is called multiple times. [e7e95d2d2b37] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-common/dbox-mail.c, src/lib-storage/index/maildir/maildir- mail.c: cydir, dbox, maildir: Don't leak the stream if mail.istream_opened() fails [1a6cf87eeff0] * src/lib-index/mail-index-transaction-update.c, src/lib-index/test- mail-index-transaction-update.c: lib-index: Memory leak fix [be320a216190] * src/lib-fs/fs-metawrap.c: fs-metawrap: Memory leak fixes [c31ee24e7255] * src/lib-fs/fs-api.c: lib-fs: Avoid memory leaks if file was closed before fs_read()/fs_copy() was finished. [275973a62419] * src/lib-fs/fs-metawrap.c: fs-metawrap: Set underlying file async only for fs_read_stream() lookups. [15ad5fc0568b] 2013-02-04 Timo Sirainen * src/lib/iostream-temp.c: iostream-temp: Set a name for the returned istream. [b94603584655] * src/lib-http/http-client-request.c: lib-http: If http_client_request_set_payload() fails to get stream size, log an error. [e4fbb3a834a7] * src/lib/iostream-temp.c: iostream-temp: Don't try to dup() the stream fd if it's already closed. [6a6472846181] * src/lib-fs/Makefile.am, src/lib-fs/fs-metawrap.c, src/lib-fs /ostream-metawrap.c, src/lib-fs/ostream-metawrap.h: fs-metawrap: Delay writing the metadata headers until first data is written. Also some other read/write fixes. [a1598c03c940] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- api.h, src/lib-fs/fs-metawrap.c: lib-fs: Added FS_OPEN_FLAG_SEEKABLE. Globally handle fs_read_stream() seekability and waits. [8515223e4766] * src/lib-fs/fs-metawrap.c: fs-metawrap: Fixed stat() to work when parent file's input stream didn't have a parent. [5462dbd46703] * src/lib-fs/fs-metawrap.c: fs-metawrap: Error handling fixes [159c18c2e502] * src/lib/istream.c: 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. [e7d682358619] * src/lib/istream.c: istream: Fail in the default stat() implementation if stream_errno is set. [d4bf15bbf182] * src/lib/istream-seekable.c: istream-seekable: Fail stat() if stream_errno is set. [595c00f289bf] * src/lib-http/http-client-private.h, src/lib-http/http-client- request.c, src/lib-http/http-client.h: 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. [e11b9ba8b90a] * src/lib-http/http-url.c, src/lib-http/http-url.h: lib-http: Added http_url_escape_param() [b1a03d3c0ae7] 2013-02-03 Timo Sirainen * src/lib/iostream-temp.c, src/lib/iostream-temp.h: iostream-temp: Avoid copying data if IOSTREAM_TEMP_FLAG_TRY_FD_DUP is set. [50d43f04511b] * src/lib/istream.c: i_stream_create_error() should have set eof=TRUE immediately. [42e152c01ace] * src/lib-fs/fs-api.c: lib-fs: fs_write_stream_finish(file, NULL) is now alias to fs_write_stream_finish_async(file) This makes wrapper implementations easier. [01d238b13719] * src/lib-fs/fs-posix.c: lib-fs: fs-posix now allows reading from the same file that was created. [1aed8e57ea1c] * src/lib-fs/istream-metawrap.c: lib-fs: istream-metawrap is a bit more flexible now, allowing stat()ing and reading from fd [30922a3668a9] 2013-02-02 Timo Sirainen * src/plugins/fts-solr/fts-solr-plugin.c: fts-solr: Compile warning fix [f4d33f3c1ab9] * src/anvil/anvil-connection.c, src/anvil/anvil-settings.c, src/anvil /connect-limit.c, src/anvil/main.c, src/anvil/penalty.c, src/anvil /test-penalty.c, src/auth/auth-cache.c, src/auth/auth-client- connection.c, src/auth/auth-fields.c, src/auth/auth-master- connection.c, src/auth/auth-penalty.c, src/auth/auth-postfix- connection.c, src/auth/auth-request-handler.c, src/auth/auth- request.c, src/auth/auth-settings.c, src/auth/auth-token.c, src/auth /auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/db-checkpassword.c, src/auth/db-dict.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech-cram- md5.c, src/auth/mech-digest-md5.c, src/auth/mech-dovecot-token.c, src/auth/mech-external.c, src/auth/mech-plain.c, src/auth/mech.c, src/auth/passdb-blocking.c, src/auth/passdb-bsdauth.c, src/auth /passdb-cache.c, src/auth/passdb-checkpassword.c, src/auth/passdb- dict.c, src/auth/passdb-imap.c, src/auth/passdb-ldap.c, src/auth /passdb-passwd-file.c, src/auth/passdb-passwd.c, src/auth/passdb- shadow.c, src/auth/passdb-sql.c, src/auth/passdb-static.c, src/auth /passdb-template.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth/password-scheme-crypt.c, src/auth/password-scheme.c, src/auth/test-auth-cache.c, src/auth/userdb-blocking.c, src/auth /userdb-checkpassword.c, src/auth/userdb-dict.c, src/auth/userdb- ldap.c, src/auth/userdb-nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth /userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb-template.c, src/auth/userdb-vpopmail.c, src/auth/userdb.c, src/config/config- connection.c, src/config/config-filter.c, src/config/config- parser.c, src/config/config-request.c, src/config/config-settings.c, src/config/doveconf.c, src/config/main.c, src/config/old-set- parser.c, src/config/sysinfo-get.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/dict/dict-settings.c, src/dict/main.c, src/director/auth-connection.c, src/director /director-connection.c, src/director/director-host.c, src/director /director-request.c, src/director/director-settings.c, src/director /director-test.c, src/director/director.c, src/director/doveadm- connection.c, src/director/login-connection.c, src/director/mail- host.c, src/director/main.c, src/director/notify-connection.c, src/director/test-user-directory.c, src/director/user-directory.c, src/dns/dns-client-settings.c, src/dns/dns-client.c, src/doveadm /client-connection.c, src/doveadm/doveadm-auth.c, src/doveadm /doveadm-director.c, src/doveadm/doveadm-dump-dbox.c, src/doveadm /doveadm-dump-index.c, src/doveadm/doveadm-dump-log.c, src/doveadm /doveadm-dump-mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-instance.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-log.c, src/doveadm /doveadm-mail-altmove.c, src/doveadm/doveadm-mail-copymove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail- fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm- mail-index.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm- mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm-mail- server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mailbox- list-iter.c, src/doveadm/doveadm-master.c, src/doveadm/doveadm- mount.c, src/doveadm/doveadm-mutf7.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print-server.c, src/doveadm/doveadm-print-tab.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm-proxy.c, src/doveadm/doveadm-pw.c, src/doveadm /doveadm-settings.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm- stats.c, src/doveadm/doveadm-util.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm-zlib.c, src/doveadm/doveadm.c, src/doveadm/dsync /doveadm-dsync.c, src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync- deserializer.c, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync-mail.c, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-state.c, src/doveadm/dsync/dsync- mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync- serializer.c, src/doveadm/dsync/dsync-transaction-log-scan.c, src/doveadm/dsync/test-dsync-mailbox-tree-sync.c, src/doveadm/main.c, src/doveadm/server-connection.c, src/imap-login /client-authenticate.c, src/imap-login/client.c, src/imap-login /imap-login-settings.c, src/imap-login/imap-proxy.c, src/imap- urlauth/imap-urlauth-client.c, src/imap-urlauth/imap-urlauth-login- settings.c, src/imap-urlauth/imap-urlauth-login.c, src/imap-urlauth /imap-urlauth-settings.c, src/imap-urlauth/imap-urlauth-worker- settings.c, src/imap-urlauth/imap-urlauth-worker.c, src/imap-urlauth /imap-urlauth.c, src/imap/cmd-append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd-capability.c, src/imap/cmd-check.c, src/imap/cmd- close.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd- delete.c, src/imap/cmd-enable.c, src/imap/cmd-examine.c, src/imap /cmd-expunge.c, src/imap/cmd-fetch.c, src/imap/cmd-genurlauth.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/cmd-logout.c, src/imap/cmd-lsub.c, src/imap/cmd- namespace.c, src/imap/cmd-noop.c, src/imap/cmd-notify.c, src/imap /cmd-rename.c, src/imap/cmd-resetkey.c, src/imap/cmd-search.c, src/imap/cmd-select.c, src/imap/cmd-sort.c, src/imap/cmd-status.c, src/imap/cmd-store.c, src/imap/cmd-subscribe.c, src/imap/cmd- thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd- unsubscribe.c, src/imap/cmd-urlfetch.c, src/imap/cmd-x-cancel.c, src/imap/imap-client.c, src/imap/imap-commands-util.c, src/imap /imap-commands.c, src/imap/imap-expunge.c, src/imap/imap-fetch- body.c, src/imap/imap-fetch.c, src/imap/imap-list.c, src/imap/imap- notify.c, src/imap/imap-search-args.c, src/imap/imap-search.c, src/imap/imap-settings.c, src/imap/imap-status.c, src/imap/imap- sync.c, src/imap/mail-storage-callbacks.c, src/imap/main.c, src/indexer/indexer-client.c, src/indexer/indexer-queue.c, src/indexer/indexer-settings.c, src/indexer/indexer-worker- settings.c, src/indexer/indexer-worker.c, src/indexer/indexer.c, src/indexer/master-connection.c, src/indexer/worker-connection.c, src/indexer/worker-pool.c, src/ipc/client.c, src/ipc/ipc- connection.c, src/ipc/ipc-group.c, src/ipc/ipc-settings.c, src/ipc/main.c, src/lda/main.c, src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.c, src/lib-auth/auth-master.c, src/lib-auth /auth-server-connection.c, src/lib-charset/charset-iconv.c, src/lib- charset/charset-utf8.c, src/lib-compression/compression.c, src/lib- compression/istream-bzlib.c, src/lib-compression/istream-zlib.c, src /lib-compression/ostream-bzlib.c, src/lib-compression/ostream- zlib.c, src/lib-dict/dict-client.c, src/lib-dict/dict-db.c, src/lib- dict/dict-file.c, src/lib-dict/dict-memcached-ascii.c, src/lib-dict /dict-memcached.c, src/lib-dict/dict-redis.c, src/lib-dict/dict-sql- settings.c, src/lib-dict/dict-sql.c, src/lib-dict/dict-transaction- memory.c, src/lib-dict/dict.c, src/lib-dict/test-dict.c, src/lib-dns /dns-lookup.c, src/lib-fs/fs-api.c, src/lib-fs/fs-posix.c, src/lib- fs/fs-sis-common.c, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c, src/lib-fs/fs-test.c, src/lib-fs/istream-metawrap.c, src/lib-fs /ostream-cmp.c, src/lib-http/http-client-connection.c, src/lib-http /http-client-host.c, src/lib-http/http-client-peer.c, src/lib-http /http-client-request.c, src/lib-http/http-client.c, src/lib-http /http-date.c, src/lib-http/http-header-parser.c, src/lib-http/http- parser.c, src/lib-http/http-response-parser.c, src/lib-http/http- transfer-chunked.c, src/lib-http/http-url.c, src/lib-http/test-http- client.c, src/lib-http/test-http-date.c, src/lib-http/test-http- header-parser.c, src/lib-http/test-http-response-parser.c, src/lib- http/test-http-transfer.c, src/lib-http/test-http-url.c, src/lib- imap-client/imapc-client.c, src/lib-imap-client/imapc-connection.c, src/lib-imap-client/imapc-msgmap.c, src/lib-imap-storage/imap- msgpart-url.c, src/lib-imap-storage/imap-msgpart.c, src/lib-imap- urlauth/imap-urlauth-backend.c, src/lib-imap-urlauth/imap-urlauth- connection.c, src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib- imap-urlauth/imap-urlauth.c, src/lib-imap/imap-arg.c, src/lib-imap /imap-base-subject.c, src/lib-imap/imap-bodystructure.c, src/lib- imap/imap-date.c, src/lib-imap/imap-envelope.c, src/lib-imap/imap- id.c, src/lib-imap/imap-match.c, src/lib-imap/imap-parser.c, src /lib-imap/imap-quote.c, src/lib-imap/imap-seqset.c, src/lib-imap /imap-url.c, src/lib-imap/imap-utf7.c, src/lib-imap/imap-util.c, src /lib-imap/test-imap-bodystructure.c, src/lib-imap/test-imap-match.c, src/lib-imap/test-imap-parser.c, src/lib-imap/test-imap-url.c, src /lib-imap/test-imap-utf7.c, src/lib-imap/test-imap-util.c, src/lib- index/mail-cache-compress.c, src/lib-index/mail-cache-decisions.c, src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache- lookup.c, src/lib-index/mail-cache-sync-update.c, src/lib-index /mail-cache-transaction.c, src/lib-index/mail-cache.c, src/lib-index /mail-index-alloc-cache.c, src/lib-index/mail-index-dummy-view.c, src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-lock.c, src/lib-index/mail-index-map-hdr.c, src/lib-index/mail-index-map- read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index- modseq.c, src/lib-index/mail-index-strmap.c, src/lib-index/mail- index-sync-ext.c, src/lib-index/mail-index-sync-keywords.c, src/lib- index/mail-index-sync-update.c, src/lib-index/mail-index-sync.c, src /lib-index/mail-index-transaction-export.c, src/lib-index/mail- index-transaction-finish.c, src/lib-index/mail-index-transaction- sort-appends.c, src/lib-index/mail-index-transaction-update.c, src /lib-index/mail-index-transaction-view.c, src/lib-index/mail-index- transaction.c, src/lib-index/mail-index-util.c, src/lib-index/mail- index-view-sync.c, src/lib-index/mail-index-view.c, src/lib-index /mail-index-write.c, src/lib-index/mail-index.c, src/lib-index/mail- transaction-log-append.c, src/lib-index/mail-transaction-log-file.c, src/lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.c, src/lib-index/mailbox-log.c, src/lib-index/test- mail-index-sync-ext.c, src/lib-index/test-mail-index-transaction- finish.c, src/lib-index/test-mail-index-transaction-update.c, src /lib-index/test-mail-transaction-log-append.c, src/lib-index/test- mail-transaction-log-view.c, src/lib-lda/duplicate.c, src/lib-lda /lda-settings.c, src/lib-lda/lmtp-client.c, src/lib-lda/mail- deliver.c, src/lib-lda/mail-send.c, src/lib-lda/smtp-client.c, src /lib-mail/istream-attachment-connector.c, src/lib-mail/istream- attachment-extractor.c, src/lib-mail/istream-binary-converter.c, src /lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src /lib-mail/istream-nonuls.c, src/lib-mail/istream-qp-decoder.c, src /lib-mail/mail-user-hash.c, src/lib-mail/mbox-from.c, src/lib-mail /message-address.c, src/lib-mail/message-binary-part.c, src/lib-mail /message-date.c, src/lib-mail/message-decoder.c, src/lib-mail /message-header-decode.c, src/lib-mail/message-header-encode.c, src /lib-mail/message-header-parser.c, src/lib-mail/message-id.c, src /lib-mail/message-parser.c, src/lib-mail/message-part-serialize.c, src/lib-mail/message-search.c, src/lib-mail/message-size.c, src/lib- mail/quoted-printable.c, src/lib-mail/rfc2231-parser.c, src/lib- mail/rfc822-parser.c, src/lib-mail/test-istream-attachment.c, src /lib-mail/test-istream-binary-converter.c, src/lib-mail/test- istream-dot.c, src/lib-mail/test-istream-header-filter.c, src/lib- mail/test-istream-qp-decoder.c, src/lib-mail/test-mbox-from.c, src /lib-mail/test-message-address.c, src/lib-mail/test-message-date.c, src/lib-mail/test-message-decoder.c, src/lib-mail/test-message- header-decode.c, src/lib-mail/test-message-header-encode.c, src/lib- mail/test-message-header-parser.c, src/lib-mail/test-message-id.c, src/lib-mail/test-message-parser.c, src/lib-mail/test-quoted- printable.c, src/lib-mail/test-rfc2231-parser.c, src/lib-master /anvil-client.c, src/lib-master/ipc-client.c, src/lib-master/ipc- server.c, src/lib-master/master-auth.c, src/lib-master/master- instance.c, src/lib-master/master-login-auth.c, src/lib-master /master-login.c, src/lib-master/master-service-settings-cache.c, src /lib-master/master-service-settings.c, src/lib-master/master- service-ssl-settings.c, src/lib-master/master-service-ssl.c, src /lib-master/master-service.c, src/lib-master/mountpoint-list.c, src /lib-master/syslog-util.c, src/lib-settings/settings-parser.c, src /lib-settings/settings.c, src/lib-sql/driver-mysql.c, src/lib-sql /driver-pgsql.c, src/lib-sql/driver-sqlite.c, src/lib-sql/driver- sqlpool.c, src/lib-sql/sql-api.c, src/lib-sql/sql-db-cache.c, src /lib-ssl-iostream/iostream-openssl-common.c, src/lib-ssl-iostream /iostream-openssl-context.c, src/lib-ssl-iostream/iostream-openssl- params.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl- iostream/iostream-ssl-none.c, src/lib-ssl-iostream/iostream-ssl.c, src/lib-ssl-iostream/istream-openssl.c, src/lib-ssl-iostream /ostream-openssl.c, src/lib-storage/fail-mail-storage.c, src/lib- storage/fail-mail.c, src/lib-storage/fail-mailbox.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- save.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox-common /dbox-attachment.c, src/lib-storage/index/dbox-common/dbox-file- fix.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib- storage/index/dbox-common/dbox-mail.c, src/lib-storage/index/dbox- common/dbox-save.c, src/lib-storage/index/dbox-common/dbox- storage.c, src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib- storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox- multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-multi/mdbox-settings.c, src/lib-storage/index/dbox-multi /mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib- storage/index/dbox-single/sdbox-copy.c, src/lib-storage/index/dbox- single/sdbox-file.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-mail-fetch.c, src/lib-storage/index/imapc /imapc-mail.c, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- settings.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-sync.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/index-attribute.c, src/lib- storage/index/index-mail-binary.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mailbox-check.c, src/lib-storage/index/index-rebuild.c, src /lib-storage/index/index-search-result.c, src/lib-storage/index /index-search.c, src/lib-storage/index/index-sort-string.c, src/lib- storage/index/index-sort.c, src/lib-storage/index/index-status.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/index- sync-changes.c, src/lib-storage/index/index-sync-pvt.c, src/lib- storage/index/index-sync-search.c, src/lib-storage/index/index- sync.c, src/lib-storage/index/index-thread-finish.c, src/lib- storage/index/index-thread-links.c, src/lib-storage/index/index- thread.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/istream-mail.c, src/lib-storage/index/maildir/maildir- copy.c, src/lib-storage/index/maildir/maildir-filename-flags.c, src /lib-storage/index/maildir/maildir-filename.c, src/lib- storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-settings.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-md5-all.c, src/lib-storage/index/mbox/mbox- md5-apop3d.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-settings.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-sync-parse.c, src/lib- storage/index/mbox/mbox-sync-rewrite.c, src/lib-storage/index/mbox /mbox-sync-update.c, src/lib-storage/index/mbox/mbox-sync.c, src /lib-storage/index/pop3c/pop3c-client.c, src/lib-storage/index/pop3c /pop3c-mail.c, src/lib-storage/index/pop3c/pop3c-settings.c, src /lib-storage/index/pop3c/pop3c-storage.c, src/lib- storage/index/pop3c/pop3c-sync.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-sync.c, src/lib-storage/index/shared/shared- list.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/list/mailbox-list-delete.c, src/lib-storage/list/mailbox- list-fs-flags.c, src/lib-storage/list/mailbox-list-fs-iter.c, src /lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox- list-index-backend.c, src/lib-storage/list/mailbox-list-index- iter.c, src/lib-storage/list/mailbox-list-index-notify.c, src/lib- storage/list/mailbox-list-index-status.c, src/lib-storage/list /mailbox-list-index-sync.c, src/lib-storage/list/mailbox-list- index.c, src/lib-storage/list/mailbox-list-iter.c, src/lib- storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/list/mailbox-list-notify-tree.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/list /subscription-file.c, src/lib-storage/mail-copy.c, src/lib-storage /mail-error.c, src/lib-storage/mail-namespace.c, src/lib-storage /mail-search-build.c, src/lib-storage/mail-search-parser-cmdline.c, src/lib-storage/mail-search-parser-imap.c, src/lib-storage/mail- search-parser.c, src/lib-storage/mail-search-register-human.c, src /lib-storage/mail-search-register-imap.c, src/lib-storage/mail- search-register.c, src/lib-storage/mail-search.c, src/lib-storage /mail-storage-hooks.c, src/lib-storage/mail-storage-service.c, src /lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage.c, src/lib-storage/mail-thread.c, src/lib-storage/mail- user.c, src/lib-storage/mail.c, src/lib-storage/mailbox-get.c, src /lib-storage/mailbox-guid-cache.c, src/lib-storage/mailbox-header.c, src/lib-storage/mailbox-keywords.c, src/lib-storage/mailbox-list- notify.c, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- search-result.c, src/lib-storage/mailbox-tree.c, src/lib-storage /mailbox-uidvalidity.c, src/lib-storage/test-mailbox-get.c, src/lib- test/test-common.c, src/lib/abspath.c, src/lib/aqueue.c, src/lib/array.c, src/lib/askpass.c, src/lib/backtrace-string.c, src/lib/base64.c, src/lib/bsearch-insert-pos.c, src/lib/buffer.c, src/lib/child-wait.c, src/lib/compat.c, src/lib/connection.c, src/lib/crc32.c, src/lib/data-stack.c, src/lib/eacces-error.c, src/lib/env-util.c, src/lib/execv-const.c, src/lib/failures.c, src/lib/fd-close-on-exec.c, src/lib/fd-set-nonblock.c, src/lib /fdatasync-path.c, src/lib/fdpass.c, src/lib/file-cache.c, src/lib /file-copy.c, src/lib/file-dotlock.c, src/lib/file-lock.c, src/lib /file-set-size.c, src/lib/guid.c, src/lib/hash-format.c, src/lib /hash-method.c, src/lib/hash.c, src/lib/hash2.c, src/lib/hex- binary.c, src/lib/hex-dec.c, src/lib/home-expand.c, src/lib/hostpid.c, src/lib/imem.c, src/lib/ioloop-epoll.c, src/lib /ioloop-notify-dn.c, src/lib/ioloop-notify-fd.c, src/lib/ioloop- notify-inotify.c, src/lib/ioloop-notify-none.c, src/lib/ioloop- poll.c, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib/iostream- rawlog.c, src/lib/iostream-temp.c, src/lib/iostream.c, src/lib/iso8601-date.c, src/lib/istream-base64-decoder.c, src/lib /istream-base64-encoder.c, src/lib/istream-chain.c, src/lib/istream- concat.c, src/lib/istream-crlf.c, src/lib/istream-data.c, src/lib /istream-file.c, src/lib/istream-jsonstr.c, src/lib/istream-limit.c, src/lib/istream-mmap.c, src/lib/istream-rawlog.c, src/lib/istream- seekable.c, src/lib/istream-sized.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/json-parser.c, src/lib/lib-signals.c, src/lib/lib.c, src/lib/mempool-alloconly.c, src/lib/mempool- datastack.c, src/lib/mempool-system.c, src/lib/mempool-unsafe- datastack.c, src/lib/mempool.c, src/lib/mkdir-parents.c, src/lib /mmap-anon.c, src/lib/mmap-util.c, src/lib/module-dir.c, src/lib/mountpoint.c, src/lib/net.c, src/lib/nfs-workarounds.c, src/lib/numpack.c, src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib/ostream-rawlog.c, src/lib/ostream.c, src/lib/primes.c, src/lib/printf-format-fix.c, src/lib/priorityq.c, src/lib/process- title.c, src/lib/randgen.c, src/lib/read-full.c, src/lib/restrict- access.c, src/lib/restrict-process-size.c, src/lib/safe-memset.c, src/lib/safe-mkdir.c, src/lib/safe-mkstemp.c, src/lib/sendfile- util.c, src/lib/seq-range-array.c, src/lib/str-find.c, src/lib/str- sanitize.c, src/lib/str.c, src/lib/strescape.c, src/lib/strfuncs.c, src/lib/strnum.c, src/lib/test-aqueue.c, src/lib/test-array.c, src/lib/test-base64.c, src/lib/test-bsearch-insert-pos.c, src/lib /test-buffer.c, src/lib/test-crc32.c, src/lib/test-hash-format.c, src/lib/test-hex-binary.c, src/lib/test-iso8601-date.c, src/lib /test-istream-base64-decoder.c, src/lib/test-istream- base64-encoder.c, src/lib/test-istream-concat.c, src/lib/test- istream-crlf.c, src/lib/test-istream-seekable.c, src/lib/test- istream-tee.c, src/lib/test-json-parser.c, src/lib/test-lib.c, src/lib/test-llist.c, src/lib/test-mempool-alloconly.c, src/lib /test-network.c, src/lib/test-numpack.c, src/lib/test-ostream- file.c, src/lib/test-primes.c, src/lib/test-priorityq.c, src/lib /test-seq-range-array.c, src/lib/test-str-find.c, src/lib/test-str- sanitize.c, src/lib/test-strescape.c, src/lib/test-strfuncs.c, src/lib/test-time-util.c, src/lib/test-unichar.c, src/lib/test-utc- mktime.c, src/lib/test-var-expand.c, src/lib/time-util.c, src/lib/unichar.c, src/lib/unix-socket-create.c, src/lib/unlink- directory.c, src/lib/unlink-old-files.c, src/lib/uri-util.c, src/lib /utc-mktime.c, src/lib/utc-offset.c, src/lib/var-expand.c, src/lib /write-full.c, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp /lmtp-proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/main.c, src/log /doveadm-connection.c, src/log/log-connection.c, src/log/log-error- buffer.c, src/log/log-settings.c, src/log/main.c, src/login-common /access-lookup.c, src/login-common/client-common-auth.c, src/login- common/client-common.c, src/login-common/login-proxy-state.c, src /login-common/login-proxy.c, src/login-common/login-settings.c, src /login-common/main.c, src/login-common/sasl-server.c, src/login- common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/master/capabilities-posix.c, src/master/dup2-array.c, src/master/main.c, src/master/master- settings.c, src/master/service-anvil.c, src/master/service-listen.c, src/master/service-log.c, src/master/service-monitor.c, src/master /service-process-notify.c, src/master/service-process.c, src/master/service.c, src/plugins/acl/acl-api.c, src/plugins/acl /acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-mailbox- list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/acl/doveadm-acl.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire /expire-plugin.c, src/plugins/expire/expire-set.c, src/plugins/fts- lucene/doveadm-fts-lucene.c, src/plugins/fts-lucene/fts-backend- lucene.c, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins /fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend- solr.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-solr /solr-connection.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts-squat/fts-squat-plugin.c, src/plugins/fts-squat /squat-test.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts- squat/squat-uidlist.c, src/plugins/fts/doveadm-dump-fts-expunge- log.c, src/plugins/fts/doveadm-fts.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-expunge-log.c, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts-parser-html.c, src/plugins/fts/fts-parser-script.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-search- serialize.c, src/plugins/fts/fts-search.c, src/plugins/fts/fts- storage.c, src/plugins/fts/xml2text.c, src/plugins/imap-acl/imap- acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/imap-stats/imap-stats-plugin.c, src/plugins/imap-zlib /imap-zlib-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/mailbox-alias/mailbox-alias- plugin.c, src/plugins/notify/notify-plugin.c, src/plugins/notify /notify-storage.c, src/plugins/pop3-migration/pop3-migration- plugin.c, src/plugins/quota/doveadm-quota.c, src/plugins/quota /quota-count.c, src/plugins/quota/quota-dict.c, src/plugins/quota /quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota /quota-maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/replication/replication-plugin.c, src/plugins/snarf /snarf-plugin.c, src/plugins/stats/stats-connection.c, src/plugins/stats/stats-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- mail.c, src/plugins/virtual/virtual-plugin.c, src/plugins/virtual /virtual-save.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- sync.c, src/plugins/virtual/virtual-transaction.c, src/plugins/zlib /zlib-plugin.c, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-login-settings.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/replication/aggregator/aggregator- settings.c, src/replication/aggregator/aggregator.c, src/replication/aggregator/notify-connection.c, src/replication/aggregator/replicator-connection.c, src/replication/replicator/doveadm-connection.c, src/replication/replicator/notify-connection.c, src/replication/replicator/replicator-brain.c, src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-settings.c, src/replication/replicator/replicator.c, src/ssl-params/main.c, src /ssl-params/ssl-params-openssl.c, src/ssl-params/ssl-params- settings.c, src/ssl-params/ssl-params.c, src/stats/client-export.c, src/stats/client.c, src/stats/global-memory.c, src/stats/mail- command.c, src/stats/mail-domain.c, src/stats/mail-ip.c, src/stats /mail-server-connection.c, src/stats/mail-session.c, src/stats/mail- stats.c, src/stats/mail-user.c, src/stats/main.c, src/stats/stats- settings.c, src/util/gdbhelper.c, src/util/maildirlock.c, src/util/rawlog.c, src/util/script-login.c, src/util/script.c, src/util/tcpwrap-settings.c, src/util/tcpwrap.c: Oops :) Update copyrights to 2013 without breaking all .c files. [36ef72481934] * src/anvil/anvil-connection.c, src/anvil/anvil-settings.c, src/anvil /connect-limit.c, src/anvil/main.c, src/anvil/penalty.c, src/anvil /test-penalty.c, src/auth/auth-cache.c, src/auth/auth-client- connection.c, src/auth/auth-fields.c, src/auth/auth-master- connection.c, src/auth/auth-penalty.c, src/auth/auth-postfix- connection.c, src/auth/auth-request-handler.c, src/auth/auth- request.c, src/auth/auth-settings.c, src/auth/auth-token.c, src/auth /auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/db-checkpassword.c, src/auth/db-dict.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech-cram- md5.c, src/auth/mech-digest-md5.c, src/auth/mech-dovecot-token.c, src/auth/mech-external.c, src/auth/mech-plain.c, src/auth/mech.c, src/auth/passdb-blocking.c, src/auth/passdb-bsdauth.c, src/auth /passdb-cache.c, src/auth/passdb-checkpassword.c, src/auth/passdb- dict.c, src/auth/passdb-imap.c, src/auth/passdb-ldap.c, src/auth /passdb-passwd-file.c, src/auth/passdb-passwd.c, src/auth/passdb- shadow.c, src/auth/passdb-sql.c, src/auth/passdb-static.c, src/auth /passdb-template.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth/password-scheme-crypt.c, src/auth/password-scheme.c, src/auth/test-auth-cache.c, src/auth/userdb-blocking.c, src/auth /userdb-checkpassword.c, src/auth/userdb-dict.c, src/auth/userdb- ldap.c, src/auth/userdb-nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth /userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb-template.c, src/auth/userdb-vpopmail.c, src/auth/userdb.c, src/config/config- connection.c, src/config/config-filter.c, src/config/config- parser.c, src/config/config-request.c, src/config/config-settings.c, src/config/doveconf.c, src/config/main.c, src/config/old-set- parser.c, src/config/sysinfo-get.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/dict/dict-settings.c, src/dict/main.c, src/director/auth-connection.c, src/director /director-connection.c, src/director/director-host.c, src/director /director-request.c, src/director/director-settings.c, src/director /director-test.c, src/director/director.c, src/director/doveadm- connection.c, src/director/login-connection.c, src/director/mail- host.c, src/director/main.c, src/director/notify-connection.c, src/director/test-user-directory.c, src/director/user-directory.c, src/dns/dns-client-settings.c, src/dns/dns-client.c, src/doveadm /client-connection.c, src/doveadm/doveadm-auth.c, src/doveadm /doveadm-director.c, src/doveadm/doveadm-dump-dbox.c, src/doveadm /doveadm-dump-index.c, src/doveadm/doveadm-dump-log.c, src/doveadm /doveadm-dump-mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-instance.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-log.c, src/doveadm /doveadm-mail-altmove.c, src/doveadm/doveadm-mail-copymove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail- fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm- mail-index.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm- mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm-mail- server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mailbox- list-iter.c, src/doveadm/doveadm-master.c, src/doveadm/doveadm- mount.c, src/doveadm/doveadm-mutf7.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print-server.c, src/doveadm/doveadm-print-tab.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm-proxy.c, src/doveadm/doveadm-pw.c, src/doveadm /doveadm-settings.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm- stats.c, src/doveadm/doveadm-util.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm-zlib.c, src/doveadm/doveadm.c, src/doveadm/dsync /doveadm-dsync.c, src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync- deserializer.c, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync-mail.c, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-state.c, src/doveadm/dsync/dsync- mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync- serializer.c, src/doveadm/dsync/dsync-transaction-log-scan.c, src/doveadm/dsync/test-dsync-mailbox-tree-sync.c, src/doveadm/main.c, src/doveadm/server-connection.c, src/imap-login /client-authenticate.c, src/imap-login/client.c, src/imap-login /imap-login-settings.c, src/imap-login/imap-proxy.c, src/imap- urlauth/imap-urlauth-client.c, src/imap-urlauth/imap-urlauth-login- settings.c, src/imap-urlauth/imap-urlauth-login.c, src/imap-urlauth /imap-urlauth-settings.c, src/imap-urlauth/imap-urlauth-worker- settings.c, src/imap-urlauth/imap-urlauth-worker.c, src/imap-urlauth /imap-urlauth.c, src/imap/cmd-append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd-capability.c, src/imap/cmd-check.c, src/imap/cmd- close.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd- delete.c, src/imap/cmd-enable.c, src/imap/cmd-examine.c, src/imap /cmd-expunge.c, src/imap/cmd-fetch.c, src/imap/cmd-genurlauth.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/cmd-logout.c, src/imap/cmd-lsub.c, src/imap/cmd- namespace.c, src/imap/cmd-noop.c, src/imap/cmd-notify.c, src/imap /cmd-rename.c, src/imap/cmd-resetkey.c, src/imap/cmd-search.c, src/imap/cmd-select.c, src/imap/cmd-sort.c, src/imap/cmd-status.c, src/imap/cmd-store.c, src/imap/cmd-subscribe.c, src/imap/cmd- thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd- unsubscribe.c, src/imap/cmd-urlfetch.c, src/imap/cmd-x-cancel.c, src/imap/imap-client.c, src/imap/imap-commands-util.c, src/imap /imap-commands.c, src/imap/imap-expunge.c, src/imap/imap-fetch- body.c, src/imap/imap-fetch.c, src/imap/imap-list.c, src/imap/imap- notify.c, src/imap/imap-search-args.c, src/imap/imap-search.c, src/imap/imap-settings.c, src/imap/imap-status.c, src/imap/imap- sync.c, src/imap/mail-storage-callbacks.c, src/imap/main.c, src/indexer/indexer-client.c, src/indexer/indexer-queue.c, src/indexer/indexer-settings.c, src/indexer/indexer-worker- settings.c, src/indexer/indexer-worker.c, src/indexer/indexer.c, src/indexer/master-connection.c, src/indexer/worker-connection.c, src/indexer/worker-pool.c, src/ipc/client.c, src/ipc/ipc- connection.c, src/ipc/ipc-group.c, src/ipc/ipc-settings.c, src/ipc/main.c, src/lda/main.c, src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.c, src/lib-auth/auth-master.c, src/lib-auth /auth-server-connection.c, src/lib-charset/charset-iconv.c, src/lib- charset/charset-utf8.c, src/lib-compression/compression.c, src/lib- compression/istream-bzlib.c, src/lib-compression/istream-zlib.c, src /lib-compression/ostream-bzlib.c, src/lib-compression/ostream- zlib.c, src/lib-dict/dict-client.c, src/lib-dict/dict-db.c, src/lib- dict/dict-file.c, src/lib-dict/dict-memcached-ascii.c, src/lib-dict /dict-memcached.c, src/lib-dict/dict-redis.c, src/lib-dict/dict-sql- settings.c, src/lib-dict/dict-sql.c, src/lib-dict/dict-transaction- memory.c, src/lib-dict/dict.c, src/lib-dict/test-dict.c, src/lib-dns /dns-lookup.c, src/lib-fs/fs-api.c, src/lib-fs/fs-posix.c, src/lib- fs/fs-sis-common.c, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c, src/lib-fs/fs-test.c, src/lib-fs/istream-metawrap.c, src/lib-fs /ostream-cmp.c, src/lib-http/http-client-connection.c, src/lib-http /http-client-host.c, src/lib-http/http-client-peer.c, src/lib-http /http-client-request.c, src/lib-http/http-client.c, src/lib-http /http-date.c, src/lib-http/http-header-parser.c, src/lib-http/http- parser.c, src/lib-http/http-response-parser.c, src/lib-http/http- transfer-chunked.c, src/lib-http/http-url.c, src/lib-http/test-http- client.c, src/lib-http/test-http-date.c, src/lib-http/test-http- header-parser.c, src/lib-http/test-http-response-parser.c, src/lib- http/test-http-transfer.c, src/lib-http/test-http-url.c, src/lib- imap-client/imapc-client.c, src/lib-imap-client/imapc-connection.c, src/lib-imap-client/imapc-msgmap.c, src/lib-imap-storage/imap- msgpart-url.c, src/lib-imap-storage/imap-msgpart.c, src/lib-imap- urlauth/imap-urlauth-backend.c, src/lib-imap-urlauth/imap-urlauth- connection.c, src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib- imap-urlauth/imap-urlauth.c, src/lib-imap/imap-arg.c, src/lib-imap /imap-base-subject.c, src/lib-imap/imap-bodystructure.c, src/lib- imap/imap-date.c, src/lib-imap/imap-envelope.c, src/lib-imap/imap- id.c, src/lib-imap/imap-match.c, src/lib-imap/imap-parser.c, src /lib-imap/imap-quote.c, src/lib-imap/imap-seqset.c, src/lib-imap /imap-url.c, src/lib-imap/imap-utf7.c, src/lib-imap/imap-util.c, src /lib-imap/test-imap-bodystructure.c, src/lib-imap/test-imap-match.c, src/lib-imap/test-imap-parser.c, src/lib-imap/test-imap-url.c, src /lib-imap/test-imap-utf7.c, src/lib-imap/test-imap-util.c, src/lib- index/mail-cache-compress.c, src/lib-index/mail-cache-decisions.c, src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache- lookup.c, src/lib-index/mail-cache-sync-update.c, src/lib-index /mail-cache-transaction.c, src/lib-index/mail-cache.c, src/lib-index /mail-index-alloc-cache.c, src/lib-index/mail-index-dummy-view.c, src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-lock.c, src/lib-index/mail-index-map-hdr.c, src/lib-index/mail-index-map- read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index- modseq.c, src/lib-index/mail-index-strmap.c, src/lib-index/mail- index-sync-ext.c, src/lib-index/mail-index-sync-keywords.c, src/lib- index/mail-index-sync-update.c, src/lib-index/mail-index-sync.c, src /lib-index/mail-index-transaction-export.c, src/lib-index/mail- index-transaction-finish.c, src/lib-index/mail-index-transaction- sort-appends.c, src/lib-index/mail-index-transaction-update.c, src /lib-index/mail-index-transaction-view.c, src/lib-index/mail-index- transaction.c, src/lib-index/mail-index-util.c, src/lib-index/mail- index-view-sync.c, src/lib-index/mail-index-view.c, src/lib-index /mail-index-write.c, src/lib-index/mail-index.c, src/lib-index/mail- transaction-log-append.c, src/lib-index/mail-transaction-log-file.c, src/lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.c, src/lib-index/mailbox-log.c, src/lib-index/test- mail-index-sync-ext.c, src/lib-index/test-mail-index-transaction- finish.c, src/lib-index/test-mail-index-transaction-update.c, src /lib-index/test-mail-transaction-log-append.c, src/lib-index/test- mail-transaction-log-view.c, src/lib-lda/duplicate.c, src/lib-lda /lda-settings.c, src/lib-lda/lmtp-client.c, src/lib-lda/mail- deliver.c, src/lib-lda/mail-send.c, src/lib-lda/smtp-client.c, src /lib-mail/istream-attachment-connector.c, src/lib-mail/istream- attachment-extractor.c, src/lib-mail/istream-binary-converter.c, src /lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src /lib-mail/istream-nonuls.c, src/lib-mail/istream-qp-decoder.c, src /lib-mail/mail-user-hash.c, src/lib-mail/mbox-from.c, src/lib-mail /message-address.c, src/lib-mail/message-binary-part.c, src/lib-mail /message-date.c, src/lib-mail/message-decoder.c, src/lib-mail /message-header-decode.c, src/lib-mail/message-header-encode.c, src /lib-mail/message-header-parser.c, src/lib-mail/message-id.c, src /lib-mail/message-parser.c, src/lib-mail/message-part-serialize.c, src/lib-mail/message-search.c, src/lib-mail/message-size.c, src/lib- mail/quoted-printable.c, src/lib-mail/rfc2231-parser.c, src/lib- mail/rfc822-parser.c, src/lib-mail/test-istream-attachment.c, src /lib-mail/test-istream-binary-converter.c, src/lib-mail/test- istream-dot.c, src/lib-mail/test-istream-header-filter.c, src/lib- mail/test-istream-qp-decoder.c, src/lib-mail/test-mbox-from.c, src /lib-mail/test-message-address.c, src/lib-mail/test-message-date.c, src/lib-mail/test-message-decoder.c, src/lib-mail/test-message- header-decode.c, src/lib-mail/test-message-header-encode.c, src/lib- mail/test-message-header-parser.c, src/lib-mail/test-message-id.c, src/lib-mail/test-message-parser.c, src/lib-mail/test-quoted- printable.c, src/lib-mail/test-rfc2231-parser.c, src/lib-master /anvil-client.c, src/lib-master/ipc-client.c, src/lib-master/ipc- server.c, src/lib-master/master-auth.c, src/lib-master/master- instance.c, src/lib-master/master-login-auth.c, src/lib-master /master-login.c, src/lib-master/master-service-settings-cache.c, src /lib-master/master-service-settings.c, src/lib-master/master- service-ssl-settings.c, src/lib-master/master-service-ssl.c, src /lib-master/master-service.c, src/lib-master/mountpoint-list.c, src /lib-master/syslog-util.c, src/lib-settings/settings-parser.c, src /lib-settings/settings.c, src/lib-sql/driver-mysql.c, src/lib-sql /driver-pgsql.c, src/lib-sql/driver-sqlite.c, src/lib-sql/driver- sqlpool.c, src/lib-sql/sql-api.c, src/lib-sql/sql-db-cache.c, src /lib-ssl-iostream/iostream-openssl-common.c, src/lib-ssl-iostream /iostream-openssl-context.c, src/lib-ssl-iostream/iostream-openssl- params.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl- iostream/iostream-ssl-none.c, src/lib-ssl-iostream/iostream-ssl.c, src/lib-ssl-iostream/istream-openssl.c, src/lib-ssl-iostream /ostream-openssl.c, src/lib-storage/fail-mail-storage.c, src/lib- storage/fail-mail.c, src/lib-storage/fail-mailbox.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- save.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox-common /dbox-attachment.c, src/lib-storage/index/dbox-common/dbox-file- fix.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib- storage/index/dbox-common/dbox-mail.c, src/lib-storage/index/dbox- common/dbox-save.c, src/lib-storage/index/dbox-common/dbox- storage.c, src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib- storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox- multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-multi/mdbox-settings.c, src/lib-storage/index/dbox-multi /mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib- storage/index/dbox-single/sdbox-copy.c, src/lib-storage/index/dbox- single/sdbox-file.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-mail-fetch.c, src/lib-storage/index/imapc /imapc-mail.c, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- settings.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-sync.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/index-attribute.c, src/lib- storage/index/index-mail-binary.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mailbox-check.c, src/lib-storage/index/index-rebuild.c, src /lib-storage/index/index-search-result.c, src/lib-storage/index /index-search.c, src/lib-storage/index/index-sort-string.c, src/lib- storage/index/index-sort.c, src/lib-storage/index/index-status.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/index- sync-changes.c, src/lib-storage/index/index-sync-pvt.c, src/lib- storage/index/index-sync-search.c, src/lib-storage/index/index- sync.c, src/lib-storage/index/index-thread-finish.c, src/lib- storage/index/index-thread-links.c, src/lib-storage/index/index- thread.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/istream-mail.c, src/lib-storage/index/maildir/maildir- copy.c, src/lib-storage/index/maildir/maildir-filename-flags.c, src /lib-storage/index/maildir/maildir-filename.c, src/lib- storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-settings.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-md5-all.c, src/lib-storage/index/mbox/mbox- md5-apop3d.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-settings.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-sync-parse.c, src/lib- storage/index/mbox/mbox-sync-rewrite.c, src/lib-storage/index/mbox /mbox-sync-update.c, src/lib-storage/index/mbox/mbox-sync.c, src /lib-storage/index/pop3c/pop3c-client.c, src/lib-storage/index/pop3c /pop3c-mail.c, src/lib-storage/index/pop3c/pop3c-settings.c, src /lib-storage/index/pop3c/pop3c-storage.c, src/lib- storage/index/pop3c/pop3c-sync.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-sync.c, src/lib-storage/index/shared/shared- list.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/list/mailbox-list-delete.c, src/lib-storage/list/mailbox- list-fs-flags.c, src/lib-storage/list/mailbox-list-fs-iter.c, src /lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox- list-index-backend.c, src/lib-storage/list/mailbox-list-index- iter.c, src/lib-storage/list/mailbox-list-index-notify.c, src/lib- storage/list/mailbox-list-index-status.c, src/lib-storage/list /mailbox-list-index-sync.c, src/lib-storage/list/mailbox-list- index.c, src/lib-storage/list/mailbox-list-iter.c, src/lib- storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/list/mailbox-list-notify-tree.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/list /subscription-file.c, src/lib-storage/mail-copy.c, src/lib-storage /mail-error.c, src/lib-storage/mail-namespace.c, src/lib-storage /mail-search-build.c, src/lib-storage/mail-search-parser-cmdline.c, src/lib-storage/mail-search-parser-imap.c, src/lib-storage/mail- search-parser.c, src/lib-storage/mail-search-register-human.c, src /lib-storage/mail-search-register-imap.c, src/lib-storage/mail- search-register.c, src/lib-storage/mail-search.c, src/lib-storage /mail-storage-hooks.c, src/lib-storage/mail-storage-service.c, src /lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage.c, src/lib-storage/mail-thread.c, src/lib-storage/mail- user.c, src/lib-storage/mail.c, src/lib-storage/mailbox-get.c, src /lib-storage/mailbox-guid-cache.c, src/lib-storage/mailbox-header.c, src/lib-storage/mailbox-keywords.c, src/lib-storage/mailbox-list- notify.c, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- search-result.c, src/lib-storage/mailbox-tree.c, src/lib-storage /mailbox-uidvalidity.c, src/lib-storage/test-mailbox-get.c, src/lib- test/test-common.c, src/lib/abspath.c, src/lib/aqueue.c, src/lib/array.c, src/lib/askpass.c, src/lib/backtrace-string.c, src/lib/base64.c, src/lib/bsearch-insert-pos.c, src/lib/buffer.c, src/lib/child-wait.c, src/lib/compat.c, src/lib/connection.c, src/lib/crc32.c, src/lib/data-stack.c, src/lib/eacces-error.c, src/lib/env-util.c, src/lib/execv-const.c, src/lib/failures.c, src/lib/fd-close-on-exec.c, src/lib/fd-set-nonblock.c, src/lib /fdatasync-path.c, src/lib/fdpass.c, src/lib/file-cache.c, src/lib /file-copy.c, src/lib/file-dotlock.c, src/lib/file-lock.c, src/lib /file-set-size.c, src/lib/guid.c, src/lib/hash-format.c, src/lib /hash-method.c, src/lib/hash.c, src/lib/hash2.c, src/lib/hex- binary.c, src/lib/hex-dec.c, src/lib/home-expand.c, src/lib/hostpid.c, src/lib/imem.c, src/lib/ioloop-epoll.c, src/lib /ioloop-notify-dn.c, src/lib/ioloop-notify-fd.c, src/lib/ioloop- notify-inotify.c, src/lib/ioloop-notify-none.c, src/lib/ioloop- poll.c, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib/iostream- rawlog.c, src/lib/iostream-temp.c, src/lib/iostream.c, src/lib/ipwd.c, src/lib/iso8601-date.c, src/lib/istream- base64-decoder.c, src/lib/istream-base64-encoder.c, src/lib/istream- chain.c, src/lib/istream-concat.c, src/lib/istream-crlf.c, src/lib /istream-data.c, src/lib/istream-file.c, src/lib/istream-jsonstr.c, src/lib/istream-limit.c, src/lib/istream-mmap.c, src/lib/istream- rawlog.c, src/lib/istream-seekable.c, src/lib/istream-sized.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/json-parser.c, src/lib/lib-signals.c, src/lib/lib.c, src/lib/mempool-alloconly.c, src/lib/mempool-datastack.c, src/lib/mempool-system.c, src/lib /mempool-unsafe-datastack.c, src/lib/mempool.c, src/lib/mkdir- parents.c, src/lib/mmap-anon.c, src/lib/mmap-util.c, src/lib/module- dir.c, src/lib/mountpoint.c, src/lib/net.c, src/lib/nfs- workarounds.c, src/lib/numpack.c, src/lib/ostream-buffer.c, src/lib /ostream-file.c, src/lib/ostream-rawlog.c, src/lib/ostream.c, src/lib/primes.c, src/lib/printf-format-fix.c, src/lib/priorityq.c, src/lib/process-title.c, src/lib/randgen.c, src/lib/read-full.c, src/lib/restrict-access.c, src/lib/restrict-process-size.c, src/lib /safe-memset.c, src/lib/safe-mkdir.c, src/lib/safe-mkstemp.c, src/lib/sendfile-util.c, src/lib/seq-range-array.c, src/lib/str- find.c, src/lib/str-sanitize.c, src/lib/str.c, src/lib/strescape.c, src/lib/strfuncs.c, src/lib/strnum.c, src/lib/test-aqueue.c, src/lib /test-array.c, src/lib/test-base64.c, src/lib/test-bsearch-insert- pos.c, src/lib/test-buffer.c, src/lib/test-crc32.c, src/lib/test- hash-format.c, src/lib/test-hex-binary.c, src/lib/test- iso8601-date.c, src/lib/test-istream-base64-decoder.c, src/lib/test- istream-base64-encoder.c, src/lib/test-istream-concat.c, src/lib /test-istream-crlf.c, src/lib/test-istream-seekable.c, src/lib/test- istream-tee.c, src/lib/test-json-parser.c, src/lib/test-lib.c, src/lib/test-llist.c, src/lib/test-mempool-alloconly.c, src/lib /test-network.c, src/lib/test-numpack.c, src/lib/test-ostream- file.c, src/lib/test-primes.c, src/lib/test-priorityq.c, src/lib /test-seq-range-array.c, src/lib/test-str-find.c, src/lib/test-str- sanitize.c, src/lib/test-strescape.c, src/lib/test-strfuncs.c, src/lib/test-time-util.c, src/lib/test-unichar.c, src/lib/test-utc- mktime.c, src/lib/test-var-expand.c, src/lib/time-util.c, src/lib/unichar.c, src/lib/unix-socket-create.c, src/lib/unlink- directory.c, src/lib/unlink-old-files.c, src/lib/uri-util.c, src/lib /utc-mktime.c, src/lib/utc-offset.c, src/lib/var-expand.c, src/lib /write-full.c, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp /lmtp-proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/main.c, src/log /doveadm-connection.c, src/log/log-connection.c, src/log/log-error- buffer.c, src/log/log-settings.c, src/log/main.c, src/login-common /access-lookup.c, src/login-common/client-common-auth.c, src/login- common/client-common.c, src/login-common/login-proxy-state.c, src /login-common/login-proxy.c, src/login-common/login-settings.c, src /login-common/main.c, src/login-common/sasl-server.c, src/login- common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/master/capabilities-posix.c, src/master/dup2-array.c, src/master/main.c, src/master/master- settings.c, src/master/service-anvil.c, src/master/service-listen.c, src/master/service-log.c, src/master/service-monitor.c, src/master /service-process-notify.c, src/master/service-process.c, src/master/service.c, src/plugins/acl/acl-api.c, src/plugins/acl /acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-mailbox- list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/acl/doveadm-acl.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire /expire-plugin.c, src/plugins/expire/expire-set.c, src/plugins/fts- lucene/doveadm-fts-lucene.c, src/plugins/fts-lucene/fts-backend- lucene.c, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins /fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend- solr.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-solr /solr-connection.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts-squat/fts-squat-plugin.c, src/plugins/fts-squat /squat-test.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts- squat/squat-uidlist.c, src/plugins/fts/doveadm-dump-fts-expunge- log.c, src/plugins/fts/doveadm-fts.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-expunge-log.c, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts-parser-html.c, src/plugins/fts/fts-parser-script.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-search- serialize.c, src/plugins/fts/fts-search.c, src/plugins/fts/fts- storage.c, src/plugins/fts/xml2text.c, src/plugins/imap-acl/imap- acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/imap-stats/imap-stats-plugin.c, src/plugins/imap-zlib /imap-zlib-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/mailbox-alias/mailbox-alias- plugin.c, src/plugins/notify/notify-plugin.c, src/plugins/notify /notify-storage.c, src/plugins/pop3-migration/pop3-migration- plugin.c, src/plugins/quota/doveadm-quota.c, src/plugins/quota /quota-count.c, src/plugins/quota/quota-dict.c, src/plugins/quota /quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota /quota-maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/replication/replication-plugin.c, src/plugins/snarf /snarf-plugin.c, src/plugins/stats/stats-connection.c, src/plugins/stats/stats-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- mail.c, src/plugins/virtual/virtual-plugin.c, src/plugins/virtual /virtual-save.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- sync.c, src/plugins/virtual/virtual-transaction.c, src/plugins/zlib /zlib-plugin.c, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-login-settings.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/replication/aggregator/aggregator- settings.c, src/replication/aggregator/aggregator.c, src/replication/aggregator/notify-connection.c, src/replication/aggregator/replicator-connection.c, src/replication/replicator/doveadm-connection.c, src/replication/replicator/notify-connection.c, src/replication/replicator/replicator-brain.c, src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-settings.c, src/replication/replicator/replicator.c, src/ssl-params/main.c, src /ssl-params/ssl-params-openssl.c, src/ssl-params/ssl-params- settings.c, src/ssl-params/ssl-params.c, src/stats/client-export.c, src/stats/client.c, src/stats/global-memory.c, src/stats/mail- command.c, src/stats/mail-domain.c, src/stats/mail-ip.c, src/stats /mail-server-connection.c, src/stats/mail-session.c, src/stats/mail- stats.c, src/stats/mail-user.c, src/stats/main.c, src/stats/stats- settings.c, src/util/gdbhelper.c, src/util/maildirlock.c, src/util/rawlog.c, src/util/script-login.c, src/util/script.c, src/util/tcpwrap-settings.c, src/util/tcpwrap.c: Updated copyright notices to include year 2013. [90710c6c3beb] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-solr/fts-solr-plugin.h: fts-solr: Deinit solr connection at plugin unload. [1b671d03474d] 2013-02-01 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c: fts-solr: Reverted previous change, it only crashes. The plugin is already unloaded at lib_atexit() time. [78bdcb6642c7] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c: fts-solr: Free the solr_connection at exit. [e62a7ca7d1f2] 2013-02-01 Stephan Bosch * src/lib-http/http-client-connection.c, src/lib-http/http-client- host.c, src/lib-http/http-client-peer.c, src/lib-http/http-client- private.h, src/lib-http/http-client-request.c, src/lib-http/http- client.c, src/lib-http/http-client.h, src/lib-http/test-http- client.c: lib-http: Various bugfixes [c5230b8ffd40] 2013-02-01 Timo Sirainen * src/auth/auth-settings.c, src/auth/auth-settings.h: auth: first/last_valid_uid settings shouldn't have had auth_ prefix. [18661d1d6ed0] 2013-01-31 Timo Sirainen * src/lib/ostream.c: ostream: If stream is closed with stream_errno=0, set it to EPIPE. [4a59737dd2ca] * src/lib/ostream.c: ostream: Default seek&write_at implementations should fail with ESPIPE, not EPIPE. [07ee9842a00b] * src/replication/replicator/doveadm-connection.c: replicator: Don't try to reuse doveadm connections (and have them immediately fail) [e9e6a95cea21] * src/plugins/replication/replication-plugin.c: replicator plugin: Use non-blocking open for the replicator fifo. This fixes an infinite hang if the replicator process isn't running. [0a5a19067d95] * src/replication/replicator/doveadm-connection.c: replicator: Use locking when running dsync. [138f1c76c0ec] * src/replication/replicator/replicator-brain.c: replicator: Crashfix at deinit [1bd70d505ef7] * src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync- mailbox-import.c: dsync: More fixes to merging flag/keyword changes. [85e464d088da] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added "modseq" field. [61aaf4102761] * src/doveadm/dsync/dsync-mail.h, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed syncing message keywords. "add" and "final" can't be mixed together always without causing keywords to be added back unintentionally. [067179cbabc2] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: If both local and remote have the same message flags, don't go changing them. [9b7d80a8db44] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: When we know that remote does a flag update, try to guess the remote's new modseq and set it [798a335d99b0] * src/doveadm/dsync/dsync-mailbox-tree-fill.c: dsync: If mailbox UIDVALIDITY is 0, sync it to assign it instead of assert-crashing. [86629f621fe4] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed syncing keyword removals. [2801de211b78] * src/doveadm/dsync/doveadm-dsync.c: dsync: Increased "remote cmd exit wait" from 5 to 30 seconds. [47ad56ea1788] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Ignore GUID mismatch on expunged message pair. [1d88f01ba2aa] * src/doveadm/dsync/doveadm-dsync.c: dsync: If remote command child process doesn't die at exit, kill -9 it. [070ca24e5846] 2013-01-30 Timo Sirainen * src/auth/mech-gssapi.c: auth: Fixed compiling GSSAPI after recent changes. [9afe5c6c1c1f] * src/auth/auth-fields.c, src/auth/auth-fields.h, src/auth/auth- master-connection.c, src/auth/auth-request-handler.c, src/auth/auth- request.c, src/auth/auth-request.h, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/auth-worker-client.c, src/auth/auth.c, src/auth/auth.h, src/auth/mech-gssapi.c, src/auth /passdb-blocking.c: 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. [d60aa734c72d] * src/auth/auth-request.c: auth: Code cleanup: Renamed some fields used in internal communication with worker. [9e93a5743c95] * src/auth/auth-worker-client.c: auth: Auth requests' flag fields were never passed to worker processes. [105c40084c5c] * src/auth/auth-request-handler.c: auth: Fixed login USER reply broken by recent changes. [cf63624b2566] * src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth /auth-request.h, src/auth/auth-worker-client.c, src/auth/db- checkpassword.c, src/auth/mech-gssapi.c, src/auth/passdb-dict.c, src/auth/passdb-ldap.c, src/auth/passdb-sql.c: 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. [686f32406220] * src/auth/auth-fields.c, src/auth/auth-fields.h: auth: Allocate auth-fields array lazily. Also some naming cleanups. [06b41206ed4e] * src/auth/Makefile.am, src/auth/auth-client-connection.c, src/auth /auth-fields.c, src/auth/auth-fields.h, src/auth/auth-master- connection.c, src/auth/auth-postfix-connection.c, src/auth/auth- request-handler.c, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth-stream.c, src/auth/auth-stream.h, src/auth/auth- worker-client.c, src/auth/db-checkpassword.c, src/auth/passdb- blocking.c, src/auth/userdb-blocking.c, src/auth/userdb.h: auth: Code cleanup: Renamed auth-stream to auth-fields. [17f5257d60c1] * src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth- stream.c, src/auth/auth-stream.h, src/auth/auth-worker-client.c, src/auth/db-checkpassword.c, src/auth/userdb-blocking.c: 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. [cc4472f02f70] * src/auth/auth-stream.c, src/auth/auth-stream.h: auth: Code cleanup: Minor auth_stream API simplifications. [f11ae64365b5] * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c, src/auth/auth-master-connection.h, src/auth/auth- request-handler.c, src/auth/auth-request-handler.h, src/auth/auth- request.c, src/auth/auth-request.h: auth: Code cleanup: Avoid using auth_stream_reply as temporary strings. [526aa986d534] * src/auth/auth-request-handler.c, src/auth/auth-request.h: auth: Code cleanup: Removed unnecessary userdb_ prefix checks. The userdb_ fields are nowadays placed to userdb_reply immediately. [3fac9306be3e] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth- stream.c, src/auth/auth-stream.h, src/auth/auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/auth-worker-server.h, src/auth/passdb-blocking.c, src/auth/userdb-blocking.c: auth: Code cleanup: Removed unnecessary auth_stream_reply usage from auth-worker communication. [55d20120b348] * src/auth/auth-request.c, src/auth/auth-stream.c, src/auth/auth- stream.h: auth: Code cleanup - removed auth_stream_split() [0897fc01fb93] 2013-01-29 Timo Sirainen * README: README: Added RFC 6851 [449c56aabbb6] 2013-01-28 Timo Sirainen * src/lib-storage/mail-storage.c: 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. [6724d4ae26ec] * src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-mail.h, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync- mailbox-import.c: dsync: When syncing locally, mailbox_copy() the mail to attempt a fast copy. [d3cda5a567be] * src/doveadm/dsync/dsync-ibc-pipe.c: dsync: Fixed syncing locally when GUIDs weren't available. [ceb75581cfcb] 2013-01-24 Timo Sirainen * src/lib-storage/index/index-storage.c: lib-storage: Fixed mailbox_exists() for LAYOUT=index. [6fa779e1d663] 2013-01-22 Timo Sirainen * src/doveadm/dsync/dsync-brain-mailbox.c: dsync: Error handling crashfix [4673af53e7e6] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Handle mailbox_update() when possible, instead of always just failing. [83803323f357] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Return INTERNALDATE as save-date (better than error). [aa60f457a23f] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Avoid unnecessarily selecting a mailbox when looking up its GUID. [1706b3490966] 2013-01-21 Timo Sirainen * src/doveadm/dsync/dsync-ibc-pipe.c, src/lib-storage/index/index- status.c: Increased initial memory pool sizes. [be5ce6c06b08] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Added a quick way to debug unexpected changes. [583ea6b63c5d] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixes to handling storage formats that don't use 128bit GUIDs. [1b18ff11effc] * src/lib-dict/dict-cdb.c: dict-cdb: Handle cdb_read() errors. [87a709eb7b28] * configure.ac, src/dict/main.c, src/lib-dict/Makefile.am, src/lib- dict/dict-cdb.c, src/lib-dict/dict-private.h: dict: Added support for cdb backend. Based on patch by Hleb Valoshka. [2c249941f9c2] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed infinite loop when message suddenly got expunged. [9aba8584e5eb] * src/lib-index/mail-index-transaction-sort-appends.c, src/lib-index /mail-index-transaction-update.c: lib-index: Fixed sorting appended messages when some were assigned new UIDs. [df2e46c38c92] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: If remote doesn't send some message bodies, log an error about each one separately. [fc5c3281d6d3] * src/doveadm/dsync/dsync-mailbox-import.c: dsync backup: Old unwanted messages weren't deleted as they should have. [940414cea18d] * src/lib-index/mail-transaction-log-view.c: lib-index: mail_transaction_log_view_set_all() didn't necessarily scan .log.2 file. [22a1f4cfe9fb] * src/doveadm/dsync/dsync-transaction-log-scan.c: dsync: GUIDs weren't set properly to expunge records, causing non- optimal behavior. [9d461d3b2fe7] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed crashes when sending already expunged messages. [3a395a61f109] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Verify messages' GUIDs better. [f0dbe8fc8905] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed syncing to non-remote locations. [4260de42d93c] * src/lib-fs/Makefile.am, src/lib-fs/fs-api-private.h, src/lib-fs/fs- api.c, src/lib-fs/fs-metawrap.c, src/lib-fs/istream-metawrap.c, src /lib-fs/istream-metawrap.h: lib-fs: Added "metawrap" wrapper to implement metadata as headers in the file content. [5818d8f488c1] * src/lib/istream.c: i_stream_read_next_line() should have also set eof=TRUE on ENOBUFS errors. [ee177df07178] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- posix.c, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c: 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. [df8fd01f355c] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- api.h, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-queue.c, src/lib-fs /fs-sis.c, src/lib-fs/fs-test.c: lib-fs: Added flags to iteration, and FS_ITER_FLAG_DIRS as the first flag. [6e5adbf30e35] 2013-01-17 Timo Sirainen * src/doveadm/doveadm-mail.h: doveadm: Compiling fix [33830df49f59] 2013-01-16 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-sync.c: sdbox: Fixed rebuilding index when UIDVALIDITY is missing. [ba0fae268904] * src/lib-storage/index/index-rebuild.c: sdbox: next-uid may have been set wrong when rebuilding indexes for empty mailbox. [353a2a6406aa] * src/doveadm/doveadm-settings.c: dsync_remote_cmd: The -l parameter no longer exists. [5eedc2b9cb23] 2013-01-15 Timo Sirainen * src/lib-index/mail-index-transaction-update.c: lib-index: Newly added messages weren't always sorted by UIDs. [6139eac53d72] * Makefile.am, configure.ac: dovecot-config: Removed unnecessary/duplicate ssl library links. [0e12a687f5bf] 2013-01-14 Timo Sirainen * src/lib-index/mail-index-transaction-finish.c: lib-index: Added asserts. [970dc6b0760b] * src/lib-index/mail-transaction-log-file.c: lib-index: Fixed marking transaction log file corrupted due to added O_APPEND flag. [6f62a31bf0d4] * src/doveadm/doveadm-auth.c: doveadm user: Avoid initializing the user as much as possible. [70b97cecdacd] * doc/example-config/conf.d/10-mail.conf: example-config: Added mail_attribute_dict [ca2be7b7da3e] * src/auth/db-passwd-file.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/server-connection.c, src/lib-lda/lmtp-client.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts-parser-script.c: Several fixes to handling "istream input line too long" conditions. [19403b3926f9] * src/lib/istream.c, src/lib/istream.h: 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. [20a545f932e3] 2013-01-13 Timo Sirainen * src/doveadm/client-connection.c: doveadm: Increased doveadm client's max command line length. [6654ed22af78] 2013-01-11 Timo Sirainen * src/lib-imap-storage/imap-msgpart.c: 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. [d4e7a3184a82] * src/lib-imap-storage/imap-msgpart.c, src/lib-imap-storage/imap- msgpart.h: lib-imap-storage: Added imap_msgpart_get_partial_size() missing from previous commit. [b0e0eb30c2b9] * src/imap/imap-fetch-body.c: imap: Improved unexpected FETCH error messages. [b56e7845a9e8] 2013-01-10 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c: dsync: Added "remoteprefix:" destination, which is same as "remote:" except sends "username\n" prefix. [b468c30c4522] * src/doveadm/dsync/doveadm-dsync.c: 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. [68b7c9ce713b] * src/doveadm/dsync/doveadm-dsync.c: dsync server: Fixed crash at deinit [4da6d4fa1892] * src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-private.h, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync- ibc.h: dsync: Close mail streams earlier on failures to avoid assert- crashing [40dd9a080b6e] * src/lib-storage/mailbox-list.c: lib-storage: Maildir++ layout shouldn't disallow "cur", "new" or "tmp" mailbox names. [577c6dd315c3] * src/lib-storage/mailbox-list.c: lib-storage: Improved "Using permissions" debug message. [7035da8cfaf4] * src/doveadm/dsync/doveadm-dsync.c: 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.. [ce0bd8ab1459] * src/doveadm/dsync/dsync-mailbox-export.c: dsync: Attempt to preserve \Recent flag as well [f6d69bc1beed] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: dsync: Handle syncing mailboxes with same name but different GUIDs. [f106740d92a0] * src/doveadm/doveadm-settings.c, src/doveadm/dsync/doveadm-dsync.c: dsync: Removed unnecessary -n parameter from dsync-server. The setting is sent within dsync protocol. [1a47a0df6ad0] * src/replication/replicator/doveadm-connection.c, src/replication/replicator/doveadm-connection.h, src/replication/replicator/replicator-brain.c, src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-queue.h: replicator: Use stateful dsyncing whenever possible. [b21f3119a5ee] * src/replication/replicator/doveadm-connection.c: replicator: doveadm connections weren't reset properly [59cef0c673b4] * src/doveadm/dsync/dsync-mailbox-state.c: dsync: Fixed parsing state string. [1d7d160015cb] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Crashfix for storage rebuild [42a88f557662] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed printing output state when running via doveadm-server. [29e5702b23ab] * src/doveadm/doveadm-print.c: doveadm: Added assert. [90a603209bad] 2013-01-09 Timo Sirainen * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Another fix to handling expunges from the end of mailbox. [b27245a6adde] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Mailbox syncing fix [b338c4a08f42] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Error handling fix. [2c4394d0360b] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: Merged changes from v2.1 tree. [ec9b98df8c72] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox rebuild: Update to previous commit [1ab8e0e699f7] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox rebuild: Don't always duplicate messages that have conflicting GUIDs. [6ff1678c289f] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox rebuild: Use mail size instead of record size when guessing if the mails are the same. [b0bd7b2ff1c5] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed handling UID renumbering when new mail was saved during dsync. [a0493fa018fa] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h: dsync: Don't wrongly log errors about missing message bodies. Also added some debug logging related to it. [cc77431b09b4] * src/lib/ostream-file.c: 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. [3d3625d18231] * src/lib-index/mail-index.h: lib-index: Comment update [7bbc5c50c309] * .hgsigs, .hgtags, NEWS, configure.ac, src/lib-storage/index/dbox- common/dbox-file.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/index-mail.c, src/lib/buffer.c, src/lib/net.c: Merged changes from v2.1 tree. [f06419a40a06] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Allow reflink-copying a mail when wanted GUID matches the current GUID. [df06c834d7e8] * src/lib-storage/index/index-mail.c: lib-storage: dest_mail wasn't reset if previous save was aborted. This could have happened only with dsync. [b87a7c4d775f] * src/lib-storage/index/dbox-common/dbox-file.c: dbox: Give a name to the file's output stream (for improved error logging). [bdd1499989c6] 2013-01-08 Timo Sirainen * src/lib/buffer.c: DEBUG: buffer_verify_pool() crashed with empty buffer. [e098f2f90fb2] * src/lib/buffer.c: DEBUG: buffer_verify_pool() crashed with static sized buffers. [427dd81baa8d] * run-test.sh: run-test.sh didn't exit with failure code when the test failed [3e3e0b482a36] * src/lib/network.c: net_connect_unix(): If path is too long, return ENAMETOOLONG if it's available. [e4cc3f2b66e3] 2013-01-07 Timo Sirainen * .hgsigs: Added signature for changeset cf9d62fd0b14 [36eb80cd02ea] * .hgtags: Added tag 2.1.13 for changeset cf9d62fd0b14 [a6ce877f1cd7] * NEWS, configure.in: Released v2.1.13. [cf9d62fd0b14] [2.1.13] 2013-01-08 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c: dsync: Make remote's stderr fd nonblocking to avoid hanging. [2ae4a40b3b24] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixes to printing remote's stderr output. [f0c11f532e3b] * src/doveadm/dsync/doveadm-dsync.c: dsync: Print remote's stderr line-buffered. Especially when debugging is enabled there can be a lot of output, which makes this useful. [6ff774dc0b6e] * src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync- brain.c, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync /dsync-ibc-private.h, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync-ibc.h: dsync: Fixes to handling output stream buffering. [5bb80a6491eb] * src/replication/replicator/doveadm-connection.c: replicator: Send only one sync command to doveadm-server per connection. This fixes setuid()/setgid() problems when multiple UIDs are used. [e0d4d8f9d097] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Minor fix for talking with remote dsync. [0949ddc3a892] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Crashfix for handling expunges from end of mailbox. [a7be0c9a00df] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Fixed syncing expunge for last mail in mailbox. [ea3c1bd6d434] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Avoid updating modseqs unnecessarily. lib-index perhaps should do this automatically as well. [df5b25b11592] * src/doveadm/dsync/dsync-brain-mails.c: dsync: Avoid infinite looping. [475a494b2fab] * src/doveadm/dsync/dsync-mailbox-export.c: dsync: Assert-crashfix for handling keywords. [cf361d83bea6] * src/lib-index/test-mail-transaction-log-append.c: lib-index: Fixed failing transaction log test. [051affd69699] * src/lib-imap/test-imap-bodystructure.c: test-imap-bodystructure: Fixed the test to pass with new imap-quote logic. [6a19df272459] * run-test.sh: run-test.sh didn't exit with failure code when the test failed [22e39b6bef32] * src/lib-http/Makefile.am: 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. [425dc9afd023] 2013-01-07 Timo Sirainen * .hgsigs: Added signature for changeset 86bccdf46d17 [44b7fe18e5b6] * .hgtags: Added tag 2.2.beta1 for changeset 86bccdf46d17 [ebec57410960] * configure.ac: Released v2.2.beta1. [86bccdf46d17] [2.2.beta1] * src/lib-http/http-client-connection.c, src/lib-http/http-client- private.h, src/lib-http/http-client-request.c, src/lib-http/http- transfer-chunked.c, src/lib-http/test-http-client.c: lib-http: Various fixes Patch by Stephan Bosch. [d1eaa348482f] 2013-01-05 Timo Sirainen * .hgsigs, .hgtags, Makefile.am, NEWS, configure.ac, src/auth/auth- master-connection.c, src/auth/auth-request.c, src/auth/auth- stream.c, src/auth/auth-stream.h, src/auth/db-ldap.c, src/auth/mech.c, src/auth/password-scheme.c, src/auth/userdb- passwd.c, src/config/main.c, src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print-table.c, src/doveadm/server-connection.c, src/imap/cmd-append.c, src/imap/cmd-copy.c, src/imap/imap-sync.c, src/indexer/master-connection.c, src/lib-auth/auth-master.c, src /lib-auth/auth-master.h, src/lib-dict/dict-file.c, src/lib-index /mail-cache-compress.c, src/lib-index/mail-cache-fields.c, src/lib- index/mail-cache-private.h, src/lib-index/mail-cache-transaction.c, src/lib-index/mail-cache.c, src/lib-index/mail-index-alloc-cache.c, src/lib-index/mail-index-transaction-view.c, src/lib-lda/mail- deliver.c, src/lib-master/mountpoint-list.c, src/lib-ssl-iostream /iostream-openssl.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/index- sync.c, src/lib-storage/index/raw/raw-mail.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib-storage/mailbox-list.c, src/lib/Makefile.am, src/lib/buffer.c, src/lib/buffer.h, src/lib/mkdir-parents.c, src/lib /mkdir-parents.h, src/lib/str.c, src/lib/test-lib.c, src/lib/test- lib.h, src/lib/unichar.c, src/lib/unichar.h, src/lib/var-expand.c, src/login-common/login-proxy.c, src/login-common/ssl-proxy- openssl.c, src/plugins/acl/acl-mailbox.c, src/plugins/expire /doveadm-expire.c, src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-solr/solr- connection.c, src/plugins/fts/fts-api-private.h, src/plugins/fts /fts-build-mail.c, src/plugins/fts/fts-parser-script.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c, src/plugins/mailbox-alias /mailbox-alias-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/stats/stats-plugin.c, src/plugins/virtual/virtual- config.c, src/plugins/virtual/virtual-mail.c, src/stats/mail- session.c: Merged changes from v2.1 tree. [13e74bd5ac8c] * src/auth/auth-request.c, src/auth/auth-stream.c, src/auth/auth- stream.h: 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. [3eeb5270963b] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy_expunge: Allow expunging from lazy_expunge namespace via virtual mailbox. (Instead of copying the message all over again to the lazy_expunge namespace.) [fc521e6378d5] 2013-01-04 Timo Sirainen * src/plugins/quota/quota-storage.c: quota: Don't crash if shared namespace's owner doesn't have quota enabled (but you have). [c91d142130be] * src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib /test-unichar.c, src/lib/unichar.c: uni_utf8_*(): Treat overlong UTF8 sequences as invalid. [7be4709aab5e] * src/plugins/acl/acl-storage.c: acl: Treat empty plugin { acl } setting the same as if it didn't exist. This allows using -o plugin/acl= to disable ACLs. [721aba9128b9] * src/lib/str.c: DEBUG: Call buffer_verify_pool() on str_c*() [a7a45a56211c] * src/lib/buffer.c, src/lib/buffer.h: Added buffer_verify_pool() [9fda4feb6e2d] 2013-01-03 Timo Sirainen * src/plugins/virtual/virtual-mail.c: virtual storage: get_first_header() always returned "doesn't exist", breaking SORT/THREAD. [abcc9959b757] 2012-12-07 lion * src/lib-index/mail-index-transaction-view.c: lib-index: Optimized single sequence lookup of newly created mails in transaction view. [c9e6ad8a42db] * src/lib-index/mail-index-transaction-view.c: lib-index: Fixed sequence lookup of newly created mails in transaction view. [7f4835cff04a] 2012-12-19 Timo Sirainen * src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache.c: lib-index: If map_with_read gets disabled, reset the cache buffers properly. [32ce915e046a] 2012-12-18 Timo Sirainen * src/auth/password-scheme.c: auth: Added CLEAR as yet another alias to PLAIN/CLEARTEXT password scheme. This apparently is used by Sun LDAP server. [bde8963a3774] * src/lib-index/mail-cache.c: 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. [bded819417d9] * src/lib-index/mail-cache-fields.c: lib-index: Make sure a corrupted mail_cache_header_fields.size doesn't cause crashes. [2f848393f78e] * src/lib-storage/index/raw/raw-mail.c: raw storage: Make sure "from envelope" isn't returned as NULL. [579984fdb6e5] * src/config/main.c: config: Notify process creation success to master only after parsing config file [bc11033ef035] * doc/example-config/Makefile.am: example-config: Added missing dovecot-dict-auth.conf.ext [310b3a77a9d1] * src/lib-index/mail-index-alloc-cache.c: 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. [b53ab1c11843] * src/indexer/master-connection.c: 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. [04704d1eb6c3] * src/auth/mech.c: auth: When auto-loading auth mechanisms from plugins, generate the name better. [4ec13ce76f6e] 2012-12-13 Timo Sirainen * src/lib-dict/dict-file.c: dict-file: Automatically mkdir missing parent directories if they don't exist. [3c6a13c0d525] * src/lib-storage/mailbox-list.c: lib-storage: Use stat_first_parent() instead of doing it ourself. [c0ad6afa4128] * src/lib/mkdir-parents.c, src/lib/mkdir-parents.h: Added stat_first_parent() helper function. [40f9e2e339a6] 2012-12-11 Timo Sirainen * src/plugins/virtual/virtual-config.c: virtual plugin: Don't fail if mailbox patterns don't match anything. [f13f2725882e] 2012-12-08 Timo Sirainen * src/lib-master/mountpoint-list.c: lib-master: Ignore /Volumes and /private/tmp mountpoints with OSX (only). [265adb00eacd] * src/lib-master/mountpoint-list.c: lib-master: Ignore mountpoints under /Volumes by default. [657cb4c35a0e] * src/doveadm/doveadm-print-table.c: doveadm: table formatter supports now writing by streaming. This fixes it to work with doveadm server, which sometimes may use streaming. [c1e47738e7c3] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/lib-storage/mail- storage.h, src/plugins/acl/acl-mailbox.c: imap: If mailbox doesn't have read ACL, hide APPENDUID/COPYUID resp- codes. [f74f1b14975d] * src/plugins/fts-solr/solr-connection.c: fts-solr: Fixed memory leak [cfa6fc9d2856] 2012-11-30 Timo Sirainen * .hgsigs: Added signature for changeset 75bfda4a7c6c [b60872b87d26] * .hgtags: Added tag 2.1.12 for changeset 75bfda4a7c6c [23ed55ce16d0] * NEWS, configure.in: Released v2.1.12. [75bfda4a7c6c] [2.1.12] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail.h, src/plugins/expire/doveadm-expire.c: expire plugin: Don't crash when doveadm is run with proxying [75dc4cb4bfe0] 2012-11-29 Timo Sirainen * Makefile.am: Makefile: dovecot-config was missing quotes in LIBDOVECOT_LOGIN [f77e87298a66] * .hgsigs: Added signature for changeset 741d800a192f [b101277a3d26] * .hgtags: Added tag 2.1.11 for changeset 741d800a192f [15ec2d078a17] * NEWS, configure.in: Released v2.1.11. [741d800a192f] [2.1.11] * src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print-tab.c: doveadm: Don't truncate printed output that contain NUL bytes. doveadm fetch text output especially could have been truncated. [6fde42ec5c81] 2012-11-28 Timo Sirainen * src/stats/mail-session.c: stats: Log username and service for invalid UPDATE-SESSIONs [c81f1ca3cda6] * src/plugins/stats/stats-plugin.c: stats: Fixed crash when handling multiple users within same process. [31ed1f5cc8f1] * src/lib-index/mail-cache.c: lib-index: Fixed assert-crash caused by recent cache file changes. [348e9bad84f0] * src/lib-index/mail-cache.c: lib-index: Fixed memory leak with MAIL_INDEX_OPEN_FLAG_SAVEONLY [e62938129955] * src/doveadm/doveadm-mail-server.c: doveadm: Log better errors for failing passdb proxy lookups. [8bc9d40d77c4] * src/lib-auth/auth-master.c, src/lib-auth/auth-master.h: lib-auth: Added auth_master_get_socket_path() [755a2f08cde5] 2012-11-27 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: XML-encode non-body fields as well [6a97faf3e500] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Handle better when attempting to access shared mailboxes for nonexistent users. [7bca3be44b8f] * src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Added struct mail_user.nonexistent flag, which is filled by userdb lookup. [fe1be6725304] * src/plugins/fts/fts-parser-script.c: fts_parser: Minor error logging improvement [a9e7f9333f57] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c: 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. [8770940057b9] * src/plugins/mailbox-alias/mailbox-alias-plugin.c: mailbox-alias plugin: Error handling fix. [fd2d24171afd] * src/lib-index/mail-cache-private.h, src/lib-index/mail-cache- transaction.c: lib-index: Added v2.2+ forwards compatibility to dovecot.index.cache [55e84bb452e6] * src/login-common/ssl-proxy-openssl.c: 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. [174d7e974326] * src/auth/userdb-passwd.c: auth: userdb passwd lookups should have been done via worker processes by default. [8e5d9d88e250] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Removed deprecated waitFlush parameter from commit. [0f3972fa6dba] * src/lib/unichar.c, src/lib/unichar.h, src/plugins/fts-solr/fts- backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h: 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. [f584aae3b566] * src/doveadm/client-connection.c: doveadm-server: Reset headers in print output between running commands. [fdc509644d05] * src/doveadm/client-connection.c: doveadm-server: Avoid eating CPU when client disconnects before authentication is done. [0dc3f56e6468] * src/doveadm/server-connection.c: doveadm: Don't disconnect from server too early while there are still commands. [275a57b8dc70] * src/doveadm/doveadm-mail-server.c: doveadm: Include username in internal errors and "no such user" errors when running via server. [6f19c535110e] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c: fts-solr: Marked as FTS_BACKEND_FLAG_BUILD_SHORT_UTF8 [339e654f371e] * src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h: fts: Added FTS_BACKEND_FLAG_BUILD_SHORT_UTF8 to require sending only short UTF8 data to backend. [01550514f189] * src/lib/unichar.c, src/lib/unichar.h: liblib: Added uni_utf8_short_*() for handling UTF8 data where [56]-byte sequences are invalid. [172295f5a78b] * src/plugins/quota/quota-storage.c: quota: mailbox_get_status(STATUS_CHECK_OVER_QUOTA) returned wrong value on success. This fixes lmtp_rcpt_check_quota=yes [bebe54e1d640] * doc/man/doveadm-expunge.1.in: man: Added -d parameter to doveadm expunge. Patch by Pascal Volk. [1ac96aad5027] 2012-11-23 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: login: Try to avoid busy-looping on SSL_accept() when client doesn't behave nicely. [e95479f439aa] * src/auth/db-ldap.c: 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. [c722bd39098b] 2012-11-07 Timo Sirainen * src/auth/auth-master-connection.c: auth: Give a better error message for "client doesn't have lookup permissions". [c811aab61355] * Makefile.am: Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_LOGIN if needed. [22caa1317eb1] * src/lib/var-expand.c: 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. [3a33e686fc38] * src/lib-storage/index/dbox-multi/mdbox-save.c: 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) [6c1b4b9f527c] 2012-11-06 Timo Sirainen * src/imap/imap-sync.c: imap: Avoid sending multiple unnecessary VANISHED lines when sync had lots of changes. [bcd2d140ea10] 2012-11-05 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: [io]streams were added an unnecessary reference, causing memory leaks. [ba1287f46c98] 2012-11-04 Timo Sirainen * src/lib-index/mail-cache.c: lib-index: MAIL_INDEX_OPEN_FLAG_SAVEONLY may have caused stale data to be read from cache. [8252bcd7c489] 2012-11-03 Timo Sirainen * src/lib-index/mail-cache.c: lib-index: Recent cache file changes broke writing. [2de37734d0b9] 2012-10-31 Timo Sirainen * Makefile.am: Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_STORAGE if needed. [7d931927e4ac] 2012-10-30 Timo Sirainen * src/lib-lda/mail-deliver.c, src/lib-storage/index/index-sync.c: lib-lda: Avoid doing a costly mailbox sync when delivering mail to multiple recipients. [9cdeab12f3e1] 2012-10-29 Timo Sirainen * src/login-common/login-proxy.c: login proxy: For connect() failures log also the used local IP:port if available. [9d63f882194d] 2013-01-05 Timo Sirainen * src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request.c: 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. [922049229f7f] 2013-01-04 Timo Sirainen * doc/example-config/dovecot.conf: example-config: Added a note about protocol/local/remote {} sections. [8863e68291bd] * configure.ac, src/plugins/fts-lucene/Makefile.am: configure: Use pkg-config with clucene if available. [af5265e74b9e] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/virtual/virtual-mail.c: 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. [5bb879b6e3f3] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-mails.c, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-mail.c, src/doveadm/dsync/dsync-mail.h, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync- mailbox-export.h, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h, src/doveadm/dsync/dsync- mailbox-state.c, src/doveadm/dsync/dsync-mailbox-state.h, src/doveadm/dsync/dsync-mailbox.h, src/doveadm/dsync/dsync- transaction-log-scan.c, src/doveadm/dsync/dsync-transaction-log- scan.h: dsync: Use private modseqs to support syncing private flags in shared mailboxes. [5d90e2aa1ba8] * src/lib-storage/fail-mail.c, src/lib-storage/index/cydir/cydir- mail.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox- storage.c, src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src /lib-storage/index/index-status.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-sync-pvt.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/pop3c/pop3c-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib- storage/mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: Added support for "private modseqs" for INDEXPVT index. Used by dsync (next commit). [69371578720f] 2013-01-03 Timo Sirainen * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed parsing mailbox state from remote dsync. [b7d8027a8f74] 2012-12-28 Timo Sirainen * configure.ac: configure: Use -lrt for check_gettime() only if needed. [ac63858cbe5f] 2012-12-19 Timo Sirainen * src/lib-http/http-client-host.c: lib-http: Compile fix for previous change. [cd093d05037e] * src/lib/json-parser.c: json-parser: Fixed infinite looping in some situations. [a1b814081f0c] * src/lib-http/http-client-host.c: lib-http: Host entries were added to hash table using wrong hostname pointer. [0c9a4af8eaf8] 2012-12-18 Timo Sirainen * src/auth/mech.c: auth: When auto-loading auth mechanisms from plugins, generate the name better. [4eebc8959849] * src/lib-http/http-client-request.c: lib-http: Fixed a crash when http_client_request_submit() failed immediately [57d552496340] * src/lib/uri-util.c: uri-util: Control characters weren't properly escaped. e.g. "%0a" is correct, "% a" is not. [ce258aa11821] * src/lib-storage/index/index-mail-binary.c: lib-storage: Fixed assert-crash when trying to fetch a binary section for empty message. [cde6da31e6ec] 2012-12-15 Timo Sirainen * src/lib-storage/index/index-sync-pvt.c: lib-storage: Refresh private index before syncing to make sure we see latest changes. [58fdb8ded6b7] * src/lib-storage/index/maildir/maildir-storage.c: maildir: Fixed a crash caused by previous mailbox_update() change [eed88e231043] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Minor (probably unnecessary) fix for i_stream_read() API usage. Avoid the first read returning -2. [fc6873897e8b] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed hang when sending mail stream to remote dsync. [6f940b2bfbe6] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed remote syncing due to recent changes [1204e8bae160] * src/doveadm/dsync/doveadm-dsync.c: dsync: Set doveadm exit codes properly on errors. [79bcf862bf1c] * src/lib/istream.c: 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. [984a5b4fa793] * src/lib/istream.c: i_stream_next_line(): Don't reset stream_errno if stream is already closed. [b277f0bb18a2] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-mails.c, src/doveadm/dsync/dsync-brain-private.h: dsync: Don't start reading a mailbox until we know we actually need to sync it. [5a40e43bbe23] * src/lib-storage/index/mbox/mbox-storage.c: 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 4. dsync locks mbox with external transaction [fdf755b505c3] * src/lib-storage/index/mbox/mbox-storage.c: mbox: Mailbox GUID generation re-opened the mailbox using wrong name, possibly crashing. [507a4a57d7cd] * src/lib-storage/index/mbox/mbox-storage.c: mbox: Mailbox GUID lookup unnecessarily always synced mbox. [b765a09d8c6c] * src/lib-storage/index/mbox/mbox-storage.c: mbox: If mailbox_update() doesn't affect the mbox file, don't sync it. [646c5d0a60b5] * src/lib-storage/index/maildir/maildir-storage.c: maildir: If mailbox_update() doesn't affect dovecot-uidlist file, don't lock it. [0e88b2518e0f] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc-pipe.c, src/doveadm/dsync/dsync-ibc- stream.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync- mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree.h: dsync: Added back support for syncing only one mailbox (-m parameter) [88ac919f8afe] * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- ibc-stream.c: dsync: Error handling fix when mailbox is unexpectedly lost. [01ba0511d04d] 2012-12-14 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc-stream.c: dsync: Added -a parameter to sync all namespaces, not just the default one. [05d83c4df130] * src/doveadm/dsync/dsync-mailbox-tree.c: dsync: Mark mailbox tree memory pool as "growing" to avoid warnings. [9f332e29836d] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: 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.. [467cf7e5a616] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: dsync: Never try to create INBOX via temporary name and rename. [9a707794ee54] * src/lib-storage/mailbox-list.c: 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". [c6275c34d158] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mails.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync /dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync /dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.h: dsync: Added debugging and rawlogging support. [af3b86a16ac3] * src/doveadm/dsync/dsync-ibc-stream.c: dsync: Fixed hangs with remote dsyncing [f9e8cbb2792d] 2012-12-13 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-storage.c: 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. [b1267f135417] 2012-12-12 Timo Sirainen * src/lib-http/http-client-request.c: lib-http: Fixed sending HTTP request's payload. [2125cf15b26d] 2012-12-12 Stephan Bosch * src/lib-http/http-client-connection.c, src/lib-http/http-client- private.h, src/lib-http/http-client-request.c, src/lib-http/http- response-parser.c, src/lib-http/http-transfer-chunked.c, src/lib- http/http-transfer.h, src/lib-http/test-http-client.c, src/lib-http /test-http-transfer.c: lib-http: Added support for chunked input/output streams and some bugfixes. [7a4d8cd0e079] 2012-12-11 Timo Sirainen * src/plugins/quota/quota-storage.c: quota: Fixed quota calculation with mailbox_move(). [4a110cf281aa] 2012-12-08 Timo Sirainen * src/lib-storage/list/mailbox-list-index-backend.c: layout=index: If MAILBOX_LIST_FLAG_NO_MAIL_FILES is set, don't try to delete any mail files. [0851ffee594b] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.h: lib-storage: Copy MAIL_STORAGE_CLASS_FLAG_NO_ROOT to MAILBOX_LIST_FLAG_NO_MAIL_FILES [3c7cef3ffff9] * src/lib-fs/fs-api.h: lib-fs: Added FS_PROPERTY_DIRECTORIES. This is a hint for fs API users if they should call fs_delete() for directories. [959afc4f76eb] 2012-12-07 Timo Sirainen * src/lib/ostream-buffer.c: ostream-buffer: Fixed o_stream_sendv() with multiple iovs. Patch by Stephan Bosch [67448d683720] 2012-12-05 Timo Sirainen * src/lib-http/http-response-parser.c: lib-http: Parser didn't always fully skip over the previous request's payload. [b61b94be996e] 2012-12-04 Timo Sirainen * src/lib-mail/istream-qp-decoder.c, src/lib-mail/message-decoder.c, src/lib-mail/message-header-decode.c, src/lib-mail/quoted- printable.c, src/lib-mail/quoted-printable.h, src/lib-mail/test- istream-qp-decoder.c, src/lib-mail/test-message-decoder.c, src/lib- mail/test-quoted-printable.c: lib-mail: Detect errors in quoted-printable input. [0be51d94b0d9] * src/imap/cmd-idle.c: imap: Don't crash in IDLE if remote IP isn't known (PREAUTH) [266e24f1c78c] * src/doveadm/doveadm-mail.c, src/imap/cmd-fetch.c, src/imap/imap- commands-util.c, src/imap/imap-fetch-body.c, src/lib-storage/index /index-mail-binary.c, src/lib-storage/mail-error.h: imap: Fixed handling FETCH BINARY for broken content. [9c1791d1834f] * src/lib-mail/istream-qp-decoder.c: lib-mail: quoted-printable decoder istream shouldn't treat trailing "=" as error. [4d382ee358fb] * src/lib-storage/index/index-mail-binary.c: lib-storage: Set name for the "binary istream". [b3f14d2d2019] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c: lib-fs: Added a default fs_read() implementation using the fs_read_stream(). [674e45904706] * src/lib-http/http-response-parser.c: lib-http: Increased initial memory pool size [4aabd11948d1] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c: lib-fs: Added a default fs_write() implementation using the fs_write_stream*(). [bde65904d980] * src/lib-fs/fs-api.h: lib-fs: Comment update [8f0af55ee4b6] 2012-12-03 Timo Sirainen * src/Makefile.am: Makefile: Added missing \ [d1570c02ca21] 2012-12-02 Timo Sirainen * src/Makefile.am: Makefile: Reordered directories to fix build failure [d168fdd4aa8d] 2012-12-01 Timo Sirainen * .hgignore, src/lib-fs/Makefile.am, src/lib-fs/fs-test.c: lib-fs: Added fs-test to easily test FS API calls. [cea9a269311a] * src/lib/json-parser.c, src/lib/json-parser.h: Added json_append_escaped() [009287402687] * src/lib-http/http-client-connection.c: 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. [9cab24687819] 2012-11-29 Timo Sirainen * src/lib/json-parser.c, src/lib/json-parser.h, src/lib/test-json- parser.c: JSON parser: Added support for arrays. The parser should be complete now. [f456fffeec5c] * src/lib/json-parser.c, src/lib/json-parser.h, src/lib/test-json- parser.c: JSON parser: Added json_parse_skip_next() to skip over unwanted values. [4f7e0be9cc35] * src/lib/Makefile.am, src/lib/istream-jsonstr.c, src/lib/istream- jsonstr.h, src/lib/json-parser.c, src/lib/json-parser.h, src/lib /test-json-parser.c: JSON parser: Added support for reading string value as istream. [014be18f7130] * src/lib/json-parser.c, src/lib/test-json-parser.c: JSON parser fixes [9a31c44c1184] * src/auth/db-dict.c, src/lib/Makefile.am, src/lib/json-parser.c, src/lib/json-parser.h, src/lib/test-json-parser.c, src/lib/test- lib.c, src/lib/test-lib.h: JSON parser supports now nested objects and parsing from non- blocking input stream. [86572582647e] * src/lib/uri-util.h: uri-util.h always requires net.h to compile, #include it [309c9fe1f0a9] * src/lib-http/http-url.h: lib-http: http-url.h always requires net.h to compile, #include it [dfd7a3ea9df3] * src/lib-http/http-url.c: lib-http: http_url_parse() didn't allocate all strings from the given pool. [12a31e13fcab] * src/lib-http/http-client-request.c, src/lib-http/http-url.c, src /lib-http/http-url.h, src/lib-http/test-http-url.c: lib-http: http_url_parse() now returns the http_url allocated from given memory pool. [c9f6deb65d7b] 2012-11-28 Timo Sirainen * src/doveadm/dsync/dsync-mailbox-tree.c: dsync: Don't crash when syncing multiple namespaces. [22799e820158] * src/lib-storage/index/index-sync-private.h, src/lib-storage/index /index-sync-pvt.c, src/lib-storage/index/index-sync.c: lib-storage: Notify about \Seen flag changes in private index. Some earlier "don't send unnecessary flag changes" optimizations caused this. [e123e31de340] * src/lib-storage/index/index-mail.c: lib-storage: When updating flags in private index and nothing changes, don't increase modseq. [9107b794b7ad] * src/lib-storage/index/index-status.c: lib-storage: Fixed assert-crash with private indexes when looking for first unseen msg. [3c5f674285a8] * src/imap-urlauth/imap-urlauth-worker.c, src/lib-index/mail- transaction-log-file.c: Make static analyzer happier [fc890adce3d0] * src/lib-index/mail-cache-transaction.c: lib-index: Fixed randomly failing to write to dovecot.index.cache file [cd93c3506efe] * src/lib/ostream-rawlog.c: ostream-rawlog: Make sure rawlog logs only the data that got actually sent. [b10fbe79f619] * src/lib/iostream-rawlog.c: iostream-rawlog: Buffered output kept logging the same data over and over again. [9bff748f3437] * src/lib-storage/index/index-mail-binary.c: lib-storage: Don't assert-crash when fetching BINARY contents for empty body. [aa8f2e0fcb21] * src/lib-fs/fs-api.c: lib-fs: Don't crash when trying to initialize nonexistent fs driver. [aade5fa372a6] * src/lib/istream.c: 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. [fee60a91d586] 2012-11-27 Timo Sirainen * NEWS: NEWS updated [2b18b4b92cd9] * dovecot-config.in.in: dovecot-config: LIBDOVECOT_INCLUDE was missing path to lib-http [25e8459431fc] * src/lib-fs/Makefile.am, src/lib-fs/fs-api-private.h, src/lib-fs/fs- api.c, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-queue.c, src/lib-fs /fs-sis.c: lib-fs: Automatically try to load missing driver as plugin. [47c0a5a19211] * src/lib/lib.c, src/lib/lib.h: liblib: Added lib_atexit() to register process deinit callbacks. [2aef2557bdf1] * src/lib/module-dir.c, src/lib/module-dir.h: liblib: Added module_dir_find() [8f0994194f45] 2012-11-26 Timo Sirainen * src/doveadm/doveadm-dump-index.c: doveadm dump: Added support for "obox" index records. [9c22246ed431] * src/lib-imap-storage/imap-msgpart.c: lib-imap-storage: When returning an error istream, give it a useful name. [ecf2f2044455] * src/lib-storage/list/mailbox-list-index-backend.c, src/lib- storage/list/mailbox-list-index-iter.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/mailbox- list-private.h: lib-storage: Fixes to LAYOUT=index backend. [a725b63608fb] * src/lib-storage/mail-storage-private.h: lib-storage: Comment update for mail_prefetch() [f64a91637f9b] * src/lib-storage/mail-storage.c: lib-storage: If MAIL_STORAGE_CLASS_FLAG_NO_ROOT is set, don't even try to mkdir it. [b0bda8a2d178] * src/lib-storage/index/index-sync.c: lib-storage: Don't crash when trying to sync private index, if syncing had already failed. [c86b8807fa2f] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Verify that mail_attachment_fs backend supports RENAME property. This isn't needed by mdbox. [80a8bed29ad9] * src/lib-storage/index/dbox-common/dbox-save.h, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-single/sdbox- save.c: lib-storage: Code cleanup: dbox_save_context.cur_file doesn't need to be in dbox-common. [7fb33baa8201] * configure.ac, src/lib-dovecot/Makefile.am: Added libhttp to libdovecot.so [d1bff2c44fe4] * src/lib-http/Makefile.am: lib-http: Removed explicit safe-memset.lo links At least in all my systems they just complain about duplicates.. [a3653f58d4e6] * src/lib-dns/dns-lookup.h: lib-dns: Added DNS_CLIENT_SOCKET_NAME macro for the default socket name. [6d2cfcaad33c] * src/lib/unlink-directory.c, src/lib/unlink-directory.h: unlink_directory(): Added UNLINK_DIRECTORY_FLAG_FILES_ONLY [a39024316d8e] * src/lib/Makefile.am, src/lib/iostream-temp.c, src/lib/iostream- temp.h: Added iostream-temp for easily creating a temporary istream (to memory/file). [faa3a83282fb] * src/lib/ioloop-epoll.c: liblib: Added assert-check to epoll code to make sure we don't wait infinitely with no events. [22cfb7b347a8] * src/lib-fs/fs-api.h: lib-fs: Added a temp_dir setting that the caller can specify. [5552ac605201] * src/lib-fs/fs-api.h, src/lib-fs/fs-posix.c: lib-fs: Added ITER and RELIABLEITER properties for backends. [39578785ee92] * src/lib-fs/fs-posix.c: lib-fs: Fixed iteration with POSIX backend. [bc497e533da4] * src/lib-fs/fs-api.h, src/lib-fs/fs-posix.c: lib-fs: Iterating a nonexistent directory should be the same as iterating an empty directory. [bd01ca99bee5] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- api.h, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c: lib-fs: fs_wait_async() can now return an error. [38f3bd4bf6e3] 2012-11-24 Timo Sirainen * src/lib-http/Makefile.am, src/lib-http/http-client-host.c, src/lib- http/test-http-responses.c: lib-http: Compiler warning fixes [fa32c5f9cf71] 2012-11-24 Stephan Bosch * src/lib-http/Makefile.am, src/lib-http/http-client-connection.c, src /lib-http/http-client-host.c, src/lib-http/http-client-peer.c, src /lib-http/http-client-private.h, src/lib-http/http-client-request.c, src/lib-http/http-client.c, src/lib-http/http-client.h, src/lib-http /http-header-parser.c, src/lib-http/http-header-parser.h, src/lib- http/http-parser.c, src/lib-http/http-parser.h, src/lib-http/http- response-parser.c, src/lib-http/http-response-parser.h, src/lib-http /http-transfer-chunked.c, src/lib-http/http-transfer.h, src/lib-http /test-http-client.c, src/lib-http/test-http-header-parser.c, src /lib-http/test-http-response-parser.c, src/lib-http/test-http- responses.c, src/lib-http/test-http-transfer.c: lib-http: Added initial HTTP client implementation. [107c8b2c9594] 2012-11-23 Timo Sirainen * src/auth/passdb-bsdauth.c: bsdauth: Use "auth-" as the auth type. [b40bda50541c] 2012-11-16 Timo Sirainen * src/lib-imap/imap-quote.c: lib-imap: imap_append_string_for_humans() was broken for empty input string. [ea084c04e694] 2012-11-09 Timo Sirainen * src/lib/iostream-rawlog.c: iostream-rawlog: Don't assert-crash if trying to write 0 bytes. [482da7a91b1c] 2012-11-06 Timo Sirainen * src/lib/module-dir.c: module_dir_unload(): Don't dlclose() modules if GDB environment is set. [af331bc452d0] * src/lib-ssl-iostream/iostream-ssl.c: lib-ssl-iostream: Unload ssl_iostream_openssl plugin at exit. [7d28b19fe28d] * src/lib/module-dir.c: 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(). [6fc2502d6021] * src/auth/auth-token.c: auth: Require auth-token-secret.dat owner to be auth process's uid, not necessarily root. [2d0d0318b341] * src/imap/imap-sync.c: imap: Various fixes for handling expunges in mailbox sync. [5089affc8ae5] * src/lib/istream-seekable.c: istream-seekable: Underlying stream errors weren't handled correctly. [47085487f3d8] * src/lib-ssl-iostream/iostream-ssl.c: lib-ssl-iostream: Compiler warning fix when compiling without ssl [cca85adcb583] * src/Makefile.am: Makefile: Build lib-ssl-iostream before lib-http [d9d5b09a0b5b] * src/lib-dovecot/Makefile.am: Makefile: Fixed building libdovecot.so [7704a4f935ea] * dovecot-config.in.in: dovecot-config: Removed LIBDOVECOT_SSL, which is no longer needed. [1ab783418ff6] * configure.ac, src/lib-storage/index/imapc/Makefile.am, src/lib- storage/index/imapc/imapc-list.c, src/lib-storage/index/imapc/imapc- list.h, src/lib-storage/index/imapc/imapc-plugin.c, src/lib- storage/index/imapc/imapc-plugin.h, src/lib-storage/index/imapc /imapc-setting-storage.c, src/lib-storage/index/imapc/imapc- settings.h, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib- storage/index/pop3c/Makefile.am, src/lib-storage/index/pop3c/pop3c- plugin.c, src/lib-storage/index/pop3c/pop3c-plugin.h, src/lib- storage/index/pop3c/pop3c-setting-storage.c, src/lib- storage/index/pop3c/pop3c-settings.h, src/lib-storage/index/pop3c /pop3c-storage.c, src/lib-storage/index/pop3c/pop3c-storage.h: 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. [7c75559cd8f6] * configure.ac, src/auth/Makefile.am, src/lib-dovecot/Makefile.am, src /lib-master/Makefile.am, src/lib-ssl-iostream/Makefile.am, src/lib- ssl-iostream/iostream-openssl-common.c, src/lib-ssl-iostream /iostream-openssl-context.c, src/lib-ssl-iostream/iostream-openssl- params.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl- iostream/iostream-openssl.h, src/lib-ssl-iostream/iostream-ssl- private.h, src/lib-ssl-iostream/iostream-ssl.c, src/lib-ssl-iostream /istream-openssl.c, src/lib-ssl-iostream/ostream-openssl.c, src /login-common/Makefile.am: 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. [68d21f872fd7] 2012-11-05 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Call all of the OpenSSL deinit functions at exit [94778985bb6a] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: [io]streams were added an unnecessary reference, causing memory leaks. [84ea8ea6b9dc] 2012-11-04 Timo Sirainen * src/lib-ssl-iostream/istream-openssl.c: lib-ssl-iostream: Fixed potential assert-crash when reading. [edc604cba6e1] * src/lib-ssl-iostream/istream-openssl.c: lib-ssl-iostream: Copy the original istream's fd to the ssl istream. [09da0c7d23bd] 2012-11-03 Timo Sirainen * src/doveadm/doveadm-dump-index.c, src/lib-index/mail-cache- compress.c, src/lib-index/mail-cache-private.h, src/lib-index/mail- cache-sync-update.c, src/lib-index/mail-cache-transaction.c, src /lib-index/mail-cache.c: 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.) [debecd057f9c] * src/doveadm/doveadm-dump-index.c, src/lib-index/mail-cache- compress.c, src/lib-index/mail-cache-private.h, src/lib-index/mail- cache.c: lib-index: Added minor version to dovecot.index.cache file header. [8323e81785e2] * src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache-transaction.c: 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. [d2860e8fc774] * src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache-sync-update.c, src/lib-index /mail-cache-transaction.c, src/lib-index/mail-cache.c: 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. [67afcb730109] * src/lib-index/mail-index-transaction-view.c: lib-index: Transaction view shouldn't return ext records if the ext was already reset. [148dc0f6f990] * src/lib-index/mail-cache.c: lib-index: Recent cache file changes broke writing. [899873ebc1cf] * src/lib-storage/mail-storage-service.c: lib-storage: Crashfix when doing userdb lookup. [1ad12af6efe4] * src/lib-index/mail-transaction-log-append.c, src/lib-index/mail- transaction-log-file.c, src/lib-index/mail-transaction-log.h: 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. [751181168b72] 2012-11-01 Timo Sirainen * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- sync-pvt.c: lib-storage: Error logging fixes. [d7239a4554e4] 2012-10-31 Timo Sirainen * src/lib/hostpid.c: hostpid_init(): Don't allow gethostname() to fail. Be more strict about what chars it can contain. [626a9df21e62] * src/lib-storage/mail-storage.h: 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. [53d4db36e251] * src/lib-storage/index/index-status.c: lib-storage: When mailbox_get_status/metadata() auto-syncs mailbox, use MAILBOX_SYNC_FLAG_FAST [b690ff7a2d65] 2012-10-31 Stephan Bosch * src/lib-dns/dns-lookup.c, src/lib-dns/dns-lookup.h: lib-dns: Added dns_lookup_switch_ioloop() [285a88e00231] 2012-10-31 Timo Sirainen * src/auth/auth-token.c: auth: Don't assert-crash in auth-token writing if process isn't running as root. [6b45225ab1d5] 2012-10-29 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c: doveadm sync/backup: Added -s parameter to usage string. [d29a1bf4aba5] * .hgsigs: Added signature for changeset f5941f3ac762 [9ea4cad23d53] * .hgtags: Added tag 2.2.alpha1 for changeset f5941f3ac762 [9cf290152139] * NEWS, TODO, configure.ac: Released v2.2.alpha1. [f5941f3ac762] [2.2.alpha1] * src/anvil/penalty.c: anvil: Added a comment to remind what the anvil checksums are all about. [483199c2ca13] * configure.ac, src/doveadm/doveadm-mail-copymove.c, src/doveadm /doveadm-mail-import.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mailbox-list-iter.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain.c, src/imap/cmd-list.c, src/imap/imap-commands-util.c, src/indexer /master-connection.c, src/lib-imap-storage/imap-msgpart-url.c, src /lib-lda/mail-deliver.c, src/lib-storage/fail-mail-storage.c, src /lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h, src /lib-storage/mail-storage.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/doveadm-acl.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/pop3-migration/pop3-migration-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash/trash-plugin.c, src/pop3/pop3-client.c: If prefix="" namespace isn't defined, autocreate it as an unusable namespace. This avoids having to handle mail_namespace_find() errors all over the place. Instead now the mailbox accesses will simply fail. [b52f4852e5f8] * src/lib-storage/mail-namespace.h, src/plugins/autocreate/autocreate- plugin.c: lib-storage: Use const pointers for mail_namespace.(set|unexpanded_set) [62519d9334a5] * src/plugins/autocreate/autocreate-plugin.c: autocreate plugin logs now a "deprecated" warning at startup [275ca1a03cdd] * src/lib-dict/dict-file.c, src/lib-index/mail-transaction-log.c: Make static analyzer happier. [3a40d29049b2] * src/lib/iostream-rawlog.c: iostream-rawlog: Avoid crashing more if write() to rawlog fails. [ce342fd3cae7] * src/director/director-connection.c, src/director/director-test.c, src/imap/cmd-urlfetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-index/mail-cache-transaction.c, src/lib-index/mail- transaction-log.c, src/lib-mail/message-parser.c: Make static analyzer happier. [bb095315d025] * src/lib-storage/index/maildir/maildir-util.c: maildir: Fixed potential crash when maildir suddenly loses some directories. [755b03fb6fce] * src/lib-storage/list/mailbox-list-index-backend.c: layout=index: Fixed a crash in mailbox_rename() race condition. [9050920ce827] * src/lib/iostream-rawlog.c: iostream-rawlog: Avoid crashing if write() to rawlog fails. [bab7bbc0c153] * src/imap-login/imap-login-settings.c, src/imap/imap-settings.c: imap: imap_id_send default changed to send name=Dovecot to client. [bf834b3c5663] * src/doveadm/doveadm-auth.c: doveadm user: Removed -m parameter and made it default. Added -u for old functionality. -u meaning "userdb lookup only". [8e57d4a1cd19] * src/doveadm/doveadm-auth.c: doveadm user -m: Show all returned userdb fields. [55422e122c27] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Added mail_storage_service_save_userdb_fields() [fec539656811] * src/lib-storage/index/cydir/cydir-sync.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-sync.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-pvt.c, src/lib-storage/index/index-sync.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib- storage/index/pop3c/pop3c-sync.c, src/lib-storage/index/raw/raw- sync.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/plugins/virtual/virtual-sync.c: lib-storage: Renamed mail_storage_set_index_error() to mailbox_set_index_error() [5479887eb461] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-storage.h, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox- storage.h, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/maildir/maildir-storage.h, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- storage.h, src/lib-storage/index/pop3c/pop3c-storage.c, src/lib- storage/index/pop3c/pop3c-storage.h, src/lib-storage/mail-storage- private.h, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-storage.h: Replaced *_INDEX_PREFIX macros with a common MAIL_INDEX_PREFIX. [15dfd6475f64] * src/master/master-settings.c, src/master/service.c: master: Ignore service {} blocks with empty executable settings. [f423090a363a] * src/master/service.c: master: Removed unnecessary code duplication. The settings parsing already does this. [e1fd0d04a8eb] * TODO, configure.ac, configure.in: Renamed configure.in to configure.ac. Apparently automakes in future won't support configure.in anymore. [769be5b43fa6] * configure.in, src/auth/auth-request-handler.c, src/director /director-connection.c, src/director/director.c, src/director/director.h, src/director/main.c, src/director/user- directory.c, src/doveadm/doveadm-mail-altmove.c, src/doveadm/server- connection.c, src/imap/cmd-list.c, src/lib-dict/dict-client.c, src /lib-dict/dict-redis.c, src/lib-index/mail-cache-compress.c, src /lib-index/mail-cache-fields.c, src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache-private.h, src/lib-index/mail-cache- transaction.c, src/lib-index/mail-cache.c, src/lib-index/mail-index- view-sync.c, src/lib-index/mail-index.h, src/lib-index/mail- transaction-log-file.c, src/lib-index/mail-transaction-log- private.h, src/lib-index/mail-transaction-log.c, src/lib-master /master-instance.c, src/lib-master/master-service-settings-cache.c, src/lib-master/master-service.c, src/lib-storage/index/dbox-common /dbox-file.c, src/lib-storage/index/dbox-common/dbox-save.c, src /lib-storage/index/dbox-common/dbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src /lib-storage/index/index-storage.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/list/mailbox-list-iter.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/mail- search.c, src/lib-storage/mail-storage.c, src/lib-storage/mailbox- list.c, src/lib/ipwd.c, src/lmtp/lmtp-proxy.c, src/login-common /client-common.c, src/login-common/client-common.h, src/master /master-settings.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota /quota-dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota /quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota /quota-private.h, src/plugins/quota/quota-storage.c, src/plugins/stats/stats-plugin.c: Merged changes from v2.1 tree. [1b46c1bf9d1e] * src/lib-dict/dict-client.c: lib-dict: Abort async transaction commits if client gets disconnected from dict server. [67e9cb0b06ec] 2012-10-26 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Fixed listing layout=fs when namespace prefix part included wildcards. [22875bcaa952] * src/plugins/stats/stats-plugin.c: stats: Refresh user statistics during long maildir syncs. [b1b693a69c5f] * src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache.c: lib-index: Optimize cache file reads with MAIL_INDEX_OPEN_FLAG_SAVEONLY [0efb98659a1f] * src/lib-index/mail-cache.c: lib-index: After recent cache changes, cache was often wrongly being thought of as unusable [3700fb6f8a42] * src/lib-index/mail-cache-lookup.c: lib-index: If cache file unexpectedly shrinks in header lookup, log an error. [7fde3830215e] * src/lib-storage/list/mailbox-list-fs-iter.c: Increased initial memory pool size [b41d2eec320b] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Listing multiple mailbox patterns may have returned duplicates with fs layout. [8f351303887c] 2012-10-22 Timo Sirainen * src/auth/auth-request-handler.c: auth: Log a nicer message if client timeouts authentication in the middle. [49bb6cc43d03] * src/plugins/fts/decode2text.sh: decode2text.sh: Assume xmlunzip exists in the same directory as this script. This avoids hardcoding /usr/local/libexec/dovecot/ path in it. [09ed39c15584] * src/director/director-connection.c, src/director/director-request.c, src/director/director.c, src/director/director.h, src/director/main.c: director: -D parameter now enables extensive debug logging. [48af47f2eb9c] * src/director/notify-connection.c: director: Don't remove user's weak flag from notify connection. If notify connection worked properly, the weak flag should never have been set in the first place. And if it's just suddenly removed, it won't finish the pending requests properly. [c16a0182533f] * src/director/director-connection.c: director: Minor code cleanup [1dcf0090648e] * src/director/director-request.c, src/director/user-directory.c: director: If user's weak-flag appears to have gotten stuck, unset it. [7352d48b4071] * src/director/director-request.c: director: Log more clearly why a request timeouts. [10fae591707c] * src/director/director.c, src/director/director.h: director: Don't handle pending requests from all around the code. I'm not sure if this actually fixes any bugs, but it definitely makes the state cleaner. [cd646623a1a8] * src/director/director-connection.c: director: Fixed previous broken change for handling USER-WEAK commands. [e4c337f38ed6] 2012-10-21 Timo Sirainen * src/lib-dict/dict-redis.c: redis dict: Log an error if we get disconnected unexpectedly. [a97c62fdd4ad] 2012-10-18 Timo Sirainen * src/lib-index/mail-cache.c: lib-index: Crashfix for MAIL_INDEX_OPEN_FLAG_SAVEONLY change. [99aec8d4d6c6] * src/login-common/client-common.c, src/login-common/client-common.h: login_log_format_elements: Added %{real_rip} variable. It differs from %r when Dovecot proxy sends an updated client IP address. Patch by Jack Bates. [92364817f4ba] * src/lib-index/mail-transaction-log-file.c: lib-index: Fixed handling of finding a duplicate dovecot.index.log file_seq Previously we assumed that the already opened file was always the wrong one, but more common was that the newly opened file was .log.2 which should have been deleted. [be50d12be960] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-private.h, src/lib-index/mail-transaction-log.c: lib-index: Handle better race condition there dovecot.index.log and .log.2 are the same link. [bcef97fb1202] * src/lib-storage/index/index-storage.c: lib-storage: Open index with MAIL_INDEX_OPEN_FLAG_SAVEONLY if mailbox has MAILBOX_FLAG_SAVEONLY [b7c6215b2b7c] * src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache.c, src/lib-index/mail-index.h: lib-index: Added MAIL_INDEX_OPEN_FLAG_SAVEONLY to do only minimal reads from cache file. [51f2be9aa8ad] * src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache.c: lib-index: Code cleanup: Removed mail_cache.data [0d1de37ad9d8] * src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache- fields.c, src/lib-index/mail-cache-lookup.c, src/lib-index/mail- cache-private.h, src/lib-index/mail-cache-transaction.c, src/lib- index/mail-cache.c: lib-index: mail_cache_map() API cleanup [022d0d21e56d] 2012-10-16 Timo Sirainen * src/plugins/quota/quota-dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-private.h, src/plugins/quota/quota- storage.c: dict quota: Fixed a potential crash if quota recalculation was triggered at deinit. [41aac09497ee] * src/lib-master/master-service.c: lib-master: Fixed -i parameter handling. It previously worked only if the default config socket wasn't usable. [0262ede193e5] 2012-10-12 Timo Sirainen * configure.in: configure: Make sure MYSQL_LIBS has -lmysqlclient even if it's not explicitly found. [c8d55ba25f39] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Fixed crash when attempting to remove subscriptions for nonexistent shared users. [a79e1a0040de] * src/lib-index/mail-transaction-log-private.h, src/lib-index/mail- transaction-log.c: lib-index: Log a warning if locking transaction log takes longer than 30 secs. [e44579c5b52b] * src/lib-storage/index/dbox-common/dbox-storage.c: sdbox: Make sure mail_attachment_fs=sis-queue isn't attempted to be used. It could be fixed, but nobody seems to have used it so far.. [9542732069ff] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Class didn't have MAIL_STORAGE_CLASS_FLAG_FILE_PER_MSG set This currently only meant that mail_prefetch_count setting wasn't working. [7bc24fc1667e] 2012-10-08 Timo Sirainen * src/master/master-settings.c: master: If service { protocol } is set and not included in "protocols", ignore its settings [4d268e810c15] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: doveadm fts rescan crashed with mailbox_list_index=yes [d96313048f17] 2012-10-05 Timo Sirainen * src/lib-storage/mail-search.c: lib-storage: Don't crash when searching multiple keywords. Fixed by simply removing the keyword merging code. mail_search_args_simplify() is called before mail_search_args_init(), so the keywords are still NULL and merging can't be done. Alternative fix would have been to add string array to mail_search_arg.value containing the keywords, but all of this is a pretty unnecessary optimization. [0306792cc843] 2012-10-03 Timo Sirainen * src/lib-storage/mail-storage.c: lib-storage: Fixed potential memory leak when mailbox_transaction_commit_get_changes() failed [28be06dbd65e] * src/lib-storage/mailbox-list-iter.c: lib-storage: When configuring mailbox INBOX {}, make sure INBOX is uppercased. [16f2f71c91b1] * src/lib-index/mail-index-view-sync.c: lib-index: Fix for handling view syncing for already deleted transaction logs. The sync changes' hidden-flag was set randomly, which could have caused flag changes to get lost. [4308d1794328] * src/imap/cmd-list.c: imap: LIST (SPECIAL-USE) shouldn't send INBOX reply. [12606087a774] * src/lib-storage/index/dbox-single/sdbox-save.c: sdbox: Fix to handling transactions with partially failed saves. [b99bead8b339] * src/lib-storage/index/dbox-common/dbox-file.c: mdbox: Fix to handling transactions with partially failed saves. [19732dd98602] * src/lib-storage/mail-storage.c: lib-storage: mailbox_save_cancel() now makes sure that dest_mail is reset. This fixes e.g. doveadm import, which continues import even though some messages couldn't be saved. [3de5a5b49580] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- mail.h: lib-storage: struct mail.close() now clears all of its data. [4c3dac1a94cf] * src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-single/sdbox- save.c: dbox: Small code cleanup. [8c06fe0b280d] 2012-10-02 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: When index mkdir() fails with EPERM, create the dir anyway with 0700 mode. This avoids failing entirely when /var/mail/user has 0660 permissions and we don't have access to the group. The error message is still logged. [3ce50c0bb782] * src/lib-master/master-service-settings-cache.c: lib-master: Fixed crashes with settings cache. [e29b627219b3] * src/doveadm/server-connection.c: doveadm: Fixed printing large input from doveadm-server. [94c7e875f9b9] * src/lib-storage/mailbox-list.c: mbox: Fixed getting filesystem permissions when parent dir has setgid-bit enabled. [83695d6d41aa] * src/lmtp/lmtp-proxy.c: lmtp: Fixed hanging on proxying if remote server was down. Patch by Jack Bates. [38727d3e90ec] 2012-09-28 Timo Sirainen * src/lib/compat.h: Compiling fix for HURD [6cac808c4bd8] * src/lib-storage/index/dbox-common/dbox-storage.c: Avoid using PATH_MAX. [2a44991cbf66] * src/lib-master/master-instance.c, src/lib-storage/index/dbox-common /dbox-storage.c: Avoid using PATH_MAX. [75aadea5c2a2] 2012-09-27 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Don't crash in storage rebuild if mail's "original mailbox" metadata is missing. [88a05f387743] * src/doveadm/doveadm-mail-altmove.c: doveadm altmove: Make sure all storages get purged (and not more than once) [4819306a1f9f] 2012-09-26 Timo Sirainen * src/lib/ipwd.c: i_getpwnam(): Ignore EINVAL errors silently. At least FreeBSD returns it when attempting to lookup user@domain. [9dcc44d8275d] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Fixed handling non-default namespace separator. [4e431b202cfd] 2012-10-29 Timo Sirainen * src/lib-fs/fs-posix.c: lib-fs: Compile fix for OSes that don't support posix_fadvise(POSIX_FADV_WILLNEED) [0b4b2e37b793] * TODO: TODO updated [12cd194553a8] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Handle better when attempting to access shared mailboxes for nonexistent users. [a6b21ce8652d] * src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Added struct mail_user.nonexistent flag, which is filled by userdb lookup. [5d465a3eceb2] * src/lib-storage/index/index-attribute.c, src/lib-storage/index /index-storage.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Fixes to handling separation of private/shared attributes. [4c84efce3a94] * src/lib-index/mail-index-transaction.c: lib-index: Fixes to replacing message's keywords. [a87edad22199] * src/lib-storage/index/index-mail-headers.c: lib-storage: Crashfix to previous stream error checking change. [f1f2a65d9a1c] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/index-attribute.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/pop3c /pop3c-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/plugins/pop3-migration/pop3-migration-plugin.c, src/plugins/virtual/virtual-storage.c: lib-storage: Moved mail attribute dict to struct mail_storage. This also means that index_storage_destroy() must always be called, so removed now unnecessary mail_storage.destroy=NULL checks. [ca10d2e8d8e3] * src/lib-index/mail-index-view-sync.c, src/lib-index/mail-index.h, src/lib-storage/index/index-sync.c: Treat modseq updates explicitly instead of as if they were flag changes. [0f16da39121a] * src/lib-storage/list/mailbox-list-index-status.c, src/lib- storage/list/mailbox-list-index-sync.c, src/lib-storage/list /mailbox-list-index.c: lib-storage: Mailbox list indexes are now enabled also for shared/public mailboxes. [731046f18245] * src/lib-storage/mail-storage.c: lib-storage: Allow calling mailbox_get_private_flags_mask() without mailbox being open. Most importantly used by mailbox list indexes to determine if it can optimize a STATUS (UNSEEN) call. [40e6e734cd5e] * src/imap/imap-sync.c: imap: Commit temporary mail's transaction before finishing sync. Fixes assert-crash with mailbox list indexes. [4e8d7cfec5dc] * src/lib-storage/list/mailbox-list-index-status.c, src/lib- storage/list/mailbox-list-index.h: lib-storage: Avoid assert-crashing when updating mailbox list index. [b5a5f5139148] * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-mail.h, src/lib- storage/index/index-search.c: lib-storage: Check and log stream errors when parsing/searching messages. [99965e11d9e1] * src/lib-storage/index/index-status.c, src/lib-storage/mail- storage.h: lib-storage: Make sure mailbox was synced at least once when getting status/metadata. [41018c6fcc53] * src/doveadm/dsync/dsync-mailbox-tree-fill.c: dsync: Make sure we're not trying to use uidvalidity=0 for existing mailboxes. [3d7edc15fcec] * src/lib-index/mail-index-transaction-update.c: lib-index: MAIL_INDEX_TRANSACTION_FLAG_AVOID_FLAG_UPDATES didn't work well enough for keywords. Removed the code that attempted to optimize some CPU usage at the cost of writing too many changes. [1a3348e3892f] * src/lib-index/mail-index-transaction-update.c: lib-index: Avoid assert-crashing when syncing an old "keyword reset" from transaction log. [b0a6fe3aa61f] * src/plugins/acl/acl-mailbox.c: acl: Avoid assert-crashing when trying to access shared namespace root "mailboxes". [4d0d3cc20bdb] 2012-10-26 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Log a better error if we have external attachments, but mail_attachment_dir is unset. [26236c4e5736] * src/doveadm/dsync/dsync-mailbox-tree-sync.c: doveadm backup: Don't assert-crash trying to delete noselect- mailboxes too early. [83cdfd0bc79d] * src/lib-index/mail-index-transaction.c: lib-index: mail_index_transaction_lookup_latest_keywords() didn't work properly. It wasn't actually looking up the latest keywords. [67af7122a522] 2012-10-24 Timo Sirainen * src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h: doveadm backup: Revert all local changes. [60f0cb48fdb2] * src/doveadm/dsync/dsync-transaction-log-scan.c: dsync: Crashfix for scanning keyword changes in transaction log. [ce3f3006383b] * NEWS: NEWS updated [e34a51082c11] * src/lib-storage/mailbox-list.c: lib-storage: When mkdir()ing home, copy permissions from parent if it has setgid-bit and we're using %h/~. When using %d/%n instead of %h in the location directories, use the earlier methods. [40b6534ddae3] * src/lib-storage/mailbox-list.c: lib-storage: When creating user directory under domain, set its setgid-bit on. The previous mkdir_parents_chown() change changed this behavior. I'm not entirely sure if the setgid-bit is a good idea or not in here, but we'll just continue the existing behavior. [fa8fa246189a] * src/lib/mkdir-parents.c, src/lib/mkdir-parents.h: mkdir_parents_chown(): If gid is set, make sure setgid-bit isn't copied from parent. [a7f95f182560] * src/lib-storage/index/raw/raw-storage.c: raw storage: Don't set NAMESPACE_FLAG_INBOX_USER for the created namespace. [5b0ab07024ca] * src/lib-imap/imap-envelope.c, src/lib-imap/imap-quote.c, src/lib- imap/imap-quote.h: lib-imap: Replaced last traces of imap_quote*() with imap_append_string_for_humans() Also the imap_append_*string() functions now decide whether to use quoted-string or literal based on the output string length (if both would work). [b89dae6aead4] * src/lib-imap/imap-envelope.c: lib-imap: ENVELOPE parsing/writing no longer strips whitespace from machine readable fields. [c849ae6603f2] * src/lib-imap/imap-bodystructure.c: lib-imap: bodystructure parsing now uses imap_append_string() instead of imap_quote*() Some of the fields are parsed through rfc822_*() which guarantees that they contain proper clean input. Other fields are also machine-readable and don't benefit from having whitespace compressed or of any other things that imap_quote*(fix_text=TRUE) did. None of the fields in [cb143b430787] * src/imap/cmd-list.c, src/imap/cmd-notify.c, src/imap/imap-fetch.c, src/imap/imap-notify.c, src/imap/imap-status.c, src/plugins/imap-acl /imap-acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c: Use imap_append_astring() instead of imap_append_string() where possible. [9a17faaed2eb] * src/lib-imap/imap-quote.c, src/lib-imap/imap-quote.h: lib-imap: Added imap_append_astring() [d9c44aafd163] * src/lib-imap/imap-arg.h, src/lib-imap/imap-parser.c, src/lib-storage /mailbox-keywords.c: lib-imap: Changed public IS_ATOM*() macros to match RFC 3501 exactly. Move the imap-parser specific "atom plus some more" parsing macro inside imap-parser.c so it's not used by anyone else. [42f99a4fc763] * src/imap-login/imap-proxy.c, src/imap/cmd-list.c, src/imap/cmd- namespace.c, src/imap/cmd-notify.c, src/imap/imap-fetch.c, src/imap /imap-notify.c, src/imap/imap-search.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/lib-imap/imap-id.c, src/plugins/imap-acl /imap-acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c: Use imap_append_*string() instead of imap_quote_append*() where possible. This makes it clearer what types of output should be sent. [ff86acd4eef5] * src/lib-imap/imap-quote.c, src/lib-imap/imap-quote.h: lib-imap: Added imap_append_string() and imap_append_nstring() [62d36b2dcbb6] * src/imap/imap-fetch-body.c, src/lib-imap-client/imapc-connection.c, src/lib-imap/imap-id.c, src/lib-imap/imap-quote.c, src/lib-imap /imap-quote.h: lib-imap: Renamed imap_dquote_append() to imap_append_quoted() [4137ea599dcd] * src/imap/imap-fetch-body.c: imap: Avoid double-quoting non-atom header field [e8181fc25500] 2012-10-23 Timo Sirainen * src/lib-storage/list/mailbox-list-index.c: mailbox_list_index=yes: Fixed refreshing list index after mailbox was created. [92d5b8133bf2] * src/lib-storage/index/maildir/maildir-storage.c: maildir: Don't assert-crash on mailbox creation. [488791e8c8d7] * src/lib-imap-storage/imap-msgpart.c: imap: Another fix for handling partial FETCHes. [e9cdf435fde2] * src/lib-imap-storage/imap-msgpart.c, src/lib-mail/message-binary- part.c, src/lib-mail/message-binary-part.h, src/lib-storage/fail- mail.c, src/lib-storage/index/index-mail-binary.c, src/lib- storage/index/index-mail.h, src/lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.h, src/lib-storage/mail.c: imap: URLFETCH BINARY BODYPARTSTRUCTURE returns binary-decoded line counts. [3484591230ac] * src/lib/istream-seekable.c: istream-seekable: When read() reaches EOF, unreference underlying streams. This was already done when the stream was kept in memory, but not when when the stream was written to temporary file. [d5706259963b] * src/imap/cmd-urlfetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.h: imap: URLFETCH error handling fixes. [3e70eacf67a4] * src/lib/connection.c, src/lib/connection.h: connection API: Track the number of connections. [acd76b5272e9] * src/doveadm/dsync/dsync-mailbox-import.c: dsync: Use mailbox_move() to reassign UIDs instead of copy+expunge. [f417cab3a21f] 2012-10-21 Timo Sirainen * src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync /dsync-brain.h, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync- mailbox-state-export.h, src/doveadm/dsync/dsync-mailbox-state.c, src/doveadm/dsync/dsync-mailbox-state.h, src/doveadm/dsync/dsync- mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h: doveadm sync/backup: Added -s parameter to do a fast stateful sync. Initially use an empty string for the input state. The output state is written to stdout. [6c850258002f] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree-sync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-mails.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync-mailbox-tree-fill.c, src/doveadm/dsync /dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h, src/doveadm/dsync/test- dsync-mailbox-tree-sync.c: doveadm: "backup" command is working again. [454d0563927d] * src/lib-storage/index/index-attribute.c: lib-storage: Fixed deleting mailbox when mail_attribute_dict wasn't set. [a436e4a7503b] * src/lib-fs/fs-api.c, src/lib-fs/fs-api.h: lib-fs: Fixes to async APIs. [260b1ec12f41] 2012-10-18 Timo Sirainen * src/lib-imap-urlauth/imap-urlauth.c: lib-imap-urlauth: Minor fix to avoiding timing attacks against mailbox existence. random_fill() is slightly slower than random_fill_weak(). Probably even better way to handle timing attacks would be to always add a short random pause before returning verification failure. [b21fe1a1c7ad] * src/imap-urlauth/imap-urlauth-worker.c, src/imap/main.c, src/lib- imap-urlauth/imap-urlauth.c: Moved random_init() from lib-imap-urlauth to imap/imap-urlauth main(). This way if the processes are chrooted they are still able to open /dev/urandom. [70ca88e74a4b] 2012-10-13 Timo Sirainen * src/lib-storage/index/index-attribute.c: lib-storage: Added missing file from previous mailbox attribute commit. [0bb400d84134] * doc/example-config/conf.d/20-imap.conf, src/imap-urlauth/imap- urlauth-worker-settings.c, src/imap-urlauth/imap-urlauth-worker- settings.h, src/imap-urlauth/imap-urlauth-worker.c, src/imap/imap- client.c, src/imap/imap-settings.c, src/imap/imap-settings.h, src /lib-imap-urlauth/imap-urlauth-backend.c, src/lib-imap-urlauth/imap- urlauth-backend.h, src/lib-imap-urlauth/imap-urlauth-private.h, src /lib-imap-urlauth/imap-urlauth.c, src/lib-imap-urlauth/imap- urlauth.h: imap-urlauth: Store urlauth keys to the new mailbox attributes. [6e7e62ee07be] * src/lib-storage/fail-mailbox.c, src/lib-storage/index/Makefile.am, src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/imapc/imapc-storage.c, src /lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/pop3c /pop3c-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/plugins/virtual /virtual-storage.c: lib-storage: Added support to get/set/iterate mailbox attributes. The attributes are stored in a dict specified by mail_attribute_dict setting. The idea is to use this as storage for extensions that require per-mailbox key=value pairs, such as METADATA. [5659c178bdeb] * src/dict/dict-commands.c, src/dict/dict-connection.h: dict: If DICT_ITERATE_FLAG_NO_VALUE is set, don't send values to dict client. [dc3a95fe330b] * src/lib-dict/dict-sql.c, src/lib-dict/dict.h: lib-dict: Added DICT_ITERATE_FLAG_NO_VALUE This allows iterating dictionary without wasting extra time on returning values that aren't needed. [e7f10acf65e3] * src/imap/cmd-resetkey.c, src/lib-imap-urlauth/imap-urlauth- backend.c, src/lib-imap-urlauth/imap-urlauth-backend.h, src/lib- imap-urlauth/imap-urlauth.c: imap-urlauth: Use mailbox GUID instead of mailbox name for dict keys [327dc9a8decc] * doc/example-config/conf.d/20-imap.conf: example-config: Added imap_urlauth_* settings [dbefcfb9d330] * src/imap-urlauth/imap-urlauth-worker.c, src/imap/imap-client.c, src /lib-imap-urlauth/imap-urlauth.c: imap urlauth: Don't autofill imap_urlauth_host. Use "*" value to mean "any host". [8d8880296645] * src/auth/db-dict.c, src/dict/dict-connection.c, src/lib-dict/dict- client.c, src/lib-dict/dict-file.c, src/lib-dict/dict-memcached- ascii.c, src/lib-dict/dict-memcached.c, src/lib-dict/dict-private.h, src/lib-dict/dict-redis.c, src/lib-dict/dict-sql-settings.c, src /lib-dict/dict-sql-settings.h, src/lib-dict/dict-sql.c, src/lib- dict/dict.c, src/lib-dict/dict.h, src/lib-imap-urlauth/imap-urlauth- backend.c, src/lib-storage/list/mailbox-list-fs-iter.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/expire/doveadm- expire.c, src/plugins/expire/expire-plugin.c, src/plugins/quota /quota-dict.c: lib-dict: dict_init() now returns error string instead of logging it [22c22d704422] * src/auth/db-dict.c, src/auth/db-ldap.c, src/auth/db-sql.c, src/lib- dict/dict-sql-settings.c, src/lib-settings/settings.c, src/lib- settings/settings.h: lib-settings: settings_read*() now returns an error string instead of logging itself [444a9921205a] * src/doveadm/Makefile.am, src/doveadm/doveadm-dump.c, src/doveadm /doveadm-dump.h, src/doveadm/doveadm-zlib.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/plugins/zlib/Makefile.am, src/plugins/zlib/doveadm-zlib.c: Moved doveadm zlib commands from zlib plugin to doveadm directly. Previously it was a plugin, because the istream-zlib existed only in zlib plugin. Now there's a lib-compression that implements it. [cea1d5504a84] * src/lib/istream-private.h, src/lib/istream.c: istream: Added internal try_alloc_limit to limit size returned by i_stream_try_alloc() This was required by the previous SSL change. [cafdd35ac437] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-openssl.h, src/lib-ssl-iostream/istream-openssl.c: lib-ssl-iostream: Make the input buffering behave the same as in file-istream Previously i_stream_read(ssl_input) could have still left some data buffered into the underlying file-istream, which meant that I/O loop didn't detect any new input from the fd and the connection got stuck. [083bd881b9da] 2012-10-12 Timo Sirainen * src/config/settings-get.pl: config: Added lib-master's settings parsers back to config's knowledge [78749ae0c9c2] * src/lib-index/mail-index-lock.c, src/lib-index/mail-index-map- read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index- private.h, src/lib-index/mail-index-sync-update.c, src/lib-index /mail-index.c: lib-index: dovecot.index file is no longer overwritten, so it doesn't need to be locked. [b7ac3897f3fd] * src/lib-storage/index/maildir/maildir-storage.c: maildir: If INDEXPVT is set, assume private \Seen flags even if dovecot-shared doesn't exist. [16a626119f7b] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Added support for "broken_char" setting for escaping invalid mailbox names. This is currently enabled only for imapc backend, where '~' character is used for it. Most importantly this allows migrating mailboxes from other IMAP servers that contain mailbox names that Dovecot's imapc backend couldn't otherwise access. [22e7322e8601] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-index-backend.c, src /lib-storage/list/mailbox-list-maildir.c, src/lib-storage/list /mailbox-list-none.c, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c: lib-storage: Added optional mailbox_list.init(), which can check for failure. "index" backend now gives a nice error message instead of crashing when mailbox_list_index=no [a44be96f55c1] * configure.in, src/lib-storage/index/imapc/Makefile.am, src/lib- storage/index/imapc/imapc-list.c, src/lib-storage/index/imapc/imapc- list.h, src/lib-storage/index/imapc/imapc-plugin.c, src/lib- storage/index/imapc/imapc-plugin.h, src/lib-storage/index/imapc /imapc-setting-storage.c, src/lib-storage/index/imapc/imapc- settings.h, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib- storage/index/pop3c/Makefile.am, src/lib-storage/index/pop3c/pop3c- plugin.c, src/lib-storage/index/pop3c/pop3c-plugin.h, src/lib- storage/index/pop3c/pop3c-setting-storage.c, src/lib- storage/index/pop3c/pop3c-settings.h, src/lib-storage/index/pop3c /pop3c-storage.c, src/lib-storage/index/pop3c/pop3c-storage.h: Build imapc and pop3c always as plugins. This avoids having to link openssl library to all binaries that use lib-storage. It appears that simply by linking with openssl causes each such process to use 100-200 kB of more memory. With 10k imap processes this is 1-2 GB of wasted memory. The imapc and pop3c are still registered as stubs, and their plugins are automatically loaded when needed. [269104a0821b] * src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail- storage.c, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Added mail_user_get_storage_class(), which auto-loads storage plugins. The auto-loading is done only if there's already a stub storage registered. [985ebfb17f35] * Makefile.am: Makefile: Added cc-wrapper.sh.in missing from last commit [dbf88dc1b873] * .hgignore, cc-wrapper.sh.in, configure.in, src/doveadm/Makefile.am, src/indexer/Makefile.am, src/lda/Makefile.am, src/lmtp/Makefile.am, src/pop3/Makefile.am: --without-shared-libs: Link Dovecot libraries with --whole-archive flag for binaries. This removes the need for the ugly unused_objects lists for binaries, which were needed to avoid plugins from failing because they were missing some functions. Apparently there's no easy way to use --whole-archive properly with libtool, so there's now a rather ugly cc-wrapper.sh that does it. Also this is done only when GNU ld is deted. Most people are going to use --with-shared-libs though, so I don't think any of this is going to be a real problem. [b0c7d2f8a185] * configure.in: config: Don't include lib-master/*.c files in all-settings.c lib- master is already being linked to the binaries anyway. [c30673b5ec1b] * src/imap/main.c: imap: Don't waste data stack memory at startup. [b25fb761e580] * src/lib/hostpid.c: hostpid_init(): Don't waste memory from data stack. Even though it's only a few bytes, it was being wasted permanently for all processes. [a446d8bc2be5] * src/doveadm/doveadm-mail.c, src/doveadm/dsync/doveadm-dsync.c, src /imap-urlauth/imap-urlauth-client.c, src/imap-urlauth/imap-urlauth- worker.c, src/lib-master/master-login.c, src/lib-master/master- service.c, src/lib-storage/mail-storage-service.c, src/lib/failures.c, src/lib/failures.h, src/lmtp/commands.c, src/log /log-connection.c, src/master/main.c: i_set_failure_prefix() now takes printf-like parameters. This avoids using t_strdup_printf() with it, which was done very commonly. [d00cf8e0dae7] * src/lib-index/mail-cache-transaction.c: lib-index: Error handling fix to cache transaction flushing. [70ebdddbdf9c] * configure.in, src/auth/main.c, src/config/config-parser.c, src/dict/main.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm- util.c, src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src /lib-sql/driver-sqlite.c, src/lib-storage/mail-storage-service.c, src/lib/module-dir.c, src/lib/module-dir.h, src/plugins/acl/acl- plugin.c, src/plugins/acl/doveadm-acl.c, src/plugins/expire/doveadm- expire.c, src/plugins/expire/expire-plugin.c, src/plugins/fts-lucene /doveadm-fts-lucene.c, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-squat/fts- squat-plugin.c, src/plugins/fts/doveadm-fts.c, src/plugins/fts/fts- plugin.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap- quota/imap-quota-plugin.c, src/plugins/imap-stats/imap-stats- plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape /listescape-plugin.c, src/plugins/mailbox-alias/mailbox-alias- plugin.c, src/plugins/notify/notify-plugin.c, src/plugins/pop3-migration/pop3-migration-plugin.c, src/plugins/quota/doveadm-quota.c, src/plugins/quota/quota-plugin.c, src/plugins/snarf/snarf-plugin.c, src/plugins/stats/stats-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- plugin.c, src/plugins/zlib/doveadm-zlib.c, src/plugins/zlib/zlib- plugin.c: Plugin ABI version checking improvements. Previously the plugin version was checked against the version string returned by the currently running Dovecot master process, not necessarily the same as the binary. Also version_ignore=yes setting skipped the version check entirely. Now there's a new DOVECOT_ABI_VERSION macro that can (at least in theory) be updated only when the ABI actually changes. The version is in format "2.2.ABIv1(2.2.15)", where the (2.2.15) would be the actual Dovecot version number that gets ignored when comparing the strings. Also now the plugin version is compared to the actually running binary's ABI, not the master's version, and it can't be ignored with a setting. [73916b7be94e] * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- api.h, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-common.c, src/lib-fs /fs-sis-common.h, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-single/sdbox-copy.c, src/lib-storage/index/dbox- single/sdbox-file.c, src/lib-storage/index/index-attachment.c: lib-fs API cleanups and improvements [ce57bacc3010] 2012-10-11 Timo Sirainen * src/lib-http/http-url.c: Compiler warning fix. [2ac184a82b9a] 2012-10-10 Stephan Bosch * src/lib-http/Makefile.am, src/lib-http/http-date.c, src/lib-http /http-date.h, src/lib-http/test-http-date.c, src/lib-http/test-http- header-parser.c: Add HTTP date parsing support. [d927aaaf9252] * configure.in, src/Makefile.am, src/lib-http/Makefile.am, src/lib- http/http-url.c, src/lib-http/http-url.h, src/lib-http/test-http- url.c: Adds HTTP URL parse support. [70305d850220] * src/lib-imap/imap-url.c, src/lib-imap/test-imap-url.c: Adjust IMAP URL parser to changes in uri-util. [b8929da80876] * src/lib/uri-util.c: uri-util: Fix handling of '..' and '.' segments in URI paths. As specified by RFC 3986 [f960ad98429c] 2012-10-08 Timo Sirainen * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Compile fix for previous unlink_directory() change [e63a281eeff9] * src/lib-storage/list/mailbox-list-delete.c, src/lib/unlink- directory.c, src/lib/unlink-directory.h: unlink_directory(): Added UNLINK_DIRECTORY_FLAG_SKIP_DOTFILES flag. [b9cb9c3cdfdc] 2012-10-04 Timo Sirainen * src/doveadm/doveadm-dump-index.c, src/lib-index/mail-cache- compress.c, src/lib-index/mail-cache-private.h, src/lib-index/mail- cache-transaction.c, src/lib-index/mail-cache.c: lib-index: Simplified writing to dovecot.index.cache file. The old method was basically: - write max. 32 kB to internal buffer - flush it by writing to reserved areas (with no locks) The reserved areas were acquired by doing (whenever needed): - lock dovecot.index.cache - reserve data from dovecot.index.cache for writing, potentially increasing the file size by writing 0 bytes. the reserved area size varies. - unlock dovecot.index.cache This worked, but if multiple processes were writing to the cache file it could have left incomplete reserved areas as holes. The holes were attempted to be filled if they were large enough. The new method is: - write max. 256 kB to internal buffer - lock dovecot.index.cache - append the buffer to dovecot.index.cache - unlock dovecot.index.cache No reserved areas, holes or anything else weird going on. Ideally no data would be overwritten in the dovecot.index.cache file, only appended. Unfortunately currently some data is still overwritten: - mail_cache_header.{deleted_space,continued_record_count} - mail_cache_header_fields.next_offset when writing a new one - mail_cache_header_fields.{last_used,decision} - mail_cache_record.prev_offset The changing headers could eventually be moved to dovecot.index. This however is a backwards-incompatible change. The record's prev_offset could maybe simply just not be written in those (somewhat rare) problematic situations. [60c4815778fb] * src/lib-storage/index/index-rebuild.c: dbox: Index rebuilding didn't open dovecot.index.backup file. Recent changes broke it, and it was attemting to use dovecot.index/.backup file instead. [aa5c1d162714] * AUTHORS, src/doveadm/doveadm-pw.c, src/lib-imap/test-imap-url.c, src /lib-sql/driver-sqlite.c, src/lib/ioloop-epoll.c, src/lib/iso8601-date.c, src/lib/primes.c, src/lib/test- iso8601-date.c, src/master/capabilities-posix.c, src/plugins/notify /notify-plugin.c, src/plugins/notify/notify-storage.c: Added/updated some copyright comments. [d66421812d2a] 2012-10-03 Timo Sirainen * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c, src/auth/auth-penalty.c, src/auth/auth-postfix- connection.c, src/auth/auth-request-handler.c, src/auth/auth- request.h, src/auth/auth-worker-client.c, src/auth/auth-worker- server.c, src/auth/db-ldap.c, src/auth/main.c, src/auth/passdb- pam.c, src/config/config-filter.h, src/config/settings-get.pl, src/director/auth-connection.c, src/director/director-connection.c, src/director/director-host.h, src/director/director.h, src/director /doveadm-connection.c, src/director/login-connection.c, src/director /mail-host.h, src/doveadm/doveadm-director.c, src/doveadm/doveadm- kick.c, src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm- penalty.c, src/doveadm/doveadm-stats.c, src/doveadm/doveadm-util.c, src/doveadm/doveadm-who.c, src/doveadm/server-connection.c, src /imap-login/client-authenticate.c, src/imap-login/client.h, src /imap-urlauth/imap-urlauth-client.c, src/imap-urlauth/imap-urlauth- login.c, src/imap-urlauth/imap-urlauth-worker.c, src/imap/cmd- idle.c, src/imap/cmd-urlfetch.c, src/imap/imap-client.c, src/lib- auth/auth-client.h, src/lib-auth/auth-master.c, src/lib-auth/auth- master.h, src/lib-auth/auth-server-connection.c, src/lib-dict/dict- client.c, src/lib-dns/dns-lookup.c, src/lib-imap-client/imapc- connection.c, src/lib-imap-storage/imap-msgpart-url.c, src/lib-imap- urlauth/imap-urlauth-connection.c, src/lib-imap-urlauth/imap- urlauth-fetch.c, src/lib-imap/imap-url.c, src/lib-imap/test-imap- url.c, src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src /lib-master/anvil-client.c, src/lib-master/ipc-client.c, src/lib- master/ipc-server.c, src/lib-master/master-auth.h, src/lib-master /master-login-auth.c, src/lib-master/master-service-settings.h, src /lib-master/master-service.h, src/lib-settings/settings-parser.c, src/lib-storage/index/pop3c/pop3c-client.c, src/lib-storage/mail- storage-service.h, src/lib-storage/mail-user.c, src/lib/Makefile.am, src/lib/connection.c, src/lib/connection.h, src/lib/failures.c, src/lib/fd-close-on-exec.c, src/lib/ioloop-notify-inotify.c, src/lib /istream-file.c, src/lib/net.c, src/lib/net.h, src/lib/network.c, src/lib/network.h, src/lib/ostream-file.c, src/lib/sendfile-util.c, src/lib/test-network.c, src/lib/unix-socket-create.c, src/lib/uri- util.c, src/lmtp/client.h, src/lmtp/lmtp-proxy.h, src/login-common /access-lookup.c, src/login-common/client-common.h, src/login-common /login-proxy-state.c, src/login-common/login-proxy.h, src/login- common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src/master/master-settings.c, src/master/service-listen.c, src/master/service.h, src/plugins/fts/fts-indexer.c, src/plugins/fts /fts-parser-script.c, src/plugins/quota/quota.c, src/plugins/replication/replication-plugin.c, src/plugins/stats /stats-connection.c, src/plugins/zlib/doveadm-zlib.c, src/pop3-login/client.h, src/pop3/pop3-client.c, src/replication/aggregator/notify-connection.c, src/replication/aggregator/replicator-connection.c, src/replication/replicator/doveadm-connection.c, src/stats/client- export.c, src/stats/mail-stats.h, src/util/rawlog.c: Renamed network.[ch] to net.[ch]. The function prefixes already started with net_ instead of network_. And icecap wants to use network.h for other purpose. :) [02451e967a06] * src/auth/mech-scram-sha1.c, src/auth/password-scheme-scram.c, src/auth/password-scheme.h: auth: More error checking and cleanups to SCRAM-SHA-1. [559718e321a2] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Fixed crash with mailbox_list_index=yes [62a14c9ae6c4] * src/lib-dict/dict-file.c, src/lib-dict/dict-memcached-ascii.c, src /lib-dict/dict-memcached.c, src/lib-dict/dict-redis.c: lib-dict: Fixed error handling on initialization. [9f86c18e6b2c] * src/lib-master/master-service.c: lib-master: Fixed crashing with -i parameter handling. [04cd35e86025] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-private.h, src/lib-index/mail-transaction-log.c: Typofix: s/TRANSCATION/TRANSACTION/ [ee0cf9c67571] 2012-09-19 Florian Zeitz * src/auth/Makefile.am, src/auth/mech-scram-sha1.c, src/auth/password- scheme-scram.c, src/auth/password-scheme.c, src/auth/password- scheme.h: auth: Add and use SCRAM-SHA-1 password scheme [3e3ac2c16fa4] 2012-10-03 Timo Sirainen * src/imap/cmd-close.c, src/imap/cmd-expunge.c: imap: If CLOSE/EXPUNGE fails with "permission denied", return tagged OK anyway. [d40f26407aad] * src/plugins/acl/acl-mailbox.c: acl: Don't silently ignore permission error on expunge. [3f55c6ca06f8] * src/imap/cmd-expunge.c, src/imap/imap-client.h, src/imap/imap- sync.c: imap: Removed unnecessary code. [ab2abb987619] * src/lib-imap-storage/imap-msgpart.c: imap: Fixed partial FETCHes. [99843f74422a] * src/lib-mail/Makefile.am, src/lib-mail/message-send.c, src/lib-mail /message-send.h, src/lib-mail/message-size.c, src/lib-mail/message- size.h: lib-mail: Moved message_skip_virtual() to message-size.[ch] and changed API [4a074827375d] * src/imap/imap-fetch-body.c, src/imap/imap-fetch.c: imap: Removed unnecessary #includes [5cdd5bf63c51] 2012-09-30 Timo Sirainen * src/lib/istream.c, src/lib/istream.h, src/lib/ostream.c, src/lib/ostream.h: Added [io]_stream_create_error() for creating streams that always fail reads/writes. [f860cdf156cf] 2012-10-03 Timo Sirainen * src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth /auth-request.h: auth: Don't add proxy/pass fields when we're only authenticating (not logging in). For example SMTP server doesn't need these fields when doing SMTP AUTH. [ff66315076ce] 2012-08-30 Florian Zeitz * src/auth/auth-token.c, src/auth/mech-cram-md5.c, src/auth/mech- scram-sha1.c, src/auth/password-scheme.c, src/lib-imap-urlauth/imap- urlauth.c, src/lib-ntlm/ntlm-encrypt.c, src/lib/Makefile.am, src/lib /hmac-cram-md5.c, src/lib/hmac-cram-md5.h, src/lib/hmac-md5.c, src/lib/hmac-md5.h, src/lib/hmac-sha1.c, src/lib/hmac-sha1.h, src/lib/hmac.c, src/lib/hmac.h: lib: Generalize hmac to be hash independent [8802322d7257] 2012-10-02 Timo Sirainen * src/lib-imap/imap-url.c: lib-imap: Minor fix to imap_url_parse() [fc512eba5207] 2012-09-28 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-storage.c: Compiler warning fix for previous change [b6663a4f60fe] * src/lib-master/master-instance.c, src/lib-storage/index/dbox-common /dbox-storage.c: Avoid using PATH_MAX. [48ee8bad7d51] * src/lib-storage/index/maildir/maildir-storage.c: maildir: Directories were created without execute-permissions Broken by recent changes. [1dafaabeb134] * configure.in, src/lib-storage/list/Makefile.am, src/lib-storage/list /mailbox-list-delete.c, src/lib-storage/list/mailbox-list-delete.h, src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-index-backend.c, src/lib-storage/list/mailbox-list- index-iter.c, src/lib-storage/list/mailbox-list-index-notify.c, src /lib-storage/list/mailbox-list-index-status.c, src/lib-storage/list /mailbox-list-index-storage.h, src/lib-storage/list/mailbox-list- index-sync.c, src/lib-storage/list/mailbox-list-index-sync.h, src /lib-storage/list/mailbox-list-index.c, src/lib-storage/list /mailbox-list-index.h, src/lib-storage/list/mailbox-list-maildir.c: lib-storage: Added initial implementation for layout=index. The idea is that all of the mailbox names only exist in the mailbox list index. Storage directories use mailbox GUIDs. This avoids all kinds of race conditions with mailbox renames. mailbox_list_index=yes is required for this layout to work. There are probably still some race conditions within the indexing code itself. Also error recovery is missing. [0fa075f2e85a] * src/lib-storage/mail-storage.c: lib-storage: Do mailbox autocreation elsewhere also besides just mailbox_open() [55ab35b0cc22] * src/lib-storage/mail-storage.c: lib-storage: If trying to rename mailbox over itself, fail early. [35b9e155f03f] 2012-09-27 Timo Sirainen * src/doveadm/doveadm-dump-index.c: doveadm dump -t index: Added support for mailbox list index records. [e3639ddbba2f] 2012-09-26 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c, src/indexer/master-connection.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/dbox- multi/mdbox-storage.c, src/lib-storage/index/dbox-single/sdbox- file.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/imapc/imapc-list.c, src/lib-storage/index/index- rebuild.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-pvt.c, src/lib-storage/index/index-sync.c, src/lib-storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /mbox-lock.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/shared/shared- list.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/list/mailbox-list-delete.c, src/lib-storage/list/mailbox- list-fs-flags.c, src/lib-storage/list/mailbox-list-fs-iter.c, src /lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox- list-index.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-none.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mailbox- list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage /mailbox-list.h, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/doveadm-acl.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-squat /fts-backend-squat.c, src/plugins/fts/fts-storage.c, src/plugins /mailbox-alias/mailbox-alias-plugin.c, src/plugins/quota/quota- dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota- maildir.c, src/plugins/quota/quota.c: lib-storage: mailbox_get_path() and friends can now return an error. An upcoming "index" mailbox_list backend uses mailbox GUIDs as the directory names. Doing a name => GUID lookup may fail, so the path lookup may fail. This is a somewhat annoying change and perhaps it can be removed in future, but for now it looks like it can't be avoided. [c7a99d41e39e] * NEWS, configure.in, src/auth/auth-request.c, src/auth/auth- request.h, src/auth/db-ldap.c, src/auth/userdb-static.c, src/config /config-parser.c, src/director/director-connection.c, src/director/director.c, src/director/director.h, src/doveadm/Makefile.am, src/doveadm/doveadm-settings.c, src/doveadm /doveadm-settings.h, src/doveadm/doveadm.c, src/imap/cmd-list.c, src /lib-imap-client/imapc-client.h, src/lib-imap-client/imapc- connection.c, src/lib-imap/imap-parser.c, src/lib-imap/imap- parser.h, src/lib-master/master-service-settings-cache.c, src/lib- settings/settings-parser.c, src/lib-storage/index/dbox-common/dbox- storage.c, src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib- storage/index/dbox-multi/mdbox-map-private.h, src/lib-storage/index /dbox-multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src /lib-storage/index/index-status.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/pop3c/pop3c-mail.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/list/mailbox-list-maildir-iter.c, src/lib-storage/mail-namespace.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage-service.c, src/lib-storage /mail-storage-settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage/mail-storage.h, src/lib-storage/mail-user.c, src /lib-storage/mail-user.h, src/lib-storage/mailbox-guid-cache.c, src /lib-storage/mailbox-list-iter.h, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- list.h, src/lib/hash.c, src/lib/unichar.h, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h, src/plugins/acl/acl-lookup-dict.c, src/plugins/fts- lucene/Snowball.cc, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/mailbox-alias /mailbox-alias-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota- private.h, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c: Merged changes from v2.1 tree. [e3175ee39483] 2012-09-24 Timo Sirainen * src/auth/auth-request.c, src/auth/db-ldap.c: auth ldap: Previous change broke %$ variable. [4d82c74f702c] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth/db- ldap.c: ldap auth: Update %variables after each field update. The previous behavior was a bit confusing. "uid=user" at the beginning updated the %u variable, but if it was after templates it didn't update it. Also "=user=%{uid}" that was supposed to be equivalent wasn't. Now the behavior is consistent across all ways to set the fields. [18c8d840b028] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Added ALTNOCHECK option to mail_location. By default Dovecot verifies that $rootdir/dbox-alt-root symlink matches the ALT directory location, and logs an error if not. This is mainly to avoid accidents during initial configuration when for example alt dir was set in global mail_location but was forgotten to be set in userdb reply's mail_location. The ALTNOCHECK setting simply doesn't check or create this symlink, giving a (very) small performance improvement. [a14f1d2e2b45] * doc/example-config/conf.d/20-lmtp.conf, src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp-settings.h: lmtp: Added lmtp_rcpt_check_quota setting to check quota already on RCPT TO. [cc7906697d19] * src/lib-storage/mail-storage.h, src/plugins/quota/quota-storage.c: lib-storage: Added STATUS_CHECK_OVER_QUOTA for checking if user is over quota. [94f9dfa7cbaf] * src/lib-storage/index/imapc/imapc-settings.c: imapc: And another compile fix.. Using the macro would have required config/all-settings.c to include imapc-client.h, which is a bit too much trouble just for this. [0a5a3b760e2e] * src/lib-storage/index/imapc/imapc-settings.c: imapc: Compile fix for previous change. [bea05a64cf8b] * src/auth/passdb-imap.c: auth: passdb imap assert-crashed always [17a8f15beb8c] * src/lib-imap-client/imapc-client.h, src/lib-storage/index/imapc /imapc-settings.c: imapc: Added IMAPC_DEFAULT_MAX_IDLE_TIME macro. [fd863826c892] 2012-09-22 Timo Sirainen * src/lib-lda/mail-deliver.c: lib-lda: After auto-creating mailbox only open it, don't bother syncing it. [f818f65f1a7f] 2012-09-21 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-map-private.h, src/lib-storage/index/dbox-multi /mdbox-map.c: mdbox: Delay getting permissions for map/message files. This avoids a stat() if no mailbox is opened. [c83c70edef35] * src/lmtp/commands.c: lmtp: After successful proxying RCPT TO, the second one to nonexistent user gave tempfail error. Instead of "unknown user" it gave "Can't handle mixed proxy/non-proxy destinations". [6908b8875720] * src/lmtp/client.c: lmtp: RSET/LHLO should reset any pending proxy connections. [2efd5eb7966d] * src/config/config-parser.c: config: Don't ignore invalid network/mask in local/remote blocks [02aa054c762f] 2012-09-18 Timo Sirainen * .hgsigs: Added signature for changeset 1a6c3b4e92e4 [3c215bd49cd0] * .hgtags: Added tag 2.1.10 for changeset 1a6c3b4e92e4 [abef881deed0] * NEWS, configure.in: Released v2.1.10. [1a6c3b4e92e4] [2.1.10] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Compiling fix for previous change [a9a49a30344b] * src/director/director-request.c: director: Fixed weak-user handling when there is only one director. [f9424b066dcb] * src/plugins/fts-lucene/Snowball.cc, src/plugins/fts- lucene/SnowballAnalyzer.h, src/plugins/fts-lucene/SnowballFilter.h, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene /fts-lucene-plugin.h, src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Added "normalize" option to put data through user's normalizer function. [a200fdbc1fa0] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib/unichar.h: Backported parts of normalizer_func_t changes from v2.2 tree. [99305e4dd403] * src/lib-storage/mailbox-list.c: lib-storage: Compiling fix for previous alias symlink change [be5b1256bf57] * src/auth/userdb-static.c: auth: userdb static used auth caching wrong when verifying user existence with passdb lookup. Cache entries were being looked/added for userdbs instead of passdbs. This caused problems at least with: a) Multiple userdbs (where static userdb was the last). Passdb results were added as cache entries to the first userdbs, possibly causing some confusion. b) Multiple passdbs, because the first passdb result was added to cache and used for the rest of the passdbs. [c38060f0ad58] * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: Allow negative percentage rules up to -99% [74d639b2a5bf] * configure.in, src/plugins/Makefile.am, src/plugins/mailbox- alias/Makefile.am, src/plugins/mailbox-alias/mailbox-alias-plugin.c, src/plugins/mailbox-alias/mailbox-alias-plugin.h: Added mailbox-alias plugin. Aliases can be created like: plugin { mailbox_alias_old = Sent mailbox_alias_new = Sent Messages mailbox_alias_old2 = Sent mailbox_alias_new2 = Sent Items } When creating an alias, the original mailbox is also created. The alias itself is a symlink to the original. Deleting an alias deletes the symlink. The original mailbox can't be deleted or renamed while it has aliases. Aliases cannot be renamed. Aliases are skipped when recalculating quota. If a mailbox with the alias's name was already created before the aliasing was enabled, it's not treated as alias until it's first deleted. [f5bb9f6b304d] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Skip alias symlinks when rescanning. [45773a09dcf2] * src/plugins/quota/quota-count.c, src/plugins/quota/quota-maildir.c: quota: Skip alias symlinks when calculating quota [1937b38f50f0] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-maildir-iter.c, src/lib-storage/mailbox-guid-cache.c, src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox- list.c, src/lib-storage/mailbox-list.h: lib-storage: MAILBOX_LIST_ITER_SKIP_ALIASES now skips also "alias symlinks" An "alias symlink" is a symlink that points to the same directory. These can safely be skipped when iterating through all mails in all mailboxes (unlike other symlinks that may point to external storages). [eff1d11ce14b] 2012-09-14 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-mail.c: pop3c: Fetching message size could have returned wrong value [8cec3b4c43ca] 2012-09-12 Timo Sirainen * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c, src/director/director.h: director: Improved logging related to disconnections. [27d3289e1f5c] * src/director/director-connection.c: director: Already seen USER-WEAK command caused director to disconnect. [24e791bbcf69] 2012-09-11 Timo Sirainen * src/lib-imap-client/imapc-connection.c: imapc: Fixed parsing "text" input after OK/NO/BAD/BYE. [245fe7fd6f00] * src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h: lib-imap: Added IMAP_PARSE_FLAG_SERVER_TEXT that fixes parsing input from IMAP server. [382df961f290] 2012-09-11 Dafan Zhai * src/lib-storage/index/index-status.c: lib-storage: Fixed memory leak getting MAILBOX_METADATA_VIRTUAL_SIZE Function virtual_size_add_new forgets to free the 'search_args' object after it searches the mails. --- src/lib-storage/index/index-status.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) [3e1f1b6887c8] 2012-09-11 Timo Sirainen * src/lib-imap/imap-parser.c, src/lib-settings/settings-parser.c, src /lib-storage/mail-storage-service.c, src/lib/hash.c: Decrease minimum memory allocations. This is mainly to avoid wasting settings-related memory for IMAP processes. Probably something more radical should be done at some point. [9f691edba099] * src/lib-master/master-service-settings-cache.c: lib-master: Decrease initial memory pool size [f3d532a4feb6] * src/plugins/acl/acl-lookup-dict.c: acl: Don't add sameuser -> sameuser entries to ACL dict. [3eaeacc85b4c] 2012-09-06 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-settings.c, src/doveadm /doveadm-settings.h, src/doveadm/doveadm.c: doveadm: Added exec command to easily execute commands from libexec_dir. For example: doveadm exec imap -u user@domain [cb3f49b649bf] 2012-09-04 Timo Sirainen * src/lib-storage/mail-namespace.c, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h: lib-storage: Added "disabled" setting for namespaces. [0ee2f712b489] 2012-09-02 Timo Sirainen * src/imap/cmd-list.c, src/lib-storage/list/mailbox-list-fs-iter.c: Various fixes to listing mailboxes. Some of these are a bit kludgy, v2.2 has a larger rewrite of the code to implement them more nicely. [d079d72abb79] 2012-08-31 Timo Sirainen * src/lib-storage/index/mbox/mbox-storage.c: mbox: Fix to previous public namespace location detection crashfix. [5625ab0a3eed] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c: lib-storage: Don't crash when trying to detect public namespace's mail_location. Public namespaces have no owner. [6b9db780b47d] 2012-09-26 Timo Sirainen * src/lib-storage/index/index-storage.c, src/lib-storage/mail- storage.c: lib-storage: Cleanup, use the new mailbox_*() instead of mailbox_list_*() when possible. [981e0bc71742] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index/dbox- multi/mdbox-map.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-pvt.c, src/lib-storage/index/maildir /maildir-util.c, src/lib-storage/list/subscription-file.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/acl/acl-backend-vfile- acllist.c, src/plugins/fts-lucene/fts-backend-lucene.c: lib-storage: Cleanups to mailbox mkdir() related functions. [02d00843dd79] * src/lib-storage/index/index-storage.c: lib-storage: Make sure permissions are refreshed after creating mailbox directory. [3a694c8090a3] * src/lib-storage/index/index-storage.c: lib-storage: Fixed creating selectable mailbox when it was already \Noselect [536b1643786e] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-map-private.h, src/lib-storage/index/dbox-multi /mdbox-map.c, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/subscription-file.c, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- list.h, src/lib-storage/mailbox-uidvalidity.c, src/plugins/acl/acl- backend-vfile-acllist.c, src/plugins/quota/quota-maildir.c: lib-storage: mailbox_list_get_root_permissions() now returns struct mailbox_permissions. [d0ca4c69ec76] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Invalid subscription entries weren't removed always with subscriptions=no namespaces. [081b62bed2ea] * src/lib-storage/mail-storage.c: lib-storage: Allow mailbox name to begin with separator if mail_full_filesystem_access=yes [71fb4be2f666] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/imapc/imapc- list.c, src/lib-storage/index/index-storage.c, src/lib-storage/index /index-storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-index.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/list/mailbox- list-none.c, src/lib-storage/mail-storage.c, src/lib-storage /mailbox-list-private.h, src/plugins/acl/acl-mailbox-list.c: lib-storage: Removed mailbox_list.create_mailbox_dir() virtual function. It really didn't need to be virtual. Some storages didn't care about it, others wanted it to work basically the same. [6e90fc8dfa25] * src/lib-storage/index/maildir/maildir-storage.c: maildir: Minor fixes and code cleanup to mailbox creation. [f5514e09fd1e] * src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Improved mailbox_list_mkdir() error handling. [69b406249e47] 2012-09-25 Timo Sirainen * src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/list/mailbox-list-maildir.c: lib-storage: Create "maildirfolder" file only with maildir storage. Previously it was created for all storages, as long as they used LAYOUT=maildir++. The file is mainly meant for MDAs that want to update maildirsize quota, but that's only available for Maildir storage. [f6225edc2c1e] * src/lib-storage/list/mailbox-list-maildir.c, src/lib-storage /mailbox-list-private.h: lib-storage: Removed unused MAILBOX_DIR_CREATE_TYPE_ONLY_NOSELECT [3275a9b5136a] * src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-fs.c, src /lib-storage/list/mailbox-list-subscriptions.c, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/acl /acl-backend-vfile.c: Various cleanups to checking if mailbox name is valid. [20edc46254ce] * src/lib-storage/index/shared/shared-list.c, src/lib-storage/list /mailbox-list-subscriptions.c: lib-storage: Fixed shared namespace autocreation after previous mailbox list changes. mailbox_list_is_valid_existing_name() no longer goes all the way through to shared-list backend, but mailbox_list_join_refpattern() does. [f0d487918a2b] * src/lib-fs/fs-api.c: lib-fs: Fix to previous change [7766229d8f3e] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-fs.h, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/list/mailbox- list-maildir.h, src/lib-storage/list/mailbox-list-none.c, src/lib- storage/mail-storage.c, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c: lib-storage: Removed mailbox list backend-specific mailbox name/pattern validation. The virtual name validity is independent of the backend. The physical name is always used for paths in filesystem, so it can also be verified with common code. Backend's mailbox_dir and storage's internal directories can also be checked. There's nothing else left really. [3e6048697365] * src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Removed unused mailbox_list_create_dir() [fbc90337b48c] * src/lib-storage/mailbox-list.c: lib-storage: If list escape_char is set, allow ".", ".." and "dbox- Mails" mailbox names. [185680508ece] * src/lib-storage/mail-storage.c: lib-storage: Added asserts to make sure mailbox_open() is called early enough. [78d9adf7c149] * src/indexer/Makefile.am, src/indexer/master-connection.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- save.c, src/lib-storage/index/cydir/cydir-sync.c, src/lib- storage/index/dbox-common/dbox-storage.c, src/lib-storage/index /dbox-single/sdbox-file.c, src/lib-storage/index/dbox-single/sdbox- sync-rebuild.c, src/lib-storage/index/index-rebuild.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index-sync- pvt.c, src/lib-storage/index/index-sync.c, src/lib- storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/plugins/acl/doveadm-acl.c, src/plugins /fts-squat/fts-backend-squat.c, src/plugins/quota/quota-fs.c: lib-storage: Added mailbox_get_path_to() wrapper for mailbox_list_get_path(). Changed the code to use as much of mailbox_get_path_to() and mailbox_get_path() as possible. [f8c1ddf55b94] * src/lib-fs/fs-api.c: lib-fs: Minor code cleanup [89f8843be67b] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c: lib-storage: Added mail_storage_copy_error() [3b01d09f7762] * src/lib-index/mail-transaction-log-file.c: lib-index: Transaction log creation crashed if required extension name length wasn't divisible by 4. [d2dd659b4a4a] * src/lib-storage/index/Makefile.am, src/lib-storage/index/dbox- common/Makefile.am, src/lib-storage/index/dbox-common/dbox-sync- rebuild.c, src/lib-storage/index/dbox-common/dbox-sync-rebuild.h, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/index-rebuild.c, src/lib-storage/index/index- rebuild.h: lib-storage: Moved dbox-sync-rebuild API to more generic index- rebuild. [cc7650515b40] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-storage.h, src/lib-storage/index /dbox-common/dbox-sync-rebuild.c, src/lib-storage/index/dbox-common /dbox-sync-rebuild.h, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync- rebuild.c: dbox: Renamed dbox_sync_rebuild_verify_alt_storage() to dbox_verify_alt_storage() [89c319980584] 2012-09-24 Timo Sirainen * src/doveadm/Makefile.am: doveadm: Install doveadm-settings.h header [200ec10b2314] 2012-09-22 Timo Sirainen * src/lib-lda/mail-deliver.c: lib-lda: After auto-creating mailbox only open it, don't bother syncing it. [4776fbf6d93a] * src/lib-storage/index/imapc/imapc-save.c: imapc: Fixed crash when saving/copying messages. [c5926a27fa2d] 2012-09-20 Timo Sirainen * src/config/config-connection.c, src/config/config-request.c, src/config/doveconf.c: config: Fixes to previous module change. [a73f4d12289e] 2012-09-19 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Verify that the shared library's version matches the binary's version. [488c7dde19ad] * src/imap/cmd-fetch.c, src/imap/cmd-select.c, src/imap/imap-fetch.c, src/imap/imap-fetch.h, src/imap/imap-search-args.c, src/imap/imap- search-args.h: imap: Fixed crashing in QRESYNC SELECT. [119225e4f305] * src/auth/auth-settings.c, src/lib-master/master-service-private.h, src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-master/master-service-ssl-settings.c, src/lib-master/master-service.c, src/lib-master/master-service.h, src/lib-storage/mail-storage-service.c, src/lmtp/lmtp-settings.c, src/login-common/login-settings.c, src/login-common/main.c: Read SSL settings only if service has SSL sockets or MASTER_SERVICE_FLAG_USE_SSL_SETTINGS. [14df6be0111f] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-parser-private.h, src/config/config-parser.c, src/config/config-parser.h, src/config /config-request.c, src/config/config-request.h, src/config/doveconf.c, src/config/main.c: config: Support looking up config for multiple modules at the same time. [8c003fe6f5a6] 2012-09-18 Timo Sirainen * src/lib-fs/fs-api.c: lib-fs: Fix to previous API change [04580a59dc53] 2012-09-17 Timo Sirainen * src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs- api.h, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-queue.c, src/lib-fs /fs-sis.c, src/lib-storage/index/dbox-common/dbox-storage.c: lib-fs: fs_init() API changed to allow returning an error. [8f4ce0932777] * src/lib-storage/index/dbox-single/sdbox-storage.h: sdbox: Removed unnecessary code line. [64f556e62025] 2012-09-16 Timo Sirainen * src/plugins/fts-squat/Makefile.am: Makefile: Fixed building fts-squat [a821cce04eb7] * src/doveadm/Makefile.am, src/doveadm/dsync/Makefile.am, src/lib- dict/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-mail/Makefile.am, src/lib- storage/Makefile.am, src/plugins/fts/Makefile.am: Makefile: Again changes to handling test program dependencies. .la libraries need to link .lo files, .a libraries need to link .o files. Changed dsync to be .la library for consistency. [a2159b6d1518] * src/auth/passdb-cache.h, src/config/config-request.h, src/config /old-set-parser.h, src/doveadm/doveadm-mail-index.c, src/doveadm /doveadm-mail-iter.h, src/doveadm/doveadm-mail.c, src/doveadm /doveadm-mail.h, src/doveadm/doveadm-mailbox-list-iter.h, src/doveadm/dsync/dsync-mailbox-tree-fill.c, src/imap/cmd-list.c, src/imap/cmd-notify.c, src/imap/imap-notify.c, src/lib-imap/imap- util.h, src/lib-index/mail-index-modseq.h, src/lib-lda/mail- deliver.h, src/lib-storage/Makefile.am, src/lib-storage/index/imapc /imapc-sync.h, src/lib-storage/index/maildir/maildir-sync.h, src /lib-storage/list/mailbox-list-delete.h, src/lib-storage/list /mailbox-list-index.h, src/lib-storage/list/mailbox-list- subscriptions.h, src/lib-storage/mailbox-list-iter.h, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.h, src/plugins/notify/notify-plugin.h, src/plugins/quota/quota-count.c, src/plugins/virtual/virtual-config.c: Removed all the "enum foo;" declarations. They didn't seem to be very standard. Old gcc versions warn about them and C++ code doesn't like them. [4b0cbecf369d] * src/director/user-directory.c, src/doveadm/dsync/dsync-mailbox-tree- sync.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/list/mailbox-list-index.c, src/lib/json-parser.c: Compiler warning fixes for 32bit systems. [e708a1d691d3] * src/anvil/main.c, src/auth/auth-request-handler.c, src/auth/userdb- passwd.c, src/director/director-test.c, src/imap/imap-fetch-body.c, src/lib-index/mail-index-alloc-cache.c, src/lib-storage/index/index- search.c, src/lib/lib-signals.c, src/replication/replicator/replicator.c: Fixed compiling with OSes where NULL isn't defined as void pointer (e.g. Solaris). [925d4a890a9b] 2012-09-16 Stephan Bosch * src/imap-urlauth/imap-urlauth-worker.c: imap-urlauth: Fixed crashes when destroying client [dc1db2eedbb1] * src/imap-urlauth/imap-urlauth-worker.c, src/lib-imap-urlauth/imap- urlauth-fetch.c: imap-urlauth: Treat internal errors in URL fetching differently from invalid URLs. [c69ee1de5f70] * src/imap-urlauth/imap-urlauth-worker.c, src/imap/imap-client.c, src /lib-imap-urlauth/imap-urlauth-private.h, src/lib-imap-urlauth/imap- urlauth.c, src/lib-imap-urlauth/imap-urlauth.h: imap-urlauth: Fixes to handling anonymous user [7e1f0146169f] * src/lib-dict/dict-file.c: lib-dict: Previous API change broke dict_init() [009d19d5f0f1] 2012-09-16 Timo Sirainen * src/anvil/Makefile.am, src/auth/Makefile.am, src/director/Makefile.am, src/doveadm/dsync/Makefile.am, src/lib- dict/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-mail/Makefile.am, src/lib- storage/Makefile.am, src/plugins/fts-squat/Makefile.am, src/plugins/fts/Makefile.am: Makefile: Fixed test program dependencies Explicit dependencies on .o or .lo files didn't seem to work properly and with high enough make -j value the build failed. Depending on the entire library guarantees that all the individual .o files have been built. [00df9f4192ad] * src/lib-dovecot/Makefile.am: Makefile: Link libdovecot-ssl with libdovecot. This fixes linking with e.g. OSX. [8b0d967e61cf] * src/imap-urlauth/Makefile.am: Makefile: Fixed dependencies for imap-urlauth [2fe6d09e68d4] * src/imap-urlauth/Makefile.am: Makefile: Fixed imap-urlauth library dependencies [97079269a703] * src/imap/imap-fetch-body.c, src/lib-imap-storage/imap-msgpart.c, src /lib-imap-storage/imap-msgpart.h: lib-imap-storage: imap_msgpart_size() should return size as uoff_t, not size_t [8e29272c35fa] * src/imap/imap-client.c: imap: Assert-crashfix for URLFETCH command. [9d684784de9b] * src/anvil/connect-limit.c, src/anvil/penalty.c, src/auth/auth- master-connection.c, src/auth/auth-stream.c, src/auth/checkpassword- reply.c, src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-mail- server.c, src/doveadm/doveadm-print-server.c, src/doveadm/dsync /dsync-ibc-stream.c, src/doveadm/dsync/dsync-serializer.c, src/imap- urlauth/imap-urlauth-client.c, src/indexer/worker-connection.c, src /lib-auth/auth-client-request.c, src/lib-auth/auth-master.c, src /lib-imap-urlauth/imap-urlauth-connection.c, src/lib-master/master- instance.c, src/lib-master/master-login.c, src/lib/strescape.c, src/lib/strescape.h, src/log/doveadm-connection.c, src/master /service-process.c, src/plugins/replication/replication-plugin.c, src/plugins/stats/stats-connection.c, src/replication/replicator /doveadm-connection.c, src/replication/replicator/replicator- queue.c, src/stats/client-export.c, src/util/script-login.c: Renamed str_tabescape_write() to str_append_tabescaped() [002e0a120c2a] * src/auth/db-dict.c, src/dict/dict-connection.c, src/lib-dict/dict- client.c, src/lib-dict/dict-db.c, src/lib-dict/dict-file.c, src/lib- dict/dict-memcached-ascii.c, src/lib-dict/dict-memcached.c, src/lib- dict/dict-private.h, src/lib-dict/dict-redis.c, src/lib-dict/dict- sql.c, src/lib-dict/dict.c, src/lib-dict/dict.h, src/lib-imap- urlauth/imap-urlauth-backend.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire/expire- plugin.c, src/plugins/quota/quota-dict.c: dict_init() API changed to return int. [9bff478f81fd] 2012-09-15 Stephan Bosch * .hgignore, README, configure.in, src/Makefile.am, src/imap- urlauth/Makefile.am, src/imap-urlauth/imap-urlauth-client.c, src /imap-urlauth/imap-urlauth-client.h, src/imap-urlauth/imap-urlauth- common.h, src/imap-urlauth/imap-urlauth-login-settings.c, src/imap- urlauth/imap-urlauth-login-settings.h, src/imap-urlauth/imap- urlauth-login.c, src/imap-urlauth/imap-urlauth-settings.c, src/imap- urlauth/imap-urlauth-settings.h, src/imap-urlauth/imap-urlauth- worker-settings.c, src/imap-urlauth/imap-urlauth-worker-settings.h, src/imap-urlauth/imap-urlauth-worker.c, src/imap-urlauth/imap- urlauth.c, src/imap/Makefile.am, src/imap/cmd-genurlauth.c, src/imap /cmd-resetkey.c, src/imap/cmd-urlfetch.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-commands.c, src/imap/imap- commands.h, src/imap/imap-settings.c, src/imap/imap-settings.h, src/imap/main.c, src/lib-imap-urlauth/Makefile.am, src/lib-imap- urlauth/imap-urlauth-backend.c, src/lib-imap-urlauth/imap-urlauth- backend.h, src/lib-imap-urlauth/imap-urlauth-connection.c, src/lib- imap-urlauth/imap-urlauth-connection.h, src/lib-imap-urlauth/imap- urlauth-fetch.c, src/lib-imap-urlauth/imap-urlauth-fetch.h, src/lib- imap-urlauth/imap-urlauth-private.h, src/lib-imap-urlauth/imap- urlauth.c, src/lib-imap-urlauth/imap-urlauth.h: Added support for IMAP URLAUTH and URLAUTH=BINARY extensions Extends imap service with URLAUTH and URLAUTH=BINARY support: - Adds new commands URLFETCH, GENURLAUTH and RESETKEY. Creates imap-urlauth service in src/imap-urlauth. Functionality common to both the imap and imap-urlauth services is located in src/lib-imap-urlauth. TODO: - use mailbox GUIDs instead of names - doveadm command to delete stale urlauth entries? - add delay when attempting to access nonexistent user - create urlauth-worker queue, similar to how indexer-worker works (could we share code?..) [d419aac7ab31] 2012-09-15 Timo Sirainen * src/lib-imap-storage/imap-msgpart.c: lib-imap-storage: imap_msgpart_bodypartstructure() returned freed data. [1b4ab06fa0e2] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h, src /lib-storage/index/cydir/cydir-sync.c, src/lib-storage/index/imapc /imapc-sync.c, src/lib-storage/index/index-sync-changes.c, src/plugins/virtual/virtual-sync.c: lib-index: Removed MAIL_INDEX_SYNC_TYPE_APPEND. No backend cares about it. [5f483950b733] * src/lib-index/mail-index-private.h, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index.c, src/lib-index /mail-index.h, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox-common/dbox-storage.c: lib-index: Changed mail_index_set_fsync_mode() to use a separate enum for the mask. [0efc12f3eb2a] * src/lib-imap/imap-bodystructure.c, src/lib-imap/test-imap- bodystructure.c: lib-imap: Fixed Content-Language parsing from BODYSTRUCTURE [9935621836c8] * src/lib-imap/imap-bodystructure.h: imap-bodystructure.h comment fix [108b28e864c4] * src/lib-imap/imap-bodystructure.h: imap-bodystructure.h comment update [ccf6399055e7] * src/lib-imap/test-imap-bodystructure.c: lib-imap: Updated test-imap-bodystructure [ef1519ebfb4f] * src/lib-imap-storage/imap-msgpart-url.c, src/lib-imap-storage/imap- msgpart-url.h, src/lib-imap-storage/imap-msgpart.c, src/lib-imap- storage/imap-msgpart.h: lib-imap-storage: Added support for getting BODYPARTSTRUCTURE Based on patch by Stephan Bosch. [a69c48fa4f32] * src/lib-imap/Makefile.am, src/lib-imap/imap-bodystructure.c, src /lib-imap/imap-bodystructure.h, src/lib-imap/test-imap- bodystructure.c: lib-imap: Added support for parsing IMAP BODYSTRUCTURE and writing out a modified version. [d1f084a39708] * src/lib-imap/imap-bodystructure.c, src/lib-imap/imap- bodystructure.h, src/lib-storage/index/index-mail.c: imap_body_parse_from_bodystructure() now returns the error instead of logging it. [6acd8b149709] * src/lib-storage/index/dbox-common/dbox-mail.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/index-mail- binary.c, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src /lib-storage/index/index-search.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/mail-storage-private.h, src/plugins/virtual/virtual-mail.c: lib-storage: Moved index_mail.data_pool to mail_private.data_pool [c436a6c3f7d2] * src/plugins/fts-lucene/Snowball.cc, src/plugins/fts- lucene/SnowballAnalyzer.h, src/plugins/fts-lucene/SnowballFilter.h, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene /fts-lucene-plugin.h, src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Added "normalize" option to put data through normalize(). [07ac1dbcc033] * src/doveadm/doveadm-mail-fetch.c, src/lib-charset/charset-iconv.c, src/lib-charset/charset-utf8.c, src/lib-charset/charset-utf8.h, src /lib-imap/imap-base-subject.c, src/lib-mail/message-decoder.c, src /lib-mail/message-decoder.h, src/lib-mail/message-header-decode.c, src/lib-mail/message-header-decode.h, src/lib-mail/message-search.c, src/lib-mail/message-search.h, src/lib-mail/test-message-decoder.c, src/lib-mail/test-message-header-decode.c, src/lib-storage/index /index-search.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-user.c, src/lib-storage/mail-user.h, src/lib/unichar.h, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts/fts-api- private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts-build- mail.c: Replaced "decomposed titlecase" conversions with more generic normalizer function. Plugins can now change mail_user.default_normalizer. Specific searches can also use different normalizers by changing mail_search_context.normalizer. [c976a9c01613] * src/lib-storage/index/index-sort.c, src/lib/unichar.c, src/lib/unichar.h: uni_utf8_to_decomposed_titlecase(): Require input length to be exact now. Most of the callers did that already anyway [d5ebec837bfd] 2012-09-14 Timo Sirainen * src/auth/auth-settings.c, src/login-common/login-common.h: Use "tokenlogin" socket name (instead of "token-login") after all. Auth code has special checks for '-', which breaks "token-login" and fixing it is rather annoying. [9ad9a79c1747] * src/auth/main.c: auth: Auth workers don't need to read token secret. [172a75b3bed8] 2012-09-14 Stephan Bosch * src/auth/Makefile.am, src/auth/auth-client-connection.c, src/auth /auth-client-connection.h, src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth- settings.c, src/auth/auth-token.c, src/auth/auth-token.h, src/auth/main.c, src/auth/mech-dovecot-token.c, src/auth/mech.h, src/imap/main.c, src/lib-master/master-login-auth.c, src/lib-master /master-login-auth.h, src/lib-master/master-login.c, src/lib-master /master-login.h, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-user.h, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/login-common.h, src /login-common/main.c, src/master/master-settings.c: Added support to perform token-based service process authentication. Creates hidden SASL method DOVECOT-TOKEN. This method is not available on the normal auth login socket and thus never presented to clients. Creates new auth socket type 'tokenlogin'. This otherwise normal login socket only offers authentication using the DOVECOT-TOKEN mechanism. Creates new token-login directory in base_dir to separate token logins from normal logins. This directory is otherwise completely identical to the normal login dir, i.e. it contains sockets for the service backends, used to chroot login processes to, etc. Makes default login socket configurable. Performs some minor changes to src/login-common to build very sparse protocols, e.g. avoid the need to implement methods that are not needed. [aa6027a0a78e] 2012-09-14 Timo Sirainen * src/lib/hmac-sha1.c, src/lib/hmac-sha1.h: hmac_sha1_init(): Use void pointer for the key. [b74e8de5f3d9] 2012-09-14 Stephan Bosch * src/imap/cmd-append.c, src/lib-imap-storage/imap-msgpart-url.c, src /lib-imap-storage/imap-msgpart-url.h: lib-imap-storage: Changed imap_msgpart_url API. Adds enum mail_error return value to imap_msgpart_url_open_mailbox(). Now parses msgpart at the beginning and adds function to access underlying imap_msgpart object directly. [f82dbf27ba79] * src/imap-login/client-authenticate.c: Fixes IMAP LOGIN REFERRAL to properly encode IMAP URL. [584681a1845c] * src/lib-imap/imap-url.c, src/lib-imap/imap-url.h, src/lib-imap/test- imap-url.c, src/lib/uri-util.c, src/lib/uri-util.h: Added support for creating IMAP URLs. [345e96ca65a2] 2012-09-13 Timo Sirainen * src/lib-storage/index/index-mail.c: lib-storage: Message size/sent date could have been set as 0 in some cases. It doesn't look like it ever happened with the current storage backends or use cases. [460db6251639] * src/lib-storage/mailbox-list-private.h: lib-storage: Allow #including mailbox-list-private.h from C++ code [7343ccbdd985] * dovecot-config.in.in: dovecot-config: Added lib-storage/list to be in LIBDOVECOT_STORAGE_INCLUDE [b5bf7bcd43ae] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/plugins/acl/acl-mailbox.c, src/plugins/lazy-expunge /lazy-expunge-plugin.c, src/plugins/notify/notify-storage.c: lib-storage API change to allow using it from C++ code [7c6d30280cff] * src/lib-storage/list/mailbox-list-index.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage-settings.c, src/lib- storage/mail-storage-settings.h, src/lib-storage/mail-storage.c: lib-storage: Moved mail_storage_settings_to_index_flags to mail- storage-private.h This is mainly to allow #including mail-storage- settings.h from C++ code without having to #include mail-index.h from mail-storage-settings.h [d7dd5cdf1ba7] 2012-09-11 Timo Sirainen * src/lib/ipwd.c: i_get(pw|gr)(nam|uid): Use small initial buffer sizes. For processes that need to do only a single lookup there's no point in wasting a lot of memory for the maximum buffer size. [349d52c4ca51] 2012-09-10 Timo Sirainen * src/doveadm/doveadm-mail-mailbox.c, src/doveadm/dsync/dsync-brain- mailbox-tree-sync.c, src/imap/cmd-rename.c, src/lib-storage/fail- mailbox.c, src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/shared/shared-list.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox-list- index.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-none.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/mailbox-list-private.h, src/plugins/acl /acl-mailbox.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/notify/notify- plugin-private.h, src/plugins/notify/notify-plugin.c, src/plugins/notify/notify-plugin.h, src/plugins/notify/notify- storage.c, src/plugins/replication/replication-plugin.c: lib-storage: Removed rename_children parameter from mailbox_rename() The children are now always renamed. The only reason this feature was added in the first place was to make dsync's job easier, but this is no longer needed. [92cc78c5dc77] 2012-09-07 Timo Sirainen * src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync- brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync- ibc-pipe.c, src/doveadm/dsync/dsync-ibc-private.h, src/doveadm/dsync /dsync-ibc-stream.c, src/doveadm/dsync/dsync-ibc.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync-slave-pipe.c, src/doveadm/dsync/dsync-slave-private.h, src/doveadm/dsync/dsync- slave-stream.c, src/doveadm/dsync/dsync-slave.c, src/doveadm/dsync /dsync-slave.h: dsync: Renamed "slave" to "ibc" (= inter-brain communicator) [920756cd29b8] * src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-slave-io.c, src/doveadm/dsync/dsync-slave- stream.c, src/doveadm/dsync/dsync-slave.h: dsync: Renamed "io" slave to "stream". [5943cace4e05] 2012-09-06 Timo Sirainen * src/doveadm/dsync/Makefile.am, src/doveadm/dsync/dsync-brain- mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree-private.h, src/doveadm/dsync /dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h, src/doveadm/dsync/dsync- slave-io.c, src/doveadm/dsync/test-dsync-mailbox-tree-sync.c: dsync: Rewritten syncing for mailbox renames. A few things didn't go as I originally intended in the algorithm, but it appears to give consistent results now. :) But the algorithm should probably be looked at more closely at some point. [0af20585964d] * src/auth/auth-master-connection.c, src/auth/mech-digest-md5.c, src/imap/main.c, src/lib-index/mail-index-modseq.c, src/lib-index /mail-index-sync-keywords.c, src/lib-index/mail-index-transaction- export.c, src/lib-index/mail-transaction-log-append.c, src/lib-index /mail-transaction-log-file.c, src/lib-index/mail-transaction-log- view.c, src/lib-mail/istream-binary-converter.c, src/lib-mail /istream-qp-decoder.c, src/lib-mail/test-message-header-encode.c, src/lib-otp/otp-parse.c, src/lib-storage/index/index-mail.c, src /lib-storage/index/maildir/maildir-save.c, src/lib-storage/mail.c, src/lib/askpass.c, src/lib/buffer.c, src/lib/buffer.h, src/lib/guid.c, src/lib/iostream-rawlog.c, src/lib/istream- base64-decoder.c, src/lib/istream-base64-encoder.c, src/lib/str.c, src/login-common/sasl-server.c, src/plugins/fts-lucene/Snowball.cc, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts/fts-expunge-log.c, src/pop3-login/client.c, src/pop3/main.c: Renamed buffer_create_*data() to buffer_create_from_*data() for consistency. Especially i_stream_create_from_data() was a very similar function, which made it difficult to remember which one should have "from" and which one shouldn't. [7efef678bca8] * src/lib/buffer.c: buffer_create_data(): Clear the memory area immediately. [34076ab28d28] * src/lib/str.c: str_*printfa(): Avoid (harder!) growing underlying buffer if possible. The previous change for this didn't work properly. [5930f7812e28] 2012-09-04 Timo Sirainen * src/doveadm/doveadm-dump-mailboxlog.c: doveadm dump -t mailboxlog: Added support for MAILBOX_LOG_RECORD_CREATE_DIR [9bc2e718392c] * TODO: TODO updated [af00d5c42ac1] * src/imap/cmd-notify.c, src/imap/imap-notify.c: NOTIFY: Fixed "subscribed" mailbox filter to actually work. [13e7c1e30c0e] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Added mailbox_is_subscribed() [c00df434bfb9] * src/imap/imap-notify.c, src/lib-storage/list/mailbox-list-index- notify.c, src/lib-storage/list/mailbox-list-index.c, src/lib- storage/list/mailbox-list-index.h, src/lib-storage/list/mailbox- list-iter.c, src/lib-storage/mailbox-list-notify.h, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-tree.c, src/lib- storage/mailbox-tree.h: NOTIFY: Implemented SubscriptionChange [fcd480c4a0db] * src/lib-index/mailbox-log.h, src/lib-storage/mailbox-list.c: lib-storage: Log mailbox directory creations to mailbox log. [e2c85551268d] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h: lib-storage: Added "disabled" setting for namespaces. [57c964513a46] * src/lmtp/commands.c: lmtp proxying: Don't auto-set mail_max_lock_timeout higher than it was. [c6ae1551ab40] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Added mail_storage_service_user_get_mail_set() [a76f010eef4b] * src/lib-storage/list/mailbox-list-index-iter.c: mailbox_list_index=yes: Fixed listing nonexistent subscribed mailboxes [e3c96c74eec8] * src/lib-mail/istream-attachment-extractor.c: Minor code cleanup [5420e5c93bda] * src/lib-storage/list/mailbox-list-iter.c, src/lib-storage/mail- namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage /mailbox-list.h: imap: Fixed LIST (SPECIAL-USE RECURSIVEMATCH) to actually return CHILDINFOs. [169385092bae] * src/imap/cmd-list.c, src/lib-storage/list/mailbox-list-iter.c: LIST: Fixes to handling subscriptions [46d972c228c0] * src/lib-storage/Makefile.am, src/lib-storage/list/Makefile.am, src /lib-storage/list/mailbox-list-iter.c, src/lib-storage/mailbox-list- iter.c: lib-storage: Moved mailbox-list-iter.c to list/ [72805776f84b] * src/lib-storage/list/mailbox-list-index-sync.c: mailbox_list_index: Assert-crashfix when seeing a new mailbox with children. [1d2122f10411] * src/plugins/quota/quota-private.h, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c: quota: Removed quota_ignore_save_errors setting and made it enabled always. [cf6f14ec3937] 2012-09-03 Timo Sirainen * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h: lib-imap-client: Added support for NAMESPACE capability Required by previous imapc commit [dbaa7f5f82cd] 2012-09-02 Timo Sirainen * src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-storage/index/index- status.c, src/lib-storage/mail-storage.h: lib-storage: Added MAILBOX_METADATA_BACKEND_NAMESPACE [5f313144c481] * src/lib-storage/mail-storage.h: Comment update. [fba15565c360] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- index.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mailbox- list-iter.c, src/imap/cmd-list.c, src/imap/cmd-namespace.c, src/imap /cmd-notify.c, src/lib-storage/index/maildir/maildir-storage.c, src /lib-storage/index/shared/shared-storage.c, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-index.c, src/lib-storage/list/mailbox-list-subscriptions.c, src/lib-storage /mail-namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage /mail-storage.c, src/lib-storage/mailbox-list-iter.c, src/lib- storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-shared- storage.c, src/plugins/acl/doveadm-acl.c, src/plugins/imap-acl/imap- acl-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota/quota-maildir.c, src/plugins/virtual/virtual- config.c: Renamed enum namespace_type to enum mail_namespace_type [368f3b2e3264] * src/imap/cmd-copy.c: imap: MOVE didn't send EXPUNGE when delay-newmail workaround was enabled. [d3a9769dad2e] * src/lib-imap-storage/imap-msgpart-url.c: imap-msgpart-url: Attempt to reuse selected mailbox instead of reallocating a new one. Besides giving slightly better performace, this also fixes CATENATE for mbox when source and destination mailboxes are the same. [dd1a04580289] * src/imap/imap-commands-util.c, src/imap/imap-commands-util.h, src /lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: Moved mailbox_equals() to lib-storage. [e4d5c3ba305b] * src/lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-lock.h, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-storage.h: mbox: Added support for copy/move/catenate within same mailbox. [9e4257061225] 2012-08-31 Timo Sirainen * src/lib/istream-chain.c, src/lib/istream-concat.c: istream-chain/concat: Various fixes. Also made the chain code look more like concat code. They should be merged at some point. [96716652b364] * src/lib-storage/mailbox-list-iter.c: lib-storage: Fixed listing list=children namespaces that had child namespaces. [db28fea9b8db] 2012-08-30 Timo Sirainen * configure.in, src/auth/auth-client-connection.c, src/auth/auth- master-connection.c, src/auth/auth-request-handler.c, src/auth/mech.c, src/doveadm/Makefile.am, src/doveadm/doveadm-mail- copymove.c, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm- mail.c, src/doveadm/doveadm-mail.h, src/imap/cmd-list.c, src/imap /imap-commands-util.c, src/lib-dict/dict-file.c, src/lib-dict/dict- redis.c, src/lib-imap-client/imapc-client.c, src/lib-imap-client /imapc-connection.c, src/lib-storage/index/imapc/imapc-list.c, src /lib-storage/index/index-storage.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/mail-storage-settings.c, src/lib /istream-concat.c, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: Merged changes from v2.1 tree. [1f95d4fe29c7] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs mailbox listing: Fix to prefix=INBOX/ handling [67235781cc08] 2012-08-28 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c: imapc: If imapc_list_prefix=INBOX, don't treat INBOX/INBOX as the INBOX itself. [eb57a7280b01] * src/lib-dict/dict-file.c: dict file: Fixed corruption with large values. Patch by Ewald Dieterich. [6e53209030f6] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- connection.c: imapc: max_idle_time setting didn't actually work. [7e7364926540] * src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: lmtp proxy: Include session ID string in timeout reply text. [bde62f77c65a] 2012-08-26 Timo Sirainen * src/lib-dict/dict-redis.c: dict-redis: Fixed infinite looping [db9fcdacba90] 2012-08-21 Timo Sirainen * src/lib-dict/dict-redis.c: dict redis: Fixed dict_lookup() to skip all previous pending replies. [00f940201806] 2012-08-24 Timo Sirainen * src/auth/auth-request-handler.c: auth: Don't add "master" to passdb reply if the passdb itself already added it. [1bc8f7b823e7] * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c: auth: Make it clearer in debug messages if the replies are passdb or userdb. [5590c1dc04cd] 2012-08-23 Timo Sirainen * src/doveadm/doveadm-mail-copymove.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm copy/move: Added "user" parameter to specify the source user. [6b61cc674eef] * src/imap/cmd-list.c, src/imap/cmd-namespace.c, src/imap/imap- commands-util.c: imap: Fixes to handling UTF-8 namespace prefixes [ade94fde249e] * src/lib-storage/mail-storage-settings.c: lib-storage: Verify that namespace prefix is valid UTF8 string. [565605200989] * src/lib-storage/list/mailbox-list-fs-iter.c: mbox: Fixed listing mailboxes under INBOX directory. [b8173f8a1447] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-copymove.c, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added "copy" command. [9d35aca14c81] * src/lib-storage/index/index-storage.c: lib-storage: Make sure a save context doesn't leak metadata to the next save. [7bdbca7b0913] 2012-08-22 Timo Sirainen * configure.in: configure: Removed OpenBSD /dev/arandom checking. Patch by Brad Smith "The use of arandom was never a requirement for Dovecot and I had submitted the use of arandom due to ports policy to do so anyway." [3765e8948f1c] * src/lib/istream-concat.c: istream-concat bugfixes [c6fe6a77defd] * src/auth/mech.c: auth: Unregister SCRAM-SHA-1 at deinit. [9523b967a30e] 2012-08-30 Timo Sirainen * src/imap/cmd-list.c, src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/mailbox-list-iter.c, src/lib-storage/mailbox-list.h: Moved most of the IMAP LIST code to lib-storage. Also removed MAILBOX_LIST_ITER_SHOW_EXISTING_PARENT flag, since there wasn't any clearly good way to handle it. Some clients got confused when they saw that foo/ mailbox was returned with \Noselect flag. Either they thought that the mailbox was named foo/ or that foo was \Noselect. Pretty much the only sane way to handle this would be to not make return \Noselect and to treat foo and foo/ as equivalent in all commands, but that might cause trouble with ACLs and similar checks.. [5ffcde8baa8a] * src/imap/cmd-append.c: imap: Fixed MULTIAPPEND CATENATE that contained only URLs [e4c09527aa9e] 2012-08-29 Timo Sirainen * src/imap/cmd-append.c: Minor code cleanup [09de25ccacb4] * src/imap/cmd-append.c: imap: Don't hang with zero size CATENATE TEXT parts. [c9dbd649a78e] * src/lib-imap/imap-parser.c: imap-parser: Fixed imap_parser_read_last_literal() to work again [6c0ba0348e85] * NEWS: NEWS updated [7ac168e566b3] * src/imap/cmd-append.c: imap: Allow very long MULTIAPPEND CATENATE lines that contain only URLs. [c73086239699] * src/lib-imap/imap-parser.c: imap-parser: Allow calling imap_parser_read_args() multiple times with larger count parameter. [e0a3812771fd] * src/lib-imap/imap-parser.c: imap-parser: Removed filling missing parameters with NILs. No code was relying on this behavior. [f6a9e6d7e5bd] * src/imap/cmd-thread.c: imap: Fixed crashes in THREAD=ORDEREDSUBJECT [1309de301a2e] * src/imap/cmd-append.c: imap: CATENATE fix [8d95535af98e] * src/lib/istream-chain.c: istream-chain: Unreference also the last stream when it reaches EOF. [03e0b100243d] * src/imap/cmd-append.c: imap: More APPEND error handling fixes. [bfd4e6e08f72] * src/imap/cmd-cancelupdate.c, src/imap/cmd-uid.c, src/imap/imap- commands-util.c, src/imap/imap-status.c: imap: Send BAD replies with client_send_command_error() [3f83a27a72b8] * src/imap/cmd-append.c: imap: Various fixes to APPEND error handling. [20ad509a559a] * src/imap/imap-client.c, src/imap/imap-client.h: imap: Added asserts to make sure a tagline isn't sent twice to the same command. [075dcb7eac58] * src/lib-storage/index/dbox-common/dbox-save.c: dbox: Don't try to finish saving attachments if saving has already failed. Fixes an assert crash with failed CATENATE. [8ee60c857513] * src/imap/cmd-append.c: imap CATENATE: Do one more mailbox_save_continue() after adding EOF to stream. Fixes a crash with external mail attachments (mail_attachment_dir). [bce550bb2b23] * src/lib/iostream-rawlog.c: iostream_rawlog_create_path(): Avoid double-closing the rawlog fd [407ea0cd54ee] * src/lib/iostream-rawlog-private.h, src/lib/iostream-rawlog.c, src/lib/iostream-rawlog.h, src/lib/istream-rawlog.c, src/lib /istream-rawlog.h, src/lib/ostream-rawlog.c, src/lib/ostream- rawlog.h: iostream-rawlog: Added possibility to save input/output to the same file. [8ce6d41d2d41] * src/lib/str.c: str_*printfa(): Avoid growing underlying buffer if possible. [fff00bb85ae4] * src/lib/hash-decl.h, src/lib/hash.h: Reverted some of the last hash table changes. They caused hash table operations to dereference pointers, which caused a compiler error if the type wasn't known. [9ae214349fac] 2012-08-28 Timo Sirainen * src/lib-compression/istream-bzlib.c, src/lib-compression/istream- zlib.c, src/lib-fs/fs-sis.c, src/lib-mail/istream-header-filter.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/mbox/istream-raw-mbox.c, src/lib-storage/index/mbox /mbox-sync.c, src/lib-storage/index/raw/raw-mail.c, src/lib- storage/list/subscription-file.c, src/lib/istream-chain.c, src/lib /istream-concat.c, src/lib/istream-file.c, src/lib/istream-limit.c, src/lib/istream-mmap.c, src/lib/istream-private.h, src/lib/istream- seekable.c, src/lib/istream-sized.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/istream.h: i_stream_stat() API changed. This fixes also one missing error check. [6d2be8d8891c] * src/lib/ostream-file.c: o_stream_send_istream(): Get input stream size with i_stream_get_size() instead of _stat(). [3cba27563159] * src/lib/istream-chain.c: istream-chain: Removed default get_size() implementation and panicing on stat() This works around crashes in mdbox/quota code. Patch by Stephan Bosch. [bb0533bca649] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Replaced non-error-checking i_stream_stat() with potentially faster i_stream_get_size(). [cbe8fe1b44f0] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c: lmtp proxy: Forward proxy_timeout to backend and set mail_max_lock_timeout based on it. This automatically avoids duplicate mail deliveries caused by long lock waits. [6d2a439a10a6] 2012-08-25 Timo Sirainen * src/lib/istream-concat.c: istream-concat: Bugfix [57efcf0957ea] 2012-08-24 Pascal Volk * src/imap/cmd-idle.c: imap IDLE: Added back fc00::/7 (RFC 4193) to private networks. This time the check is done correctly. [7cbbac45ad49] 2012-08-24 Timo Sirainen * src/imap/cmd-idle.c: imap IDLE: Reverted the IPv6 change, it doesn't work like that. [cdb2d4d89d5d] 2012-08-23 Pascal Volk * src/imap/cmd-idle.c: imap IDLE: Add also fc00::/7 (RFC 4193) to private networks. [dc58905b5c9c] 2012-08-23 Timo Sirainen * src/imap/cmd-idle.c: imap IDLE: Add also 172.168/12 to private networks. [725a91613107] * src/imap/cmd-idle.c: imap IDLE: Time "still here" packet sends based on client IP address if possible. [8d7f9e2d726c] * src/lib/istream-concat.c: Compiler warning fix [9bda1b81c16c] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index /dbox-common/dbox-save.c, src/lib-storage/index/dbox-multi/mdbox- save.c, src/lib-storage/index/dbox-single/sdbox-copy.c, src/lib- storage/index/dbox-single/sdbox-save.c, src/lib-storage/index/imapc /imapc-save.c, src/lib-storage/index/index-attachment.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/mail-copy.c, src /lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/plugins/acl/acl-mailbox.c, src/plugins/lazy-expunge/lazy- expunge-plugin.c, src/plugins/virtual/virtual-save.c, src/plugins/zlib/zlib-plugin.c: lib-storage: Moved per-mail data in struct mail_save_context to separate struct. This fixes previous save leaking metadata to the next save. [b966759dd48c] * src/lib-mail/istream-attachment-extractor.c: Increased initial memory pool size [d0441efd0efc] 2012-08-22 Timo Sirainen * src/config/Makefile.am, src/doveadm/doveadm-instance.c, src/doveadm /doveadm-mount.c, src/doveadm/doveadm-settings.c, src/doveadm /doveadm-settings.h, src/doveadm/doveadm.c, src/lib-master/master- instance.h, src/lib-master/master-service-settings.c, src/lib-master /master-service-settings.h, src/lib-master/master-service-ssl.c, src /lib-master/master-service.c, src/login-common/ssl-proxy-openssl.c, src/master/main.c, src/master/master-settings.c, src/master/master- settings.h, src/replication/replicator/replicator.c, src/ssl- params/main.c: Made PKG_STATEDIR configurable with state_dir setting. Based on patch by Chris Webb. Normally this isn't needed, since the data in the state_dir can be shared across multiple Dovecot instances, but in some specific use cases this may be useful (e.g. users running their own Dovecots). [543852ebb327] * src/lib-storage/mail-copy.c, src/lib-storage/mail-copy.h: lib-storage: Added mail_save_copy_default_metadata() [5b89c50164de] * src/lib/istream-base64-decoder.c, src/lib/istream-base64-encoder.c: istream-base64: Fixed returning -2 too early. [5cf1cedb75e6] * src/lib/istream-concat.c: istream-concat bugfixes [8377786d750a] * src/lib-mail/test-istream-attachment.c: Added a test for istream-attachment-extractor hash size [edcdab7cccfd] * src/lib-mail/istream-attachment-extractor.c: istream-attachment-extractor didn't return hash strings correctly. [ab486673638c] * src/lib-mail/istream-attachment-connector.c: istream-attachment-connector: Avoid seeking in the base stream, it may not be seekable. [9cefc52d688f] * src/lib/istream-limit.c, src/lib/istream.h: Added i_stream_create_range() [34e4c04ae679] 2012-08-21 Timo Sirainen * src/imap/cmd-idle.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-fetch.c, src/imap/imap-sync.c, src/imap/main.c: imap: Fixed command output locking. [eea4d286185a] * src/lib-dict/dict-redis.c: dict redis: Fixed dict_lookup() to skip all previous pending replies. [bf727e0b721a] 2012-08-20 Timo Sirainen * src/lib/istream-seekable.c: i_stream_create_seekable_path() created memory corruption [e3f8be1bd93a] * configure.in, src/doveadm/doveadm-mail-server.c, src/doveadm/dsync /dsync-brain.c, src/imap/cmd-list.c, src/imap/cmd-thread.c, src/lib- imap-client/imapc-connection.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/list/mailbox-list-fs-iter.c, src/lib- storage/mail-namespace.h, src/lib-storage/mail-storage.h, src/lib- storage/mailbox-list.c, src/lib/ioloop.c, src/replication/aggregator /replicator-connection.c: Merged changes from v2.1 tree. [2fc74b72817b] 2012-08-19 Timo Sirainen * src/replication/aggregator/replicator-connection.c: replicator: Crashfix [f68f5aca440e] 2012-08-17 Timo Sirainen * src/doveadm/doveadm-mail-server.c: doveadm: Improved "passdb lookup failed" error message. [fe492bba225a] * src/doveadm/dsync/dsync-brain.c: doveadm backup: Fixed "is source empty" check. In POP3 boxes there is only INBOX, and it's possible that source becomes empty while backup has mails. The check is now "has source always been empty?" [5f280c1ec9fd] 2012-08-15 Timo Sirainen * configure.in, src/imap/cmd-thread.c, src/lib-storage/mail-thread.c: imap: Implemented THREAD=ORDEREDSUBJECT extension. [670f467ff5c5] * src/lib-storage/mail-storage.h: lib-storage: MAX_SORT_PROGRAM_SIZE was too small [501f22bf92c3] 2012-08-14 Timo Sirainen * src/lib-imap-client/imapc-client.h, src/lib-imap-client/imapc- connection.c, src/lib-storage/index/imapc/imapc-settings.c, src/lib- storage/index/imapc/imapc-settings.h, src/lib-storage/index/imapc /imapc-storage.c: imapc: Added imapc_max_idle_time setting to force activity on connection. Reducing this from the default 29 minutes should help when there's a stateful firewall between imapc and the backend server. [f33e3ac28e1d] * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Kludge to show INBOX/INBOX mailbox when necessary. This happens with one prefix="" namespace and another prefix=INBOX/ namespace when the INBOX mailbox itself has children. [7a1f49b588a8] * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_get_storage_name() shouldn't treat INBOX specially in inbox=no namespaces. [b0f744014aca] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h: lib-storage: If alias_for references inbox=yes namespace, copy the inbox=yes to the alias ns. So even though this still doesn't allow giving multiple inbox=yes settings in configuration file, it's now possible for multiple namespaces to have them. They just need to point to the exact same INBOX. [0d3f2902fb68] * src/imap/cmd-list.c: imap LIST: Don't set \haschildren flag for namespace prefix if it has list=no [68a62d79b1b4] 2012-08-13 Timo Sirainen * src/lib/ioloop.c: Memory leak fix [963482677c0b] 2012-08-10 Timo Sirainen * src/lib-mail/quoted-printable.c, src/lib-mail/test-quoted- printable.c: quoted-printable decode didn't ignore whitespace at the end of soft line break. [cc5f888d466a] 2012-08-20 Timo Sirainen * TODO, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync /dsync-mailbox-import.c, src/doveadm/dsync/dsync-transaction-log- scan.c, src/doveadm/dsync/dsync-transaction-log-scan.h, src/lib /hash-decl.h, src/lib/hash.h: Simplified hash table union now that it again works only with pointers. [9c69df65af7b] * src/lib/hash.h: Fixed some aliasing warnings with hash table API. [44013be2e3d8] * src/lib-imap-storage/imap-msgpart.c: imap: Allow fetching [x.MIME] for message/rfc822 again. It's not clear which is the correct behavior. [6c55e57c98a1] * src/anvil/connect-limit.c, src/auth/auth-request-handler.c, src/auth /db-checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/director/director-test.c, src/director/user-directory.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-log.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-stats.c, src/doveadm/doveadm-who.c, src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-transaction-log-scan.c, src/doveadm/dsync/dsync-transaction-log-scan.h, src/imap/imap- client.c, src/lib-auth/auth-server-connection.c, src/lib-auth/auth- server-connection.h, src/lib-dict/dict-file.c, src/lib-index/mail- cache-fields.c, src/lib-index/mail-cache-private.h, src/lib-index /mail-index-private.h, src/lib-index/mail-index.c, src/lib- lda/duplicate.c, src/lib-master/master-auth.c, src/lib-master /master-login-auth.c, src/lib-settings/settings-parser.c, src/lib- storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/index- thread-finish.c, src/lib-storage/index/maildir/maildir-keywords.c, src/lib-storage/list/mailbox-list-index-sync.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h, src/lib/child-wait.c, src/lib/hash.c, src/lib/hash.h, src/log/log- connection.c, src/login-common/ssl-proxy-openssl.c, src/master /service-monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h, src/plugins/acl/acl- cache.c, src/plugins/expire/doveadm-expire.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts/fts-expunge-log.c, src/pop3/pop3-commands.c, src/replication/aggregator/replicator- connection.c: Reverted "support for non-pointers" part of the hash table API changes. Originally I wrote it using clang, which didn't give as many warnings as gcc did. I guess this way is safer anyway.. [96fd2c3bf932] * src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync- mailbox-import.c, src/doveadm/dsync/dsync-transaction-log-scan.c, src/doveadm/dsync/dsync-transaction-log-scan.h: Compiler error fix due to hash table changes. [edb1d5babfcd] 2012-08-19 Timo Sirainen * src/anvil/anvil-connection.c, src/auth/auth-request-handler.h, src/auth/db-dict.c, src/auth/db-ldap.c, src/auth/db-sql.c, src/config/config-connection.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-stats.c, src/doveadm/doveadm.c, src/imap/imap- fetch.h, src/indexer/indexer-client.c, src/lib-dns/dns-lookup.c, src /lib-dns/dns-lookup.h, src/lib-imap-storage/imap-msgpart.c, src/lib- index/mail-index-util.c, src/lib-lda/mail-send.c, src/lib-mail /istream-header-filter.c, src/lib-mail/istream-header-filter.h, src /lib-mail/message-header-parser.h, src/lib-mail/message-parser.h, src/lib-mail/test-istream-header-filter.c, src/lib-master/master- service.c, src/lib-settings/settings.c, src/lib-settings/settings.h, src/lib-sql/sql-api.h, src/lib-storage/index/dbox-multi/mdbox- purge.c, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/index-mail-binary.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index /index-sort-string.c, src/lib-storage/index/index-thread.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-storage.h, src/lib-storage/index/maildir/maildir-sync- index.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/pop3c/pop3c-sync.c, src/lib-storage/mail-search.h, src /lib-storage/mail-storage.h, src/lib-storage/mailbox-header.c, src/lib/array.h, src/lib/bsearch-insert-pos.c, src/lib/bsearch- insert-pos.h, src/lib/child-wait.h, src/lib/connection.c, src/lib/ioloop.h, src/lib/istream.h, src/lib/macros.h, src/lib /module-dir.c, src/lib/ostream.h, src/lib/strfuncs.c, src/lib/strfuncs.h, src/lib/test-bsearch-insert-pos.c, src/plugins/acl/acl-backend.c, src/plugins/fts-squat/squat- uidlist.c, src/plugins/pop3-migration/pop3-migration-plugin.c: Removed CONTEXT_TYPE_SAFETY macro and reimplemented its functionality better. gcc/clang now gives a compiler error in many places if callback isn't exactly what was expected. It's also now much easier to add more of these checks. [d3db2ba15d00] * src/auth/auth-request-handler.c, src/auth/auth-settings.c, src/auth /auth-settings.h, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/db-ldap.h, src/auth/main.c, src/auth/passdb-template.c, src/auth/passdb.c, src/auth/userdb-template.c, src/auth/userdb.c, src/config/config-parser-private.h, src/config/config-parser.c, src/dict/dict-connection.h, src/dict/dict-settings.h, src/director /director-test.c, src/director/director.h, src/director/mail-host.c, src/director/main.c, src/director/user-directory.c, src/doveadm /doveadm-dump.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm- mail-altmove.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm /doveadm-mail.h, src/doveadm/doveadm-print-flow.c, src/doveadm /doveadm-print-pager.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm-server.h, src/doveadm/doveadm-settings.h, src/doveadm/doveadm-stats.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/dsync /dsync-mailbox-export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-tree-private.h, src/doveadm/dsync /dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-slave-pipe.c, src/imap/cmd-list.c, src/imap/imap-client.h, src/imap/imap-commands- util.c, src/imap/imap-commands.c, src/imap/imap-fetch.c, src/imap /imap-fetch.h, src/imap/imap-notify.h, src/imap/imap-search.h, src/indexer/worker-connection.c, src/ipc/ipc-connection.h, src/ipc /ipc-group.c, src/lib-auth/auth-server-connection.h, src/lib-dict /dict-memcached-ascii.c, src/lib-dict/dict-redis.c, src/lib-dict /dict-sql-settings.c, src/lib-dict/dict-sql-settings.h, src/lib-dict /dict-sql.c, src/lib-dict/dict-transaction-memory.h, src/lib- dict/dict.c, src/lib-imap-client/imapc-client-private.h, src/lib- imap-client/imapc-connection.c, src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache- transaction.c, src/lib-index/mail-index-modseq.c, src/lib-index /mail-index-private.h, src/lib-index/mail-index-strmap.c, src/lib- index/mail-index-sync-private.h, src/lib-index/mail-index-sync.c, src/lib-index/mail-index-transaction-export.c, src/lib-index/mail- index-transaction-private.h, src/lib-index/mail-index-transaction- view.c, src/lib-index/mail-index-view-private.h, src/lib-index/mail- transaction-log-view-private.h, src/lib-lda/lmtp-client.c, src/lib- lda/mail-deliver.h, src/lib-mail/istream-attachment-connector.c, src /lib-mail/istream-header-filter.c, src/lib-mail/rfc2231-parser.c, src/lib-mail/test-istream-attachment.c, src/lib-master/anvil- client.c, src/lib-master/ipc-client.c, src/lib-master/master- instance.c, src/lib-master/master-service-settings.c, src/lib-master /mountpoint-list.c, src/lib-settings/settings-parser.c, src/lib-sql /driver-pgsql.c, src/lib-sql/driver-sqlpool.c, src/lib-sql/sql-api- private.h, src/lib-storage/index/dbox-common/dbox-file.h, src/lib- storage/index/dbox-multi/mdbox-map-private.h, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-storage/index/index- mail-binary.c, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/index-search- private.h, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-changes.c, src/lib-storage/index/index- thread-finish.c, src/lib-storage/index/maildir/maildir-keywords.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/mbox/mbox-sync-private.h, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-index- notify.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/mail-search-register-human.c, src/lib-storage/mail-search- register.c, src/lib-storage/mail-storage-hooks.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage-settings.h, src/lib-storage/mail-user.h, src/lib-storage/mailbox-keywords.c, src /lib-storage/mailbox-list-iter.c, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- tree.c, src/lib/array-decl.h, src/lib/array.h, src/lib/ioloop- epoll.c, src/lib/ioloop-kqueue.c, src/lib/ioloop-private.h, src/lib/lib.h, src/lib/module-context.h, src/lib/priorityq.c, src/lib/test-aqueue.c, src/lib/test-array.c, src/lib/var-expand.c, src/lmtp/client.h, src/lmtp/lmtp-proxy.c, src/log/log-connection.c, src/master/service-listen.c, src/master/service-process-notify.c, src/master/service.h, src/plugins/acl/acl-backend-vfile.h, src/plugins/acl/acl-cache.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire/expire-set.c, src/plugins/fts-lucene/fts-backend- lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts- solr/fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend- solr.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts- squat/squat-trie.c, src/plugins/fts-squat/squat-uidlist.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts-parser-script.c, src/plugins/fts/fts-storage.h, src/plugins/pop3-migration/pop3 -migration-plugin.c, src/plugins/quota/quota-private.h, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- mail.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual /virtual-storage.h, src/plugins/virtual/virtual-sync.c, src/plugins/virtual/virtual-transaction.h, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/replication/replicator/replicator- brain.c, src/replication/replicator/replicator-queue.c, src/ssl- params/main.c: Array API changed: ARRAY_DEFINE(name, type) -> ARRAY(type) name Easy way to update your existing code: perl -i -pe 's:ARRAY_DEFINE\(([^,]+), *([^)]+)\);:ARRAY($2) $1;:' **/*.[ch] [a097ef0a9d6d] * src/lib/Makefile.am, src/lib/hash-decl.h: Added missing hash-decl.h [ed0fd7c1e8ff] * src/anvil/connect-limit.c, src/anvil/penalty.c, src/auth/auth- cache.c, src/auth/auth-request-handler.c, src/auth/db- checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/auth/db-passwd-file.h, src/auth/mech-otp-skey-common.c, src/config/config-request.c, src/director/director-test.c, src/director/user-directory.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-log.c, src/doveadm /doveadm-mail-server.c, src/doveadm/doveadm-stats.c, src/doveadm /doveadm-who.c, src/doveadm/doveadm-who.h, src/doveadm/dsync/dsync- brain-mailbox.c, src/doveadm/dsync/dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-tree-fill.c, src/doveadm/dsync /dsync-mailbox-tree-private.h, src/doveadm/dsync/dsync-mailbox-tree- sync.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync /dsync-transaction-log-scan.c, src/doveadm/dsync/dsync-transaction- log-scan.h, src/indexer/indexer-queue.c, src/lib-auth/auth-server- connection.c, src/lib-auth/auth-server-connection.h, src/lib-dict /dict-file.c, src/lib-index/mail-cache-fields.c, src/lib-index/mail- cache-private.h, src/lib-index/mail-cache.c, src/lib-index/mail- index-private.h, src/lib-index/mail-index.c, src/lib- lda/duplicate.c, src/lib-master/master-auth.c, src/lib-master /master-login-auth.c, src/lib-master/master-service-settings- cache.c, src/lib-settings/settings-parser.c, src/lib-sql/sql-db- cache.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/index-thread-finish.c, src/lib-storage/index/maildir /maildir-filename.c, src/lib-storage/index/maildir/maildir- filename.h, src/lib-storage/index/maildir/maildir-keywords.c, src /lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/list /mailbox-list-index-sync.c, src/lib-storage/list/mailbox-list- index.c, src/lib-storage/list/mailbox-list-index.h, src/lib-storage /mailbox-guid-cache.c, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c, src/lib/child-wait.c, src/lib/guid.c, src/lib/guid.h, src/lib/hash.c, src/lib/hash.h, src/lib/lib.h, src/lib/macros.h, src/log/log-connection.c, src/login-common/login- proxy-state.c, src/login-common/ssl-proxy-openssl.c, src/master /service-monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h, src/plugins/acl/acl- cache.c, src/plugins/expire/doveadm-expire.c, src/plugins/fts-lucene /fts-backend-lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h, src/plugins/fts-solr/fts- backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts/fts-expunge- log.c, src/pop3/pop3-commands.c, src/replication/aggregator /replicator-connection.c, src/replication/replicator/replicator- queue.c, src/stats/mail-domain.c, src/stats/mail-ip.c, src/stats /mail-session.c, src/stats/mail-user.c: Hash table API is now (mostly) type safe. [8eae4e205c82] * src/anvil/connect-limit.c, src/anvil/penalty.c, src/auth/auth- cache.c, src/auth/auth-request-handler.c, src/auth/db- checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/auth/mech-otp-skey-common.c, src/config/config-request.c, src/director/director-test.c, src/director/user-directory.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-log.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-stats.c, src/doveadm/doveadm-who.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync- transaction-log-scan.c, src/indexer/indexer-queue.c, src/lib-auth /auth-server-connection.c, src/lib-dict/dict-file.c, src/lib-index /mail-cache.c, src/lib-index/mail-index.c, src/lib-lda/duplicate.c, src/lib-master/master-auth.c, src/lib-master/master-login-auth.c, src/lib-master/master-service-settings-cache.c, src/lib-settings /settings-parser.c, src/lib-sql/sql-db-cache.c, src/lib- storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox- multi/mdbox-storage-rebuild.c, src/lib-storage/index/index-thread- finish.c, src/lib-storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/mailbox-guid-cache.c, src/lib /child-wait.c, src/lib/hash.c, src/lib/hash.h, src/log/log- connection.c, src/login-common/login-proxy-state.c, src/login-common /ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src/master/service.c, src/plugins/acl/acl-cache.c, src/plugins/expire/doveadm-expire.c, src/plugins/fts-lucene/fts- backend-lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts/fts-expunge-log.c, src/pop3/pop3-commands.c, src/replication/aggregator/replicator-connection.c, src/replication/replicator/replicator-queue.c, src/stats/mail- domain.c, src/stats/mail-ip.c, src/stats/mail-session.c, src/stats /mail-user.c: hash_table_create(): Removed table_pool parameter. Every single caller was using default_pool there, so there's no point in having it. [1ce71b5bc94a] 2012-08-18 Timo Sirainen * src/lib/istream-seekable.c, src/lib/istream-seekable.h: Added i_stream_create_seekable_path() [ecb92e343152] * src/lib/ostream-file.c: ostream-file: Fixed writing with zero buffer size. [23e9660f0473] * src/lib/connection.c: connection API: Allow calling connection_input_default() for buffered input. [373879abd7f4] 2012-08-17 Timo Sirainen * src/doveadm/Makefile.am: Makefile: Install the useful doveadm*.h headers. [f3dbc8bd625b] * src/lib-imap-storage/imap-msgpart.c: imap: FETCH[x.MIME] for message/rfc822 should produce empty result [0c25f3ce29ef] * src/lib-imap-storage/imap-msgpart.c: imap: Added more tests to return empty data when FETCHing invalid MIME parts. [2535dbe7c503] 2012-08-16 Timo Sirainen * dovecot-config.in.in, dovecot.m4: dovecot-config: Added LIBDOVECOT_DOVEADM_INCLUDE [85b22a4af8d4] * src/lib-ssl-iostream/Makefile.am: Makefile: iostream-*ssl.h wasn't being installed. [7436df9a9922] * src/lib-dict/dict-memcached-ascii.c, src/lib-dict/dict-memcached.c, src/lib-dict/dict-redis.c, src/lib/connection.c, src/lib/connection.h: connection API: Fixed connected() callback to actually allow detecting failed connects. [deb47efdc006] * src/lib-dict/dict-memcached-ascii.c: dict memcached-ascii bugfixes [f5dc8abad16b] 2012-08-15 Timo Sirainen * src/lib-dict/Makefile.am, src/lib-dict/dict-memcached-ascii.c, src /lib-dict/dict-private.h, src/lib-dict/dict.c, src/lib-dict/test- dict.c: lib-dict: Added memcached_ascii backend. [96a9a086c052] * src/lib-dict/Makefile.am, src/lib-dict/dict-file.c, src/lib-dict /dict-transaction-memory.c, src/lib-dict/dict-transaction-memory.h: lib-dict: Moved "in-memory transaction" code from dict-file to more generic API. [e266c31ebd02] * src/lib/istream-limit.c: istream-limit: Move parent stream to expected offset also at EOF. [aba24a5cc9ff] * src/dict/dict-commands.c: dict server: Implemented APPEND command. [51043aa5fe98] * src/imap/imap-client.c: imap: Fixed assert-crash on FETCH error disconnections. [3ff9acd8080e] 2012-08-14 Timo Sirainen * src/lib/connection.c: connection: connection_disconnect_reason() didn't handle non-errors correctly. [3d53028cbe9c] * src/lib-dict/dict-client.c, src/lib-dict/dict-client.h, src/lib-dict /dict-file.c, src/lib-dict/dict-memcached.c, src/lib-dict/dict- private.h, src/lib-dict/dict-redis.c, src/lib-dict/dict-sql.c, src /lib-dict/dict.c, src/lib-dict/dict.h: dict: Implemented dict_append() [87e14707d210] 2012-08-13 Timo Sirainen * src/imap/Makefile.am, src/imap/cmd-cancelupdate.c, src/imap/cmd- fetch.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/cmd- notify.c, src/imap/cmd-search.c, src/imap/cmd-select.c, src/imap /cmd-sort.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-commands.c, src/imap/imap-commands.h, src/imap/imap- fetch.c, src/imap/imap-fetch.h, src/imap/imap-list.c, src/imap/imap- list.h, src/imap/imap-notify.c, src/imap/imap-notify.h, src/imap /imap-search.c, src/imap/imap-search.h, src/imap/imap-sync.c, src/imap/main.c: imap: Implemented NOTIFY extension. Requires mailbox_list_index=yes to work (and to show up in capabilities). SubscriptionChange event is still unimplemented. [f9d0ea98157f] * src/lib-storage/Makefile.am, src/lib-storage/index/imapc/imapc- list.c, src/lib-storage/index/shared/shared-list.c, src/lib- storage/list/Makefile.am, src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox-list-index-notify.c, src/lib- storage/list/mailbox-list-index-status.c, src/lib-storage/list /mailbox-list-index-sync.c, src/lib-storage/list/mailbox-list- index.c, src/lib-storage/list/mailbox-list-index.h, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/list/mailbox- list-none.c, src/lib-storage/list/mailbox-list-notify-tree.c, src /lib-storage/list/mailbox-list-notify-tree.h, src/lib-storage /mailbox-list-notify.c, src/lib-storage/mailbox-list-notify.h, src /lib-storage/mailbox-list-private.h: lib-storage: Added mailbox-list-notify API for tracking changes in all mailboxes. Requires mailbox_list_index=yes to work. [a16d77a075bb] * src/lib-storage/index/index-sync.c: mailbox_list_index=yes: Don't log an error when verifying existence of already deleted mailbox. [026b688b379f] * src/lib-index/mail-index-view-private.h, src/lib-index/mail-index- view.c: lib-index: Added mail_index_view_dup_private() [d76732546de3] * src/imap/imap-client.c: imap: If imap_capability setting is set explicitly, don't automatically add SEARCH=FUZZY. [722dba791812] * configure.in: Added MOVE extension to capabilities. I guess the draft is close enough to being ready now. [4d6ea3b30235] * src/lib-storage/list/mailbox-list-index-iter.c: mailbox_list_index=yes: Don't use indexes when iterating with MAILBOX_LIST_ITER_RAW_LIST. [5d058be4aefc] * src/imap/imap-fetch-body.c, src/imap/imap-fetch.c: Memory leak fixes [0e4be366edb4] * src/config/config-parser.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/master/main.c: Compiler warning fixes [7bda77ccd1fc] * src/imap/imap-sync.c: imap: Code cleanup [cf4f7871cd5d] * src/imap/cmd-fetch.c, src/imap/cmd-select.c, src/imap/imap-fetch- body.c, src/imap/imap-fetch.c, src/imap/imap-fetch.h: imap: FETCH API updated to allow using the same parsed FETCH in multiple mailboxes. This is in preparation for NOTIFY extension. [00be97a2139a] * src/imap/imap-fetch-body.c, src/lib-imap-storage/imap-msgpart-url.c, src/lib-imap-storage/imap-msgpart.c, src/lib-imap-storage/imap- msgpart.h: imap_msgpart_parse() doesn't really need a mailbox parameter. [cf79ab812651] * src/imap/cmd-fetch.c, src/imap/imap-fetch-body.c, src/imap/imap- fetch.c, src/imap/imap-fetch.h: imap: FETCH API cleanup: keep fetch state in a separate struct. [0c73a42c194e] * src/imap/cmd-list.c, src/imap/cmd-status.c, src/imap/imap-status.c, src/imap/imap-status.h: imap: Made STATUS handling API more flexible. [42cc4c4c4891] * src/lib-storage/mailbox-tree.c, src/lib-storage/mailbox-tree.h: lib-storage: Mailbox tree API supports now including extra data in the nodes. [acc60089da4f] * src/lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.h: lib-index: Support clearing the whole log view with mail_transaction_log_view_clear(0) [7aece00b8538] * src/lib-index/mail-index-sync-update.c: lib-index: Removed duplicate ext-intro checking code. [222c7d752519] * src/lib-index/mail-transaction-log-view.c: lib-index: Verify validity of ext-intro records in transaction log. [ba6b92cf7d49] * src/lib-storage/mail-storage-settings.c: Verify that mailbox_idle_check_interval setting isn't 0. [51f9a87170f2] 2012-08-12 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Avoid assert-crash when reading a closed stream. [d7df4855dc94] * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Don't crash if protocols setting is NULL. [ed07971b21ea] * src/ssl-params/ssl-params-settings.c: ssl-params socket was missing from login/ directory [c6fa56ce8860] * src/lib-index/mail-index-sync.c: lib-index: Message flag syncing was broken due to wrong struct cast. [ad22bdfe7bdc] * src/lib-storage/index/index-sync.c: lib-storage: Update private index before updating saved search results. [ab27926cb173] * src/lib/istream-private.h, src/lib/istream.c, src/lib/istream.h: Added i_stream_last_line_crlf() [2e88cfd8b595] * src/lib-imap/imap-quote.c: lib-imap: imap_quote() was broken when called with a datastack pool. [28283c7dc1e9] * src/lib-storage/index/index-mail-binary.c: FETCH BINARY fix. [baa8fb155ddc] * src/lib-imap-storage/imap-msgpart.c: imap: More fixes to fetching messages. [9f20f7bd992d] * src/lib-storage/list/subscription-file.c: lib-storage: Fixed assert-crash on subscribtion change that didn't change anything. [f66e1508dc19] * src/lib-storage/index/index-mail-headers.c: lib-storage: mail_get_header_stream() now always returns end-of- headers LF. [2ec8bb1396d1] * src/lib-mail/istream-header-filter.c: istream-header-filter: Allow adding more headers at the end of headers callback. [f329d7e1dad7] * src/lib-imap-storage/imap-msgpart.c: imap: Fixed fetching partial ranges from non-BODY[] [f4de7ed984b3] * src/imap/cmd-copy.c: imap: (non-UID) MOVE command didn't always send EXPUNGE for the moved message. [a69d858948ca] * src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib- storage/index/dbox-common/dbox-save.c: dbox: Crashfixes [5fc4fab20fd0] 2012-08-11 Timo Sirainen * TODO, src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm- mail-index.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm- mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mailbox-list-iter.c, src/doveadm/dsync/dsync- mailbox-tree-fill.c, src/imap/cmd-list.c, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/imapc /imapc-list.c, src/lib-storage/list/mailbox-list-fs-iter.c, src/lib- storage/list/mailbox-list-index-iter.c, src/lib-storage/list /mailbox-list-index-sync.c, src/lib-storage/list/mailbox-list- maildir-iter.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/list/mailbox-list-none.c, src/lib-storage/list/mailbox- list-subscriptions.c, src/lib-storage/mailbox-guid-cache.c, src/lib- storage/mailbox-list-iter.c, src/lib-storage/mailbox-list.h, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl- mailbox-list.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/quota/quota- count.c, src/plugins/quota/quota-maildir.c, src/plugins/virtual /virtual-config.c: Renamed struct mailbox_info.name to vname. [e852d1fbf40a] * src/lib-imap-storage/imap-msgpart.c: imap: Fixed FETCHing nonexistent parts. [ec5346eb7d60] * configure.in: Added BINARY to IMAP capabilities. [621c0e2d7efc] * src/lib-mail/Makefile.am, src/lib-mail/message-binary-part.c, src /lib-mail/message-binary-part.h, src/lib-storage/index/index-mail- binary.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/mail.c: lib-storage: Added caching for mail_get_binary_size() [f75d5a2eddcb] * src/lib/Makefile.am, src/lib/numpack.c, src/lib/numpack.h, src/lib /test-lib.c, src/lib/test-lib.h, src/lib/test-numpack.c: liblib: Added "number packing" API. [b45d968adff8] * src/imap/imap-fetch-body.c, src/lib-imap-storage/imap-msgpart.c: imap: Send FETCH BINARY output using literal8. [f0feae227c60] * src/doveadm/doveadm-mail.c, src/imap/cmd-fetch.c, src/imap/imap- commands-util.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap-fetch.h, src/lib-imap-storage/imap-msgpart.c, src/lib- imap-storage/imap-msgpart.h, src/lib-storage/fail-mail.c, src/lib- storage/index/Makefile.am, src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-single/sdbox-mail.c, src/lib-storage/index/imapc/imapc-mail.c, src/lib-storage/index/index-mail-binary.c, src/lib-storage/index /index-mail.h, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/pop3c /pop3c-mail.c, src/lib-storage/index/raw/raw-mail.c, src/lib-storage /mail-error.h, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib- storage/mail-user.c, src/lib-storage/mail.c, src/plugins/virtual /virtual-mail.c: IMAP BINARY extension supports now FETCH BINARY command. [f3ef88e19cd5] * src/lib/istream-seekable.c: istream-seekable: Reverted unnecessary/broken changes from the previous patch. [ae5ad2935674] * src/lib-mail/message-decoder.c, src/lib-mail/message-decoder.h: lib-mail: Added message_decoder_parse_cte() [624107158354] * src/lib/istream-seekable.c, src/lib/istream-seekable.h: Added istreams_merge(), which forces istream-seekable to be created. [39f23dcb9e18] * src/lib/istream-seekable.c: istream-seekable: When we reach EOF, unreference all the input streams. [2a973e6c25f8] * src/lib/istream-seekable.c: istream-seekable: Minor code cleanup. stream->buffer and sstream->buffer being two different things was a bit confusing. [928b099a63cb] * src/lib-imap-storage/imap-msgpart.c: imap: FETCH BODY[n] shouldn't include MIME headers [5ceeb25ed337] * src/lib-mail/istream-header-filter.c, src/lib-mail/istream-header- filter.h, src/lib-mail/test-istream-header-filter.c, src/lib- storage/index/index-mail-headers.c, src/lib-storage/index/mbox/mbox- save.c: istream-header-filter: Added i_stream_header_filter_add() to add extra headers. [04abd58abf7a] * src/lib-compression/ostream-bzlib.c, src/lib-compression/ostream- zlib.c, src/lib-fs/ostream-cmp.c, src/lib-ssl-iostream/ostream- openssl.c, src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib /ostream-private.h, src/lib/ostream-rawlog.c, src/lib/ostream.c, src/lib/ostream.h: Added o_stream_get_fd(). [4bcd507e8907] * src/doveadm/Makefile.am, src/imap/Makefile.am, src/indexer/Makefile.am, src/lda/Makefile.am, src/lmtp/Makefile.am, src/pop3/Makefile.am: Makefile: Removed mountpoint.o from unused_objects, since it's now included via lib-master. [6008a36cb36c] 2012-08-10 Timo Sirainen * src/lib-mail/Makefile.am, src/lib-mail/istream-qp-decoder.c, src /lib-mail/istream-qp.h, src/lib-mail/test-istream-qp-decoder.c: Added istream-qp-decoder [b26aa0641080] * src/lib-mail/quoted-printable.c, src/lib-mail/test-quoted- printable.c: quoted-printable decode didn't ignore whitespace at the end of soft line break. [9195486cb5c2] * src/lib-mail/istream-attachment-connector.c: Previous istream-base64 changes broke compilation [b3567ec85f9e] * src/lib/istream-base64-decoder.c, src/lib/istream-base64-encoder.c, src/lib/test-istream-base64-encoder.c: Various fixes to istream-base64-encoder/decoder [4d13da5c571b] * src/lib/Makefile.am, src/lib/istream-base64-decoder.c, src/lib /istream-base64-encoder.c, src/lib/istream-base64-encoder.h, src/lib /istream-base64.h, src/lib/test-istream-base64-decoder.c, src/lib /test-istream-base64-encoder.c, src/lib/test-lib.c, src/lib/test- lib.h: Added istream-base64-decoder. [39b1b519c033] * src/lib-mail/istream-attachment-extractor.c, src/lib-storage/index /istream-mail.c, src/lib/istream-sized.c, src/lib/istream-sized.h: istreams: When reading invalid data, fail with EINVAL instead of EIO. EINVAL was already used more. [51a9846bb2bd] * src/lib/istream-base64-encoder.c: istream-base64-encoder: Minor fix to require only 3 bytes instead of 4 per input block. Base64 encoder reads 3 bytes and outputs 4 bytes, so it's ok to read only 3 bytes. [f31916c173d1] * src/lib/ioloop-epoll.c: ioloop-epoll: Fix for running with zero I/Os. [17fb07dea309] * src/doveadm/doveadm-auth.c: doveadm: Renamed "auth" command to "auth test". [19b6a8c025e4] * configure.in, src/auth/auth-cache.h, src/auth/auth-master- connection.c, src/auth/auth-request.h, src/auth/auth.c, src/auth/db- ldap.c, src/auth/db-passwd-file.c, src/auth/main.c, src/auth/mech- gssapi.c, src/auth/mech-winbind.c, src/config/config-connection.c, src/config/doveconf.c, src/config/old-set-parser.c, src/doveadm /client-connection.c, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/main.c, src/imap-login/client.c, src/imap/cmd-list.c, src/lib-auth/auth-master.c, src/lib-auth/auth-master.h, src/lib-dict /dict-memcached.c, src/lib-dict/dict-redis.c, src/lib-imap-client /imapc-client.c, src/lib-imap-client/imapc-connection.c, src/lib- imap-client/imapc-connection.h, src/lib-master/mountpoint-list.c, src/lib-settings/settings-parser.c, src/lib-ssl-iostream/iostream- openssl.c, src/lib-storage/index/dbox-common/dbox-attachment.c, src /lib-storage/index/imapc/imapc-save.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/pop3c/pop3c- client.c, src/lib-storage/index/shared/shared-list.c, src/lib- storage/list/mailbox-list-delete.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/mail-storage.c, src/lib/Makefile.am, src/lib/connection.c, src/lib/connection.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h, src/login-common/client-common.c, src/login-common /client-common.h, src/login-common/ssl-proxy-openssl.c, src/master/main.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-solr/solr- connection.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts- search.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap- quota/imap-quota-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/pop3-login/client-authenticate.c, src/pop3/pop3-commands.c, src/util/script.c: Merged changes from v2.1 tree. [6a0954d0ce09] * src/lib-master/master-service-settings-cache.c: Removed accidentally committed debug code [9d0873cefa08] * src/lib-master/master-service-settings-cache.c: lib-master: Another settings parser cache fix [b082b8260782] 2012-08-08 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Optimized expunging messages: delete more than one ID per request. [82f59d2139a9] 2012-08-07 Timo Sirainen * src/lib-master/master-service-settings-cache.c: lib-master: Settings cache crashed after config_cache_size was reached. This affected login processes when local {} and/or remote {} blocks were specified. Also fixed the cache behavior to be MRU. [2815175a0ffc] 2012-08-03 Timo Sirainen * src/plugins/pop3-migration/pop3-migration-plugin.c: pop3-migration: Avoid disconnection from POP3 server due to idling. [ab6a4455b27d] 2012-08-01 Timo Sirainen * src/doveadm/client-connection.c: doveadm-server: Make sure another command isn't started before previous one is finished. [476381017ec7] * src/plugins/fts/fts-api.c: fts: Fixed a crash if virtual mailbox search couldn't be optimized by backend. [323d6ce62567] * src/plugins/fts/fts-search.c: fts: Fixed crash on error handling [d499f6d0ca68] * src/auth/auth-cache.c: auth: Minor code cleanup [47ebcf37af3d] * .hgsigs: Added signature for changeset bc86680293d2 [8518f8b5a28b] * .hgtags: Added tag 2.1.9 for changeset bc86680293d2 [687906b93914] * NEWS, configure.in: Released v2.1.9. [bc86680293d2] [2.1.9] * src/auth/db-ldap.c: auth: Support empty ldap base (for ldap servers that support it). [fd1cdeef4e2d] * src/auth/mech-winbind.c: auth: winbind mechanism supports now spaces in filenames. [ae4bbcc9612b] * src/plugins/fts/fts-api.c: fts: Fixed crash in fts_lookup_multi() for backends that can't handle it (fts-squat) [8d59874e02ad] * src/lib-storage/list/mailbox-list-delete.c: lib-storage: Fixed attempting to delete a non-symlink with Solaris Also fixed error message to say it's about unlink(), not stat(). [8029f1b4afd0] 2012-07-31 Timo Sirainen * src/plugins/fts-solr/solr-connection.c: fts-solr: Compiler warning fix [a606e9ff1476] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- connection.c, src/lib-imap-client/imapc-connection.h: imapc: Fixed crashes during mailbox close. [afa918d1c1eb] * src/lib-storage/mail-namespace.c: lib-storage: Improved missing namespace error messages. [0abb9b0a54db] * src/util/script.c: script: Don't add an empty parameter to executed command line Also fixed an error check [1d9d799a2efc] * src/plugins/fts-solr/solr-connection.c: fts-solr: Log a better error if Solr sends invalid XML input. [817b69b2b21f] * src/auth/db-passwd-file.c, src/auth/db-passwd-file.h: auth: if passwd-file isn't the only userdb, don't complain about missing userdb fields [f74557336910] * src/imap/cmd-list.c: imap: Fixed LIST handling with reference parameter. For example "LIST shared/ %" failed to list shared/user namespace prefix. [fac6b994e869] * src/lib-storage/index/shared/shared-list.c: lib-storage: Avoid creating shared user for an empty username. [ec5c630012cd] 2012-07-28 Timo Sirainen * src/lib-storage/index/index-mail.c: lib-storage: When saving a mail, set date.save to cache immediately. [c598f76eeeed] * src/lib-storage/index/index-storage.c: lib-storage: When copying a mail, use a new timestamp for date.save instead of preserving it. [b13b8267999d] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Fixed handling non-lowercase SEARCH HEADER FROM/TO/SUBJECT/CC/BCC Based on patch by Matthew Powell. [77f2510bb009] * src/login-common/ssl-proxy-openssl.c: verbose_ssl=yes: Log debug messages with debug level instead of as info... [4ddb9117a178] * src/lib-ssl-iostream/iostream-openssl.c, src/login-common/ssl-proxy- openssl.c: verbose_ssl=yes: Log debug messages with debug level instead of as warnings. [eec5e1f03fff] * src/lib-charset/charset-iconv.c: lib-charset: Removed unnecessary buffer size increases, which only caused out-of-memory errors. [cbd2b321a68f] 2012-07-25 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-client.c: pop3c: If POP3 server doesn't support CAPA command, try to use UIDL anyway. [4b505b1c4c5b] 2012-07-23 Timo Sirainen * src/lib-dict/Makefile.am, src/lib-dict/dict-memcached.c, src/lib- dict/dict-private.h, src/lib-dict/dict.c, src/lib-dict/test-dict.c: lib-dict: Added memcached backend using its binary protocol. [b6df5871632a] * src/lib-dict/dict-redis.c: redis dict: Added support for set/unset/atomic_inc. This allows using Redis as dict quota backend. [54e2556f87ea] * src/lib-dict/dict.c: lib-dict: Allow backends to have iteration methods as NULL if they don't support it. [522e03dd4268] * src/plugins/quota/quota-private.h, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c: quota: Added quota_ignore_save_errors plugin setting. If mail is being saved but current quota usage lookup fails with internal error, save the mail anyway instead of failing. [a946a37af082] 2012-07-17 Timo Sirainen * src/auth/mech-gssapi.c: auth: Fixed error handling in GSSAPI when __gss_userok() was used. An invalid username would have been treated as successful and auth process probably would have crashed. [35ae9569de5a] * src/auth/mech-gssapi.c: auth: GSSAPI RFC compliancy fixes. Patch by Ben Morrow: The first problem is that, because of the way the client invokes libsasl, it sends a GSSAPI request which does not ask for mutual authentication. This means that on the server gss_accept_sec_context returns GSS_S_COMPLETE with a zero-length output token. Dovecot currently sends this to the client as a zero-length continuation response, but this is incorrect according to RFC 4752: what it ought to do instead is proceed straight to the security layer negotiations, and send a gss_wrap packet. The second is that Cyrus sends an empty authz identity; that is, the security layer negotiation packet, when gss_unwrapped, is exactly 4 bytes long. Dovecot objects to this, but in RFC 4422 this is explicitly allowed, and means the authz identity is identical to the authn identity. [ced6a796f56d] * src/config/config-connection.c, src/lib-settings/settings-parser.c: config: Fixed error reporting when reloading settings for master process fails. [56ef4e70b1a9] * doc/Makefile.am: doc: Install mkcert.sh, dovecot-openssl.cnf and solr-schema.xml files. [d01a06d821cf] * src/imap-login/client.c, src/login-common/client-common.c, src /login-common/client-common.h, src/pop3-login/client-authenticate.c: login: Don't allow STARTTLS if ssl=no in client's settings, even if ssl=yes globally. [258c2e231357] * src/lib-master/mountpoint-list.c: lib-master: Updated default mountpoint ignore prefix list. [77b52599e883] * src/director/director-settings.c: director: Changed director_username_hash setting's default from %u to %Lu This allows potential trouble when username isn't always lowercased. [36c3d44a5ba3] * doc/example-config/conf.d/10-director.conf: example-config: Added director_username_hash setting. [0722a06a0d9f] * src/lib-mail/mail-user-hash.c: lib-mail: mail_user_hash() has now a faster code path for format=%Lu [5ad46e104c07] * src/master/main.c: master: "/X is no longer mounted" warning now points to wiki page. [9366cfaefdaa] 2012-07-16 Timo Sirainen * src/config/doveconf.c: doveconf: When looking up specific settings, ignore errors found by check functions. [892ab0a8ab9c] * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: ns=PREFIX setting was ignored when accessing other users' shared mailboxes. [30b0d6b1c581] * src/lib-storage/mail-user.c: lib-storage: %h variable didn't necessarily expand correctly for shared users' settings. [abaafe4cc439] * src/login-common/ssl-proxy-openssl.c: login: If ssl_key parsing fails, log the reason. [5bbdfee113a5] 2012-07-11 Timo Sirainen * src/plugins/mail-log/mail-log-plugin.c: mail-log: Log mailbox names with UTF-8 everywhere (instead of mUTF-7) [b4cd382b6606] * configure.in, src/plugins/fts-lucene/Makefile.am, src/plugins/fts- lucene/lucene-wrapper.cc: Debian names libtextcat as libexttextcat. Patch by Stephan Bosch. [558e4205c429] 2012-07-08 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-client.c: pop3c: pop3c_master_user setting broke down non-master logins. [5b0c88c43929] * src/lib-dict/dict-redis.c, src/lib/connection.c, src/lib/connection.h: redis: Fixed connection handling. [64725ff9c297] * src/lib-dict/Makefile.am, src/lib-dict/dict-private.h, src/lib-dict /dict-redis.c, src/lib-dict/dict.c, src/lib-dict/test-dict.c: lib-dict: Added initial version of Redis support. The code is a bit ugly and doesn't handle anything except key lookups. [211fbc872ed4] * src/lib/Makefile.am, src/lib/connection.c, src/lib/connection.h: Added "connection" API for handling client/server connections more easily. [43b841891c77] * doc/example-config/conf.d/auth-dict.conf.ext, doc/example-config /dovecot-dict-auth.conf.ext, src/auth/Makefile.am, src/auth/db- dict.c, src/auth/db-dict.h, src/auth/main.c, src/auth/passdb-dict.c, src/auth/passdb.c, src/auth/userdb-dict.c, src/auth/userdb.c: auth: Added "dict" passdb/userdb. [523c19238a8b] * src/lib/Makefile.am, src/lib/json-parser.c, src/lib/json-parser.h: Added a simple JSON parser for parsing an object. [01cdca5817f2] 2012-07-07 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-mail.c: pop3c: Don't get size of TOP output and cache it as message's virtual size. [8ef2b31b125f] 2012-07-04 Timo Sirainen * src/doveadm/doveadm-auth.c: doveadm auth cache flush usage string updated [b3e1111e7f49] 2012-07-07 Timo Sirainen * src/lib/file-set-size.c: file_preallocate() returned wrong value on success with OSX. [4b0095f19181] * src/pop3/pop3-commands.c: pop3: Fixed assert crash when doing UIDL on empty mailbox on some setups. [ea18b2ddb67b] 2012-07-04 Timo Sirainen * src/doveadm/doveadm-auth.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/lib-auth/auth-master.c, src/lib-auth /auth-master.h: doveadm: Added "auth cache flush" command. [1093c74f54af] * src/auth/auth-cache.c, src/auth/auth-cache.h, src/auth/auth-master- connection.c, src/auth/auth-request.h, src/auth/auth.c, src/auth /test-auth-cache.c: auth: Added CACHE-FLUSH command to flush some/all users from auth cache. [007bf0047ab0] 2012-07-03 Timo Sirainen * .hgsigs: Added signature for changeset 7e5f36fd989d [c1a97e799b43] * .hgtags: Added tag 2.1.8 for changeset 7e5f36fd989d [7e0c247ef1e4] * NEWS, configure.in: Released v2.1.8. [7e5f36fd989d] [2.1.8] * src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h: lmtp: Added lmtp_address_translate setting. The idea is that if you need userdb lookup to be done with a special kind of a username like user:domain@extrainfo, you can set lmtp_address_translate=%n:%d@ which translates the address to user@domain after the userdb lookup is done. [f1509d8eb2c1] * src/lib-sql/sql-db-cache.c: lib-sql db cache: Reaching max_unused_connections caused a crash later. [955e741ef46a] * src/doveadm/main.c: doveadm server: Keep config socket open while running. [668173038ada] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs, mail_shared_explicit_inbox=no: Fixed listing nonexistent mailboxes in root. [a6d59207d9d6] * src/plugins/imap-quota/imap-quota-plugin.c: imap-quota: GETQUOTAROOT command used UTF-8 instead of mUTF-7 encoding for mailbox name. [90270c054e1f] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: MYRIGHTS command used UTF-8 instead of mUTF-7 encoding for mailbox name. [880af3c78df9] 2012-07-02 Timo Sirainen * src/imap/cmd-list.c, src/imap/cmd-status.c, src/imap/imap-status.c, src/imap/imap-status.h: imap: Mailbox names in STATUS replies were sent as UTF-8 instead of mUTF-7. [a698fccd37c3] * src/lmtp/lmtp-proxy.c: lmtp: Fixed previous change to make sure it doesn't crash on error handling. [569588ff7ef0] * src/lmtp/commands.c: lmtp: Don't idle-timeout LMTP client while proxying waits for DATA replies. [8a97daa8aff6] * src/lmtp/lmtp-proxy.c: lmtp proxy: Reset timeout each time receiving a reply lin for DATA. This avoids timing out when there are a lot of RCPT TOs. [27dccff46fe9] * src/config/old-set-parser.c: config: Fixed IPv6 address handling for parsing v1.x style listen/ssl_listen settings. [e009aaf19934] 2012-06-29 Timo Sirainen * src/lib-storage/index/index-attachment.c: lib-storage: External mail attachment parsing didn't handle CRLF linefeeds correctly. This simply meant that if mail_save_crlf=yes was used, base64-encoded attachments weren't saved base64-decoded. [6b08977c4b75] * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Fixed a potential crash when building message stream from external attachments. [3efbc4a8219b] 2012-06-28 Timo Sirainen * src/imap/cmd-delete.c: imap: If selected mailbox is DELETEd, disconnect client. [81a659ab9183] 2012-06-27 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-settings.c, src/lib- storage/index/pop3c/pop3c-settings.h, src/lib-storage/index/pop3c /pop3c-storage.c: pop3c: Added pop3c_master_user setting. [06ba409a63d3] * src/doveadm/doveadm-mail-mailbox-status.c: doveadm mailbox status -A -t: Reset vsize counter between users. [d8d587bd5a29] * src/lib-storage/mail-storage.c: lib-storage: Fixed handling failures when autocreating mailboxes. [0e41d7c48a8b] 2012-06-25 Timo Sirainen * src/lib-storage/index/imapc/imapc-save.c: imapc: Fixed crash on saving/copying if remote IMAP server didn't support UIDPLUS. [20703dbd1168] * src/lib-storage/index/pop3c/pop3c-client.c: pop3c: Fixed losing timeout on ioloop change. [edb8d177bd37] 2012-06-24 Timo Sirainen * src/lib-lda/duplicate.c: lib-lda: Duplicate database write failures weren't detected. [4edce2f57264] 2012-08-10 Timo Sirainen * TODO: TODO updated [53139f2f2284] * src/lib-storage/index/index-attachment.c: lib-storage: Don't save text/* MIME parts to external attachments even if they're big enough. [b1453bc21609] 2012-08-09 Timo Sirainen * src/lib/file-lock.c, src/lib/file-lock.h: Added file_lock_method_to_str() [1a938b81cc5f] 2012-08-08 Timo Sirainen * src/lib/connection.c: connection API: Don't do error handling by default on output stream. For connections the error handling is almost never wanted. [6d626fcbde9e] * src/master/master-settings.c: master: If service's protocol isn't in enabled protocols, don't verify its settings. [06e98529eac8] * configure.in, dovecot-config.in.in, src/Makefile.am, src/lib- dovecot/Makefile.am: Added libtest to libdovecot.so [84b4459e4dfc] * src/lib/ioloop-epoll.c: ioloop-epoll: Allow running ioloop even without any I/Os (only timeouts). [587c5579c598] * src/lib-mail/istream-attachment-extractor.h, src/lib-mail/test- istream-attachment.c: Compiler warning fixes [6de60c6ea713] 2012-08-06 Timo Sirainen * src/login-common/client-common.c: login: s/succesful/successful/ [962215040871] 2012-08-03 Timo Sirainen * Makefile.am: Makefile: Fixed -ldovecot-compression name [5e10caeb5e5d] 2012-08-02 Timo Sirainen * src/lib-compression/Makefile.am: Makefile: Added missing headers [95a423729f9c] * src/lib-ssl-iostream/Makefile.am: Makefile: Added missing headers to tarball [bb0b09793a29] 2012-08-01 Timo Sirainen * src/lib/ostream.c: o_stream_ignore_last_errors() / o_stream_nfinish() now marks parent streams also as checked. [558db9e46789] * src/lib-dovecot/Makefile.am, src/lib-ssl-iostream/Makefile.am: Removed duplicate libdovecot-ssl [7ece66101bbd] * Makefile.am, configure.in, dovecot-config.in.in, dovecot.m4, src/Makefile.am, src/lib-compression/Makefile.am, src/lib- compression/compression.c, src/lib-compression/compression.h, src /lib-compression/istream-bzlib.c, src/lib-compression/istream- zlib.c, src/lib-compression/istream-zlib.h, src/lib-compression /ostream-bzlib.c, src/lib-compression/ostream-zlib.c, src/lib- compression/ostream-zlib.h, src/plugins/imap-zlib/Makefile.am, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins/zlib/Makefile.am, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c, src/plugins/zlib/istream-zlib.h, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c, src/plugins/zlib/ostream-zlib.h, src/plugins/zlib/zlib-plugin.c, src/plugins/zlib/zlib-plugin.h: Moved zlib/bzlib code to lib-compression library. [378ba560ea9f] 2012-07-31 Timo Sirainen * src/lib-storage/index/index-search.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-sync-pvt.c, src/lib- storage/index/index-sync.c: lib-storage: Fixes to handling private message flag indexes. [c3a781ef0aeb] * src/imap/cmd-append.c, src/lib-imap-storage/imap-msgpart-url.c, src/lib/uri-util.c: imap: CATENATE command fixes. Patch by Stephan Bosch [1af9d08e67d7] * src/lib-master/master-service-ssl.c: lib-master: Assert-crashfix [4d518c1a366c] 2012-07-30 Timo Sirainen * src/auth/mech-external.c: auth: EXTERNAL mechanism didn't use auth_username_* settings. [1e7c33ce9c16] * src/lib/Makefile.am, src/lib/connection.c, src/lib/connection.h: Added "connection" API for handling client/server connections more easily. [dfe6f9a790bc] * src/lib-dovecot/Makefile.am: Makefile: Fixed libdovecot-ssl to actually contain libssl-iostream [d090feb2d9b3] * dovecot.m4: dovecot.m4: Export also LIBDOVECOT_IMAP_INCLUDE [aab2cca80015] 2012-07-28 Timo Sirainen * src/lib-master/master-service-ssl-settings.c: lib-master: Check ssl_cert/ssl_key only when running in config/doveconf. Also if Dovecot isn't built with SSL, default to ssl=no [476be9198559] * dovecot.m4: dovecot.m4: Updates from Pigeonhole [73ce16df6b16] * Makefile.am, configure.in, dovecot-config.in.in, dovecot.m4, src/Makefile.am, src/lib-dovecot/Makefile.am, src/lib- master/Makefile.am, src/lib-master/master-service-ssl.c, src/lib- master/master-service-ssl.h: Added libdovecot-ssl for creating SSL servers more easily using lib- ssl-iostream. [0de6b238d6eb] * src/config/config-parser.c, src/lib-master/Makefile.am, src/lib- master/master-service-private.h, src/lib-master/master-service- settings.c, src/lib-master/master-service-settings.h, src/lib-master /master-service-ssl-settings.c, src/lib-master/master-service-ssl- settings.h, src/lib-master/master-service.c, src/login-common /client-common-auth.c, src/login-common/client-common.c, src/login- common/client-common.h, src/login-common/login-common.h, src/login- common/login-proxy.c, src/login-common/login-settings.c, src/login- common/login-settings.h, src/login-common/main.c, src/login-common /ssl-proxy-openssl.c, src/login-common/ssl-proxy.c, src/login-common /ssl-proxy.h, src/master/service-process.c: Moved ssl_* settings from login-common to lib-master. This allows creating other SSL servers more easily. [983c6ff12cc9] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Added base_dir to master_service_settings. [d4b95346c08a] * src/auth/auth-settings.c, src/lib-master/master-service-settings.c, src/lib-master/master-service-settings.h, src/lib-storage/mail- storage-service.c, src/lmtp/lmtp-settings.c, src/login-common/login- settings.c: lib-master: Added and used MASTER_SERVICE_INTERNAL_SET_PARSERS macro. [2199fd0d1682] * src/ssl-params/ssl-params-settings.c: ssl-params: Create also base_dir/ssl-params socket. [3671877fb692] * src/login-common/ssl-proxy-openssl.c: login: Use lib-ssl-iostream code to handle ssl_protocols setting. [16862a69e22c] * src/lib-ssl-iostream/iostream-openssl-context.c, src/lib-ssl- iostream/iostream-openssl.c, src/lib-ssl-iostream/iostream- openssl.h, src/lib-ssl-iostream/iostream-ssl.h: lib-ssl-iostream: Added protocols setting. [69626d2ce3f0] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Name SSL iostreams based on parent streams. [76d492963638] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Inherit output stream's error handling from parent. [c4bef64d28ac] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-ssl-none.c, src/lib-ssl-iostream/iostream-ssl.h: lib-ssl-iostream: Added ssl_iostream_destroy() to do a clean SSL shutdown. [ff479f84022f] * src/config/config-parser.c: config: Added support for plugins to contain multiple service settings. For example: const struct service_settings *foo_settings_service_settings_array[] = { &foo1_settings_service_settings, &foo2_settings_service_settings, NULL }; [eee77416e137] * src/imap/cmd-copy.c: imap: MOVE command's COPYUID reply was missing a space [1ee54bb2fa5a] 2012-07-25 Timo Sirainen * src/lib/istream.c: i_stream_read(): Added assert to make sure EOF isn't returned too early. [2a12a8f589c4] * src/lib-mail/istream-attachment-connector.h: Comment update. [aedc3650b5cf] * src/lib-mail/istream-attachment-extractor.c: istream-attachment-extractor: Fixed read() returning EOF too early. [d95ff676d358] 2012-07-17 Jan Friesse * src/plugins/quota/quota-fs.c: quota: Support for fs hard limit Support for hard limit is implemented for NFS, but sadly not for other filesystems. If softlimit is not set (it's 0), hardlimit should be used. --- src/plugins/quota/quota-fs.c | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) [cdba6fec5ddf] 2012-07-16 Timo Sirainen * src/imap/cmd-copy.c, src/imap/imap-commands.c, src/imap/imap- commands.h: imap: Updated MOVE implementation. [76fe255ba921] * src/master/master-settings.c: master: Create missing /var/lib/dovecot/ with world-read-exec permissions. There's really nothing secret in the directory and in some setups this change had to be done manually anyway. [744a1037ce86] * src/lib-storage/index/index-search.c: lib-storage: Search crashfix. [4fb231804670] 2012-07-05 Timo Sirainen * src/lib-storage/index/index-search.c: lib-storage: Minor code cleanup [94fd1ec48e81] * src/lib-storage/index/index-search.c: lib-storage: Fixed searching message flags on mailboxes without private index. [e9e1b97c78c7] * src/lib-imap-storage/imap-msgpart.c: imap: Fixed crashes on some FETCH commands [2ab4aa784474] 2012-07-04 Timo Sirainen * src/lib-storage/index/index-sync-pvt.c: lib-storage: Private index needs to be synced also when messages have been expunged. [dfd3f9135017] * src/lib-storage/index/index-sync.c: lib-storage: Don't try to sync private index files if syncing already failed. This fixes a crash when opening a mailbox failed. [e59dfda2a02f] * src/lib-master/master-service-settings.c: lib-master: i_close_fd() change caused environment variables to be used as settings. [5d3bc8a98e46] 2012-07-02 Timo Sirainen * src/lib-storage/index/index-search-private.h, src/lib-storage/index /index-search.c: lib-storage: Fixed searching message flags with private flags index. [04c89bb18bdd] * src/lib-storage/index/index-status.c: lib-storage: Fixed STATUS_FIRST_UNSEEN_SEQ lookup with private flags index. [c0ff628352d5] 2012-06-30 Timo Sirainen * src/lib/ostream.h: o_stream_nsend() comment update [3d3689c2c81d] 2012-06-29 Timo Sirainen * src/lib-mail/istream-attachment-extractor.c, src/lib-mail/istream- binary-converter.c, src/lib-mail/istream-dot.c, src/lib-mail /istream-nonuls.c, src/lib-storage/index/istream-mail.c, src/lib /istream-base64-encoder.c, src/lib/istream-crlf.c, src/lib/istream- limit.c, src/lib/istream-private.h, src/lib/istream-rawlog.c, src/lib/istream-sized.c, src/lib/istream.c: istreams: Added default stat() implementation for filter streams. [89e0aad6ba88] * src/lib-storage/index/istream-mail.c, src/lib/istream- base64-encoder.c, src/lib/istream-limit.c, src/lib/istream- private.h, src/lib/istream-seekable.c, src/lib/istream-sized.c, src/lib/istream.c: istreams: Added default seek() implementation for seekable streams. [11e774a9d22c] * src/lib-storage/index/dbox-common/dbox-attachment.c, src/lib- storage/index/index-attachment.c: lib-storage: Use the new istream-attachment-* APIs to handle external mail attachments. [38b0986605a6] * src/lib-mail/Makefile.am, src/lib-mail/istream-attachment- connector.c, src/lib-mail/istream-attachment-connector.h, src/lib- mail/istream-attachment-extractor.c, src/lib-mail/istream- attachment-extractor.h, src/lib-mail/test-istream-attachment.c: lib-mail: Added istream-attachment-[connector|extractor]. istream- attachment-extractor can be used to parse messages and extract attachment MIME parts from them to wanted output streams. The attachments are base64-decoded if they can be later re-encoded to original input without any changes. istream-attachment-connector does the reverse by taking the base istream and attachment istreams and merging them together to create the original istream. [ffab35ef2e5b] * src/lib/istream-data.c, src/lib/istream-file.c, src/lib/ostream- buffer.c: istreams: Set (file), (fd) or (buffer) as default name for those input streams. [69334bf138cf] 2012-06-28 Timo Sirainen * src/lib/ostream.c: Fixed ostream's new error handling not to always assert-crash. [b1a0e44e1dac] * src/lib/hash-format.c, src/lib/hash-format.h: hash-format object can now be reset to build multiple hashes. [d419c6cde162] * src/lib-mail/istream-binary-converter.c, src/lib/istream-private.h, src/lib/istream.c: Added i_stream_alloc() [8909e8428b82] * src/lib-mail/istream-binary-converter.c, src/lib-mail/istream-dot.c, src/lib-mail/istream-nonuls.c, src/lib-ssl-iostream/istream- openssl.c, src/lib/istream-base64-encoder.c, src/lib/istream- chain.c, src/lib/istream-concat.c, src/lib/istream-crlf.c, src/lib /istream-file.c, src/lib/istream-private.h, src/lib/istream.c: istreams: Renamed i_stream_get_buffer_space() to i_stream_try_alloc() [d7d1f24dde34] * src/lib-storage/index/Makefile.am, src/lib-storage/index/dbox-common /dbox-attachment.c, src/lib-storage/index/istream-attachment.c, src /lib-storage/index/istream-attachment.h, src/lib/Makefile.am, src/lib/istream-sized.c, src/lib/istream-sized.h: Renamed istream-attachment to istream-sized. The code didn't really assume anything about the input being an attachment, so this allows reusing the stream for other purposes. [9774ae8fff97] * src/auth/db-checkpassword.c, src/auth/db-passwd-file.c, src/auth /mech-winbind.c, src/config/config-parser.c, src/config/sysinfo- get.c, src/director/director-test.c, src/doveadm/doveadm-dump-log.c, src/doveadm/doveadm-dump-mailboxlog.c, src/doveadm/doveadm- instance.c, src/doveadm/doveadm-master.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm-stats.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-slave-io.c, src/imap/main.c, src/lda/main.c, src/lib-dict/dict-file.c, src/lib-dns/dns-lookup.c, src/lib-imap- client/imapc-client.c, src/lib-index/mail-cache-compress.c, src/lib- lda/smtp-client.c, src/lib-master/master-login.c, src/lib-master /master-service-settings.c, src/lib-master/mountpoint-list.c, src /lib-settings/settings-parser.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/maildir/maildir-storage.c, src /lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/pop3c/pop3c-client.c, src/lib-storage/list/mailbox- list-maildir.c, src/lib-storage/mailbox-uidvalidity.c, src/lib/askpass.c, src/lib/failures.c, src/lib/fdatasync-path.c, src/lib/file-copy.c, src/lib/file-dotlock.c, src/lib/ioloop-notify- dn.c, src/lib/ioloop-notify-kqueue.c, src/lib/iostream-rawlog.c, src/lib/istream-seekable.c, src/lib/lib.c, src/lib/lib.h, src/lib/macros.h, src/lib/network.c, src/lib/nfs-workarounds.c, src/lib/randgen.c, src/lib/safe-mkstemp.c, src/lib/test-ostream- file.c, src/lib/unlink-directory.c, src/lmtp/commands.c, src/login- common/access-lookup.c, src/login-common/ssl-proxy-gnutls.c, src/master/main.c, src/master/service-listen.c, src/master/service- monitor.c, src/master/service.c, src/plugins/acl/acl-backend-vfile- acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/fts- lucene/fts-backend-lucene.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts/doveadm-dump-fts-expunge-log.c, src/plugins/fts/fts- expunge-log.c, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts- parser-script.c, src/plugins/quota/quota-maildir.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- config.c, src/plugins/zlib/doveadm-zlib.c, src/plugins/zlib/zlib- plugin.c, src/pop3/main.c, src/ssl-params/ssl-params.c, src/util/gdbhelper.c, src/util/rawlog.c: Changed i_close_fd() API to set the fd to -1 after closing. [3945a3646c67] 2012-06-27 Timo Sirainen * src/auth/mech-gssapi.c: gssapi: Allow logging in as users listed in "k5principals" extra field. This also enables other passdb extra fields for gssapi mechanism. Based on patch by Sam Morris. [183adc90781c] * src/lib-imap/imap-bodystructure.c, src/lib-mail/message-date.c, src /lib-mail/message-decoder.c, src/lib-mail/message-id.c, src/lib-mail /message-parser.c, src/lib-mail/message-search.c, src/lib- mail/rfc822-parser.h, src/lib-storage/index/index-attachment.c, src/lib/hash.c, src/lib/md4.c, src/lib/md5.c, src/lib/ostream.c, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-parser- script.c: Try to avoid (void) casts by adding more ATTR_NOWARN_UNUSED_RESULT. [096e4c4d62bb] 2012-06-25 Timo Sirainen * src/auth/auth-worker-server.h, src/auth/passdb-blocking.c, src/auth /userdb-blocking.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm /doveadm-mail.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-mails.c, src/doveadm/dsync/dsync-slave-pipe.c, src/doveadm/dsync/dsync-slave.c, src/doveadm/dsync/dsync-slave.h, src/doveadm/dsync/dsync-transaction-log-scan.c, src/imap- login/client.c, src/imap/cmd-append.c, src/imap/imap-client.c, src/imap/imap-common.h, src/imap/imap-search.c, src/imap/imap- sync.c, src/imap/imap-sync.h, src/lib-dict/dict-client.c, src/lib- dict/dict-file.c, src/lib-imap-client/imapc-connection.c, src/lib- imap/imap-bodystructure.c, src/lib-index/mail-index-strmap.c, src /lib-index/mail-index-transaction.c, src/lib-index/mail-index.h, src /lib-index/mail-transaction-log-file.c, src/lib-mail/istream-binary- converter.c, src/lib-mail/message-decoder.c, src/lib-mail/message- parser.c, src/lib-mail/rfc2231-parser.h, src/lib-storage/index/dbox- multi/mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index-thread.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-sync.c, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-lock.h, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib- storage/index/pop3c/pop3c-client.c, src/lib-storage/list /subscription-file.c, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h, src/lib-storage/mailbox-list.h, src/lib-test /test-common.c, src/lib/bsearch-insert-pos.h, src/lib/file- dotlock.c, src/lib/file-dotlock.h, src/lib/iostream-rawlog.h, src/lib/istream-base64-encoder.c, src/lib/istream-data.c, src/lib /istream-private.h, src/lib/istream.c, src/lib/network.h, src/login- common/client-common-auth.c, src/login-common/client-common.h, src /login-common/login-proxy.c, src/login-common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src/plugins/fts-lucene/fts- backend-lucene.c, src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts-api- private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts-parser- script.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap- acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c, src/pop3/pop3-client.c: Avoid using (void)s by adding ATTR_NOWARN_UNUSED_RESULT attributes and other ways. [128c598d2870] * src/auth/db-checkpassword.c, src/auth/db-passwd-file.c, src/auth /mech-winbind.c, src/config/config-parser.c, src/config/sysinfo- get.c, src/director/director-test.c, src/doveadm/doveadm-dump-log.c, src/doveadm/doveadm-dump-mailboxlog.c, src/doveadm/doveadm- instance.c, src/doveadm/doveadm-master.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm-stats.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-slave-io.c, src/imap/main.c, src/lda/main.c, src/lib-dict/dict-file.c, src/lib-dns/dns-lookup.c, src/lib-imap- client/imapc-client.c, src/lib-index/mail-cache-compress.c, src/lib- index/mail-transaction-log.c, src/lib-lda/smtp-client.c, src/lib- master/master-login.c, src/lib-master/master-service-settings.c, src /lib-master/mountpoint-list.c, src/lib-settings/settings-parser.c, src/lib-storage/index/index-attachment.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/mbox /mbox-file.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/pop3c /pop3c-client.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/mailbox-uidvalidity.c, src/lib/Makefile.am, src/lib/askpass.c, src/lib/close-keep-errno.c, src/lib/close-keep- errno.h, src/lib/failures.c, src/lib/fdatasync-path.c, src/lib/file- copy.c, src/lib/file-dotlock.c, src/lib/ioloop-notify-dn.c, src/lib /ioloop-notify-kqueue.c, src/lib/iostream-rawlog.c, src/lib/istream- seekable.c, src/lib/macros.h, src/lib/network.c, src/lib/nfs- workarounds.c, src/lib/randgen.c, src/lib/safe-mkstemp.c, src/lib /test-ostream-file.c, src/lib/unlink-directory.c, src/lmtp/commands.c, src/login-common/access-lookup.c, src/login- common/ssl-proxy-gnutls.c, src/master/main.c, src/master/service- listen.c, src/master/service-monitor.c, src/master/service.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl- backend-vfile.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts/doveadm-dump- fts-expunge-log.c, src/plugins/fts/fts-expunge-log.c, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts-parser-script.c, src/plugins/quota/quota-maildir.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/zlib/doveadm- zlib.c, src/plugins/zlib/zlib-plugin.c, src/pop3/main.c, src/ssl- params/ssl-params.c, src/util/gdbhelper.c, src/util/rawlog.c: Replaced (void)close(fd) and close_keep_errno() with i_close_fd(). i_close_fd() preserves the errno and logs an error if the close() fails. [7c058aa05b0a] * src/auth/auth-settings.c, src/auth/db-ldap.c, src/config/config- filter.c, src/config/config-parser.c, src/doveadm/doveadm-mail- fetch.c, src/doveadm/doveadm-mailbox-list-iter.c, src/doveadm/dsync /doveadm-dsync.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-mailbox-import.c, src/imap/cmd-list.c, src/imap/imap-commands-util.c, src/imap/imap-fetch.c, src/lib-auth /auth-master.c, src/lib-imap-storage/imap-msgpart.c, src/lib-imap /imap-match.c, src/lib-index/mail-cache-compress.c, src/lib-index /mail-index-strmap.c, src/lib-index/mail-index.c, src/lib- mail/rfc2231-parser.c, src/lib-master/master-service-settings.c, src /lib-sql/driver-sqlpool.c, src/lib-storage/fail-mail.c, src/lib- storage/index/dbox-common/dbox-attachment.c, src/lib- storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/index- mail-headers.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-search.c, src/lib-storage/index/pop3c/pop3c- sync.c, src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage /mailbox-keywords.c, src/lib/array.h, src/lib/ioloop-epoll.c, src/lib/ioloop-kqueue.c, src/lib/uri-util.c, src/lib/var-expand.c, src/master/main.c, src/plugins/acl/doveadm-acl.c, src/plugins/expire /doveadm-expire.c, src/plugins/expire/expire-plugin.c, src/plugins /fts-lucene/fts-backend-lucene.c, src/plugins/fts-solr/fts-backend- solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins /fts-solr/solr-connection.c, src/plugins/fts/fts-search.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/virtual/virtual- save.c, src/util/script.c: Added array_append_zero() to write a zero-filled record to an array. Replaced (void)array_append_space() calls with it. [9ff19c1d5f69] * src/lib-index/mail-index-transaction-update.c, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/index-sync.c, src /lib-storage/mailbox-search-result.c, src/lib/seq-range-array.c, src/lib/seq-range-array.h, src/lib/test-seq-range-array.c, src/plugins/fts/fts-expunge-log.c, src/plugins/virtual/virtual- sync.c: seq-range-array: Reverted most of recent API changes. Added ATTR_NOWARN_UNUSED_RESULT for the functions whose return value can safely be ignored. [67b9119fbd09] * src/lib/macros.h: Added ATTR_NOWARN_UNUSED_RESULT, which expands to nowarn_unused_result attribute if supported. Requires a patched clang. [b39e93576e6a] * src/director/director-connection.c, src/doveadm/dsync/dsync-slave- io.c, src/imap/cmd-append.c, src/imap/imap-client.c, src/lib-dict /dict-client.c, src/lib-mail/istream-dot.c, src/lib-mail/istream- header-filter.c, src/lib-mail/istream-nonuls.c, src/lib-mail /message-parser.c, src/lib-storage/index/istream-mail.c, src/lib- storage/index/mbox/istream-raw-mbox.c, src/lib-storage/index/pop3c /pop3c-client.c, src/lib/istream-base64-encoder.c, src/lib/istream- crlf.c, src/lib/istream-seekable.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/istream.h, src/lib/test-istream- base64-encoder.c, src/lib/test-istream-concat.c, src/lib/test- istream-seekable.c, src/plugins/fts/fts-expunge-log.c, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: Added i_stream_get_data_size(). Used it where possible. [9646f80ac3e9] * src/anvil/main.c, src/auth/auth-request.c, src/auth/mech-digest- md5.c, src/auth/mech-scram-sha1.c, src/auth/passdb-blocking.c, src/auth/password-scheme-otp.c, src/auth/userdb-blocking.c, src/auth /userdb-sql.c, src/config/doveconf.c, src/config/main.c, src/config /old-set-parser.c, src/dict/dict-commands.c, src/dict/main.c, src/director/director-connection.c, src/director/director-host.c, src/director/director.c, src/director/doveadm-connection.c, src/director/mail-host.c, src/director/main.c, src/director/test- user-directory.c, src/doveadm/doveadm-dump-dbox.c, src/doveadm /doveadm-mail-server.c, src/doveadm/doveadm-mailbox-list-iter.c, src/doveadm/doveadm-mount.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-stats.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync /dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync- mailbox-tree.c, src/doveadm/dsync/dsync-slave.c, src/doveadm/dsync /dsync-slave.h, src/doveadm/server-connection.c, src/doveadm/server- connection.h, src/imap-login/client.c, src/imap/cmd-fetch.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-fetch-body.c, src/imap/imap- sync.c, src/imap/main.c, src/indexer/master-connection.c, src/lib- auth/auth-client.c, src/lib-imap/imap-parser.c, src/lib-imap/imap- quote.c, src/lib-index/mail-cache-compress.c, src/lib-index/mail- cache-transaction.c, src/lib-index/mail-cache.c, src/lib-index/mail- index-fsck.c, src/lib-index/mail-index-map-hdr.c, src/lib-index /mail-index-modseq.c, src/lib-index/mail-index-private.h, src/lib- index/mail-index-strmap.c, src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index-transaction-private.h, src/lib-index/mail- index-transaction-sort-appends.c, src/lib-index/mail-index- transaction-update.c, src/lib-index/mail-index-view-sync.c, src/lib- index/mail-index-write.c, src/lib-index/mail-index.c, src/lib-index /mail-transaction-log-file.c, src/lib-index/test-mail-index- transaction-update.c, src/lib-index/test-mail-transaction-log- append.c, src/lib-mail/message-header-decode.c, src/lib-mail /message-part-serialize.c, src/lib-mail/rfc822-parser.c, src/lib- mail/test-istream-dot.c, src/lib-ntlm/ntlm-des.c, src/lib-ntlm/ntlm- des.h, src/lib-ntlm/ntlm-encrypt.c, src/lib-ntlm/ntlm-encrypt.h, src /lib-otp/otp-hash.c, src/lib-otp/otp-hash.h, src/lib-storage/index /dbox-common/dbox-file-fix.c, src/lib-storage/index/dbox-common /dbox-file.c, src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-single/sdbox-copy.c, src/lib-storage/index/imapc /imapc-mail.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index/index-sort-string.c, src/lib-storage/index /index-sort.c, src/lib-storage/index/index-status.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index-sync- changes.c, src/lib-storage/index/index-sync.c, src/lib-storage/index /index-thread.c, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/index/mbox/mbox- sync.c, src/lib-storage/index/pop3c/pop3c-client.c, src/lib- storage/index/raw/raw-mail.c, src/lib-storage/mail-search-build.c, src/lib-storage/mail-storage-private.h, src/lib-storage/mail.c, src /lib-storage/mailbox-get.c, src/lib-storage/mailbox-uidvalidity.c, src/lib/data-stack.c, src/lib/hash.c, src/lib/hostpid.c, src/lib /iostream-rawlog.c, src/lib/md4.c, src/lib/md5.c, src/lib/mountpoint.c, src/lib/nfs-workarounds.c, src/lib/nfs- workarounds.h, src/lib/seq-range-array.c, src/lib/seq-range-array.h, src/lib/test-base64.c, src/lib/test-network.c, src/lib/test-ostream- file.c, src/lib/test-seq-range-array.c, src/log/log-connection.c, src/log/log-connection.h, src/login-common/client-common-auth.c, src /login-common/login-proxy-state.c, src/login-common/login-proxy.c, src/login-common/ssl-proxy-openssl.c, src/master/main.c, src/master /service-anvil.c, src/master/service-process.c, src/master/service- process.h, src/plugins/autocreate/autocreate-plugin.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire/expire- plugin.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins /fts-squat/squat-trie.c, src/plugins/fts-squat/squat-uidlist.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap-acl- plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins /imap-zlib/imap-zlib-plugin.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota.c, src/plugins/stats/stats-connection.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual- sync.c, src/plugins/zlib/doveadm-zlib.c, src/plugins/zlib/ostream- zlib.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c, src/replication/aggregator/notify-connection.c, src/replication/replicator/notify-connection.c, src/stats/main.c, src/util/rawlog.c: Make sure we check all the functions' return values. Minor API changes to simplify this. Checked using a patched clang that adds attribute(warn_unused_result) to all functions. This commit fixes several error handling mistakes. [d0d7b810646b] * src/anvil/anvil-connection.c, src/anvil/connect-limit.c, src/anvil/penalty.c, src/auth/auth-client-connection.c, src/auth /auth-client-connection.h, src/auth/auth-master-connection.c, src/auth/auth-postfix-connection.c, src/auth/auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/main.c, src/auth/mech- winbind.c, src/config/config-connection.c, src/config/doveconf.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/director /auth-connection.c, src/director/director-connection.c, src/director /director-test.c, src/director/doveadm-connection.c, src/director /login-connection.c, src/dns/dns-client.c, src/doveadm/client- connection.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- print-server.c, src/doveadm/dsync/dsync-slave-io.c, src/doveadm /server-connection.c, src/imap-login/imap-proxy.c, src/imap/cmd- append.c, src/imap/cmd-copy.c, src/imap/cmd-thread.c, src/imap/imap- client.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap-search.c, src/imap/imap-sync.c, src/imap/mail-storage- callbacks.c, src/indexer/indexer-client.c, src/indexer/worker- connection.c, src/ipc/client.c, src/ipc/ipc-connection.c, src/lib- auth/auth-master.c, src/lib-dict/dict-file.c, src/lib-fs/fs-posix.c, src/lib-fs/ostream-cmp.c, src/lib-imap-client/imapc-connection.c, src/lib-imap/imap-parser.c, src/lib-index/mail-cache-compress.c, src /lib-index/mail-index-strmap.c, src/lib-index/mail-index-write.c, src/lib-lda/duplicate.c, src/lib-lda/lmtp-client.c, src/lib-lda /mail-send.c, src/lib-lda/smtp-client.c, src/lib-master/anvil- client.c, src/lib-master/ipc-client.c, src/lib-master/ipc-server.c, src/lib-master/master-instance.c, src/lib-master/master-login- auth.c, src/lib-master/master-login.c, src/lib-storage/index/cydir /cydir-save.c, src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-save.c, src/lib-storage/index/dbox-multi/mdbox- purge.c, src/lib-storage/index/dbox-single/sdbox-file.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/index/pop3c/pop3c-client.c, src/lib- storage/list/subscription-file.c, src/lib/ostream-file.c, src/lib /ostream-private.h, src/lib/ostream-rawlog.c, src/lib/ostream.c, src/lib/ostream.h, src/lib/test-ostream-file.c, src/lmtp/client.c, src/lmtp/lmtp-proxy.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/login-proxy.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl- backend-vfile.c, src/plugins/fts-squat/squat-trie.c, src/plugins /fts-squat/squat-uidlist.c, src/plugins/imap-quota/imap-quota- plugin.c, src/plugins/zlib/doveadm-zlib.c, src/plugins/zlib/ostream- bzlib.c, src/plugins/zlib/ostream-zlib.c, src/pop3-login/pop3-proxy.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/replication/aggregator/notify- connection.c, src/replication/aggregator/replicator-connection.c, src/replication/replicator/doveadm-connection.c, src/replication/replicator/notify-connection.c, src/replication/replicator/replicator-queue.c, src/ssl- params/main.c, src/stats/client-export.c, src/stats/client.c, src/stats/mail-server-connection.c, src/util/rawlog.c: Added o_stream_nsend*() and related functions to make delayed error handling safer. Once o_stream_nsend*() is called, o_stream_nfinish() must be called before stream is destroyed to finish checking if there were any errors. If something failed and the stream is just wanted to be closed, o_stream_ignore_last_errors() can be called. For streams where errors don't really make any difference (network sockets) you can call o_stream_set_no_error_handling() immediately after creating the stream. [ca37d1577291] 2012-06-24 Timo Sirainen * src/master/master-settings.c, src/master/master-settings.h: master: Problems with creating base_dir/statedir should be fatals. [3ffdb4bf36d3] * src/lib-lda/duplicate.c: lib-lda: Duplicate database write failures weren't detected. [f783fdbc3861] * src/lib-index/mail-index-transaction-finish.c: seq_range_array_add() API change triggered a crash in buggy code. [42d1459958ec] * src/lib-index/mail-index-transaction-update.c, src/lib-storage/index /index-sync.c, src/lib-storage/mailbox-search-result.c, src/lib/seq- range-array.c, src/lib/seq-range-array.h, src/lib/test-seq-range- array.c: seq_range_array_remove() now returns void. Added seq_ranger_array_try_remove(). [737a49f472d1] * src/doveadm/dsync/dsync-mailbox-export.c, src/doveadm/dsync/dsync- mailbox-import.c, src/imap/cmd-store.c, src/imap/imap-search.c, src /lib-index/mail-index-sync-update.c, src/lib-index/mail-index- transaction-finish.c, src/lib-index/mail-index-transaction-sort- appends.c, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index-view-sync.c, src/lib-storage/index/dbox-multi /mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src /lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index/imapc /imapc-save.c, src/lib-storage/index/index-search.c, src/lib- storage/index/index-sync-search.c, src/lib-storage/index/index- sync.c, src/lib-storage/mail-search.c, src/lib-storage/mailbox- get.c, src/lib-storage/mailbox-search-result.c, src/lib/seq-range- array.c, src/lib/seq-range-array.h, src/lib/test-seq-range-array.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/solr- connection.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts- squat/squat-uidlist.c, src/plugins/fts/fts-api.c, src/plugins/fts /fts-expunge-log.c, src/plugins/fts/fts-search.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-sync.c: seq_range_array_add() API changed. Added other functions to provide the less common use cases. [69ba6977bed8] * src/doveadm/dsync/dsync-mailbox-import.c, src/lib-index/mail- transaction-log-view.c: Make static analyzer happier. [f07ba5e7d97d] * configure.in, src/auth/auth-request.c, src/auth/db-ldap.c, src/director/director-connection.c, src/doveadm/doveadm-log.c, src /lib-index/mail-transaction-log-file.c, src/lib-mail/message- parser.c, src/lib-master/master-instance.c, src/lib-master/master- service.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-index-status.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota.c: Merged changes from v2.1 tree. [efd276ab2577] * src/auth/auth-request.c, src/auth/db-ldap.c, src/auth/password- scheme.c, src/lib-index/mail-transaction-log-file.c, src/lib-index /mail-transaction-log.c, src/lib-storage/index/mbox/mbox-mail.c, src /lib-storage/index/mbox/mbox-save.c, src/plugins/fts-squat/squat- uidlist.c: Make static analyzer happier. [c257b9c19915] * src/lib-dict/dict-file.c: dict file: Don't ignore write failures. [cc6d2b34965d] * src/director/director-connection.c: director: Fix to handling duplicate USER-WEAK event. [7be9411da17b] * src/lib-storage/list/mailbox-list-index-status.c: mailbox_list_index=yes: Fixed a potential crash. [bb1de2a1d866] * src/director/mail-host.c, src/lib/primes.c, src/lib/utc-mktime.c: Fixed signed integer shift overflows. These didn't actually cause any broken behavior. One of these was caught by http://embed.cs.utah.edu/ioc/ and the rest I grepped. [6411d91d0755] 2012-06-22 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /istream-openssl.c, src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Memory leak fixes [11c07ab07d39] 2012-06-21 Timo Sirainen * src/imap/cmd-delete.c: imap: If DELETE can't succeed because mailbox has children, don't give [ALREADYEXISTS] code. [e62979a15657] * src/plugins/quota/quota.c: quota: Don't crash at init if one of the namespaces no root dir. [046f03b33584] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Don't crash when using multiple imapc namespaces. [b13753851a07] 2012-06-20 Timo Sirainen * src/lib-mail/message-parser.c: message parser: Fixed infinite loop when parsing a specific message. [4461b48fcc1f] 2012-06-18 Timo Sirainen * src/plugins/fts-squat/fts-backend-squat.c: fts-squat: Fixed handling multiple SEARCH parameters. [4ce1f9649592] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /istream-openssl.c: lib-ssl-iostream: Don't assert-crash if underlying connection suddenly disconnects. [39d9e75fec02] * src/doveadm/doveadm-print.c: doveadm: Fixed crash with proxying some commands. [9fc78d06252c] 2012-06-16 Timo Sirainen * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Removed brokenly used explicit data stack frame. Fixes crashes when a message has more than 8 keywords. [a28c8043842d] * src/doveadm/doveadm-log.c: doveadm log errors: Usage text update [db32881669e6] 2012-06-15 Timo Sirainen * src/doveadm/doveadm-log.c: doveadm log errors: Added -s parameter [8de41fa0fbf1] * doc/example-config/conf.d/20-imap.conf: example-config: imap_logout_format default was wrong. [a4cd22976ddb] * src/plugins/quota/quota-maildir.c: maildir++ quota: If reading maildirsize fails with ESTALE, retry it. [cad676b57cc8] 2012-06-13 Timo Sirainen * src/lib-master/master-instance.c: lib-master: Fixed assert crash in some situations after updating instance name. [c58a27eecdd4] * src/master/service-monitor.c: master: If service_count=1 and process_limit=1 and >1 clients connect, log about service_count being why. [4c31e450a867] 2012-06-11 Timo Sirainen * src/lib-storage/index/shared/shared-list.c: shared mailboxes: Avoid doing "@domain" userdb lookups. [28ddc2058877] * src/director/director.c: director: Fixed working as standalone. [46d01b728647] * src/lib-master/master-service.c: lib-master: -i parameter shouldn't imply -k parameter. This was added accidentally when writing the code. [98f2c12eccdb] * src/lib-charset/charset-iconv.c: lib-charset: Make sure convert_to_utf8*() never returns non-UTF8 output. [0fde692cb565] 2012-06-04 Timo Sirainen * src/doveadm/doveadm.c: doveadm config: If -c parameter was given, it wasn't passed to doveconf. [a0ff87fe1f4a] * src/doveadm/doveadm-instance.c: doveadm instance list: Added -c parameter to easily get the instance's config path. [ee5d838ebcbb] * src/lib-master/master-instance.c, src/lib-master/master-instance.h: lib-master: Keep track of config paths in "instances" file. Normally it can be looked up from base_dir/dovecot.conf symlink, but base_dir may get deleted when system starts up. [d85421a77fa1] * src/doveadm/doveadm-instance.c: doveadm instance list: Added optional name parameter to list only specified instance. [fa75bd3245a4] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox- save.c: mdbox: Flush/fsync newly saved mail data before locking map. This reduced the amount of time the map needs to be locked. [61be33b6336c] * src/lib-storage/index/dbox-multi/mdbox-map-private.h, src/lib- storage/index/dbox-multi/mdbox-map.c: mdbox: Make sure map transaction won't succeed after mdbox_map_atomic_set_failed() [99d31c803b7b] 2012-05-29 Timo Sirainen * .hgsigs: Added signature for changeset c92fb8b928f6 [36d2aff85a69] * .hgtags: Added tag 2.1.7 for changeset c92fb8b928f6 [d3c0c472b1ff] * NEWS, configure.in: Released v2.1.7. [c92fb8b928f6] [2.1.7] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Fixed assert-crash with index rebuild when using ns prefix and mail wasn't originally in INBOX. [969950d53af1] * src/lib/restrict-access.c: Fixed assert-crash on some situations when user had no supplementary groups. [fe688ecd7564] 2012-05-23 Timo Sirainen * src/lib-storage/mail-search-register-imap.c: lib-storage: Verify that with SEARCH HEADER the header name is valid UTF-8. [03ea2388bb27] 2012-06-24 Timo Sirainen * src/lib-fs/fs-posix.c, src/lib-index/mail-cache-compress.c, src/lib- index/mail-cache.c, src/lib-index/mail-transaction-log-file.c, src /lib-master/master-instance.c, src/lib-storage/index/dbox-common /dbox-file.c, src/lib-storage/index/maildir/maildir-uidlist.c, src /lib-storage/index/mbox/mbox-lock.c, src/lib-storage/list /subscription-file.c, src/lib/file-dotlock.c, src/lib/file- dotlock.h: Added file_dotlock_delete_verified() and changed file_dotlock_delete() to return void. [a77ad2346cf0] * src/lib-mail/message-header-parser.c, src/lib-mail/test-message- header-parser.c: lib-mail: Fixed an edge case with message header parser and very long lines. If the header was exactly a specific number of bytes, the parser thought the header ended there. [0cb5fdb4c60d] * src/lib-mail/message-header-decode.c, src/lib-mail/message-header- decode.h, src/lib-mail/test-message-decoder.c, src/lib-mail/test- message-header-decode.c, src/lib-storage/index/index-mail-headers.c: lib-mail: message_header_decode_utf8() API changed to not give return value. It's a rather unnecessary optimization and it wasn't even correct when the input wasn't valid UTF8. [45952eee7ad4] * src/lib/fd-set-nonblock.c, src/lib/fd-set-nonblock.h, src/lib/network.c: fd_set_nonblock() API changed to i_fatal() on failure. Pretty much none of its users were checking if it failed, and there's really no good reason for it to fail anyway. [a65006d95d53] * src/doveadm/dsync/dsync-transaction-log-scan.c: dsync: Fixed a potential error if transaction log was completely empty. [fa1898ef59c4] * src/imap/cmd-append.c: imap: CATENATE error handling fix [932ec9940568] * src/lib-sql/driver-mysql.c: Avoid a NULL warning in mysql_init() when HAVE_ATTR_NULL capable compiler is used. [634474af3957] * src/lib-storage/list/mailbox-list-index-status.c: mailbox_list_index=yes: Fixed a potential crash. [5a9f9c35a8f0] * src/anvil/main.c, src/auth/auth-master-connection.c, src/auth/auth- master-connection.h, src/auth/auth-request-handler.c, src/auth/auth- request.c, src/auth/auth-request.h, src/auth/auth-settings.h, src/auth/auth-stream.h, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/auth.h, src/auth/db-checkpassword.h, src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/db-passwd-file.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech-apop.c, src/auth/mech-cram-md5.c, src/auth/mech-ntlm.c, src/auth/mech-otp- skey-common.c, src/auth/mech-plain-common.c, src/auth/mech-rpa.c, src/auth/mech-winbind.c, src/auth/mech.c, src/auth/password-scheme- otp.c, src/auth/password-scheme.h, src/auth/userdb-passwd.c, src/auth/userdb-static.c, src/auth/userdb.h, src/config/config- parser-private.h, src/config/config-request.h, src/config/doveconf.c, src/config/main.c, src/dict/main.c, src/director/director-connection.c, src/director/director-test.c, src/director/director.h, src/dns/dns-client.c, src/doveadm/doveadm- director.c, src/doveadm/doveadm-log.c, src/doveadm/doveadm-mail- fetch.c, src/doveadm/doveadm-mail-iter.h, src/doveadm/doveadm-mail- mailbox-status.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-mailbox- import.c, src/doveadm/dsync/dsync-slave-io.c, src/doveadm/main.c, src/imap-login/client.c, src/imap-login/client.h, src/imap/cmd- append.c, src/imap/cmd-expunge.c, src/imap/imap-client.h, src/imap /imap-commands-util.h, src/imap/imap-expunge.h, src/imap/imap-fetch- body.c, src/imap/imap-fetch.h, src/imap/imap-search.h, src/imap /imap-sync.c, src/indexer/indexer.c, src/indexer/master- connection.c, src/ipc/client.c, src/ipc/main.c, src/lib-auth/auth- client-request.c, src/lib-auth/auth-client.h, src/lib-auth/auth- master.c, src/lib-auth/auth-master.h, src/lib-dict/dict.h, src/lib- dns/dns-lookup.h, src/lib-imap-client/imapc-connection.h, src/lib- imap-storage/imap-msgpart.c, src/lib-imap/imap-base-subject.c, src /lib-imap/imap-parser.c, src/lib-imap/imap-parser.h, src/lib-imap /imap-url.c, src/lib-imap/imap-util.h, src/lib-index/mail-cache- lookup.c, src/lib-index/mail-cache-transaction.c, src/lib-index /mail-index-alloc-cache.c, src/lib-index/mail-index-alloc-cache.h, src/lib-index/mail-index-map-hdr.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index-util.h, src/lib-index/mail-index-view.c, src/lib-index/mail-index.c, src/lib-index/mail-index.h, src/lib-lda /mail-deliver.h, src/lib-lda/smtp-client.h, src/lib-mail/istream- binary-converter.c, src/lib-mail/istream-dot.c, src/lib-mail /istream-header-filter.h, src/lib-mail/message-header-parser.h, src /lib-mail/message-parser.h, src/lib-mail/message-part-serialize.c, src/lib-mail/message-search.h, src/lib-mail/message-size.c, src/lib- mail/message-size.h, src/lib-mail/rfc822-parser.h, src/lib-mail /test-istream-header-filter.c, src/lib-master/anvil-client.h, src /lib-master/ipc-client.h, src/lib-master/ipc-server.c, src/lib- master/master-service-settings-cache.h, src/lib-master/master- service-settings.h, src/lib-master/master-service.c, src/lib-master /master-service.h, src/lib-master/mountpoint-list.c, src/lib-ntlm /ntlm-encrypt.c, src/lib-ntlm/ntlm-encrypt.h, src/lib-otp/otp- parse.c, src/lib-settings/settings-parser.c, src/lib- settings/settings.h, src/lib-sql/driver-mysql.c, src/lib-sql/driver- pgsql.c, src/lib-sql/driver-sqlpool.c, src/lib-sql/sql-api.c, src /lib-storage/index/dbox-common/dbox-file-fix.c, src/lib- storage/index/dbox-common/dbox-save.h, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox-sync- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.h, src/lib-storage/index/dbox-multi/mdbox- sync.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/index/index-search.c, src/lib- storage/index/index-sort.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/index-sync-changes.h, src/lib- storage/index/maildir/maildir-filename-flags.c, src/lib- storage/index/maildir/maildir-filename-flags.h, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-sync.h, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /mbox-file.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-sync-parse.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/list/mailbox-list-delete.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/mailbox-list-index-status.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib-storage/mail-namespace.h, src/lib-storage/mail-search.h, src /lib-storage/mail-storage-service.c, src/lib-storage/mail-storage- service.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/mail-thread.h, src/lib-storage/mail.c, src/lib-storage/mailbox-get.c, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- list.h, src/lib-storage/mailbox-tree.c, src/lib-storage/mailbox- tree.h, src/lib-test/test-common.h, src/lib/base64.h, src/lib/buffer.h, src/lib/child-wait.h, src/lib/eacces-error.h, src/lib/failures.c, src/lib/file-dotlock.c, src/lib/hash.c, src/lib/hash.h, src/lib/hash2.h, src/lib/ioloop-notify-fd.h, src/lib/ioloop.c, src/lib/ioloop.h, src/lib/iso8601-date.c, src/lib /istream-base64-encoder.c, src/lib/istream-chain.c, src/lib/istream- chain.h, src/lib/istream-crlf.c, src/lib/istream-private.h, src/lib /istream-seekable.h, src/lib/istream.c, src/lib/istream.h, src/lib /lib-signals.c, src/lib/lib-signals.h, src/lib/macros.h, src/lib /mkdir-parents.c, src/lib/module-dir.h, src/lib/network.c, src/lib/network.h, src/lib/ostream-private.h, src/lib/ostream.c, src/lib/ostream.h, src/lib/restrict-access.h, src/lib/safe- mkstemp.c, src/lib/strfuncs.c, src/lib/strfuncs.h, src/lib/test- iso8601-date.c, src/lib/uri-util.c, src/lib/uri-util.h, src/lib/var- expand.h, src/lmtp/client.h, src/lmtp/lmtp-proxy.h, src/log/main.c, src/login-common/client-common-auth.c, src/login-common/login- proxy.c, src/login-common/login-settings.h, src/login-common/sasl- server.c, src/login-common/ssl-proxy-openssl.c, src/master/common.h, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl- plugin.h, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins /fts-lucene/lucene-wrapper.h, src/plugins/fts-solr/solr- connection.c, src/plugins/fts-squat/squat-trie.h, src/plugins/fts /fts-storage.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota /quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota.c, src/pop3/pop3-client.h, src/replication/aggregator/aggregator.c, src/replication/replicator/replicator.c, src/ssl-params/main.c, src/stats/mail-domain.h, src/stats/mail-ip.h, src/stats/mail- session.h, src/stats/mail-user.h, src/stats/main.c: Marked functions parameters that are allowed to be NULL. Some APIs were also changed. The non-obvious APIs where NULL parameter was changed to "" are master_service_init() and auth_master_user_list_init(). These checks can currently be enabled only on a patched clang: http://llvm.org/bugs/show_bug.cgi?id=6786 [c93ca5e46a8a] 2012-06-22 Timo Sirainen * doc/man/Makefile.am: Makefile: Removed unnecessary code [e0cc3fb5dc64] 2012-06-21 Timo Sirainen * src/imap/cmd-append.c, src/lib-imap/imap-resp-code.h: lib-imap: Added IMAP_RESP_CODE_UNKNOWN_CTE [41e6c2a4a36b] * src/imap/cmd-fetch.c: imap: Compile fix due to recent changes [64b0c9851781] * src/lib-mail/Makefile.am: Makefile: Removed message-binary-part.h which isn't finished yet. [9b9c1d9fc995] * src/imap/imap-fetch-body.c: imap: Removed unnecessary code. [3a8ada7302a3] * src/imap/cmd-select.c, src/imap/imap-client.h, src/imap/imap-fetch- body.c, src/imap/imap-fetch.c, src/imap/imap-fetch.h: imap: Rewrote FETCH command to use imap-msgpart API. [df8ba29d9eb3] * src/lib-imap-storage/Makefile.am, src/lib-imap-storage/imap-msgpart- url.c, src/lib-imap-storage/imap-msgpart.c, src/lib-imap-storage /imap-msgpart.h, src/lib-storage/mail-storage-private.h: lib-imap-storage: imap-msgpart rewrite and API change. The new API allows first parsing the validity of section strings and later relying on them being valid without having to re-parse it. The implementation also fixes a few things and adds "partial fetch cache". [6fb61872b30a] * src/lib-imap/imap-quote.c: lib-imap: imap_quote() now skips any CR/LF characters from input. [bf8a885c2077] * src/lib-mail/Makefile.am, src/lib-mail/istream-nonuls.c, src/lib- mail/istream-nonuls.h: lib-mail: Added istream-nonuls for converting NUL bytes to something else. [3a267dec53ca] * src/lib-storage/index/index-status.c: lib-storage: Fixed mailbox_status.unseen count for private indexes. [73ee8d00888d] 2012-06-20 Timo Sirainen * src/imap/cmd-copy.c: imap MOVE: Don't commit expunge transaction before the copy transaction has succeeded. [344bd3d47ced] * src/lib-imap/imap-parser.c: imap parser: literal8 flag was handled in opposite way. [c14c58bedafe] * src/imap/cmd-copy.c, src/imap/imap-commands.c, src/imap/imap- commands.h: imap: Implemented MOVE extension. [3a53a2f7927a] * src/plugins/quota/quota-storage.c: quota: Ignore quota when handling mailbox_move(). [0a2126680120] * src/plugins/acl/acl-mailbox.c: acl: Optimize failing mailbox_move() when expunge right is missing. [544dc10d4b04] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/lib-storage/mail-storage.h: lib-storage: Added mailbox_move(), which is basically copy+expunge. [8d596b5adbab] * src/lib-mail/istream-binary-converter.c, src/lib-mail/test-istream- binary-converter.c: istream-binary-converter: Added maximum memory usage limit for header parsing. [347c2ca867b7] * src/imap/cmd-append.c: imap: Fixes to handling BINARY APPENDs. [4d7dc53d89e7] * src/imap/cmd-append.c: imap: Fixed CATENATE support to send "+ OK" for literals. [4bcbb3ff9e35] * src/imap/cmd-append.c: imap: Implemented BINARY extension support for APPEND/CATENATE. [284fdbbeb262] * src/lib-test/test-common.c: lib-test: Fixed test istream [e84f49c08458] * src/lib-imap/imap-arg.h, src/lib-imap/imap-parser.c, src/lib-imap /imap-parser.h: imap parser: Added support for parsing literal8 (for BINARY extension) [68a8b650578e] * src/lib-mail/Makefile.am, src/lib-mail/istream-binary-converter.c, src/lib-mail/istream-binary-converter.h, src/lib-mail/test-istream- binary-converter.c: Added istream-binary-converter to convert binary MIME parts to base64. [7b1378fe8820] * src/lib-mail/message-parser.c, src/lib-mail/message-parser.h: message parser: Added MESSAGE_PARSER_FLAG_INCLUDE_BOUNDARIES flag. [6846c2e50eba] * src/lib-mail/message-parser.c: message parser: Fixed infinite loop when parsing a specific message. [217fe26a3176] * src/lib-mail/message-header-parser.c: message header parser: Don't skip header if header name is longer than input buffer. We'll instead now just return the name in smaller blocks with no_newline=TRUE. This allows the caller to reconstruct the exact same message. [49607e4a97d4] * src/lib-mail/message-header-parser.c: message header parser: Fixed handling very long multiline headers. If the header's line fit exactly to input stream's buffer so that the parser couldn't see the following character, it assumed that the header ended. [8a4e5e5d82b5] * src/lib-mail/message-parser.c: message parser: Fixes to handling CRLF linefeeds. An extra CR could have been left to the end of a MIME part that belonged to its --boundary. [c34d4e3ff342] 2012-06-16 Timo Sirainen * doc/example-config/conf.d/10-auth.conf: example-config: Refer to ssl=required in disable_plaintext_auth setting. [27f769be0f85] 2012-06-11 Timo Sirainen * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-transaction-export.c, src/lib-index/mail- index-transaction-finish.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index-transaction-view.c, src/lib-index/mail-index.h, src /lib-index/mail-transaction-log.h, src/lib-index/test-mail-index- transaction-finish.c, src/lib-index/test-mail-index-transaction- update.c, src/lib-storage/index/Makefile.am, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index-sync- private.h, src/lib-storage/index/index-sync-pvt.c, src/lib- storage/index/index-sync.c, src/lib-storage/index/index- transaction.c, src/lib-storage/index/shared/shared-list.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox-list- maildir.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mailbox-list-private.h, src/lib- storage/mailbox-list.c, src/lib-storage/mailbox-list.h: shared mailboxes: Per-user flags can now be stored in private index files. This can be enabled by adding e.g.: mail_location = mdbox:/var/shared/mdbox:INDEXPVT=~/mdbox/shared [dbd42f7198eb] 2012-06-05 Timo Sirainen * src/doveadm/dsync/Makefile.am: Makefile: Added more missing dsync*.h files [7d0ce7586c36] 2012-06-04 Timo Sirainen * src/doveadm/dsync/Makefile.am: Makefile: Added missing dsync-mail.h [657d8360cd48] * src/doveadm/dsync/Makefile.am: Makefile: Added missing dsync-mailbox.h [83b99e13ba47] 2012-06-02 Timo Sirainen * src/imap/cmd-append.c: imap: Code cleanup and error handling fixes for CATENATE [848be27099c8] * src/imap/cmd-append.c, src/lib-imap-storage/imap-msgpart-url.c, src /lib-imap-storage/imap-msgpart-url.h, src/lib-imap-storage/imap- msgpart.c, src/lib-imap-storage/imap-msgpart.h, src/lib-imap/imap- url.c, src/lib-imap/imap-url.h, src/lib-imap/test-imap-url.c, src/lib/uri-util.c, src/lib/uri-util.h: Error handling API changes to previous IMAP URL related changes. [27c8a6c9088d] 2012-06-02 Stephan Bosch * src/lib-auth/auth-master.c, src/lib-auth/auth-master.h, src/lib- storage/mail-storage-service.c, src/lib-storage/mail-user.h: Adds 'anonymous' field to struct mail_user; derived indirectly from userdb extra fields. Depends: none [e445670e7332] * README, configure.in, src/imap/cmd-append.c: imap: Implemented CATENATE extension. [5344ff4215b4] * configure.in, src/Makefile.am, src/imap/Makefile.am, src/imap/imap- fetch-body.c, src/lib-imap-storage/Makefile.am, src/lib-imap-storage /imap-msgpart-url.c, src/lib-imap-storage/imap-msgpart-url.h, src /lib-imap-storage/imap-msgpart.c, src/lib-imap-storage/imap- msgpart.h, src/lib-storage/Makefile.am: Created lib-imap-storage for IMAP-specific functionality that uses lib-storage. This is done to prevent introducing dependencies on lib-storage in lib-imap. It contains IMAP message part access functionality, including URL-based access. [07e6ca397a72] * src/lib-imap/Makefile.am, src/lib-imap/imap-url.c, src/lib-imap /imap-url.h, src/lib-imap/test-imap-url.c: lib-imap: Added IMAP URL parser. Includes support for IMAP URLAUTH URLs. Includes extensive testsuite. Creation of IMAP URL string from struct data is not implemented and deferred to a future patch when this functionality is needed. [9eef4f7b0187] * src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h: imap-parser: Added IMAP_PARSE_FLAG_INSIDE_LIST flag. Adds mode flag to IMAP parser which makes it assume it is inside a (...) list, making ')' equal to EOL and '\n' an error. [c54dd35e1c0e] * src/lib/Makefile.am, src/lib/istream-chain.c, src/lib/istream- chain.h: Added chain istream. This is a nephew of the concat stream with the difference that new child streams can be added dynamically. [2d9b13930a6a] * src/lib/Makefile.am, src/lib/uri-util.c, src/lib/uri-util.h: liblib: Added generic URI parsing functions. [ba36e4380cf4] * src/lib/Makefile.am, src/lib/iso8601-date.c, src/lib/iso8601-date.h, src/lib/test-iso8601-date.c, src/lib/test-lib.c, src/lib/test-lib.h: Adds ISO8601/RFC3339 date format parsing and construction support. Interface is somewhat based on message date parser in src/lib-mail, but it also provides access to struct tm. [21d67121985a] 2012-05-22 Timo Sirainen * TODO: TODO updated [8bb23c123ea3] * src/doveadm/doveadm-settings.c, src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain- mailbox-tree-sync.c, src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync- brain-mails.c, src/doveadm/dsync/dsync-brain-msgs-new.c, src/doveadm/dsync/dsync-brain-msgs.c, src/doveadm/dsync/dsync-brain- private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync- brain.h, src/doveadm/dsync/dsync-data.c, src/doveadm/dsync/dsync- data.h, src/doveadm/dsync/dsync-deserializer.c, src/doveadm/dsync /dsync-deserializer.h, src/doveadm/dsync/dsync-mail.c, src/doveadm/dsync/dsync-mail.h, src/doveadm/dsync/dsync-mailbox- export.c, src/doveadm/dsync/dsync-mailbox-export.h, src/doveadm/dsync/dsync-mailbox-import.c, src/doveadm/dsync/dsync- mailbox-import.h, src/doveadm/dsync/dsync-mailbox-state-export.h, src/doveadm/dsync/dsync-mailbox-state.c, src/doveadm/dsync/dsync- mailbox-state.h, src/doveadm/dsync/dsync-mailbox-tree-fill.c, src/doveadm/dsync/dsync-mailbox-tree-private.h, src/doveadm/dsync /dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h, src/doveadm/dsync/dsync- mailbox.h, src/doveadm/dsync/dsync-proxy-client.c, src/doveadm/dsync /dsync-proxy-server-cmd.c, src/doveadm/dsync/dsync-proxy-server.c, src/doveadm/dsync/dsync-proxy-server.h, src/doveadm/dsync/dsync- proxy.c, src/doveadm/dsync/dsync-proxy.h, src/doveadm/dsync/dsync- serializer.c, src/doveadm/dsync/dsync-serializer.h, src/doveadm/dsync/dsync-slave-io.c, src/doveadm/dsync/dsync-slave- pipe.c, src/doveadm/dsync/dsync-slave-private.h, src/doveadm/dsync /dsync-slave.c, src/doveadm/dsync/dsync-slave.h, src/doveadm/dsync /dsync-transaction-log-scan.c, src/doveadm/dsync/dsync-transaction- log-scan.h, src/doveadm/dsync/dsync-worker-local.c, src/doveadm/dsync/dsync-worker-private.h, src/doveadm/dsync/dsync- worker.c, src/doveadm/dsync/dsync-worker.h, src/doveadm/dsync/test- dsync-brain-msgs.c, src/doveadm/dsync/test-dsync-brain.c, src/doveadm/dsync/test-dsync-common.c, src/doveadm/dsync/test-dsync- common.h, src/doveadm/dsync/test-dsync-proxy-server-cmd.c, src/doveadm/dsync/test-dsync-proxy.c, src/doveadm/dsync/test-dsync- worker.c, src/doveadm/dsync/test-dsync-worker.h: Initial version of dsync rewrite. * doveadm backup not implemented at all yet * syncing mailbox renames is somewhat broken (at least renaming \noselect mailboxes) * saving/restoring "state" is implemented by dsync brain, but not by doveadm. this should be easy to do, just need to figure out how the replication code wants it. [b2076acc3715] 2012-05-04 Timo Sirainen * src/lib-storage/index/index-transaction.c, src/lib-storage/mail- storage.h: lib-storage: Added MAILBOX_TRANSACTION_FLAG_SYNC flag [5b17dc1f8313] 2012-05-22 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c: dbox: Don't reset index when mailbox_update() changes UIDVALIDITY. [924b0d57338c] 2012-05-03 Timo Sirainen * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index- transaction.c, src/lib-index/mail-index.h, src/lib-index/mail- transaction-log-append.c, src/lib-index/mail-transaction-log.h, src /lib-index/test-mail-transaction-log-append.c: Added MAIL_INDEX_TRANSACTION_FLAG_SYNC [4b1309d171ff] 2012-05-22 Timo Sirainen * src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction-finish.c, src/lib-index/mail-index-transaction-private.h, src/lib-index/mail- index-transaction-sort-appends.c, src/lib-index/mail-index- transaction-update.c, src/lib-index/mail-index-transaction-view.c, src/lib-index/mail-index.h, src/lib-index/test-mail-index- transaction-update.c, src/lib-storage/index/cydir/cydir-sync.c, src /lib-storage/index/imapc/imapc-sync.c, src/lib-storage/index/index- sync-changes.c, src/lib-storage/index/index-sync.c, src/plugins/virtual/virtual-sync.c: Don't write "keyword reset" records to transaction log anymore. These are a bit problematic for dsync's keyword merging to handle. [2e7d718609fd] * src/lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.h: lib-index: Added mail_transaction_log_view_set_all() [fead3400c379] * src/lib-index/mail-index-sync-update.c: lib-index: Don't log an error if UIDVALIDITY changes. Normally this should be done by backend only by resetting the index, but it can be done also by dsync. [ad6aa4e042f5] 2012-05-20 Timo Sirainen * src/auth/auth-request-handler.c, src/director/director-test.c, src /lib-storage/index/imapc/imapc-mailbox.c, src/lib-storage/index /index-mailbox-check.c, src/lib/ioloop.c, src/lib/ioloop.h, src/plugins/fts/fts-indexer.c, src/plugins/replication/replication- plugin.c: Use timeout_add_short() for sub-second timeouts. Fail at compile time if timeout_add() is <1s. In future timeout_add() could perhaps also be made less precise, so that it would try to group timeouts to run around at the same time. [a47c95872745] * Makefile.am, configure.in, dovecot-config.in.in, src/auth/auth- request.c, src/auth/auth-request.h, src/imap-login/client.c, src /imap-login/imap-proxy.c, src/imap/cmd-fetch.c, src/imap/imap- client.c, src/imap/imap-client.h, src/lib-index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib-mail/message-parser.c, src/lib-storage/index/pop3c/pop3c-client.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib/network.c, src/lmtp/commands.c, src/login- common/Makefile.am, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/client-common.h, src /login-common/login-proxy.c, src/login-common/login-proxy.h, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: Merged changes from v2.1 tree. [fbb1ecb9b888] * src/director/director-connection.c: director: When we find unwanted connection, wait for 10s for it to disconnect us, not 10ms. [dbe6d05fd595] * src/lib-master/anvil-client.c: lib-master: Anvil reconnect timeout should be 5 seconds, not 5 milliseconds. [1c2c1d75d3b2] 2012-05-19 Timo Sirainen * src/auth/auth-request.c: auth: Fixed crash with DIGEST-MD5 when attempting to do master user login without master passdbs. [23543c407e81] * src/plugins/expire/expire-plugin.c: expire: Handle dict errors. Don't crash if lookup fails. Based on patch by Michal Grzedzicki [8f72002cb394] * src/director/director-connection.c, src/director/director-host.c, src/director/director-host.h, src/director/director.c, src/director/director.h, src/director/doveadm-connection.c, src/director/main.c, src/doveadm/doveadm-director.c: director: Implemented ability to remove directors from a running ring. Also added doveadm command for adding a new director to a running ring. [42cca8a1d179] * src/director/director-connection.c: director: Don't crash with quickly disconnecting incoming director connections. [40f958c7643b] * src/lib-storage/mail-storage-service.c: lib-storage: If chroot is used and mail_debug=yes, log the chroot path. [a7dd1edee318] 2012-05-17 Timo Sirainen * update-version.sh: update-version.sh: Use mv -f to avoid questions in some systems. [bb572accd1af] 2012-05-16 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-save.c: sdbox: Avoid using too many fds when copying messages. This happened at least with quota plugin. [6d11513cdd0d] * src/login-common/client-common-auth.c, src/login-common/client- common.c, src/login-common/client-common.h: login: If user is disabled or password expired, say it in logout reason. [ca0fef559d43] * src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth /auth-request.h: auth: If user is disabled or password expired, tell about it to auth-client. [d6f06ce44b0b] 2012-05-15 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: mailbox_update() didn't look at the latest index data. So setting min_next_uid, min_first_recent_uid or min_highest_modseq may have actually shrank them. [7dd1dd742825] 2012-05-14 Timo Sirainen * doc/example-config/conf.d/20-pop3.conf, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: pop3: Added pop3_uidl_duplicates setting. [3a095892242b] * src/auth/db-ldap.c: ldap: If attributes contain ldapAttr=key=template%$ and ldapAttr doesn't exist, skip the field. This makes it work again the same as with v2.0. [4bbc12a87a29] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: If dovecot-uidlist can't be opened as read-write, try opening as read-only. [7f238016db81] * src/master/service-listen.c: master: Fix to systemd support Patch by Joop Boonen [20d98b848f37] * src/lib-master/mountpoint-list.c: lib-master: Added more default ignore prefixes [fac49069993a] 2012-05-10 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c: imapc: Use imapc_list_prefix also for listing subscriptions [2f7406e838b0] 2012-05-09 Timo Sirainen * src/master/service-listen.c: master: systemd socket verification wasn't actually being called normally. [17b20880453c] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c: lib-storage: Added a mailbox.synced flag, which is set when mailbox sync has succeeded. [eab6ce7a5ad6] * src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox- list.h: lib-storage: mailbox_list_get_storage_name/_get_vname() are now public. [5a4eb9955d29] 2012-05-08 Timo Sirainen * src/lib/test-bsearch-insert-pos.c: Compiler warning fixes [328a3cd837f8] * src/auth/db-checkpassword.c, src/auth/db-checkpassword.h, src/auth /passdb-checkpassword.c, src/auth/userdb-checkpassword.c, src/lib- storage/mail-search-register-human.c, src/lib-storage/mail-search- register-imap.c, src/lib/test-array.c, src/lib/test-base64.c: Compiler warning fixes [cb80c575b00c] * src/lib-storage/mailbox-list.c: lib-storage: Extra check to mail_shared_explicit_inbox=no [17a635cbb63d] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Fixes to mail_shared_explicit_inbox=no [8cdc7c13d6f2] 2012-05-07 Timo Sirainen * src/lib-storage/mail-storage.c: lib-storage: Don't auto-drop namespaces with only INBOX shared and mail_shared_explicit_inbox=no [41f2bcb43dad] * src/plugins/acl/acl-shared-storage.c: acl: Fixed listing users who have only INBOX shared and mail_shared_explicit_inbox=no [20c9446e537e] * .hgsigs: Added signature for changeset 7c249e2a82a9 [d3acee47cee4] * .hgtags: Added tag 2.1.6 for changeset 7c249e2a82a9 [4fc570461e88] * NEWS, configure.in: Released v2.1.6. [7c249e2a82a9] [2.1.6] * Makefile.am: Makefile: Remove dovecot-config on make uninstall [f7bb8d105710] 2012-05-06 Timo Sirainen * src/auth/auth-request.c: auth: Previous change caused crashing with userdb lookups [9da556b9a902] 2012-05-05 Timo Sirainen * src/auth/auth-request.c: auth: Added %{session} variable for passdb/userdb queries. [3d8a25a4394d] 2012-05-04 Timo Sirainen * src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl- cache.c: acl: Memory leak fixes [5df8bac9a0c6] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Memory leak fix [2a42fe2d42f3] * src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail- user.c: shared mailboxes: If successful userdb lookup doesn't return home, fallback to mail_home setting for %%h. [6dabd9545d48] * src/master/service-listen.c: systemd: If a socket is enabled in systemd but not in Dovecot config, close it. Based on patch by Michal Hlavinka. [4a3bf567da54] * doc/example-config/conf.d/10-mail.conf, src/lib-storage/mail- storage-settings.c, src/lib-storage/mail-storage-settings.h, src /lib-storage/mailbox-list.c: Added mail_shared_explicit_inbox setting. [40a544fc4778] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-multi/mdbox-purge.c: dbox: Metadata read buffer's size was supposed to be unlimited, not zero. This was broken by 59f5238c6e61, which itself had fixed another bug. [fa6662ab4df3] * src/doveadm/doveadm-mutf7.c: doveadm mailbox mutf7: If input data is invalid, exit with EX_DATAERR. [3689eced9381] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Removed broken "are we saving?" check from copy event handling. [b89b98ebe52b] * src/plugins/notify/notify-storage.c: notify plugin: mailbox_save_using_mail() now sends "save" events, not "copy". [8a4d314ef7d0] * src/lib-storage/mail-storage.c: lib-storage: Don't set mail_save_context->saving=TRUE when copying via save. [5d9a5011c1bf] 2012-05-03 Timo Sirainen * src/lib-index/mail-index-transaction-private.h, src/lib-index/mail- index-transaction-update.c, src/lib-index/mail-index-transaction.c, src/lib-index/test-mail-index-transaction-update.c: lib-index: Fixed MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES with concurrent keyword changes. If session 1 saw keywords="a", session 2 added keyword "b" and session 1 (without the client syncing session) replaced flags with "a", the "b" keyword wasn't removed. [5d45870e2e4a] 2012-04-27 SATOH Fumiyasu * src/lib-storage/index/index-search-private.h, src/plugins/stats /stats-plugin.h: Fix the build failure on AIX [d5bbb1d203c5] 2012-05-01 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: shared/$user/INBOX is now visible only as shared/$user [3bb6d153c9c3] * src/lib/aqueue.c: aqueue: Reversed recent changes, they didn't work as intended. [99a30e40dce9] 2012-04-30 Timo Sirainen * src/lib-storage/index/index-status.c: Increased initial memory pool size. [6c381b3e0a3d] * src/lib/seq-range-array.c, src/lib/test-seq-range-array.c: seq_range_array_add(): Ranges weren't always merged when they could have. This didn't break anything, but it used up more memory than necessary. [bac5e1dae4ed] 2012-04-28 Timo Sirainen * src/lib/aqueue.c, src/lib/array.c, src/lib/array.h: Code cleanup: Use array_count_i() to calculate array's size internally. [2f776ca73cef] * src/auth/auth-request.c, src/auth/auth-request.h, src/lib-auth/auth- client-request.c, src/lib-auth/auth-client.h, src/login-common /login-settings.c, src/login-common/sasl-server.c: auth: Include session ID in log line prefix. [629afda8e29d] * src/lib-storage/index/index-status.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c: lib-storage: Allocate MAILBOX_METADATA_CACHE_FIELDS from a new metadata mempool. [3b4c336ed01b] 2012-04-26 Timo Sirainen * src/plugins/acl/acl-backend-vfile.c: acl: Fixed looking up parent mailbox name with different namespace vs. layout separators. [e8b80e0767ac] 2012-04-25 Timo Sirainen * src/lib-storage/mail-user.c: lib-storage: Fixed expanding path that ends with "~/" For example mail_location=maildir:~/ would actually try to create '~' directory. [249c1c89d9d3] * src/auth/passdb-static.c: passdb static: Don't crash if password/nopassword isn't set. [c2038fb33633] * doc/example-config/conf.d/10-ssl.conf, src/login-common/login- settings.c, src/login-common/login-settings.h, src/login-common/ssl- proxy-openssl.c: *-login: Added ssl_require_crl setting. [008c1afeba3c] * src/plugins/stats/stats-plugin.c: stats plugin: Open /proc/self/io only once, reopening is unnecessary. [96800058f29b] * src/auth/auth-request.c, src/login-common/client-common-auth.c, src /login-common/client-common.h, src/login-common/login-proxy.c, src /login-common/login-proxy.h: SSL proxying: Remote's host never matched cert, because auth process changed it to IP. Now the "host" parameter isn't changed, but a new optional "hostip" parameter contains the IP address where to connect to. [773ca397d799] * src/login-common/ssl-proxy-openssl.c: *-login: Don't fail client's certificate if CRL is expired. This seems to be returned also when there is no CRL.. [c2b7767afc38] * src/login-common/login-proxy.c, src/login-common/ssl-proxy- openssl.c, src/login-common/ssl-proxy.c, src/login-common/ssl- proxy.h: *-login: If client certificate isn't valid, log the reason why. [36cde186aec6] * src/auth/auth-request.c: auth: Fixed handling multiple passdbs where some use proxying and others don't. [3893f2b7e4ab] * src/auth/auth-request-handler.c: auth: Minor code cleanup. [26bf68448638] * src/lib-storage/index/imapc/imapc-list.c: imapc: List INBOX for inbox=yes namespace even imapc_list_prefix is set. [aba344bb85f3] * src/lib-storage/mailbox-list-iter.c: lib-storage: Make sure both MAILBOX_CHILDREN and MAILBOX_NOCHILDREN flags aren't set. [e928c1575689] * src/doveadm/dsync/dsync-worker-local.c: dsync: Treat \Nonexistent mailboxes the same as \Noselect mailboxes. [cb78154a9c0c] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Fixed a memory leak when verifying certificate name. This mainly mattered when proxying with SSL to remote server. [d2b01dcce79f] 2012-04-24 Timo Sirainen * src/doveadm/doveadm-mail-expunge.c: doveadm expunge -d: If mailbox is deleted, unsubscribe it also [b1653b7bd165] * src/plugins/trash/trash-plugin.c: trash plugin: Fixed behavior when quota is already over limit. [dd3798681283] * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: Set to quota transaction how many bytes/messages we're over quota. [ec8564741aa8] 2012-04-23 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c: imapc: Fixed imapc_list_prefix setting to work with INBOX. [6607e35dd8d2] * .hgsigs: Added signature for changeset 469cee314d9c [6a2ce99e39d4] * .hgtags: Added tag 2.1.5 for changeset 469cee314d9c [9fff96c9cfcd] * NEWS, TODO, configure.in: Released v2.1.5. [469cee314d9c] [2.1.5] * src/lib/test-strfuncs.c: Make static analyzer happier. [27415a4568b3] * src/lib-index/mail-index-modseq.c, src/lib-index/mail-index- modseq.h: lib-index: Added mail_index_have_modseq_tracking() needed for previous commit. [972b296db20a] * src/lib-storage/index/index-status.c: imap: While modseq tracking hasn't been enabled, return mailbox as NOMODSEQ. It would be possible to avoid this by always keeping track of highestmodseq, but that requires changing the index format a bit. [1222b7e38bf3] * src/lib-storage/mailbox-list.c: listescape: Don't unescape namespace prefix. [63af3274fb6f] * src/plugins/quota/quota-count.c: quota: Recalculation now also counts the namespace prefix mailbox's quota if it exists. [4c8f79d1f9f1] * src/lib-storage/index/imapc/imapc-list.c: imapc: Don't list mailboxes that don't match list patterns. [f24cdf8b0624] * src/lib-storage/index/imapc/imapc-list.c, src/lib-storage/mailbox- tree.c, src/lib-storage/mailbox-tree.h: imapc: Nonexistent mailboxes were returned as selectable mailboxes. [4cea936d57f2] 2012-04-20 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc /imapc-settings.h: imapc: Added imapc_list_prefix setting to limit what mailboxes are accessed. [03f44d61d582] * src/director/director-connection.c: director: Delay disconnecting director after sending CONNECT command. The director may not otherwise read the CONNECT. [d27b743c9921] * src/director/director-connection.c: director: Forward DIRECTOR commands to other connected directors. They can use it to realize that the director was restarted and its sequences start from 1. [1856e9085f94] * src/director/director.c, src/director/director.h: director: Try harder to connect to ring before thinking we're alone. [f880cf0efa0a] * src/director/director.c: director: Director ring needs to be set unsynced immediately even when sycning is frozen. [a5b7dda1db6d] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Fixed listing mailboxes with prefix=INBOX/ [8d0b71fb3e49] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Don't assume '/' hierarchy separator when finding mailbox roots. [a41f64348d0d] * src/director/director-connection.c: director: When another director reconnects, reset its "last received seq". This fixes some problems where HOST updates and others were thought as already being received after the originating director was restarted. [798b5e1609e5] * src/director/director-connection.c, src/director/director-request.c, src/director/director.c, src/director/test-user-directory.c, src/director/user-directory.c, src/director/user-directory.h: director: Removed special (time_t)-1 code, it's not actually needed. Also this fixes a user refreshing issue. [45be27ff3414] * src/director/director-connection.c: director: Minor error message fix [58286c1e272d] * src/director/director-connection.c: director: And crashfix for previous change.. [5d169948b59d] * src/director/director-connection.c: director: Adding 25c941423e42 patch yet again, now it seems to work right. And also fixes detection of outgoing connections that die during handshake sending. [25ca6b6d754a] * src/director/director-connection.c: director: USER sending timeout was higher than it needed to be. The problem was USER sending getting stuck, not the timeout itself.. [10f5456704a7] * src/director/director-connection.c: director: Removed unnecessary error messages. [0c3c4d098842] * src/director/director-connection.c: director: Another fix for stuck handshake. [ce4e1bf7262d] * src/director/director-connection.c: director: Make sure handshaking doesn't get stuck sending USERs. [d9f33d78fa3d] * src/director/director-connection.c: director: Fixed protocol error detection/handling. [293ada796ae6] * src/director/director-connection.c: director: Improved debug handshake message. [ee169584bc44] * src/director/director-connection.c: director: Increased timeout for sending USER data in handshake. [ea5b949a623b] * src/director/director-connection.c: director: Improved error message [8245a97bf36c] 2012-04-19 Timo Sirainen * src/director/director-connection.c: director: Reverted previous change, it didn't work properly. [9ef4dee0792f] * src/director/director-connection.c: director: Don't delay reading input from remote connection during handshake. [25c941423e42] * src/lib/ioloop.c: timeout_reset(): Don't use cached ioloop_timeval. Timeouts are sometimes reset after a long running callback. In those cases a cached timeval may be too far behind. [266521d59e2c] * src/director/director.c: director: Decreased timeout for resending lost SYNC request. [3acc1451ab56] * src/anvil/anvil-connection.c, src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-stream.c, src/auth /auth-worker-client.c, src/auth/db-checkpassword.c, src/auth/passdb- blocking.c, src/auth/passdb-cache.c, src/config/config-connection.c, src/dict/dict-commands.c, src/director/director-connection.c, src/director/director-test.c, src/director/doveadm-connection.c, src/director/login-connection.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-proxy.c, src/doveadm/doveadm-who.c, src/ipc/ipc-connection.c, src/lib-auth /auth-master.c, src/lib-auth/auth-server-connection.c, src/lib- master/master-login-auth.c, src/lib-master/master-login.c, src/lib- master/master-service-settings.c, src/login-common/login-proxy.c, src/util/script-login.c: Use t_strsplit_tab() wherever possible [fc8031c5e691] * src/lib/strfuncs.c, src/lib/strfuncs.h, src/lib/test-strfuncs.c: Added t_strsplit_tab() [7eb9688c266f] * src/director/user-directory.c: director: Never set user's timestamp higher than our ioloop_time. [9104a9074a5a] * src/director/Makefile.am, src/director/director-connection.c, src/director/director-request.c, src/director/director.c, src/director/test-user-directory.c, src/director/user-directory.c, src/director/user-directory.h: director: Optimized adding users to linked list during handshake. [0b4295b48941] * src/director/director-connection.c: director: Increased timeouts. [110673e82868] * src/lib-storage/index/raw/raw-storage.c: raw storage: Name autocreated namespace as "raw-storage". [90d7364b8c9d] * src/lmtp/commands.c: LMTP: Don't add Return-Path: header when proxying. The backend also adds it and we don't want duplicates. [85b3975c9008] * src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h: doveadm expunge: Added -d parameter to delete mailbox if it's empty after expunging. [782570f644f7] * src/lib-storage/index/index-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h: lib-storage: Added mailbox_delete_empty(). [2d8bafd11569] * src/lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/maildir/maildir-sync.h, src/lib-storage/index/maildir /maildir-util.c: maildir_very_dirty_syncs=yes: Try harder to avoid readdir()ing. [ff07827db69a] 2012-04-18 Timo Sirainen * src/auth/auth-settings.c: auth: Changed auth-userdb socket's default user to $default_internal_user. This makes the defaults more usable for director setups. [bda92bf286a0] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: doveadm fts rescan now resets the last-indexed-uid fields to allow reindexing. [d145ea6f7061] * src/plugins/trash/trash-plugin.c: trash plugin fixes [51b40cffb628] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Use SHA1 of message header for guid-forced instead of the entire body. [ea7ca6330491] * src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc /imapc-settings.h: imapc: Added guid-forced feature to use SHA1(message) as GUID. [16ed300484c9] 2012-04-17 Timo Sirainen * src/login-common/client-common.c: login: Log message change: Tried to use s/disabled/disallowed/ plaintext auth [d6376942d9a6] 2012-04-16 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: login: Fixed per-IP ssl_ca setting inside local/remote block. [b60701dd4751] 2012-04-12 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: login: Another attempt at fixing SSL memory leak. [85ad4baedd43] * src/login-common/ssl-proxy-openssl.c: login: Reverted memory leak fix, because it broke some SSL setups? [f80f18d0ffa3] 2012-04-11 Timo Sirainen * src/lib-storage/index/index-thread.c, src/login-common/ssl-proxy- openssl.c, src/plugins/quota/quota.c: Memory leak fixes. [584bd77c38fd] * src/lib-storage/mailbox-list-iter.c: lib-storage: LIST with mailbox {} settings incorrectly set subscribed-flags. [9cc178c7afb3] * src/lib-dict/dict-file.c: dict file: Fixed assert-crash with fcntl/flock lock method. [4fb683720a06] * src/lib-storage/index/mbox/mbox-storage.h, src/lib- storage/index/mbox/mbox-sync.c: mbox: Make sure each mailbox creation generates a different UIDVALIDITY. [85966c47f172] * src/lib-storage/index/index-storage.c: mbox: Deleting a mailbox didn't delete its index files. [c67ea0d68b77] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: LIST may have shown mailbox as \HasNoChildren when it did. This probably only happened with mbox. [b016e771d8ab] * src/lib/data-stack.c, src/lib/mempool-alloconly.c, src/master /master-settings.c: --enable-devel-checks: If DEBUG_SILENT environment is set, hide "Growing pool" warnings. [7ec8f6515b0d] 2012-04-10 Timo Sirainen * src/lib-dict/dict-file.c: dict file: Bugfix for previous lock change and changed its configuration syntax. [bf5ae73e9475] * src/lib-dict/dict-file.c: dict file: Optionally use fcntl/flock locking, instead of dotlocks. [a1c0e4046d81] * src/lib-storage/mail-user.c: lib-storage: mail_user_try_home_expand() now looks up home only when needed. Before a recent code cleanup the lookup was always done, but if the home didn't exist it still just happened to return success. The cleanup changed it to return failure, which broke the original behavior. [20e1aa322b1e] * src/lib-storage/index/pop3c/pop3c-mail.c: pop3c: "TOP msgnum 0" was missing the 0 parameter. [0b59dbb1a288] * src/lib-storage/index/pop3c/pop3c-client.c: pop3c: Removed extra "R " prefix from POP3 server error messages. [35e232e961d3] 2012-04-09 Timo Sirainen * .hgsigs: Added signature for changeset 2c21c940e19d [97cba128896f] * .hgtags: Added tag 2.1.4 for changeset 2c21c940e19d [1fe529f50259] * NEWS, configure.in: Released v2.1.4. [2c21c940e19d] [2.1.4] * src/director/director-connection.c: director: Fixed disconnecting unwanted connection. [3771ff9c04d2] * src/lib-storage/mail-storage.c: lib-storage: If mailbox deletion crashed, undelete the mailbox when opening it. The deletion is assumed to be crashed if it was started over 5 minutes ago. [a109580dea25] 2012-04-03 Timo Sirainen * src/lib-index/mail-transaction-log-file.c: lib-index: Minor code cleanup. [30f8ef8696f0] 2012-04-09 Timo Sirainen * src/lib-storage/mail-user.c: lib-storage: Set mail_user.service earlier. [2bf504b33d64] * src/imap/cmd-fetch.c: imap: Don't allow FETCH items list to be empty. [19e09ab09383] * src/director/director-connection.c, src/director/director-host.h, src/director/director.c, src/director/director.h, src/director /doveadm-connection.c: director: Don't communicate with directors that recently sent invalid input. Track network and protocol failures separately. If a director had sent invalid protocol data within last 60 seconds, don't try to connect to it and don't allow it to connect to us. [366b9e5fc85c] * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c: director: Don't try to send the new SYNC parameter to old director versions. This should allow adding new directors to an old director ring without anything breaking. Once all directors have upgraded they start using the new features. [084064444f89] 2012-04-04 Timo Sirainen * src/lib-storage/mail-user.c: lib-storage: Minor code cleanup. [f267a2b3f424] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Fixed iteration with mail_full_filesystem_access=yes [86e6dc46a80e] * src/lib-storage/list/mailbox-list-maildir-iter.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/list /mailbox-list-subscriptions.h: Maildir++: Return nonexistent subscribed mailbox with nonexistent flag. e.g. LIST (SUBSCRIBED) "" * [f03e81b702a8] * src/lib-storage/mail-search-register-human.c: lib-storage: Human search builder now uses SEARCH_MAILBOX_GLOB only when wildcards are used. [7a414d055b3c] * src/doveadm/doveadm-mailbox-list-iter.c: doveadm: When AND-search includes mailbox names, don't bother going through them by list iteration. [1b6fb6363e7f] * src/doveadm/doveadm-mail-mailbox.c: dovadm mail commands: When mailbox parameter has no wildcard, use SEARCH_MAILBOX. [200af5e4c44f] * src/doveadm/doveadm-mail-mailbox-status.c: doveadm status: Don't include the fields parameter as a mailbox in search query. [19e9a83ca8dc] * src/plugins/pop3-migration/pop3-migration-plugin.c: pop3-migration: Error message improvement. [52ad5a66ee58] * src/lib-storage/mail-namespace.c: lib-storage: Require at least one namespace to be non-hidden [1a33cc98666a] * src/doveadm/doveadm-auth.c: doveadm user: Added -m parameter to show some of the mail settings. [601014feade4] * src/lib-storage/Makefile.am: Makefile: Link libdovecot-storage.so with LINKED_STORAGE_LDADD. [8b91367bc3e1] * src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c: ldap: Removed warning about changed user_* settings. This warning can happen even with recommended settings when symlinking the passdb's ldap config to userdb ldap config. [324df4134049] * src/lib-storage/mail-user.c: lib-storage: When doing a userdb lookup, use the user's service instead of "lib-storage". [2250f11695bc] * src/auth/db-ldap.c, src/auth/db-ldap.h: ldap: Treat =key the same as =key=, just like v2.0. [9930c75b989a] * src/lib-lda/mail-deliver.c: lib-lda: mail_deliver()'s dest_mail now prefetches message's GUID. This fixes copying an already expunged mail with maildir. [c93601fa444e] * src/lib-storage/index/index-mail.h, src/lib-storage/index/maildir /maildir-mail.c: maildir: Remember the mail's GUID/filename in memory once it's fetched once. This allows retrieving it later even if the message gets expunged. [96ce9c0c6f05] * src/lib-storage/index/dbox-single/sdbox-copy.c: sdbox: If copying with link() fails with ENOENT, fallback to trying regular copying. This also fixes missing error reporting for that case. [cc734436c140] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Previous change incorrectly reverted setting parent shared namespace usable. [2bcab08dc994] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Fixed setting usable/unusable flags for shared namespaces. If a namespace doesn't have a root that exists, mark it as unusable. This avoids ACL plugin from autocreating that directory. [4fe357d34faf] * src/doveadm/doveadm-mail-mailbox.c: doveadm mailbox delete: -s parameter wasn't working. [411344f9daf3] * src/lib-index/mail-index-map.c: lib-index: Don't assert-crash with broken extension record intros in log. [47526bf86c57] 2012-04-03 Timo Sirainen * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c, src/director/director.h: director: Redesigned connection handling and error handling. Director now accepts all connections from everywhere and syncs them until the handshaking is finished. At that point it finally decides if this is a connection that should be used as our left/right connection, or if it should be disconnected. This should make connecting more reliable, especially if one of the directors sends broken handshake or has other trouble. [b43ae3805f5f] * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c: director: Handle all commands during handshake. Previously the sender might have sent these commands, but the receiver wouldn't have handled them and instead just disconnected. [544a8c4705e5] * src/director/director-connection.c: director: Improved error logging for handling invalid commands/parameters. [d6cd93e32b37] 2012-04-02 Timo Sirainen * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c, src/director/director.h: director: List of director connections belongs to struct director. [c760ac046203] * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c: director: Changes to PING handling. Use larger ping timeouts. While waiting for sync keep doing rapid pings until the sync is finished, not just once. [168e3b5cb6e8] * src/imap/cmd-list.c: imap: Enabling SPECIAL-USE selection option should also enable the same return option. [7f4c35fcae80] 2012-03-30 Timo Sirainen * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- settings.c, src/lib-storage/index/imapc/imapc-settings.h, src/lib- storage/index/imapc/imapc-storage.h: imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes. [6a8b78450202] * src/plugins/pop3-migration/pop3-migration-plugin.c: pop3-replication: Don't request virtual size from IMAP mailbox, we don't need it. [87cd04f35f82] * src/plugins/pop3-migration/pop3-migration-plugin.c: pop3-migration: Migrate also POP3 ordering. [6df2235fd6af] * src/doveadm/dsync/dsync-data.h, src/doveadm/dsync/dsync-worker- local.c: dsync: Preserve pop3 ordering. This is currently done only when syncing locally, because it's not easy to add more fields for the current dsync proxying protocol in backwards compatible way. dsync redesign should fix this. [7ae930911a74] * src/lib-storage/index/maildir/maildir-save.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h: lib-storage: Added mailbox_save_set_pop3_order() and implemented for Maildir. [82cd7aa65faf] * configure.in, src/plugins/Makefile.am, src/plugins/pop3-migration/Makefile.am, src/plugins/pop3-migration/pop3-migration-plugin.c, src/plugins/pop3-migration/pop3-migration-plugin.h: Added pop3-migration plugin for getting POP3 UIDLs from POP3 server. The idea is to use this with dsync to migrate mails via imapc, but for getting POP3 UIDLs via pop3c. [78317179b4af] * src/lib-storage/index/pop3c/pop3c-storage.c: pop3c: Allow accessing via INBOX, regardless of what namespace it exists in. [8a94981d8040] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Don't crash in iteration if there is no root dir (pop3c). [b7dc140e6b4d] * src/doveadm/dsync/dsync-brain-msgs.c: dsync: Fixed handling messages without GUID. [078697a32109] 2012-03-29 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Added assert + minor code cleanup [7b5b40f64439] 2012-03-27 Timo Sirainen * src/login-common/client-common.c, src/login-common/ssl-proxy- openssl.c, src/login-common/ssl-proxy.c, src/login-common/ssl- proxy.h: *-login: Previous SSL fixes were still broken with service_count=1. [339b1337aab0] 2012-03-26 Timo Sirainen * src/lib-settings/settings-parser.c: lib-settings: Make static analyzer happier. [94286d055872] * src/config/config-filter.c, src/doveadm/doveadm-stats.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/test-dsync- proxy-server-cmd.c, src/imap/imap-sync.c, src/lib-dict/dict-sql.c, src/lib-mail/message-parser.c, src/lib-master/master-login.c, src /lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-sync.c, src /lib-storage/list/subscription-file.c, src/lib/file-cache.c, src/lib/ostream.c, src/lib/process-title.c, src/lib/strfuncs.c, src/lib/test-str-find.c, src/plugins/expire/doveadm-expire.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts-squat/squat- uidlist.c: Changes to make static analyzer happier. [ba1fc76e3a2c] * src/lib-sql/driver-pgsql.c: pgsql: Fixed a potential crash if connection got closed during synchronous query. [e05be9afaed0] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Indexing mail bodies was broken. [bcc5e71650b9] * src/director/director.c: director: Avoid crashing if all directors are removed when reconnecting. There's no way to currently remove directors though, so this couldn't have actually happened. [a71bc8dbe53d] * src/lib/network.c: net_listen(): If bind(ip=any) fails with non-EADDRINUSE, don't crash. [cd7e15b2d575] * src/stats/mail-command.c, src/stats/mail-domain.c, src/stats/mail- ip.c, src/stats/mail-session.c, src/stats/mail-user.c: stats: When freeing memory, make sure we don't crash if some list gets empty. [3980c025805c] * src/lib-storage/mail-storage.c: lib-storage: If trying to copy a message into already deleted mailbox, don't crash. [8897f32939b0] * src/lib/data-stack.c: data-stack: Fixed calling t_push()/t_malloc() before data_stack_init(). [e79496bb09f5] 2012-03-24 Timo Sirainen * src/login-common/ssl-proxy.c: Compiling fix for building without SSL. [8699f3d3c1e4] 2012-03-23 Timo Sirainen * src/auth/auth-request.h, src/lib-imap/test-imap-utf7.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-test/test-common.c, src/lib/strfuncs.h, src/master/main.c: Compiler warning fixes. [4ae85f573c93] * src/login-common/ssl-proxy.c: Fixed compiling without SSL. [f369e76d0867] * doc/example-config/conf.d/10-mail.conf: mail_temp_scan_interval comment update. [24b3de4952b5] * doc/example-config/conf.d/10-mail.conf, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox- storage.h, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib-storage/mail- storage-settings.c, src/lib-storage/mail-storage-settings.h: Added mail_temp_scan_interval setting and changed its default from 8h -> 1w. [370e1f945c01] * src/lib/unlink-old-files.c, src/lib/unlink-old-files.h: unlink_old_files(): Update atime before scan, not after. If Maildir/dbox scanning takes long this makes sure that a lot of processes won't be scanning it in parallel. [091b9f49f24f] * src/lib/network.c: net_getunixcred(): Fixed Solaris to use getpeerucred() properly. [98fd46f8d1ab] * src/lib-mail/message-date.c: lib-mail: message_date_parse() now also accepts '.' separator in hh.mm.ss time. [d4cc57c8a455] 2012-03-22 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c: sdbox: Don't log "Rebuilding index" when another process already did it and we cancel it. [f30437ed63dc] * src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-sync.c, src/lib-storage/index/maildir/maildir- sync-index.c, src/lib-storage/mail-storage-private.h, src/plugins/quota/quota-storage.c: quota: Added a kludge to avoid recalculating quota. [fb70195b5d47] * src/lib-storage/index/index-mail.c, src/plugins/virtual/virtual- mail.c: lib-storage: Don't access mail->box->view, but mail->transaction->view. They may not be the same. In such cases e.g. mail_set_uid() may have accessed a wrong mail. [39db9e4c2283] * src/lib-dict/dict-file.c, src/lib-storage/fail-mailbox.c: Increased initial memory pool sizes. [3cb33e050dc4] * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Fixed a long loop/crash when mdbox is broken during saving. [703380324b71] * src/lib-master/master-service.c: lib-master: Minor memory leak fix on deinit. [bb8d2d74a71d] * src/login-common/client-common.c: imap-login: Memory leak fix. [5ae5c44b1943] * src/login-common/client-common.c, src/login-common/login-proxy.c, src/login-common/main.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.h: *-login: Another crashfix [842e5124038d] * src/login-common/client-common.c, src/login-common/ssl-proxy- openssl.c, src/login-common/ssl-proxy.h: *-login: Fixed crashing when proxying SSL connections to a remote server. [1d23440ccb89] 2012-03-21 Timo Sirainen * src/config/config-filter.c: config: Added a comment [ff5c341f8838] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: lib-settings: settings_parser_apply_changes() now deduplicates SET_STRLIST arrays. This fixes overriding strlist keys in config file filters, e.g.: plugin { foo = general } protocol lda { plugin { foo = lda- specific setting } } [bb8387e6b18f] * src/lib-storage/index/maildir/maildir-save.c: maildir: Avoid duplicate S=size and W=sizes in maildir filenames. This happens with maildir_copy_with_hardlinks=no and when copying a mail with zlib compression enabled. [3599790da3d7] * src/auth/auth-client-connection.c: auth: Don't check client PID in non-login auth sockets. This fixes PID conflict errors when using TCP auth sockets for e.g. MTAs. [23ed09ca847a] * src/imap/imap-commands.c: imap: Handle XLIST command by running LIST command. If the SPECIAL- USE mailboxes are enabled, this results in mostly compatible output. This change allows easily enabling the GMail XLIST extension simply by adding +XLIST to imap_capability setting. [03499202690f] 2012-03-20 Timo Sirainen * src/doveadm/doveadm-mail-import.c: doveadm import: Copy also message flags. [b2a3775c7a87] 2012-03-19 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Renaming non-UTF8 mailbox names wasn't done in all situations. [c77fbfce438d] 2012-03-16 Timo Sirainen * .hgsigs: Added signature for changeset b9adfd52cb66 [063cd2a15056] * .hgtags: Added tag 2.1.3 for changeset b9adfd52cb66 [3df9273f15b4] * NEWS, configure.in: Released v2.1.3. [b9adfd52cb66] [2.1.3] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-multi/mdbox- file.c, src/lib-storage/index/dbox-single/sdbox-file.c: dbox: Reverted recent fstat() avoidance change. It didn't do that, just broke mdbox. [58732d172107] 2012-03-15 Timo Sirainen * src/director/user-directory.c, src/lib-index/mail-cache-fields.c, src/replication/replicator/replicator-queue.c: Compiler warning fixes. [5b05411a81cf] * src/replication/replicator/replicator-brain.c: replicator: Fixed off-by-one-second "do we do a full sync now?" check. [e935ddb5a9fc] * .hgsigs: Added signature for changeset 744e0d7f1b25 [914076de4c48] * .hgtags: Added tag 2.1.2 for changeset 744e0d7f1b25 [67ef6f6d45bf] * NEWS, configure.in: Released v2.1.2. [744e0d7f1b25] [2.1.2] * doc/example-config/dovecot.conf: example-config: Added auth_proxy_self setting. [b2643c587f5b] * src/imap/cmd-list.c: imap: Use mailbox_exists() to find out if namespace prefix is selectable or not. mailbox_list_mailbox() should be treated as an internal function, since ACLs don't apply to it. [65a75939ac2c] * src/lib-storage/mail-storage.c: lib-storage: mailbox_exists() now returns namespace prefix as selectable if it is. [55586f4a86f1] * src/lib-storage/list/mailbox-list-maildir-iter.c: layout=maildir++: Don't list INBOX if it doesn't match the list patterns. [0b01fff98a04] * src/auth/auth.c: auth: If global passdb is missing, don't complain if protocol x and !x { passdb } exists. [8fb3fd391d18] 2012-03-14 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Rename mailbox names that aren't valid UTF-8 to avoid crashes later. [c077ca9bc306] * src/lib-storage/list/mailbox-list-index-sync.c: mailbox_list_index=yes: Don't add autocreated mailboxes to index before they are created. [3550dfc4af29] * src/lib-storage/list/mailbox-list-index.c: mailbox_list_index=yes: Don't crash at deinit (fix to previous change) [316110bd18e0] * src/lib-storage/list/mailbox-list-index.c, src/lib-storage/list /mailbox-list-index.h: mailbox_list_index=yes: Delay opening/creating the index until it's needed. This also fixes an error when trying to create the index before the parent director is created. [0274c4132052] * src/auth/auth-cache.c: auth: Make sure auth cache doesn't break if any cache keys have TABs. [90738a7c7535] * src/auth/Makefile.am, src/auth/auth-cache.c, src/auth/auth- request.c, src/auth/auth-request.h, src/auth/test-auth-cache.c: auth: Fixed auth cache key generation to support %{long} variables [a090cbbe3008] * src/lib/test-var-expand.c, src/lib/var-expand.c, src/lib/var- expand.h: liblib: Added var_get_key_range() [13d4c4f91622] * src/anvil/penalty.c: anvil: s/memcpy/memmove/ for updating checksum list. This may have caused anvil to update penalties wrong. [f94f289ce009] * src/lib/test-primes.c: test-primes: Fixed undefined behavior. [0647b0a1b4e5] * src/config/doveconf.c: doveconf: Dump protocol/local/remote sections even if there was an error earlier. This allows getting a mostly-working config file rather than a truncated one. [b0ef6e05a15d] 2012-03-13 Timo Sirainen * src/lib-storage/mailbox-list-iter.c: lib-storage: mailbox_list_iter_next() now enforces backends not to return mailbox name from data stack. [1883074f9a9d] * src/lib-storage/list/mailbox-list-index-iter.c, src/lib-storage/list /mailbox-list-index.h: mailbox_list_index=yes iteration: Don't allocate returned mailbox names from data stack. This breaks dsync. [6cb102aa5d63] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-multi/mdbox- file.c, src/lib-storage/index/dbox-single/sdbox-file.c: dbox: Avoid unnecessary fstat() call during file creation. [a3b162331cd1] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib/compat.h: lib-storage: Don't log errors if trying to open a mailbox with too long name. Handle ENAMETOOLONG errors the same as ENOENT. [37d6dd0f053b] * src/plugins/fts/fts-storage.c: fts: Another crashfix for recent changes. [352dd32abb8d] * src/director/director-request.c: director: Compiler warning fix [b1c21492f8c9] 2012-03-12 Timo Sirainen * src/stats/mail-session.c: stats: When logging about a session crash, log also its service. [74d3f14dec5a] * src/plugins/fts/fts-storage.c: fts: Crashfix when FTS isn't needed for performing search. [63f3bb8462b4] * src/plugins/fts/Makefile.am, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts-storage.c, src/plugins/fts/fts-storage.h: fts: Added fts_index_timeout setting to abort search if indexing hasn't finished by then. This timeout shows up to client as: tag NO [INUSE] Timeout while waiting for indexing to finish [4dd97a92691a] * src/director/director-request.c: director: Improved request timeout error more. [d27b6724db32] * src/director/director-request.c: director: If request times out, log more information. [1b37d6422905] * Makefile.am: Makefile: Delete dovecot-config on distclean [e75446fc828c] 2012-03-11 Timo Sirainen * src/replication/aggregator/Makefile.am: Makefile: Fixed header filename. [75f1f39c547f] * src/auth/db-checkpassword.c: checkpassword: Compiling fix for some systems [2c5a7cc1023e] 2012-03-10 Timo Sirainen * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed accessing v1.x mbox index files without errors. [1289b79241bb] * src/plugins/imap-stats/imap-stats-plugin.c, src/stats/mail- command.c: stats: Fixes to handling per-command stats updates. [96ad6da5c902] * src/lib-storage/index/index-search.c: lib-storage: Update search's cost more widely and less often. [00887de4ad32] * src/doveadm/doveadm.c: doveadm config: Don't fail on invalid config (e.g. plugin not found) This command is often used in init scripts and such to stop/restart Dovecot. [4a82ff720781] * src/stats/mail-command.c: stats: UPDATE-CMD for an existing command wasn't handled properly. The command's stats themselves weren't updated. Also due to recent change updating session's stats from a command no longer works properly, because the session could also be updated in the middle of the command. [30802a608490] * src/auth/db-checkpassword.c: checkpassword: Set CREDENTIALS_LOOKUP=1 for passdb lookups [495bda325391] * src/auth/db-checkpassword.c, src/auth/passdb-checkpassword.c: checkpassword: Implemented support for credentials lookup. [f7c42aa64381] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth /checkpassword-reply.c, src/auth/db-checkpassword.c, src/auth/db- checkpassword.h, src/auth/passdb-checkpassword.c, src/auth/userdb- checkpassword.c: checkpassword: Escape transferred extra fields properly. [e5ed29ef593e] * src/auth/db-checkpassword.c: checkpassword: Error handling fix [e3c1f3f93add] * src/auth/db-checkpassword.c: checkpassword: If username+password is too large, treat it as regular auth failure. [262ac078a1e4] * src/auth/checkpassword-reply.c, src/auth/db-checkpassword.c, src/auth/db-checkpassword.h, src/auth/passdb-checkpassword.c, src/auth/userdb-checkpassword.c: auth: checkpassword code cleanup. Also fixed some error handling. Removes a lot of copy&pasted code between passdb and userdb. [71b64b7b2e63] 2012-03-08 Timo Sirainen * src/director/director-connection.c, src/director/director-request.c, src/director/director.c, src/director/director.h, src/director/main.c, src/director/notify-connection.c, src/director /user-directory.c, src/director/user-directory.h: director: Avoid user getting redirected to different servers near its expiration. Fixes a problem when user is logging in at the same time on director1 which thinks the user is expired, and on director2 which thinks the user expires only in 1 second. [7a26c427fc78] * src/lib-master/master-login.c: lib-master: Fixed passing request data from login process. [d6fda337af15] * src/imap/main.c: imap: Crashfix when running standalone. [91438eb4fad8] * Makefile.am: Makefile: s/MKDIR_P/mkdir_p/ to make it actually work [8c6ff808902c] 2012-03-07 Timo Sirainen * src/director/director-connection.c, src/director/director.c, src/director/director.h: director: Keep track of the highest supported protocol version in the ring. [334424e7465e] * src/login-common/login-proxy-state.c: login proxy: Handle proxy-notify errors better. If open() fails with ENOENT, it should still be logged as an error. If opening or anything else fails, retry opening the fifo 60 secs. [94de7605f50f] * src/director/notify-connection.c: director: Log a warning if user is refreshed too late. [2026af3cf87b] * src/director/director-connection.c: director: Add more info to "User hash .. is being redirected to two hosts" error. [d048cebc1fd4] * src/imap-login/client.c, src/imap-login/imap-proxy.c, src/imap/imap- client.c, src/imap/imap-client.h, src/imap/main.c, src/lib-master /master-login.c, src/lib-master/master-login.h, src/lib-storage /mail-storage-service.c, src/lib-storage/mail-storage-service.h, src /login-common/client-common.c, src/login-common/client-common.h, src /login-common/sasl-server.c, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: Added a "session ID" string for imap/pop3 connections, available in %{session} variable. The session ID passes through Dovecot IMAP/POP3 proxying to backend server. The same session ID is can be reused after a long time (currently a bit under 9 years). [5bbcf636bbeb] * src/login-common/login-proxy.c: login proxy: Log "disconnecting" message also with login_log_format_elements. [49b832c5de0e] * src/login-common/client-common.c: login_log_format_elements: Allow using %{long_variables} without breaking. [9b78e93e5b71] * src/doveadm/doveadm-mail-server.c, src/doveadm/server-connection.c, src/doveadm/server-connection.h: doveadm: Handle -NOUSER replies from doveadm-server. [9d47d53650be] * src/plugins/fts/decode2text.sh: decode2text: Avoid leaving temp files and hanging child processes. [e540405902f1] 2012-03-05 Timo Sirainen * src/plugins/stats/stats-connection.c: stats: Don't log write()=EPIPE failures. Retry opening the pipe once. [315f0d8cc2b2] * src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h: stats: More changes to send stats while doing long running searches. [721e127e107f] * src/lib-storage/index/index-search.c: lib-storage: When searching with a sort program, don't prefetch any mails. The prefetching probably ends up being pointless. [0c3cb8976e81] * src/pop3/pop3-client.c: pop3: Added assert. [8a47994cd509] * src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h: stats: Update stats once per second for long running nonblocking searches. [d66568d34e40] * src/director/Makefile.am, src/director/director-request.c, src/director/director-settings.c, src/director/director-settings.h, src/director/director.c, src/director/doveadm-connection.c, src/director/notify-connection.c, src/director/user-directory.c, src/director/user-directory.h, src/lib-mail/Makefile.am, src/lib- mail/mail-user-hash.c, src/lib-mail/mail-user-hash.h, src/login- common/Makefile.am, src/login-common/login-proxy.c, src/login-common /login-settings.c, src/login-common/login-settings.h: Added director_username_hash setting to specify what part of the username is hashed. The default is "%u" meaning the full username. Another potentially useful value is "%d" for hashing only the domain (i.e. redirect users from the same domain always to same server so they can safely access each others' shared mailboxes). [817ef4c9f1f3] * src/replication/replicator/replicator-settings.c: replication_max_conns setting is a number, not a time interval. [005bcb8d8d02] * src/replication/aggregator/replicator-connection.c: aggregator: Fixed leaking connections to replicator. [7131eb54e9cf] * src/lmtp/Makefile.am: Makefile: Fixed compiling lmtp with some SSL_LIBS options. [32edf12d7624] * src/doveadm/dsync/doveadm-dsync.c: dsync: Set user.dsyncing=TRUE also for dsync-server. This avoids dsync server immediately triggering another dsync when using replication. [5429dac9830c] * src/doveadm/dsync/dsync-worker-local.c: dsync: If mailbox was expunged empty, the messages may have reappeared. This dependend on what the last UID of the previous mailbox was. [f549cd60fec9] 2012-03-04 Timo Sirainen * src/doveadm/doveadm-mount.c, src/lib-master/mountpoint-list.c, src /lib-master/mountpoint-list.h, src/master/main.c: Don't auto-add mountpoints under /media or /cdrom. [a63651897eac] * configure.in, dovecot-config.in.in, src/auth/Makefile.am, src/doveadm/Makefile.am, src/doveadm/dsync/Makefile.am, src/imap/Makefile.am, src/indexer/Makefile.am, src/lda/Makefile.am, src/lib-storage/Makefile.am, src/lib-storage/index/Makefile.am, src /login-common/Makefile.am, src/plugins/fts-squat/Makefile.am, src/pop3/Makefile.am, src/util/Makefile.am: Makefile: Link with SSL_LIBS whenever linking libssl_iostream.la [e540404debb7] * Makefile.am: Makefile: Fix to previous change to get dovecot-config file built again. [a743cc250208] * Makefile.am: Makefile: Fixed dovecot-config installation [2f3c83f28dfe] * src/doveadm/doveadm-mailbox-list-iter.c, src/lib-storage/mailbox- list.h: lib-storage: Removed MAILBOX_LIST_ITER_LIST_PREFIXES flag. It was already accidentally enabled by default, and there's really no good reason why it shouldn't always be enabled. [d4f40b5c080c] * src/lib-storage/mailbox-list-iter.c: lib-storage: mailbox_list_iter_init_namespaces() duplicated INBOX if it was also ns prefix. [bbe6b6c2ee99] * src/lib-mail/rfc822-parser.c: lib-mail: rfc822_parse_quoted_string() didn't remove '\' from the strings. [92c6e963176e] * src/auth/userdb-passwd.c: auth: userdb passwd iteration skips now also users with /usr/sbin/nologin shell [694ea6e13a86] * src/lib-storage/index/index-storage.c: lib-storage: If mailbox is already open in mailbox_enable(), enable modseqs. [31ae11fe18b2] * src/lib-storage/index/index-storage.c: lib-storage: mailbox_enable() shouldn't actually open the mailbox. This combined with mailbox_get_status() never synced the mailbox, so if there were any changes they weren't visible in STATUS reply. [8cbc130c2b72] * src/doveadm/dsync/doveadm-dsync.c: dsync server: Ignore -f, -R and -m parameters instead of failing. v2.0 dsync did this as well. [9c6eeeb810c0] * src/imap/cmd-append.c: imap: Fixed error handling in APPEND parameters. [5a62b55914c4] * src/log/log-connection.c: log: Avoid an "master input for invalid service_fd" error at deinit. [509206065d33] * src/log/log-connection.c, src/log/main.c: log: Don't shutdown until all log writers have gone. This fixed losing log messages during shutdown. [174a22a052fe] * src/replication/replicator/replicator-queue.c: replicator: Another deinit crashfix [f7a3714dc390] * src/replication/replicator/replicator-queue.c: replicator: Fixed crash on deinit [3b258bb9a03f] * src/replication/replicator/replicator-queue.c: replicator: Queue handling was pretty broken [633e587446d8] * src/plugins/replication/replication-plugin.c: replication plugin: Don't try to close fifo if it wasn't even opened. [9d47be37afeb] * src/plugins/Makefile.am: Makefile: Added missing replication plugin directory [a422bd8ed511] * src/auth/userdb-passwd.c: auth: userdb passwd iteration now skips users with shell set to /bin/false or /sbin/nologin [85a8d582d37f] * src/replication/replicator/doveadm-connection.c: replicator: Crashfix [fed306bef481] * src/doveadm/client-connection.c: doveadm-server: If socket is 0600 mode there's never no need to authenticate. Even if the socket's owner doesn't match the process's effective UID. This could be e.g. because socket owner is root, while doveadm-server runs as vmail. [ed641f7da63b] * src/plugins/replication/replication-plugin.c: replication plugin: Handle shared namespaces better, skip public namespaces. These will be handled better later, maybe in v2.2. [21d5e258d69c] * src/plugins/replication/replication-plugin.c: replication plugin: Use one shared notification fifo for all users. [b44922333957] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/replication/replicator/doveadm- connection.c: doveadm server now returns unknown users with -NOUSER error. [9693521aa153] * .hgignore, configure.in, src/Makefile.am, src/doveadm/dsync/doveadm- dsync.c, src/lib-storage/mail-user.h, src/plugins/replication/Makefile.am, src/plugins/replication /replication-plugin.c, src/plugins/replication/replication-plugin.h, src/replication/Makefile.am, src/replication/aggregator/Makefile.am, src/replication/aggregator/aggregator-settings.c, src/replication/aggregator/aggregator-settings.h, src/replication/aggregator/aggregator.c, src/replication/aggregator /notify-connection.c, src/replication/aggregator/notify- connection.h, src/replication/aggregator/replicator-connection.c, src/replication/aggregator/replicator-connection.h, src/replication /replication-common.h, src/replication/replicator/Makefile.am, src/replication/replicator/doveadm-connection.c, src/replication/replicator/doveadm-connection.h, src/replication/replicator/notify-connection.c, src/replication/replicator/notify-connection.h, src/replication/replicator/replicator-brain.c, src/replication/replicator/replicator-brain.h, src/replication/replicator/replicator-queue.c, src/replication/replicator/replicator-queue.h, src/replication/replicator/replicator-settings.c, src/replication/replicator/replicator-settings.h, src/replication/replicator/replicator.c: Initial implementation of dsync-based replication. [14ff849dc266] * Makefile.am: Makefile: Fixed compiling with automake 1.11.2+ [a452e5f616a2] 2012-03-02 Timo Sirainen * src/lib-sql/driver-sqlpool.c: lib-sql: If failed query is retried, log it as as warning instead of as error. [1002733ca266] * src/login-common/login-proxy.c: login proxy: Don't assume host is down unless last success was >30s before last failure. This avoids thinking that host is down, simply because one connection for it failed. [53b23557ec54] * src/doveadm/doveadm-settings.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-worker-local.c, src/doveadm/dsync/dsync- worker.h: dsync: Added -n parameter to dsync a specific namespace. [e86198d749ec] * src/lib/eacces-error.c: eacces_error_get*(): Added ',' to message to improve readability. [095abcfab7f1] * src/lib/eacces-error.c: eacces_error_get*(): Suggest ACL/MAC error if UNIX permission bits look ok. [d247d53f80b9] * src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.h: lib-storage: mail_transaction_commit_changes.changed=TRUE only when something actually changed. [3e9f91d8b2af] * src/config/config-request.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-proxy-server.c, src/lib-settings/settings- parser.c: Increased initial memory pool sizes and marked some of them as "growing". [91e035840dc6] * src/doveadm/dsync/doveadm-dsync.c: dsync: Added -d parameter to sync to plugin/mail_replica destination. This could be one global default or overridden by userdb. [dc0038843cc7] * src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/dsync/doveadm-dsync.c: dsync: Added dsync_remote_cmd setting, which is used to execute remote dsync. This is used for the old style "host" and "mailuser@host" parameters, as well as for a new "remote:[user@]host" parameter. [69ed88beb12f] * src/doveadm/dsync/doveadm-dsync.c: dsync: Prefix remote dsync's error messages with "remote:". [523a6f3e0713] * src/doveadm/dsync/doveadm-dsync.c: dsync: Added -l parameter to lock the sync (via ~/.dovecot-sync.lock) [d4922e80ca05] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added prerun() method for mail commands. [1a33e3651c6d] * src/login-common/client-common.c, src/login-common/client-common.h, src/login-common/sasl-server.c: login: If session timeouts after authentication, log a better error about it. [855856a9f139] 2012-02-29 Timo Sirainen * src/lib-storage/list/mailbox-list-index-iter.c: mailbox_list_index=yes: Fixed mailbox listing when not using default namespace settings. [99cde8ce9991] * src/plugins/fts-squat/fts-backend-squat.c: fts-squat: Fixed search to actually work. [ee6f3f375dd3] 2012-02-28 Timo Sirainen * configure.in, src/imap/imap-client.c, src/lib-storage/mail-user.h, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-solr /fts-backend-solr.c, src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-storage.c: Show SEARCH=FUZZY in IMAP capabilities only when FTS backend actually supports it. [bdc881838b00] * src/lib-storage/list/mailbox-list-index-status.c, src/lib- storage/list/mailbox-list-index-sync.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h: mailbox list indexes: Avoid unnecessary refresh flag writes. [ba2b4f8a1bb1] * src/doveadm/dsync/doveadm-dsync.c: Compiler warning fixes [54aeb3853bae] * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Mailbox listing returned duplicates when patterns contained a parent and its children. [07fc8baa0c9b] 2012-02-27 Timo Sirainen * src/auth/auth-worker-client.c: auth worker: reset idle time after running a command, not before. [3b328ffffdd4] * src/auth/auth-worker-client.c: auth worker: When idle_kill timeout is reached, change process title to indicate it. [5074680f321a] * src/lib-sql/driver-mysql.c: mysql: Log idle time also for CR_SERVER_LOST errors. [1999ae5c9699] * src/doveadm/dsync/doveadm-dsync.c: dsync: Removed accidentally committed debug code. [47dcf6a607a9] * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixes to handling legacy dsync parameters. [d75b807afadc] * src/doveadm/doveadm-mail.c: doveadm: Allow subcommands to specify '+' getopt parameter. [0d502dc7d265] * src/lib-ssl-iostream/Makefile.am: lib-ssl-iostream: Use SSL_LIBS when linking the shared library. [c07415305d9e] 2012-05-19 Timo Sirainen * configure.in, src/lib/network.c, src/lib/network.h: Extends struct net_unix_cred with pid field and modifies net_getunixcred() to fill it in if possible. Depends: none [80688ab1ea3d] * src/lib-storage/mail-storage-service.c: lib-storage: Sort userdb fields before importing them. This avoids requiring manual sorting in some situations, such as when defining new namespaces. [875eeb3052a9] 2012-05-04 Timo Sirainen * src/lib-index/mail-index-lock.c, src/lib-index/mail-index-map- read.c, src/lib-index/mail-index-private.h, src/lib-index/mail- index.c: lib-index: Removed unused locking code. [10a475d725a1] * src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-map.c, src /lib-index/mail-index-modseq.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index-sync- keywords.c, src/lib-index/mail-index-sync-private.h, src/lib-index /mail-index-sync-update.c, src/lib-index/mail-index-write.c, src /lib-index/test-mail-index-sync-ext.c: lib-index: Updated dovecot.index file only by recreating it, never write to it directly. This is safer, and nowadays there shouldn't be much of a performance loss with it either, since dovecot.index isn't updated very often. This also allows removing all locking from dovecot.index file, although for now we'll keep it in case old Dovecot versions are simultaneously writing to the index. [4c996a5737b0] 2012-03-11 Timo Sirainen * Makefile.am: Makefile: Fixed compiling with automake 1.11.2+ [96e3b3ef59dc] 2012-03-01 Timo Sirainen * src/imap/cmd-fetch.c, src/imap/cmd-select.c, src/imap/imap-fetch- body.c, src/imap/imap-fetch.c, src/imap/imap-fetch.h: imap: Changed internal FETCH command handling API. [d8a88e53f1e6] 2012-02-28 Timo Sirainen * src/lib-lda/mail-send.c: lib-lda: Fixed mai forward/reject to work with the new smtp_client_open() API. [df631445f150] * src/pop3-login/client.c: pop3-login: Fixed APOP authentication, broken by recent changes. [864187d19761] 2012-02-27 Timo Sirainen * src/lib-lda/smtp-client.c, src/lib-lda/smtp-client.h: lib-lda: smtp_client_open() API changed to return struct ostream, not FILE. [e915b7e734e7] * src/auth/auth-request.c: auth: Removed destuser check from proxy_maybe's "self" check. [93dc749e1668] * dovecot-config.in.in: dovecot-config: moved lib-auth and LIBDOVECOT_SERVICE_INCLUDEs to LIBDOVECOT_INCLUDE [ca0ef6efe583] * src/auth/auth-request.c, src/auth/auth-request.h, src/lib-dns/dns- lookup.c, src/lib-dns/dns-lookup.h, src/lib-imap-client/imapc- connection.c, src/lib-lda/lmtp-client.c, src/lib-storage/index/pop3c /pop3c-client.c: lib-dns: dns_lookup() returns now the lookup struct, and it can be aborted. Changed all dns_lookup() users also to abort the lookup when needed (previously it probably would have just accessed freed memory and crash). [f5aa38f0a9ac] * src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c: Minor code cleanup. [31119136ee6e] * src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-common.h: pop3: Added module contexts to struct client, and made client_destroy() a virtual method. [771fab474b1c] * src/imap/imap-client.c, src/imap/imap-client.h: imap: Made client_destroy() a virtual method. [e20af99c6d20] 2012-02-26 Timo Sirainen * src/imap/cmd-idle.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib-storage/index/index-mailbox-check.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/plugins/virtual/virtual-storage.c: lib-storage: Removed min_timeout parameter from mailbox_notify_changes() It's now internally taken from mailbox_idle_check_interval setting. [5e4e6c57c142] 2012-02-25 Timo Sirainen * configure.in, doc/man/Makefile.am, src/imap-login/client.c, src /login-common/client-common.c, src/login-common/client-common.h, src /login-common/login-proxy.c, src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: Merged fixes from v2.1 tree. [36fc5b533562] * src/imap-login/client.c, src/imap-login/imap-login-settings.c, src /imap-login/imap-login-settings.h: imap-login: imap_id_* settings were ignored pre-login. [32ffa616f249] * src/auth/auth-request.c, src/auth/auth-request.h: auth: Added proxy_always extra field. When used with proxy_maybe, it can be used to redirect "local" users to local backends via director. [4bd9cadae9ea] * src/pop3-login/pop3-proxy.c: pop3 proxy: Fixed previous change not to hang. [cf713cf9b7c0] * src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: pop3 proxy: Fixed handling XCLIENT reply. [ef7518f0bdbc] * src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth- settings.h, src/config/settings-get.pl: auth: Added auth_proxy_self setting to specify IPs that are considered as "self" for proxy_maybe. [d84a9950be67] * src/auth/auth-request.c: auth: Use proxy_timeout as DNS lookup timeout, if available. Warn if lookup takes >0.5s. [21c0ce019290] * src/auth/Makefile.am, src/auth/auth-master-connection.c, src/auth /auth-request-handler.c, src/auth/auth-request.c, src/auth/auth- request.h: auth: Handle proxy_maybe=yes with host=hostname properly. [863eac32786f] * src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: pop3-login: Implemented XCLIENT command for forwarding client ip/port from proxy. [35ed77dd500e] * src/auth/auth-stream.c: auth: auth_stream_reply_remove() left extra TABs to stream. Normally this wouldn't really affect anything, except log some extra debug messages. [970809a9f9bd] 2012-02-23 Timo Sirainen * src/login-common/login-proxy.c: login proxy: If connect() fails, log how many seconds it tried. [c3da6b3a4a34] * .hgsigs: Added signature for changeset 04b0acc03f1e [e98143525d51] * .hgtags: Added tag 2.1.1 for changeset 04b0acc03f1e [0a034e33035b] * NEWS, configure.in: Released v2.1.1. [04b0acc03f1e] [2.1.1] 2012-02-22 Pascal Volk * doc/man/doveadm-log.1.in: man: Added description of command `log errors' to doveadm-log.1. [007ec1d1d995] 2012-02-21 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-sync.c: Compiler warning fix. [6056be0a8c58] * src/lib-storage/mail-namespace.c: lib-storage: Another try at correctly setting autocreated namespace's location strings. [3007994141b6] * src/lib-storage/index/dbox-single/sdbox-sync.c: sdbox: Altmove flag changes weren't immediately marked as synced. This caused the altmoves to be retried. [d9a6b0991f2e] * src/auth/passdb-cache.c: auth: If auth_cache_size is larger than process VSZ limit, log a warning. [242ad2a73648] * src/lib/restrict-process-size.c, src/lib/restrict-process-size.h: Added restrict_get_process_size() [1c1c2a1c85d7] * src/auth/passdb-imap.c: auth: passdb imap crashed for non-login (non-imap/pop3) authentication. [a6a58512f0df] * src/lib/file-dotlock.c: file-dotlock: Avoid "timestamp is different than current time" errors during high disk I/O load. [2ea29ab6f10f] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Avoid assert-crashing with non-mUTF7/UTF8 entries in subscriptions file. [7d0d76df719f] * src/lib-storage/mail-namespace.c: lib-storage: When autocreating a namespace, don't fill out location setting unless necessary. This fixes running dsync when there are no namespaces defined. [488fe9d417eb] * src/plugins/virtual/virtual-config.c: virtual: "*" wildcard matches now also autocreated shared namespaces. Basically this makes "shared/*" work as intended for shared namespaces. [10994a5b64e1] 2012-02-21 Pascal Volk * doc/man/doveadm-dump.1.in: man: Added description for type `dbox' to doveadm-dump.1 [c854f19f10e3] 2012-02-21 Timo Sirainen * src/auth/db-ldap.c: ldap: Support attr=name=prefix style template attributes for backwards compatibility. This was mainly used for quota, e.g. "quotaBytes=quota=*:storage=" [e8da2675da41] 2012-02-20 Pascal Volk * src/doveadm/doveadm-dump.c, src/doveadm/doveadm-dump.h: doveadm dump: Show available types in case a wrong one was given. [bf340465cb70] 2012-02-20 Timo Sirainen * doc/man/doveadm.1.in: man: Move doveadm instance and mount commands to "master commands" group. [0947b28d2903] 2012-02-17 Timo Sirainen * src/lib-master/master-service.c: lib-master: If accept() fails, stop listening only temporarily, not permanently. [701709f472e9] * src/lib-storage/index/shared/shared-list.c: Increased initial memory pool size. [89eb4c204341] * src/master/service-monitor.c: master: Handle internal "out of fds" errors without crashing. [9a501d37af3d] * src/login-common/main.c: login: Added comment. [119195278272] * src/doveadm/dsync/dsync-brain-msgs-new.c, src/doveadm/dsync/dsync- brain-msgs.c, src/doveadm/dsync/dsync-brain-private.h: dsync: If message with same GUID is saved multiple times in session, copy it instead of re-saving. This only works if the messages are in different mailboxes. It would be possible to fix it also for copying within same mailbox, but that's probably rare enough that it's not worth the extra code. [c581f6c1eef9] * src/doveadm/dsync/dsync-brain-msgs.c: dsync: GUIDs are case-sensitive, make GUID hash table be as well. [aa25bb2384ce] * src/doveadm/doveadm-mail.c: doveadm force-resync: Don't skip autocreated mailboxes (especially INBOX). This fixes rebuilding indexes for mdbox that has all mailbox indexes deleted. [edf5a4788242] 2012-02-16 Timo Sirainen * src/plugins/acl/acl-mailbox-list.c: acl: Don't crash in mailbox listing when using autocreated mailboxes. [ff117a044e20] * Messed up with v2.1 release, merging changes that were supposed to be there. [aa2e89c9876b] * .hgsigs: Added signature for changeset e2cd03cc9c69 [3e0a1e5f43f3] * .hgtags: Added tag 2.1.0 for changeset e2cd03cc9c69 [c696e99a0169] * NEWS, configure.in: Released v2.1.0. [e2cd03cc9c69] [2.1.0] * .hgignore, doc/man/Makefile.am, doc/man/doveadm-instance.1.in, doc/man/doveadm-mount.1.in, doc/man/doveadm.1.in: man: Added doveadm-instance(1) and doveadm-mount(1) roff'ification by Pascal Volk. [b88deb09b0f4] * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Fixed crash when autocreate mailboxes were used and LIST had only invalid patterns. [72e1e17d2e22] 2012-02-15 Timo Sirainen * .hgsigs: Added signature for changeset 736f1b7af190 [908bf2312c14] * .hgtags: Added tag 2.1.rc7 for changeset 736f1b7af190 [5de9a1f4ab04] * NEWS, configure.in: Released v2.1.rc7. [736f1b7af190] [2.1.rc7] * src/login-common/client-common.c, src/login-common/client-common.h, src/login-common/main.c: login: If auth client disconnects without having ever succeeded, destroy clients. [4462ceb09c0d] * src/lib-master/ipc-client.c: lib-master: Fixed crash on IPC client if server disconnected unexpectedly. [5ac4a8c8545f] 2012-02-13 Pascal Volk * doc/man/doveadm-pw.1.in: man: Added descriptions of -t option to doveadm-pw.1. [db67d0255411] * src/doveadm/doveadm-pw.c: doveadm pw: Added -t parameter to the usage message. [e6ad15862163] * doc/man/doveadm-fetch.1.in: man: Added description of fields pop3.uidl and text.utf8 to doveadm- fetch.1. [b4479e2d2d21] 2012-02-13 Timo Sirainen * src/pop3/pop3-commands.c: pop3: If UIDL using %f/%m/%g can't be fetched, mention pop3_uidl_format in error message. [06bb6d0f60e0] * TODO: TODO updated [9c4cac11da15] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h: lib-storage: Added namespace { ignore_on_failure } setting. If the namespace can't be created for any reason, it's simply silently skipped. [71201cce97b5] 2012-02-25 Timo Sirainen * src/auth/auth-request.c, src/auth/auth-request.h: auth: Added proxy_always extra field. When used with proxy_maybe, it can be used to redirect "local" users to local backends via director. [716769cfbb1d] * src/imap-login/client.c, src/imap-login/imap-proxy.c, src/lib-lda /lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h, src/login-common/client-common.c, src/login- common/client-common.h, src/login-common/login-proxy.c, src/login- common/login-proxy.h, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c: imap/pop3/lmtp proxy: Implemented detection of proxy loops with TTL. If proxying tries to continue after 5 forward connections, it fails. The limit of 5 is hard coded currently. [ba06ea38c722] * src/pop3-login/pop3-proxy.c: pop3 proxy: Fixed previous change not to hang. [f534ed81bce4] * src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: pop3 proxy: Fixed handling XCLIENT reply. [9b79d71bff4e] * src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth- settings.h, src/config/settings-get.pl: auth: Added auth_proxy_self setting to specify IPs that are considered as "self" for proxy_maybe. [98d696965c91] * src/dns/dns-client-settings.c: dns: Removed login/dns-client socket, since it's no longer necessary. [fb972ad3213d] * src/login-common/Makefile.am, src/login-common/client-common-auth.c, src/login-common/login-proxy.c, src/login-common/login-proxy.h: login proxy: Removed host DNS lookup code, since auth does it now. [da36d22ab37a] * src/auth/auth-request.c: auth: Use proxy_timeout as DNS lookup timeout, if available. Warn if lookup takes >0.5s. [8e2f395cf86c] * src/auth/Makefile.am, src/auth/auth-master-connection.c, src/auth /auth-request-handler.c, src/auth/auth-request.c, src/auth/auth- request.h: auth: Handle proxy_maybe=yes with host=hostname properly. [da43dc494753] * src/auth/auth-stream.c: auth: auth_stream_reply_remove() left extra TABs to stream. Normally this wouldn't really affect anything, except log some extra debug messages. [52e8a1346d2e] * src/login-common/client-common.c, src/login-common/client-common.h: login-common: Code cleanup [ce1fd6eefeff] * src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: pop3-login: Implemented XCLIENT command for forwarding client ip/port from proxy. [eb1aecd05cea] 2012-02-23 Timo Sirainen * src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: lmtp proxy: Send client's IP/port to destination server via XCLIENT if possible. [1bc56eec3f8e] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h: smtp/lmtp client: Send XCLIENT ADDR+PORT when possible. [3144001fae84] * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/commands.h, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h: lmtp: Implemented Postfix-compatible XCLIENT extension for changing client's ip/port. [1af2a0497f3f] 2012-02-16 Pascal Volk * doc/man/Makefile.am: man/Makefile: Use SUFFIXES to reduce the number of targets. [ac4eed7bef23] 2012-02-13 Timo Sirainen * src/lib-mail/message-parser.c, src/lib-mail/message-parser.h: message parser: Added MESSAGE_PARSER_FLAG_INCLUDE_MULTIPART_BLOCKS. Patch by Stephan Bosch. [e7854f8d7213] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/client.c, src/imap-login/client.h, src/imap-login/imap-proxy.c, src/imap-login/imap-proxy.h, src/login- common/client-common-auth.c, src/login-common/client-common.c, src /login-common/client-common.h, src/pop3-login/client-authenticate.c, src/pop3-login/client-authenticate.h, src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c, src/pop3-login/pop3-proxy.h: login-common API made more extensible for different kinds of protocols. Patch by Stephan Bosch. [e456e1bce47f] 2012-02-12 Timo Sirainen * configure.in: Updated version number to v2.2.UNSTABLE and added a warning to configure. [8457e41b634b] * README: README: Added missing RFC to list. [9574963a16f7] * TODO: TODO updated [d58b721e751b] * .hgsigs: Added signature for changeset 481860782250 [90f8af1f4af7] * .hgtags: Added tag 2.1.rc6 for changeset 481860782250 [e407fea7dcbc] * NEWS, TODO, configure.in: Released v2.1.rc6. [481860782250] [2.1.rc6] * configure.in: IMAP capabilities: s/FUZZY/SEARCH=FUZZY/ I mistakenly used wrong one.. [e3565b3f9efe] * src/doveadm/doveadm-mail-mailbox.c: doveadm mailbox delete: Don't crash when namespace for mailbox isn't found. [669f09337a23] * src/doveadm/Makefile.am, src/doveadm/client-connection.c, src/doveadm/doveadm-auth.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-instance.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-log.c, src/doveadm /doveadm-mail-altmove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h, src/doveadm/doveadm-mail-list- iter.c, src/doveadm/doveadm-mail-list-iter.h, src/doveadm/doveadm- mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm-mailbox-list-iter.c, src/doveadm/doveadm-mailbox-list-iter.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/main.c, src/plugins/acl/doveadm-acl.c, src/plugins/fts /doveadm-fts.c, src/plugins/quota/doveadm-quota.c: doveadm: Improved error handling. Failures should now always have non-zero exit code. doveadm now uses sysexits.h exit codes in most places, although there are still a lot of places where it simply returns EX_TEMPFAIL even though something else might be better. [0a5951b08478] * src/doveadm/doveadm-pw.c: doveadm pw: Use i_error()/i_fatal() instead of fprintf(stderr) [7c36dea5605a] * src/plugins/acl/acl-mailbox.c: acl: After checking we have rights to create mailbox, ignore any further ACL checks. [ccad37bc242f] * doc/example-config/conf.d/20-imap.conf: example-config: Updated tb-extra-mailbox-sep comment. [1a0ab868957b] * src/anvil/anvil-connection.c, src/anvil/anvil-settings.c, src/anvil /connect-limit.c, src/anvil/main.c, src/anvil/penalty.c, src/anvil /test-penalty.c, src/auth/auth-cache.c, src/auth/auth-client- connection.c, src/auth/auth-master-connection.c, src/auth/auth- penalty.c, src/auth/auth-postfix-connection.c, src/auth/auth- request-handler.c, src/auth/auth-request.c, src/auth/auth- settings.c, src/auth/auth-stream.c, src/auth/auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/db- checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech-cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech- external.c, src/auth/mech-plain.c, src/auth/mech.c, src/auth/passdb- blocking.c, src/auth/passdb-bsdauth.c, src/auth/passdb-cache.c, src/auth/passdb-checkpassword.c, src/auth/passdb-imap.c, src/auth /passdb-ldap.c, src/auth/passdb-passwd-file.c, src/auth/passdb- passwd.c, src/auth/passdb-shadow.c, src/auth/passdb-sql.c, src/auth /passdb-static.c, src/auth/passdb-template.c, src/auth/passdb- vpopmail.c, src/auth/passdb.c, src/auth/password-scheme-crypt.c, src/auth/password-scheme.c, src/auth/userdb-blocking.c, src/auth /userdb-checkpassword.c, src/auth/userdb-ldap.c, src/auth/userdb- nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb- static.c, src/auth/userdb-template.c, src/auth/userdb-vpopmail.c, src/auth/userdb.c, src/config/config-connection.c, src/config /config-filter.c, src/config/config-parser.c, src/config/config- request.c, src/config/config-settings.c, src/config/doveconf.c, src/config/main.c, src/config/old-set-parser.c, src/config/sysinfo- get.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/dict/dict-settings.c, src/dict/main.c, src/director/auth- connection.c, src/director/director-connection.c, src/director /director-host.c, src/director/director-request.c, src/director /director-settings.c, src/director/director-test.c, src/director/director.c, src/director/doveadm-connection.c, src/director/login-connection.c, src/director/mail-host.c, src/director/main.c, src/director/notify-connection.c, src/director /user-directory.c, src/dns/dns-client-settings.c, src/dns/dns- client.c, src/doveadm/client-connection.c, src/doveadm/doveadm- auth.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-dump- dbox.c, src/doveadm/doveadm-dump-index.c, src/doveadm/doveadm-dump- log.c, src/doveadm/doveadm-dump-mailboxlog.c, src/doveadm/doveadm- dump-thread.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm- kick.c, src/doveadm/doveadm-log.c, src/doveadm/doveadm-mail- altmove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm- mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm /doveadm-mail-index.c, src/doveadm/doveadm-mail-iter.c, src/doveadm /doveadm-mail-list-iter.c, src/doveadm/doveadm-mail-mailbox- status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm- mail-move.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm- mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm- master.c, src/doveadm/doveadm-mutf7.c, src/doveadm/doveadm- penalty.c, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm- print-pager.c, src/doveadm/doveadm-print-server.c, src/doveadm /doveadm-print-tab.c, src/doveadm/doveadm-print-table.c, src/doveadm /doveadm-print.c, src/doveadm/doveadm-proxy.c, src/doveadm/doveadm- settings.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm-stats.c, src/doveadm/doveadm-util.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain-msgs-new.c, src/doveadm/dsync/dsync- brain-msgs.c, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync /dsync-data.c, src/doveadm/dsync/dsync-proxy-client.c, src/doveadm/dsync/dsync-proxy-server-cmd.c, src/doveadm/dsync/dsync- proxy-server.c, src/doveadm/dsync/dsync-proxy.c, src/doveadm/dsync /dsync-worker-local.c, src/doveadm/dsync/dsync-worker.c, src/doveadm/dsync/test-dsync-brain-msgs.c, src/doveadm/dsync/test- dsync-brain.c, src/doveadm/dsync/test-dsync-common.c, src/doveadm/dsync/test-dsync-proxy-server-cmd.c, src/doveadm/dsync /test-dsync-proxy.c, src/doveadm/dsync/test-dsync-worker.c, src/doveadm/main.c, src/doveadm/server-connection.c, src/imap-login /client-authenticate.c, src/imap-login/client.c, src/imap-login /imap-login-settings.c, src/imap-login/imap-proxy.c, src/imap/cmd- append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd-capability.c, src/imap/cmd-check.c, src/imap/cmd-close.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-enable.c, src/imap/cmd-examine.c, src/imap/cmd-expunge.c, src/imap/cmd- fetch.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd- list.c, src/imap/cmd-logout.c, src/imap/cmd-lsub.c, src/imap/cmd- namespace.c, src/imap/cmd-noop.c, src/imap/cmd-rename.c, src/imap /cmd-search.c, src/imap/cmd-select.c, src/imap/cmd-sort.c, src/imap /cmd-status.c, src/imap/cmd-store.c, src/imap/cmd-subscribe.c, src/imap/cmd-thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd-unsubscribe.c, src/imap/cmd-x-cancel.c, src/imap/imap- client.c, src/imap/imap-commands-util.c, src/imap/imap-commands.c, src/imap/imap-expunge.c, src/imap/imap-fetch-body.c, src/imap/imap- fetch.c, src/imap/imap-search-args.c, src/imap/imap-search.c, src/imap/imap-settings.c, src/imap/imap-status.c, src/imap/imap- sync.c, src/imap/mail-storage-callbacks.c, src/imap/main.c, src/indexer/indexer-client.c, src/indexer/indexer-queue.c, src/indexer/indexer-settings.c, src/indexer/indexer-worker- settings.c, src/indexer/indexer-worker.c, src/indexer/indexer.c, src/indexer/master-connection.c, src/indexer/worker-connection.c, src/indexer/worker-pool.c, src/ipc/client.c, src/ipc/ipc- connection.c, src/ipc/ipc-group.c, src/ipc/ipc-settings.c, src/ipc/main.c, src/lda/main.c, src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.c, src/lib-auth/auth-master.c, src/lib-auth /auth-server-connection.c, src/lib-charset/charset-iconv.c, src/lib- charset/charset-utf8.c, src/lib-dict/dict-client.c, src/lib-dict /dict-db.c, src/lib-dict/dict-file.c, src/lib-dict/dict-sql- settings.c, src/lib-dict/dict-sql.c, src/lib-dict/dict.c, src/lib- dict/test-dict.c, src/lib-dns/dns-lookup.c, src/lib-fs/fs-api.c, src /lib-fs/fs-posix.c, src/lib-fs/fs-sis-common.c, src/lib-fs/fs-sis- queue.c, src/lib-fs/fs-sis.c, src/lib-fs/ostream-cmp.c, src/lib- imap-client/imapc-client.c, src/lib-imap-client/imapc-connection.c, src/lib-imap-client/imapc-msgmap.c, src/lib-imap/imap-arg.c, src /lib-imap/imap-base-subject.c, src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-date.c, src/lib-imap/imap-envelope.c, src/lib-imap /imap-id.c, src/lib-imap/imap-match.c, src/lib-imap/imap-parser.c, src/lib-imap/imap-quote.c, src/lib-imap/imap-seqset.c, src/lib-imap /imap-utf7.c, src/lib-imap/imap-util.c, src/lib-imap/test-imap- match.c, src/lib-imap/test-imap-parser.c, src/lib-imap/test-imap- utf7.c, src/lib-imap/test-imap-util.c, src/lib-index/mail-cache- compress.c, src/lib-index/mail-cache-decisions.c, src/lib-index /mail-cache-fields.c, src/lib-index/mail-cache-lookup.c, src/lib- index/mail-cache-sync-update.c, src/lib-index/mail-cache- transaction.c, src/lib-index/mail-cache.c, src/lib-index/mail-index- alloc-cache.c, src/lib-index/mail-index-dummy-view.c, src/lib-index /mail-index-fsck.c, src/lib-index/mail-index-lock.c, src/lib-index /mail-index-map-hdr.c, src/lib-index/mail-index-map-read.c, src/lib- index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib- index/mail-index-strmap.c, src/lib-index/mail-index-sync-ext.c, src /lib-index/mail-index-sync-keywords.c, src/lib-index/mail-index- sync-update.c, src/lib-index/mail-index-sync.c, src/lib-index/mail- index-transaction-export.c, src/lib-index/mail-index-transaction- finish.c, src/lib-index/mail-index-transaction-sort-appends.c, src /lib-index/mail-index-transaction-update.c, src/lib-index/mail- index-transaction-view.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail-index-util.c, src/lib-index/mail-index-view- sync.c, src/lib-index/mail-index-view.c, src/lib-index/mail-index- write.c, src/lib-index/mail-index.c, src/lib-index/mail-transaction- log-append.c, src/lib-index/mail-transaction-log-file.c, src/lib- index/mail-transaction-log-view.c, src/lib-index/mail-transaction- log.c, src/lib-index/mailbox-log.c, src/lib-index/test-mail-index- sync-ext.c, src/lib-index/test-mail-index-transaction-finish.c, src /lib-index/test-mail-index-transaction-update.c, src/lib-index/test- mail-transaction-log-append.c, src/lib-index/test-mail-transaction- log-view.c, src/lib-lda/duplicate.c, src/lib-lda/lda-settings.c, src /lib-lda/lmtp-client.c, src/lib-lda/mail-deliver.c, src/lib-lda /mail-send.c, src/lib-lda/smtp-client.c, src/lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src/lib-mail/mbox-from.c, src /lib-mail/message-address.c, src/lib-mail/message-date.c, src/lib- mail/message-decoder.c, src/lib-mail/message-header-decode.c, src /lib-mail/message-header-encode.c, src/lib-mail/message-header- parser.c, src/lib-mail/message-id.c, src/lib-mail/message-parser.c, src/lib-mail/message-part-serialize.c, src/lib-mail/message- search.c, src/lib-mail/message-send.c, src/lib-mail/message-size.c, src/lib-mail/quoted-printable.c, src/lib-mail/rfc2231-parser.c, src /lib-mail/rfc822-parser.c, src/lib-mail/test-istream-dot.c, src/lib- mail/test-istream-header-filter.c, src/lib-mail/test-mbox-from.c, src/lib-mail/test-message-address.c, src/lib-mail/test-message- date.c, src/lib-mail/test-message-decoder.c, src/lib-mail/test- message-header-decode.c, src/lib-mail/test-message-header-encode.c, src/lib-mail/test-message-header-parser.c, src/lib-mail/test- message-id.c, src/lib-mail/test-message-parser.c, src/lib-mail/test- quoted-printable.c, src/lib-mail/test-rfc2231-parser.c, src/lib- master/anvil-client.c, src/lib-master/ipc-client.c, src/lib-master /ipc-server.c, src/lib-master/master-auth.c, src/lib-master/master- login-auth.c, src/lib-master/master-login.c, src/lib-master/master- service-settings-cache.c, src/lib-master/master-service-settings.c, src/lib-master/master-service.c, src/lib-master/syslog-util.c, src /lib-settings/settings-parser.c, src/lib-settings/settings.c, src /lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlpool.c, src/lib-sql/sql-api.c, src/lib-sql/sql-db- cache.c, src/lib-ssl-iostream/iostream-openssl-context.c, src/lib- ssl-iostream/iostream-openssl-params.c, src/lib-ssl-iostream /iostream-openssl.c, src/lib-ssl-iostream/iostream-ssl-none.c, src /lib-ssl-iostream/istream-openssl.c, src/lib-ssl-iostream/ostream- openssl.c, src/lib-storage/fail-mail-storage.c, src/lib-storage /fail-mail.c, src/lib-storage/fail-mailbox.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- save.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox-common /dbox-attachment.c, src/lib-storage/index/dbox-common/dbox-file- fix.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib- storage/index/dbox-common/dbox-mail.c, src/lib-storage/index/dbox- common/dbox-save.c, src/lib-storage/index/dbox-common/dbox- storage.c, src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-multi/mdbox- map.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/dbox- multi/mdbox-settings.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-copy.c, src/lib-storage/index/dbox-single/sdbox- file.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/dbox-single/sdbox-save.c, src/lib-storage/index/dbox- single/sdbox-storage.c, src/lib-storage/index/dbox-single/sdbox- sync-rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src /lib-storage/index/imapc/imapc-list.c, src/lib-storage/index/imapc /imapc-mail-fetch.c, src/lib-storage/index/imapc/imapc-mail.c, src /lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- settings.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-sync.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mailbox- check.c, src/lib-storage/index/index-search-result.c, src/lib- storage/index/index-search.c, src/lib-storage/index/index-sort- string.c, src/lib-storage/index/index-sort.c, src/lib-storage/index /index-status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-changes.c, src/lib-storage/index/index- sync-search.c, src/lib-storage/index/index-sync.c, src/lib- storage/index/index-thread-finish.c, src/lib-storage/index/index- thread-links.c, src/lib-storage/index/index-thread.c, src/lib- storage/index/index-transaction.c, src/lib-storage/index/istream- attachment.c, src/lib-storage/index/istream-mail.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-filename-flags.c, src/lib-storage/index/maildir/maildir- filename.c, src/lib-storage/index/maildir/maildir-keywords.c, src /lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-settings.c, src/lib-storage/index/maildir/maildir- storage.c, src/lib-storage/index/maildir/maildir-sync-index.c, src /lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /istream-raw-mbox.c, src/lib-storage/index/mbox/mbox-file.c, src /lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-md5-all.c, src/lib- storage/index/mbox/mbox-md5-apop3d.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/index/mbox/mbox-settings.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- sync-parse.c, src/lib-storage/index/mbox/mbox-sync-rewrite.c, src /lib-storage/index/mbox/mbox-sync-update.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/pop3c/pop3c- client.c, src/lib-storage/index/pop3c/pop3c-mail.c, src/lib- storage/index/pop3c/pop3c-settings.c, src/lib-storage/index/pop3c /pop3c-storage.c, src/lib-storage/index/pop3c/pop3c-sync.c, src/lib- storage/index/raw/raw-mail.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/index/raw/raw-sync.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/list/mailbox-list-delete.c, src /lib-storage/list/mailbox-list-fs-flags.c, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-fs.c, src /lib-storage/list/mailbox-list-index-iter.c, src/lib-storage/list /mailbox-list-index-status.c, src/lib-storage/list/mailbox-list- index-sync.c, src/lib-storage/list/mailbox-list-index.c, src/lib- storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/list/mailbox-list-subscriptions.c, src/lib- storage/list/subscription-file.c, src/lib-storage/mail-copy.c, src /lib-storage/mail-error.c, src/lib-storage/mail-namespace.c, src /lib-storage/mail-search-build.c, src/lib-storage/mail-search- parser-cmdline.c, src/lib-storage/mail-search-parser-imap.c, src /lib-storage/mail-search-parser.c, src/lib-storage/mail-search- register-human.c, src/lib-storage/mail-search-register-imap.c, src /lib-storage/mail-search-register.c, src/lib-storage/mail-search.c, src/lib-storage/mail-storage-hooks.c, src/lib-storage/mail-storage- service.c, src/lib-storage/mail-storage-settings.c, src/lib-storage /mail-storage.c, src/lib-storage/mail-thread.c, src/lib-storage /mail-user.c, src/lib-storage/mail.c, src/lib-storage/mailbox-get.c, src/lib-storage/mailbox-guid-cache.c, src/lib-storage/mailbox- header.c, src/lib-storage/mailbox-keywords.c, src/lib-storage /mailbox-list-iter.c, src/lib-storage/mailbox-list.c, src/lib- storage/mailbox-search-result.c, src/lib-storage/mailbox-tree.c, src /lib-storage/mailbox-uidvalidity.c, src/lib-storage/test-mailbox- get.c, src/lib-test/test-common.c, src/lib/abspath.c, src/lib/aqueue.c, src/lib/array.c, src/lib/askpass.c, src/lib /backtrace-string.c, src/lib/base64.c, src/lib/bsearch-insert-pos.c, src/lib/buffer.c, src/lib/child-wait.c, src/lib/close-keep-errno.c, src/lib/compat.c, src/lib/crc32.c, src/lib/data-stack.c, src/lib /eacces-error.c, src/lib/env-util.c, src/lib/execv-const.c, src/lib/failures.c, src/lib/fd-close-on-exec.c, src/lib/fd-set- nonblock.c, src/lib/fdatasync-path.c, src/lib/fdpass.c, src/lib /file-cache.c, src/lib/file-copy.c, src/lib/file-dotlock.c, src/lib /file-lock.c, src/lib/file-set-size.c, src/lib/guid.c, src/lib/hash- format.c, src/lib/hash-method.c, src/lib/hash.c, src/lib/hash2.c, src/lib/hex-binary.c, src/lib/hex-dec.c, src/lib/home-expand.c, src/lib/hostpid.c, src/lib/imem.c, src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify-fd.c, src/lib/ioloop-notify-inotify.c, src/lib /ioloop-notify-none.c, src/lib/ioloop-poll.c, src/lib/ioloop- select.c, src/lib/ioloop.c, src/lib/iostream-rawlog.c, src/lib/iostream.c, src/lib/ipwd.c, src/lib/istream- base64-encoder.c, src/lib/istream-concat.c, src/lib/istream-crlf.c, src/lib/istream-data.c, src/lib/istream-file.c, src/lib/istream- limit.c, src/lib/istream-mmap.c, src/lib/istream-rawlog.c, src/lib /istream-seekable.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/lib-signals.c, src/lib/lib.c, src/lib/mempool-alloconly.c, src/lib/mempool-datastack.c, src/lib/mempool-system.c, src/lib /mempool-unsafe-datastack.c, src/lib/mempool.c, src/lib/mkdir- parents.c, src/lib/mmap-anon.c, src/lib/mmap-util.c, src/lib/module- dir.c, src/lib/mountpoint.c, src/lib/network.c, src/lib/nfs- workarounds.c, src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib/ostream-rawlog.c, src/lib/ostream.c, src/lib/printf-format- fix.c, src/lib/priorityq.c, src/lib/process-title.c, src/lib/randgen.c, src/lib/read-full.c, src/lib/restrict-access.c, src/lib/restrict-process-size.c, src/lib/safe-memset.c, src/lib /safe-mkdir.c, src/lib/safe-mkstemp.c, src/lib/sendfile-util.c, src/lib/seq-range-array.c, src/lib/str-find.c, src/lib/str- sanitize.c, src/lib/str.c, src/lib/strescape.c, src/lib/strfuncs.c, src/lib/strnum.c, src/lib/test-aqueue.c, src/lib/test-array.c, src/lib/test-base64.c, src/lib/test-bsearch-insert-pos.c, src/lib /test-buffer.c, src/lib/test-crc32.c, src/lib/test-hash-format.c, src/lib/test-hex-binary.c, src/lib/test-istream-base64-encoder.c, src/lib/test-istream-concat.c, src/lib/test-istream-crlf.c, src/lib /test-istream-seekable.c, src/lib/test-istream-tee.c, src/lib/test- lib.c, src/lib/test-llist.c, src/lib/test-mempool-alloconly.c, src/lib/test-network.c, src/lib/test-ostream-file.c, src/lib/test- primes.c, src/lib/test-priorityq.c, src/lib/test-seq-range-array.c, src/lib/test-str-find.c, src/lib/test-str-sanitize.c, src/lib/test- strescape.c, src/lib/test-strfuncs.c, src/lib/test-time-util.c, src/lib/test-utc-mktime.c, src/lib/test-var-expand.c, src/lib/time- util.c, src/lib/unichar.c, src/lib/unix-socket-create.c, src/lib /unlink-directory.c, src/lib/unlink-old-files.c, src/lib/utc- mktime.c, src/lib/utc-offset.c, src/lib/var-expand.c, src/lib/write- full.c, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/lmtp- proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/main.c, src/log/log- connection.c, src/log/log-settings.c, src/log/main.c, src/login- common/access-lookup.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/login-proxy-state.c, src/login-common/login-proxy.c, src/login-common/login-settings.c, src/login-common/main.c, src/login-common/sasl-server.c, src/login- common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/master/dup2-array.c, src/master/main.c, src/master/master-settings.c, src/master/service- anvil.c, src/master/service-listen.c, src/master/service-log.c, src/master/service-monitor.c, src/master/service-process-notify.c, src/master/service-process.c, src/master/service.c, src/plugins/acl /acl-api.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/acl/doveadm-acl.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/expire /doveadm-expire.c, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire-set.c, src/plugins/fts-lucene/doveadm-fts- lucene.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins /fts-lucene/fts-lucene-plugin.c, src/plugins/fts-solr/fts-backend- solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins /fts-solr/fts-solr-plugin.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts-squat /fts-squat-plugin.c, src/plugins/fts-squat/squat-test.c, src/plugins /fts-squat/squat-trie.c, src/plugins/fts-squat/squat-uidlist.c, src/plugins/fts/doveadm-dump-fts-expunge-log.c, src/plugins/fts /doveadm-fts.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts- build-mail.c, src/plugins/fts/fts-expunge-log.c, src/plugins/fts /fts-indexer.c, src/plugins/fts/fts-parser-html.c, src/plugins/fts /fts-parser-script.c, src/plugins/fts/fts-parser.c, src/plugins/fts /fts-plugin.c, src/plugins/fts/fts-search-serialize.c, src/plugins/fts/fts-search.c, src/plugins/fts/fts-storage.c, src/plugins/fts/xml2text.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/imap-stats /imap-stats-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/quota/doveadm-quota.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/snarf/snarf-plugin.c, src/plugins/stats/stats- connection.c, src/plugins/stats/stats-plugin.c, src/plugins/trash /trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual- plugin.c, src/plugins/virtual/virtual-save.c, src/plugins/virtual /virtual-search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-sync.c, src/plugins/virtual/virtual- transaction.c, src/plugins/zlib/doveadm-zlib.c, src/plugins/zlib /istream-bzlib.c, src/plugins/zlib/istream-zlib.c, src/plugins/zlib /ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c, src/plugins/zlib /zlib-plugin.c, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-login-settings.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/ssl-params/main.c, src/ssl-params/ssl- params-openssl.c, src/ssl-params/ssl-params-settings.c, src/ssl- params/ssl-params.c, src/stats/client-export.c, src/stats/client.c, src/stats/global-memory.c, src/stats/mail-command.c, src/stats/mail- domain.c, src/stats/mail-ip.c, src/stats/mail-server-connection.c, src/stats/mail-session.c, src/stats/mail-stats.c, src/stats/mail- user.c, src/stats/main.c, src/stats/stats-settings.c, src/util/gdbhelper.c, src/util/maildirlock.c, src/util/rawlog.c, src/util/script-login.c, src/util/script.c, src/util/tcpwrap- settings.c, src/util/tcpwrap.c: Updated copyright notices to include year 2012. [ba770cba5598] * src/lda/main.c, src/lib-lda/mail-deliver.h, src/lib-lda/mail-send.c: lib-lda: Send DSN only for out-of-quota errors. Send MDN for Sieve rejects. [ad5298ba3229] * doc/example-config/dovecot.conf: example-config: Updated instance_name setting's comments. [b9e74767cd39] * src/lib-storage/index/index-thread-finish.c: Make static analyzer happier. [996a03279431] * src/lda/main.c, src/lib-lda/mail-deliver.h, src/lib-lda/mail-send.c: lda: If DSN is sent because user is out of quota, send 5.2.2 as Status. [ee060d756630] * src/lib-lda/mail-send.c: lib-lda: Send DSN instead of MDN for rejections. I had just copy&pasted the MDN sending from Cyrus.. [264821ba38a8] * src/lib-storage/mail-storage-service.c: lib-storage: "Invalid userdb input" showed wrong input in the error message. [731d9f2cd25d] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Fixed sdbox_read_header() randomly failing. [7517c752f2f5] * src/lib-storage/fail-mailbox.c: lib-storage: Error handling fix. [e778e2c76f6f] * src/doveadm/dsync/dsync-worker-local.c: dsync: Don't assert-crash if saving a message fails. [57c735865b19] * src/director/auth-connection.c: director: Log an error if auth connection disconnects unexpectedly. [9b70d164e974] * src/doveadm/doveadm-mail.c: doveadm: Changes for previous expire plugin changes to actually work. [b77aa92e3931] * src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c: sdbox: Don't assert-crash on index rebuild if u.X file exists in both primary and alt storage. [5f96fb9f079b] * src/plugins/expire/doveadm-expire.c: expire: Only go through users listed by userdb iteration. Delete dict rows for nonexistent users, unless expire_keep_nonexistent_users=yes. [f889e25711a1] * src/plugins/acl/doveadm-acl.c: doveadm acl: Added "add" and "remove" commands. [845c3045f45c] * src/plugins/acl/doveadm-acl.c: doveadm acl set: Replace both positive and negative rights, not just one of them. [dbff71f51507] * src/doveadm/doveadm-mail-mailbox.c: doveadm mailbox delete: Added -r parameter to recursively delete mailboxes. [4bc781a27f54] * src/doveadm/doveadm-mail-mailbox.c: doveadm mailbox delete: Sort the mailbox parameters so that children are deleted first. [711c122aa253] * src/lib-mail/message-id.c, src/lib-mail/test-message-id.c: message_id_get_next(): Fixed parsing message-ids with no-fold- quotes. [53929042d73e] * src/lib-ssl-iostream/iostream-openssl-context.c, src/login-common /ssl-proxy-openssl.c: SSL: Enable SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS flag for extra security. This is to counter the "BEAST SSL" attack, although I don't think it's practical to implement against IMAP/POP3/LMTP protocols. There's really no way for attackers to inject any evil data before authentication, so the password is safe. Post- authentication attacker could cause clients to download evil emails, but even then clients don't typically redownload some specific mail, so there's really no way to extract anything useful. [8d90de706bd2] * src/doveadm/doveadm-mail-list-iter.c: doveadm: Use MAILBOX_LIST_ITER_LIST_PREFIXES when iterating through mailboxes. This means that if there exists a mailbox in namespace prefix itself, those mailboxes can be accessed. Also "doveadm mailbox list" shows all namespace prefixes. Note that wildcards match only within namespace, so e.g. '*' will never match any namespace prefix, because it works within the prefix="" namespace. [6420d63e7570] * src/lib-storage/mailbox-list-iter.c, src/lib-storage/mailbox-list.h: lib-storage: Added MAILBOX_LIST_ITER_LIST_PREFIXES flag. [f5353573d3a0] * src/doveadm/doveadm-mail-list-iter.c: doveadm: Removed unnecessary code. "mailbox/" is no longer included in listing by default. [53cf118fd16c] * src/doveadm/doveadm-pw.c: doveadm pw: Added -t parameter to test if a hash matches to given plaintext. Based on patch by Jimmy Thrasibule [fffa4d53e901] 2012-02-09 Timo Sirainen * src/lib-storage/index/shared/shared-storage.c: shared: Allocate mailbox as fail_mailbox. This fixes crashes when a mailbox is attempted to be allocated from the shared namespace itself (e.g. the "shared" prefix). [a927b41bf699] * src/lib-storage/Makefile.am, src/lib-storage/fail-mail-storage.c, src/lib-storage/fail-mail-storage.h, src/lib-storage/fail-mail.c, src/lib-storage/fail-mailbox.c, src/lib-storage/test-mail-storage.c, src/lib-storage/test-mail-storage.h, src/lib-storage/test-mail.c, src/lib-storage/test-mailbox.c: lib-storage: Renamed test-mail/mailbox/storage to fail-* [6a285db79b76] * src/plugins/virtual/virtual-storage.c: Increased initial memory pool size. [f9b78a17018c] * src/doveadm/dsync/dsync-worker-local.c: dsync: Fixed a potential assert crash when saving mails. [e29bc3eb0ba6] * src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-single/sdbox-save.c: dbox: If saving is aborted, don't add a broken record about it to index. [98a59ac1f3d0] * src/plugins/quota/quota.c: quota: If "quota" setting's value is empty, assume quota is wanted to be disabled. [dc674f4577af] * src/plugins/snarf/snarf-plugin.c: snarf: Keep the mailbox locked during snarfing to avoid duplicates. [28b73743c36f] * src/imap/cmd-append.c: imap: Handle invalid APPEND parameters a little nicer. [665bb4bc72ca] * configure.in: configure: Avoid some unnecessary warnings with clang. [671b637e20db] * src/auth/password-scheme.c: auth: password_verify() now returns error string also for password mismatches. [aea4151da8f6] * src/doveadm/doveadm-pw.c: doveadm pw: Minor code cleanups. [12579e53f575] * src/doveadm/doveadm-pw.c: doveadm pw: Improved error messages. [75d6cd91fabe] * src/doveadm/doveadm-proxy.c: doveadm proxy list: Avoid hanging if we can't connect to ipc socket. [f2b7e8d8dcb3] * src/lib-master/master-service.c: lib-master no longer uses 's' option, but it wasn't removed from getopt string. [dd4626a996b6] * INSTALL: INSTALL: Updated outdated documentation. [5ea2e9b93fe3] * src/plugins/acl/acl-backend-vfile.c: acl: Avoid assert-crashing when trying to access invalid mailbox names. [95a9428fe68b] * src/doveadm/doveadm-mail-index.c: doveadm index: Changed help text to make it clear that mailbox can have wildcards. [4ced8d2b4a3b] * src/doveadm/doveadm-mail.c: doveadm force-resync: Support wildcards in mailbox names. [e004b6a89869] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Trying to access shared mailboxes of nonexistent users crashed. This was broken by commit 18078d6cce84. [f2d5a1efdda2] * src/doveadm/doveadm-mail-list-iter.c: doveadm mailbox list without pattern shows now all shared and public mailboxes also. doveadm mailbox list '*' shows only the one matching namespace. [b600af017598] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-map.c: mdbox: Fixed finding appendable m.* files in alt storage. [6881d8c59d9f] * doc/example-config/conf.d/10-mail.conf, src/lib- storage/index/mbox/Makefile.am, src/lib-storage/index/mbox/mbox- md5-all.c, src/lib-storage/index/mbox/mbox-md5-apop3d.c, src/lib- storage/index/mbox/mbox-md5.c, src/lib-storage/index/mbox/mbox- md5.h, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-settings.c, src/lib-storage/index/mbox/mbox- settings.h, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/index/mbox/mbox- sync-parse.c: mbox: Added mbox_md5 setting to select headers for MD5 generation. [2500de8f1f51] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Detect duplicate GUIDs for different messages. Don't delete these duplicates. Only the message size is used for detecting if they are duplicates or not, but since this shouldn't normally happen anyway this is good enough. [408350532a18] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Small code cleanup to storage rebuild. [e4272971f86f] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Avoid deferencing NULL pointer in specific corrupted mailboxes. [69bb267956a2] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c: dbox: Index rebuild now preserves caching decisions. [d8d214cc1936] * src/lib-index/mail-cache-private.h, src/lib-index/mail-cache.h: lib-index: mail_cache_open_and_verify() is now public. [21c3ce1b21cd] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-single/sdbox-file.c: dbox: Never rename() mail files over existing files. If such a file exists, rebuild indexes. [09db0f7aa6ce] * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Fixed initial mailbox creation to work again without errors. [41bd2d4c013d] * src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h: sdbox: Use mail_index_set_ext_init_data() to simplify opening mailboxes. Now the initial mailbox index can be created with the necessary sdbox header. If the header doesn't exist when opening a mailbox, it's guaranteed to be corrupted. [1e2e69ea3095] * src/lib-index/mail-index-private.h, src/lib-index/mail-index.c, src /lib-index/mail-index.h, src/lib-index/mail-transaction-log-file.c: lib-index: Added mail_index_set_ext_init_data() for adding data to index on creation. This can be used to avoid race conditions on mailbox creation for mailbox formats that require this (sdbox). [2ab26bb55346] * src/lib-index/mail-cache.c, src/lib-master/mountpoint-list.c: Increase initial memory pool sizes. [f6102f0af71d] 2012-02-08 Timo Sirainen * src/director/main.c: director: Fixed potential assert crash when moving a user to another backend. [24eec256a761] * src/lib/istream.c, src/lib/ostream.c: iostreams: Set errno to stream_errno when exiting from failing functions. [d4e7052af42a] * src/doveadm/doveadm-instance.c: doveadm instance remove: Allow removing using name as well as base dir. [448c48968174] * src/imap/imap-fetch-body.c, src/imap/imap-fetch.h: Removed unnecessary code. [06c9a46f35a8] 2012-02-06 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Fix a corrupted mailbox when opening it, instead of losing all of its contents. [a765e0a895a9] * src/doveadm/doveadm-instance.c: doveadm instance list: Show the last used field. [833ac7b1d58b] * src/lib-master/master-instance.c, src/lib-master/master-instance.h: lib-master: Removed code to auto-drop instances from the list. There couldn't be any empty named instances, so it was a bit pointless. [51c4e336c872] * src/master/main.c: master: If instance_name doesn't begin with "dovecot", add "dovecot-" prefix to process names. [26885fe20e1f] * src/lib-master/Makefile.am, src/lib-master/master-service-private.h, src/lib-master/master-service.c: lib-master: Added -i parameter to read config by instance name rather than path. [3fa544e4f26b] * src/doveadm/Makefile.am, src/doveadm/doveadm-instance.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/lib- master/Makefile.am, src/lib-master/master-instance.c, src/lib-master /master-instance.h, src/master/main.c: Keep track of what Dovecot instances have been executed and their instance_name. doveadm instance command can be used to list/remove them. [5f60958926e1] * src/log/doveadm-connection.c, src/log/doveadm-connection.h, src/log /log-error-buffer.c, src/log/log-error-buffer.h: log: Forgot to add new files to recent commit. [6cd1b564fcc2] * src/util/rawlog.c: rawlog: Renamed -i / -o parameters to "-f in", "-f out" This is mainly to get give the -i parameter to lib-master. [664778adec21] * src/doveadm/doveadm-log.c, src/log/Makefile.am, src/log/log- connection.c, src/log/log-connection.h, src/log/log-settings.c, src/log/main.c: log: Keep track of last 1000 errors/warnings. "doveadm log errors" shows them. [66f875b5102b] * src/lib/failures.c, src/lib/failures.h: liblib: Added failure_log_type_names[] array. [0d224f2c3152] 2012-02-02 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-client.c, src/lib- storage/index/pop3c/pop3c-mail.c: pop3c: Fixes to handling filter streams for mail. [fa7e1246e0e2] * src/lib/istream-seekable.c: istream-seekable: If we panic about stream not being seekable, log the stream name/offset. [f31a227ae381] * src/lib-storage/index/pop3c/pop3c-client.c: pop3c: Last message wasn't visible. [a5aac072bf38] * src/lib-storage/index/imapc/imapc-storage.c: imapc: If base_dir isn't set, do a blocking DNS lookup. This is mostly a workaround for being able to run imapc from standalone programs (e.g. doveadm) without running Dovecot. [47072538ff11] * src/lib-imap-client/imapc-connection.c: lib-imap-client: If dns_client_socket_path isn't given, do a blocking lookup. [9d031f0b613d] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added support for hdr.*.utf8 fields. [ceadfe9009aa] * src/lib-storage/mail-storage.c: lib-storage: One more crashfix for recent maildir_name/mailbox_dir_name change. [ba48de993c8e] * src/auth/db-ldap.c: auth: Get LDAP attribute names automatically from template's %{ldap:attr} variables. [d29d119192c1] * src/lib/var-expand.c: var_expand*(): Allow table to be NULL (when using only func_table). [56c3a6c1d187] * src/auth/db-ldap.c: auth: LDAP fields can now access any returned LDAP attribtes with %{ldap:name} [ab58022f934f] * src/lib/var-expand.c, src/lib/var-expand.h: liblib: Added var_expand_with_funcs() to expand variables with function callbacks. [ba86a60e3059] * src/auth/db-ldap.c, src/auth/db-ldap.h: ldap: Crashfixes to previous change. [7edafe5c43da] * src/lib-storage/index/imapc/imapc-list.c: imapc: Crashfix related to recent maildir_name/mailbox_dir_name changes. [adb1ac9a9b82] * src/config/config-parser.c: config: In "key= * src/lib-storage/index/dbox-single/sdbox-sync.c: sdbox: Fixed moving files from alt storage to primary storage. [fb659472b2a2] * src/plugins/stats/stats-plugin.c: stats plugin disabled calling other plugins' user.deinit() method. [b82a3149f45e] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/mailbox- list.c: lib-storage: And another fix to previous maildir_name/mailbox_dir_name changes. [db8c1dde0b41] * src/lib/ioloop-private.h, src/lib/ioloop.c, src/lib/ioloop.h: ioloop: I/O and timeout leak messages now include the io_add()/timeout_add() source line number. This helps figuring out the leak especially when using ASLR. Also in 64bit systems there's no increased memory usage, because the line number replaces only padding. [0308a33d9f99] * src/lib-storage/mailbox-list.c: lib-storage: Crashfix to previous change. [e3c4a86fb63b] * src/lib-master/mountpoint-list.c, src/lib-master/mountpoint-list.h, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib- storage/mailbox-list.c: lib-storage: Abort index/control/alt root dir creation if mountpoint isn't mounted. [d01932c7828a] * src/doveadm/doveadm-mount.c: doveadm mount: Renamed "status" command to "list". [cf34d9fc5cec] * src/doveadm/doveadm-mount.c: doveadm mount remove: Allow removing a wildcard path with the '*' suffix. [f9a4404f2316] * src/doveadm/Makefile.am, src/doveadm/doveadm-mount.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/lib- master/Makefile.am, src/lib-master/mountpoint-list.c, src/lib-master /mountpoint-list.h, src/master/main.c: Keep track of seen mountpoints and warn at startup if one is missing. doveadm mount commands can be used to manipulate the list. The list is kept in $rundir/mounts, but since it may be deleted after a reboot a copy is kept also in $statedir/mounts. If it's not found from $rundir at startup, it's copied there from $statedir. (The reason why only $statedir isn't used is because it's often not world-readable.) [51324056af4f] * src/doveadm/doveadm-director.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm-print.h, src/doveadm/doveadm-proxy.c, src/doveadm/doveadm-stats.c, src/doveadm/doveadm-who.c: doveadm: Added flag to specify which column table formatter expands. The default also was changed to last column, not first. [56ff22125b7d] * configure.in: configure: Added getmntinfo() check for BSD mountpoint iteration. [4b783711a22e] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index/maildir /maildir-util.c, src/lib-storage/mail-storage.c, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/fts- lucene/fts-backend-lucene.c: lib-storage: mailbox_list_mkdir_root() API changed. Use it now for creating mail root dir. It was supposed to be used for it previously, but wasn't.. [aed3379df476] * src/lib/guid.c: guid_128_generate(): Use 32bit sha1(host@domain) instead of crc32(hostname) [acc60bd684fb] 2012-01-30 Timo Sirainen * src/lib/mountpoint.c, src/lib/mountpoint.h: Added mountpoint_iter_*() for iterating mounted filesystems. [8be75a2ea2dd] 2012-01-29 Pascal Volk * doc/man/doveconf.1.in: man: Added descriptions of -d and -S options to doveconf.1. [cc533cbd77b0] 2012-01-29 Timo Sirainen * src/lib/istream-seekable.c: istream-concat: If EOF is already reached, use that size for stat().st_size [15bcb5616717] * src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: zlib: zlib/bzlib ostreams no longer assert-crash if parent stream becomes full. This fixes assert-crashes with IMAP COMPRESS extension. [3c0bd1fd035b] * src/lib-storage/index/pop3c/pop3c-mail.c: pop3c: mail.istream_opened() method wasn't being called. [397224940894] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Don't lose save_dates when rebuilding indexes. [47018c625680] * src/plugins/zlib/zlib-plugin.c: zlib+mbox: Fixed error handling when opening nonexistent/directory mailbox. [dd2f85009ba0] 2012-01-28 Timo Sirainen * src/imap/imap-search.c: imap: CONTEXT search return option wasn't handled at all. [7a1e2cb5c13c] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-multi/mdbox-sync.h: mdbox: Check that m.X file doesn't have garbage at end of file when saving new data to it. [bde005e302e0] * src/doveadm/dsync/dsync-worker-local.c: dsync: Fixed handling non-ASCII characters in mailbox names. [ef6f3b7f6038] * src/config/config-parser-private.h, src/config/config-parser.c, src/config/doveconf.c: doveconf: Added -d parameter for dumping default settings. [41cb0217b7c3] * src/lib-sql/driver-sqlpool.c: sql: Fixed retrying query when multiple hosts were specified and all of them got disconnected. [6b902f2be944] * src/lib-storage/index/index-thread-finish.c: lib-storage: Thread iteration no longer returns dummy nodes without children. This fixes returning (0) nodes to IMAP client. [67972d72b55c] * src/lib/restrict-access.c: restrict_access(): If privileged and primary GIDs are the same, ignore privileged GID. [9b8657a98e2e] * src/doveadm/dsync/dsync-brain.c: dsync: If brain fails but workers don't, exit without assert- crashing. [2a4b425b05dc] * src/doveadm/dsync/dsync-worker-local.c: dsync: Don't crash if one source has indexes disabled. [7b94d1c8a6e7] * src/lib-lda/smtp-client.c: smtp client: Do DNS blocking lookups. We don't currently have access to base_dir, so we can't know what the path to dns-client is. Also smtp client is a blocking operation anyway, so doing a blocking DNS lookup isn't a problem. [32318f1588d4] * src/lib-lda/lmtp-client.c: smtp/lmtp client: If dns-client socket path isn't given, use blocking lookup. [bc2eea348f55] * src/lib-storage/list/mailbox-list-fs.c: fs layout: Handle properly returning path when there is no root dir. [5a14f5ddd1a2] 2012-01-27 Timo Sirainen * src/master/service-monitor.c, src/master/service.h: master: Throttle rapid exit failures only if there have never been any exit successes. This should still catch buggy services without allowing intentional DoSing. [85a9b5236b6c] * src/master/service-monitor.c, src/master/service.c, src/master/service.h: master: Make service throttling seconds incremental, starting from 2 secs. [c553725d57bb] * src/master/service-monitor.c, src/master/service.h: master: If 10 service processes die within a second with no successes inbetween, throttle the service. [300736775b89] * src/auth/userdb-passwd.c: auth: Monitor how fast userdb passwd lookups are. If they're too slow, suggest blocking=yes [c9b5ea1b9709] * src/auth/db-passwd-file.c: auth: If parsing passwd-file takes a long time, log a warning. [e9a816eaa0e2] * src/imap-login/imap-proxy.c, src/login-common/client-common.c, src /login-common/client-common.h, src/pop3-login/pop3-proxy.c: login proxy: If remote auth fails, say so in disconnect message instead of "internal failure". [cb344eb79daa] * dovecot-config.in.in: dovecot-config: Added missing lib-dns and lib-fs to LIBDOVECOT_INCLUDE [7767d168c994] * src/lib-storage/index/dbox-single/sdbox-file.c: sdbox: Preserve file's atime/mtime when moving it to alt storage. [10320252b521] * src/lib-imap-client/imapc-connection.c: imapc: If imapc_host is IP, don't look it up via dns-client service. [6e6c20ab1ed1] * doc/example-config/conf.d/10-mail.conf: example-config: mdbox_rotate_interval default was wrong. [c330960e6bcb] * src/imap-login/imap-proxy.c, src/pop3-login/client-authenticate.c, src/pop3-login/pop3-proxy.c: login: More verbose_auth -> auth_verbose changes. [d88f58c6fd21] * src/login-common/login-settings.c, src/login-common/login- settings.h: login: If auth_debug_passwords=yes, assume auth_debug/auth_verbose=yes [520fcb49c939] * src/login-common/client-common-auth.c, src/login-common/login- settings.c, src/login-common/login-settings.h, src/login-common /sasl-server.c, src/login-common/ssl-proxy-openssl.c: login process wasn't logging all intended messages with auth_verbose=yes It was named verbose_auth setting accidentally. [581aaea8569c] * src/lib-storage/index/imapc/imapc-mail.c: imapc: If server doesn't support GUIDs, return empty GUID rather than fail. This is how other backends do it as well. [f3e000992f61] 2012-01-26 Timo Sirainen * src/doveadm/doveadm-mail-fetch.c: doveadm fetch hdr.*.adddress*: Don't crash when printing groups. [afeabe28a499] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: hdr.*.address and hdr.*.address_name expand to parsed mail addresses. [a6a787f0aba1] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch text.utf8: Don't return failure on success. [2418871d09f5] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added text.utf8 field, which translates headers/body to UTF-8. [89a637820edd] * src/auth/password-scheme.c: auth: Added PLAIN-TRUNC password schmee. The idea is to allow successful authentication when the original plaintext password was stored truncated in the database. So e.g. user gave 123456789 as password, but database truncated it to 12345678. To make this authentication work, {PLAIN-TRUNC}8-12345678 password allows successful authentication with any password that begins with 12345678. With the "8-" prefix this prefix matching is done only when the password after it is exactly 8 characters. [3235e903dc97] * src/lib/Makefile.am: Makefile: Added UnicodeData.txt dependency to unicodemap.c. [b2a2036bad3a] * .hgsigs: Added signature for changeset 0f10b3ed5c18 [de09157961d6] * .hgtags: Added tag 2.1.rc5 for changeset 0f10b3ed5c18 [67f12146691c] * NEWS, configure.in: Released v2.1.rc5. [0f10b3ed5c18] [2.1.rc5] * src/lib-storage/index/maildir/maildir-save.c: maildir: When saving mails compressed, make sure ,S=size gets added to the filename. [8f25ff7e0e78] 2012-01-25 Timo Sirainen * src/lib-storage/index/index-mail.c: lib-storage: Message size lookups from cache was broken if fields weren't in "normal" order in file. [cfc395ee6be1] 2012-01-24 Timo Sirainen * .hgsigs: Added signature for changeset a20a99b8815d [d01c46b6b5bb] * .hgtags: Added tag 2.1.rc4 for changeset a20a99b8815d [844294bc4b32] * NEWS, TODO, configure.in: Released v2.1.rc4. [a20a99b8815d] [2.1.rc4] * src/lib-storage/list/mailbox-list-index.c: Dead code removal. [077b09204860] * src/lib-index/mail-index-sync-ext.c: lib-index: Handle broken ext-header updates without crashing. [b4d8e950eb9d] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Getting stream's size failed in some situations. This could have caused other trouble, such as with dbox + mail_attachment_dir. [c464072d05e0] * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Minor code correctness fix. [096c12e69fd6] * src/lib-storage/index/istream-mail.c: istream-mail: Skip checking if cached message size is wrong if parent stream returns error. An error is not the same as EOF. [4e3f2ee77b37] * src/lib/istream-concat.c: istream-concat: If looking up stream's size fails, log an error and handle it as error, not EOF. [5c1471ae3005] 2012-01-22 Timo Sirainen * src/login-common/client-common-auth.c, src/login-common/client- common.h: login: Make SASL auth buffer size define public. [83a2e1ba3ab6] 2012-01-21 Timo Sirainen * src/lib-storage/index/pop3c/pop3c-settings.c: pop3c: Change the default port to 110, not 143. [8f5cdb88d047] * src/lib-storage/index/pop3c/pop3c-storage.c: pop3c: Fixed to work without indexes. [b6f9fa12dca6] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/client.c, src/imap-login/client.h, src/login-common/client-common-auth.c: imap-login: Fixed handling second AUTHENTICATE command when the first one failed. [32cf5ed72e2d] * src/lmtp/client.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h: lmtp: Fixed assert-crashing on 3rd client connection. [e9f68fdf6967] * src/lmtp/commands.c, src/lmtp/main.c, src/lmtp/main.h: lmtp: Make core dumping work also after the first mail delivery. [d5ba2d63ed6d] 2012-01-20 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Fixed listing child mailboxes when children flags weren't requested. [54e74090fb42] * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Don't list subscriptions file as a mailbox. [958ef86e7f5b] * src/plugins/notify/notify-plugin.c: notify plugin: Don't crash if user-plugin didn't set mailbox_rename. Patch by Ewald Dieterich. [62c33ed5e357] * src/plugins/notify/notify-plugin-private.h, src/plugins/notify /notify-plugin.c, src/plugins/notify/notify-plugin.h, src/plugins/notify/notify-storage.c: notify plugin: Added mailbox_update and mailbox_set_subscribed notifications. [eaf3152a33d6] * doc/example-config/dovecot.conf, src/master/main.c, src/master /master-settings.c, src/master/master-settings.h: master: Added instance_name setting, which is used to prefix processes in ps output. [e1f21a4ef417] * src/lib-sql/driver-mysql.c: mysql: If query fails with "MySQL server gone away", log also how long it idled. [a817cfc3979d] * src/auth/auth-common.h, src/auth/auth-worker-client.c, src/auth /auth-worker-client.h, src/auth/auth-worker-server.c, src/auth/main.c, src/auth/passdb-pam.c: auth: Make idle_kill work with auth worker processes. [58556a90259f] * src/lib-master/master-interface.h, src/lib-master/master-service- private.h, src/lib-master/master-service.c, src/lib-master/master- service.h, src/master/service-process.c: lib-master: Send service's idle_kill value to process in environment. [3963862a4086] * src/master/service-process.c: Typofix. [a6a53c658cab] * src/plugins/fts/fts-parser-script.c: fts: Run decoder script with 10 second alarm. [01480afe283f] * src/util/script.c: script: Set alarm() for the script being run only if alarm= parameter is given. [5f33a67d5e25] * src/plugins/fts/decode2text.sh: decode2text.sh: Hide catdoc/catppt/xls2csv segmentation faults. We can't do anything about them anyway. [4d60dcf35bbe] * src/imap/main.c, src/lib-master/master-login.c, src/lib-master /master-login.h, src/pop3/main.c: imap, pop3: Added -t parameter to specify post-login script timeout. [9015f0b8fa4d] * src/util/script-login.c: script-login: If we fail to finish, exit with 0 to avoid master logging error unnecessarily. [db37a5818b92] * src/plugins/quota/quota-maildir.c: Maildir++ quota: Close maildirsize file after writing to it to force NFS to write it. This should fix the "Stale NFS file handle" errors with maildirsize. [00a27339f541] * src/lib/eacces-error.c: eacces_error(): Removed bogus message about UNIX perms appearing to be ok. [8714ccb35848] * src/lib-auth/auth-server-connection.c: lib-auth: Don't log the "auth connection closed" warning if there were 0 non-aborted requests. [569e1fd8d97e] * src/lib-auth/auth-client-request.c, src/lib-auth/auth-client- request.h, src/lib-auth/auth-client.c, src/lib-auth/auth-client.h, src/lib-auth/auth-server-connection.c, src/lib-auth/auth-server- connection.h, src/login-common/client-common.c, src/login- common/main.c: lib-auth: Improved warning message about aborting auth requests. [3dae51fd4565] 2012-01-19 Timo Sirainen * src/auth/auth-settings.c, src/auth/auth-worker-client.c, src/auth /auth-worker-client.h, src/auth/auth-worker-server.c, src/auth/db- sql.c, src/auth/db-sql.h, src/auth/main.c, src/auth/passdb-sql.c, src/auth/userdb-sql.c: auth: Throttle SQL auth worker process creation if they can't connect to database. [7175320feafc] * src/auth/auth-common.h, src/auth/auth-worker-client.c, src/auth /auth-worker-client.h, src/auth/main.c: auth: Show a better auth worker process title. [1fa75cada826] * src/auth/auth-request.c: auth: Avoid adding duplicate extra fields to auth replies. This especially fixes default_fields/override_fields. [05940646a0f4] * src/auth/auth-stream.c, src/auth/auth-stream.h, src/auth/userdb- blocking.c: auth: Minor optimization. [057477461add] * src/auth/passdb-template.c: auth: Don't crash when setting valueless default/override_fields to passdb. [234de9c2240f] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/client.c, src/imap-login/client.h, src/lib-master/master-auth.h, src/login-common/client-common-auth.c, src/login-common/client-common.h: imap-login: Handle SASL-IR without overflowing master_auth_request's buffer. [b86f7dd170c6] * src/lib-auth/auth-client-request.c: lib-auth: Treat cert_username="" and initial_resp_base64="" the same as NULLs. [141d1e26b13a] 2012-01-18 Timo Sirainen * src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c, src/auth/userdb-ldap.c: auth: Log a warning if userdb ldap isn't used, but user_* or iterate_* aren't defaults. This is intended to stop people from wondering why their changes don't do anything. [826ac15f8a13] * src/auth/db-sql.c, src/auth/db-sql.h, src/auth/passdb-sql.c, src/auth/userdb-sql.c: auth: Log a warning if userdb sql isn't used, but user_query or iterate_query isn't default. This is intended to stop people from wondering why user_query doesn't do anything. [8822aeae8d82] * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Don't crash in mailbox listing if there are only invalid patterns. [99ea6da7dc99] * src/lib-lda/mail-deliver.c: lib-lda: Added %e / %{from_envelope} variable to deliver_log_format. [08cc9d2a79e6] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- mail.h, src/lib-storage/index/index-storage.c: lib-storage: Preserve from_envelope in save context's dest_mail even if it's temporary. This allows looking it up while the mail is being saved. [7ee2cfbcae2e] * src/master/service-monitor.c: master: Show the process_limit / client_limit value when logging that it's been reached. [a4e61c99c7eb] 2012-01-17 Timo Sirainen * src/lmtp/lmtp-proxy.c: lmtp: Removed unnecessary code. [bb848036f1b4] * src/lib-lda/lmtp-client.c: lib-lda: Fixed LMTP client hanging on sending large mails. [8a9a803f8af4] * src/lmtp/client.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h: lmtp: Get banner text from login_greeting setting. [05434bef2492] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Added mail_storage_service_get_var_expand_table(). [ded87d81fc74] * src/director/director-connection.c, src/director/director.c, src/director/director.h: director: Added timeout to syncing to make sure we don't hang if it somehow gets lost. [493ebb2cfc73] * src/director/director-connection.c: director: Make sure ring syncing doesn't get lost when directors get disconnected. [9e43af01f147] * src/auth/mech-digest-md5.c: auth: DIGEST-MD5 supports authorization id now. Patch by Yubao Liu. [c9c271502b32] * src/auth/mech-digest-md5.c: auth: DIGEST-MD5 didn't read nonce-count parameter correctly. Patch by Yubao Liu. [387707dc020e] * src/director/main.c: director: Drop privileges only after adding hosts. This allows reading files from /etc/ before chrooting. [1d54d2963392] * src/auth/passdb.c, src/auth/userdb.c: auth: Fixed loading passdb/userdb plugins. Patch by Stephan Bosch. [352d3f2f8bb7] * src/director/director.c, src/director/director.h, src/director/main.c: director: Find director's own IP earlier in init. [b8fa70a81c8c] 2012-01-12 Timo Sirainen * src/doveadm/dsync/doveadm-dsync.c: dsync: Fixed handling -u parameter in backwards compatibility dsync mode. [1a722c7676bb] * src/login-common/client-common-auth.c, src/login-common/client- common.c, src/login-common/client-common.h: login: Added logging if auth process doesn't respond fast enough for greeting. [957e74f0d60f] * doc/example-config/conf.d/10-master.conf: example-config: Updated vsz_limit default values. [1c77891b754b] 2012-01-11 Timo Sirainen * src/login-common/client-common-auth.c: login proxy: Added extra logging for bug detection. [d72db2acf75b] * configure.in: configure: Add -fno-builtin-strftime flag with gcc to avoid warning. [e0ff21d73630] 2012-01-10 Timo Sirainen * src/lib/iostream-rawlog.c: Compiler warning fix. [19700d683144] * src/plugins/fts/decode2text.sh: decode2text.sh: Exit with 0 even if the decoding failed. There's nothing to be done anyway, since they are external programs. These errors just flood the error log unnecessarily. [24d79a3708c6] * src/lib-mail/message-search.c, src/lib-mail/message-search.h, src /lib-storage/index/index-search.c: Don't assert-crash on mail search if decomposed titlecase of search key is empty. [bc3b343b1999] * src/plugins/quota/quota-maildir.c: quota: Try to avoid logging NFS stale fhandle errors when closing maildirsize file. [0cd33404a201] * src/imap-login/client-authenticate.c, src/pop3-login/client- authenticate.c: imap/pop3-login: Include hostname and timestamp in "temporary auth failure" message. [81fa0597b8b6] * src/doveadm/doveadm-util.c, src/lib-storage/mail-storage.c, src/lib- storage/mailbox-list.c, src/lib/iostream-rawlog.c, src/util/rawlog.c: Use t_strflocaltime() where possible. [d4c506d8f534] * src/lib/macros.h, src/lib/time-util.c, src/lib/time-util.h: Added t_strflocaltime(). [22cfba724675] * src/master/master-settings.c: master: default_idle_kill setting wasn't "time" type. [1362d8bda03c] * src/director/director-connection.c, src/director/director-request.c, src/director/director-request.h, src/director/director.c, src/director/director.h, src/director/login-connection.c: director: If request is timed out, log an error. [c70965e8b27d] * src/auth/auth-request.c: s/Fallbacking/Falling back/ [ee7b18b1fc00] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Make sure header name is lowercased in search queries. [075591a4b6a8] * src/login-common/client-common-auth.c: login proxy: If server disconnects during auth, log the connection duration. [dd48e9094efb] 2012-01-09 Timo Sirainen * src/master/service-process.c: master: "Out of memory" message shows now the service {} block around vsz_limit. [16d32dda723c] * src/lib-storage/index/imapc/imapc-settings.c, src/lib- storage/index/imapc/imapc-settings.h, src/lib-storage/index/imapc /imapc-storage.c: imapc: Added imapc_master_user setting. [b860d38f6b9e] * src/lib-imap-client/imapc-client.c: imapc: Treat master_user="" the same as NULL. [43aa5c4f0bfd] * src/auth/auth.c: auth: Check also masterdbs when checking if auth mechanism can be used. Patch by Yubao Liu [32f61c8498a4] * src/lib-lda/lmtp-client.c: lib-lda: Make lmtp_client_state_to_string() more verbose. [7c39b94ded90] * src/auth/Makefile.am, src/auth/auth-postfix-connection.c, src/auth /auth-postfix-connection.h, src/auth/main.c: auth: Implemented support for Postfix's "TCP map" sockets for user existence lookups. [f562bcaca215] * src/auth/auth-client-connection.c, src/auth/auth-client- connection.h, src/auth/auth-master-connection.c, src/auth/auth- master-connection.h, src/auth/main.c: auth: Use linked list instead of array for storing list of auth connections. With arrays the removal was slower than necessary. [fd8fc3b7615e] 2012-01-07 Timo Sirainen * src/auth/auth-request.c: Removed unnecessary code. [5173218ff7fe] 2012-01-06 Timo Sirainen * .hgsigs: Added signature for changeset 5398bdb8613f [a0f9887133e6] * .hgtags: Added tag 2.1.rc3 for changeset 5398bdb8613f [f1a1941bbf5a] * NEWS, TODO, configure.in: Released v2.1.rc3. [5398bdb8613f] [2.1.rc3] * src/lib-storage/mail-storage.c: Compiler warning fix. [4c06fb461cd4] * src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-proxy.c: Make static analyzer happier. [3dc9c253880d] * src/master/service-process.c: master: log/anvil listener names weren't set correctly. Also this fixes a long standing static analyzer "error". [326b05f0246b] * src/doveadm/dsync/Makefile.am: Makefile: added missing file [5f4b1539b406] * .hgsigs: Added signature for changeset a14b7333ae45 [3f96b6427e69] * .hgtags: Added tag 2.1.rc2 for changeset a14b7333ae45 [18d201efd02e] * NEWS, TODO, configure.in: Released v2.1.rc2. [a14b7333ae45] [2.1.rc2] * src/log/log-connection.c: log: Removed unnecessary code. [66facb0594a1] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Log all mail deliveries with "save" event, even if it happened via copying. [e749d3171acd] * src/lib-lda/mail-deliver.c: lib-lda: Use mailbox_save_using_mail() instead of mailbox_copy() for saving mails. [dfe7158a48ff] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/lib-storage/mail-storage.h: lib-storage: Added mailbox_save_using_mail() [1e58372ee6f0] * src/lib-storage/mail-copy.c, src/lib-storage/mail-storage-private.h, src/plugins/notify/notify-storage.c, src/plugins/quota/quota- storage.c: lib-storage: Renamed mail_save_context.copying to copying_via_save. [7f549b7eb77f] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/dsync/doveadm-dsync.c: doveadm: Hide "dsync-server" from list of commands. [08e5bc9cd64a] * src/doveadm/dsync/doveadm-dsync.c: doveadm: Renamed dsync commands. [383286ae9071] * src/auth/auth-request-handler.c: auth: If master_user is specified by userdb, don't add another one to reply. The one specified by userdb should have overridden the other one though. [f0d11bd4e5f5] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Avoid using too much memory unnecessarily. Log a warning about huge headers. [380b0667e0a5] * src/lib/istream-data.c: istream-data: Avoid assert crashing due to recently added assert. [899a2359450a] 2012-01-04 Timo Sirainen * src/lib-index/mail-index-sync-keywords.c, src/lib-index/mail-index- sync.c, src/lib-index/mail-transaction-log-view.c: lib-index: Avoid assert-crashing on keyword-update record with empty keyword. [931436c5f2cc] * src/doveadm/dsync/dsync-worker-local.c: dsync: Don't remove other namespaces entirely, just skip the unwanted ones. This fixes incorrectly removing subscriptions=no namespaces entries from subscriptions. [4f995c6e971b] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: Don't log errors when trying to change ACLs for nonexistent mailboxes. [11a5bb865eba] * src/imap/cmd-list.c, src/lib-storage/mailbox-list-iter.c, src/lib- storage/mailbox-list.h: Added MAILBOX_LIST_ITER_SELECT_SPECIALUSE option and enable it for IMAP. RECURSIVEMATCH option doesn't currently work properly with it. [0aa94d55dcff] * src/lib/file-copy.c, src/lib/istream.c, src/plugins/fts-squat/squat- test.c: istream: Don't treat max_block_size=0 as unlimited. [59f5238c6e61] 2012-01-03 Timo Sirainen * src/doveadm/dsync/dsync-worker-local.c: dsync: Don't log unnecessary errors about not being able to delete \Noselect mailbox dirs. [997a2855fd74] * src/doveadm/dsync/dsync-worker-local.c: dsync: Previous commit did too many changes, reverting. [ea9ab24972ed] * src/doveadm/dsync/dsync-worker-local.c: dsync: Don't log unnecessary errors about not being able to delete \Noselect mailbox dirs. [12e59954a23f] * src/login-common/client-common.h: imap-login: LOGIN_MAX_INBUF_SIZE was too small, because of SASL-IR extension [614422fbbe8b] 2012-01-02 Timo Sirainen * configure.in, src/lib-storage/index/Makefile.am, src/lib- storage/index/pop3c/Makefile.am, src/lib-storage/index/pop3c/pop3c- client.c, src/lib-storage/index/pop3c/pop3c-client.h, src/lib- storage/index/pop3c/pop3c-mail.c, src/lib-storage/index/pop3c/pop3c- settings.c, src/lib-storage/index/pop3c/pop3c-settings.h, src/lib- storage/index/pop3c/pop3c-storage.c, src/lib-storage/index/pop3c /pop3c-storage.h, src/lib-storage/index/pop3c/pop3c-sync.c, src/lib- storage/index/pop3c/pop3c-sync.h: lib-storage: Added initial support for pop3c backend. [d4c909d2306f] 2011-12-30 Timo Sirainen * src/doveadm/doveadm-stats.c: doveadm stats top: Added -b parameter to use read_bytes/write_bytes fields for disk io. This is useful when the kernel doesn't support the actual disk IO fields. [193c66096bb3] * src/auth/main.c, src/director/main.c, src/ipc/main.c: Use master_service_connection.name for determining listener type. [5df67a23afb9] * src/lib-master/master-service-private.h, src/lib-master/master- service.c, src/lib-master/master-service.h, src/master/service- process.c, src/master/service.c, src/master/service.h: Listener names are now in struct master_service_connection.name This allows service to use the names to figure out what type the listener is. [cdf2c63ece6a] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/imapc/imapc-storage.c, src /lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/test-mailbox.c, src/plugins/virtual /virtual-storage.c: lib-storage: Added struct mailbox.set_subscribed() virtual method. [bc9217cb0193] 2011-12-29 Timo Sirainen * .hgignore, configure.in, src/Makefile.am, src/doveadm/Makefile.am, src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm.c, src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/doveadm-dsync.h, src/doveadm/dsync/dsync-brain- msgs-new.c, src/doveadm/dsync/dsync-brain-msgs.c, src/doveadm/dsync /dsync-brain-private.h, src/doveadm/dsync/dsync-brain.c, src/doveadm/dsync/dsync-brain.h, src/doveadm/dsync/dsync-data.c, src/doveadm/dsync/dsync-data.h, src/doveadm/dsync/dsync-proxy- client.c, src/doveadm/dsync/dsync-proxy-server-cmd.c, src/doveadm/dsync/dsync-proxy-server.c, src/doveadm/dsync/dsync- proxy-server.h, src/doveadm/dsync/dsync-proxy.c, src/doveadm/dsync /dsync-proxy.h, src/doveadm/dsync/dsync-worker-local.c, src/doveadm/dsync/dsync-worker-private.h, src/doveadm/dsync/dsync- worker.c, src/doveadm/dsync/dsync-worker.h, src/doveadm/dsync/test- dsync-brain-msgs.c, src/doveadm/dsync/test-dsync-brain.c, src/doveadm/dsync/test-dsync-common.c, src/doveadm/dsync/test-dsync- common.h, src/doveadm/dsync/test-dsync-proxy-server-cmd.c, src/doveadm/dsync/test-dsync-proxy.c, src/doveadm/dsync/test-dsync- worker.c, src/doveadm/dsync/test-dsync-worker.h, src/dsync/Makefile.am, src/dsync/dsync-brain-msgs-new.c, src/dsync /dsync-brain-msgs.c, src/dsync/dsync-brain-private.h, src/dsync /dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy-client.c, src/dsync /dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync /dsync-proxy-server.h, src/dsync/dsync-proxy.c, src/dsync/dsync- proxy.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker- private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/dsync.c, src/dsync/test-dsync-brain-msgs.c, src/dsync /test-dsync-brain.c, src/dsync/test-dsync-common.c, src/dsync/test- dsync-common.h, src/dsync/test-dsync-proxy-server-cmd.c, src/dsync /test-dsync-proxy.c, src/dsync/test-dsync-worker.c, src/dsync/test- dsync-worker.h: Merged dsync into "doveadm dsync". dsync symlink is installed for backwards compatibility. [4c827134997f] * src/plugins/mail-log/Makefile.am, src/plugins/mail-log/mail-log- plugin.c: mail-log: Removed unnecessary code. [3c7e01a5c7b7] 2011-12-21 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c: imapc: When searching for unused index dirs, ignore any ACLs. This also fixes a crash. [056934abd2ef] 2011-12-20 Timo Sirainen * src/util/script-login.c: script-login -d: Ignore chrooting, we can't exec anything inside chroot. [73fbc40b860f] * src/util/script-login.c: script-login: Close extra fds to avoid failing with --enable-devel- checks. [477106b6f4c7] * src/lib-dict/dict-file.c: dict-file: Updated dotlock settings. [53114d335053] 2011-12-19 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Added support for autodetection. [1d73272eba6c] 2011-12-16 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: FS layout: Mark memory pool growing to avoid warnings with devel- checks. [103ecbf3d5c7] * src/lib-storage/index/index-storage.c: FS layout: When deleting a mailbox, don't give an error if mailbox has children. The mailbox got successfully deleted, but it still gave an error. [6ded89937e98] * configure.in: --enable-devel-checks: Use -fcatch-undefined-behavior -ftrapv with clang. [c682a5bf3de7] * src/plugins/fts/fts-expunge-log.c: fts: Expunging could have expunged indexed FTS mail from wrong mailbox. [01ddcf7cf568] * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_get_permissions() didn't properly erase the full return struct. This shouldn't have caused any bugs currently. [15c3002755de] 2011-12-15 Timo Sirainen * src/lib-imap-client/imapc-connection.c: imapc: Assert crashfix. [d5eaa0c56b1e] 2011-12-14 Timo Sirainen * src/lib-imap-client/imapc-client-private.h, src/lib-imap-client /imapc-client.c, src/lib-imap-client/imapc-connection.c: imapc: Try to avoid crashes on deinit/disconnection. [1e8523481d89] * src/lib/istream.c, src/lib/istream.h: Added i_stream_unset_destroy_callback() [46a1f211ef84] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/index-mail.c: imapc: Avoid assert-crashing when replacing mail stream with a new one. [efb48f4e40a6] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Fixed missing BODY[]/INTERNALDATE to handle actual failures again. [96ce297561a0] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Handle missing INTERNALDATE reply by returning an empty mail instead of disconnecting. [20ccdd42c14a] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Handle missing BODY[] reply by returning an empty mail instead of disconnecting. [69f388aa7ce9] * src/auth/db-passwd-file.c: auth: Don't die if passwd-file can't open the file. The file is parsed after we already sent "we're ok" reply to master, so dying triggers infinite restarts. [e7ec5649655a] 2011-12-12 Timo Sirainen * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Added support for fetching GUID from remote server, if supported. Currently this is only done for GMail. [0bdbb8d99492] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h: imapc: Added X-GM-EXT-1 and CONDSTORE to capabilities. [31810fed489d] * src/lib-imap-client/imapc-connection.c: imapc: Don't crash if we receive tagged BAD reply. [6c1080148739] * src/imap/imap-fetch.c: imap: When fetching X-GUID, set MAIL_FETCH_GUID also as "wanted fields" for optimization. [8dc4ffcc3b83] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Removed HIGHESTMODSEQ handling from STATUS command. We don't currently even attempt to handle remote modseqs, so HIGHESTMODSEQ shouldn't be used either. [6fb8b5bd2541] * src/auth/auth-master-connection.c: auth: Handle proxy_maybe=yes for PASS lookups. (Fixes it for LMTP.) [672f2737f596] * src/imap/cmd-list.c: imap: Convert LIST/LSUB patterns from mUTF-7 to UTF-8 for internal representation. [b9fcac239aed] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Handle %{uid} and %{gid} expansion without relying on process's euid/egid. [9352c4ccb1f9] * src/lib-storage/mail-user.c: lib-storage: Previously added %{gid} variable didn't actually work. [3c5fda349c1f] 2011-12-10 Timo Sirainen * src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: lmtp: Simplify LMTP proxying by first reading the whole input to memory/disk. This hopefully fixes problems related to LMTP proxying, at the cost of having to write large mails to temp directory. [51d87deb5c26] * src/auth/passdb-imap.c: passdb imap: Log about failures. [9d1336b40592] * src/dsync/dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync- proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync- proxy.c, src/dsync/dsync-proxy.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker-private.h, src/dsync/test-dsync-common.c, src/dsync/test-dsync-proxy.c, src/dsync/test-dsync-worker.c, src/dsync/test-dsync-worker.h, src/lib-storage/index/dbox-multi /mdbox-storage.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index/index-status.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib-storage /mail-storage.h: dsync: Update cache fields' decision and last_used fields explicitly. This makes v2.1's dsync incompatible with v2.0's when used in different servers. [3830d5a57fd4] * src/doveadm/doveadm-dump-index.c: doveadm: Compile fix for previous lib-index change. [186f2f5ee1c3] * src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache- decisions.c, src/lib-index/mail-cache-fields.c, src/lib-index/mail- cache-private.h, src/lib-index/mail-cache.h: lib-index: Allow updating cache's last_used field with mail_cache_register_fields() [ce29836e369e] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Added separate %{gid} expansion to mail_user. The default %{gid} probably works also, but it's more reliable to do this explicitly. [499e4916bed5] * src/lib-index/mail-cache-decisions.c: lib-index: If cache field's decision is forced no, don't update the field's last_used. [95524ab3469f] * src/lib-fs/fs-posix.c: lib-fs: Added "mode" parameter to "posix" backend to specify mode for created files/dirs. [fcceee891448] * src/lib-storage/index/maildir/maildir-save.c: maildir: If saving fails, don't bother trying to flush the file's ostream. [97af1836ea72] * src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: zlib: Avoid assert-crashing if parent ostream's write had failed earlier. [aefc17d5b99e] * src/config/old-set-parser.c: config: Don't warn that ssl_parameters_regenerate=0 should have "hours" suffix. [e28736bc8e09] * src/lib-storage/list/mailbox-list-fs-flags.c, src/lib-storage/list /mailbox-list-fs-iter.c: lib-storage: FS layout mailbox list iteration code rewrite. This fixes listing non-ASCII mailboxes. Also the new way no longer keeps more than one file descriptor open. [ab696ead12cc] * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_get_vname() no longer treats INBOX case insensitively. The INBOX vname is case sensitive, the INBOX storage_name isn't, otherwise it's not possible to access /inBox cased mailboxes. [5366e59d573f] 2011-12-09 Timo Sirainen * src/lib/var-expand.c: var_expand(): Added %{uid} and %{gid} variables. [8a63f621bd2e] * src/lib-storage/index/index-search.c: lib-storage: Fixed search when mail prefetching is enabled. [5c2ef2374848] * src/lib-storage/index/dbox-multi/mdbox-map-private.h, src/lib- storage/index/dbox-multi/mdbox-map.c: mdbox: Make sure m.* files aren't overwritten when storage index isn't found. This mainly helps to avoid situations where m.1 is replaced by mail delivery when index directory has been (wrongly) changed. [31825aab83f6] 2011-12-08 Timo Sirainen * src/auth/main.c: auth: If verbose_proctitle=yes, show which processes are auth workers. [ec3714f01ef2] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Reverted the last INBOX children listing change after all. [b5056baa6193] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Fixed listing INBOX's children with layout=fs and non- mbox format. [9336f4968beb] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Crashfix on error conditions. [94e32772e593] * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.c, src/lib-storage/mailbox-header.c: lib-storage: Code cleanup. [ddfe3a0f75e6] * src/lib/strnum.c, src/lib/strnum.h: liblib: Added str_to_time() [d9acfebce2c9] * src/lib-storage/index/index-transaction.c: lib-storage: Removed unnecessarily duplicated code. [ad58a2d5a290] * src/lib-storage/mail-search-build.c: lib-storage: Fixed assert-crash when search query contained (). [338c8d9abba5] * src/plugins/fts-lucene/Makefile.am: fts-lucene: Fixed Makefile.am [9cf6bb5fe98d] * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c: lib-sql: If mysql/pgsql commit fails due to server disconnection, reconnect and retry. [782f09d13ece] * src/lib-storage/mail-user.c: lib-storage: Fixed assert-crash in user deinit with some installations. [3b70254e0596] * src/login-common/main.c: login: Send the last connected client's IP address to log process. [d9ad41825a34] * src/lib-storage/mail-storage-service.c: lib-storage: If client_limit=1, send user's log prefix to log process. [45bc88eba07a] * src/lib/failures.c, src/lib/failures.h: Added i_set_failure_send_prefix() and renamed i_set_failure_ip() to _send_ip(). [618d3937f511] * src/log/log-connection.c, src/master/service-process.c: Added a new "FATAL" log command, which master uses to log all abnormal process exits. The log process adds the process's log prefix or IP address to the message if available. [e534d2bfda7f] * src/log/log-connection.c: log: Removed slightly confusing code. A log client always receives a BYE, so don't free it earlier. [279a48aa9dc6] * src/lmtp/commands.c: lmtp: If lmtp_save_to_detail_mailbox=yes and there was no detail, mail was logged as saved to "". [8c803201651e] * src/stats/stats-settings.c: stats: Chroot to empty directory by default. [13fb5fa91ed9] * src/config/old-set-parser.c, src/ssl-params/ssl-params-settings.c, src/ssl-params/ssl-params.c: ssl_parameters_regenerate setting is now "time" type, as it should have been. [ed9f4e03c2f9] * src/indexer/indexer-worker-settings.c: indexer: Use stricter permissions for indexer-worker socket. [55a70ae49cb7] * src/director/director-settings.c: director: chroot to base_dir by default. [eebee8a4d486] * src/director/Makefile.am, src/director/director-settings.c, src/director/director-settings.h, src/director/director.c, src/director/main.c: director: Don't explicitly use base_dir. We're already chdired there, use relative paths. [ddf28d10ff0f] * src/director/director-test.sh: director-test.sh script fixed to use a working path for director- test binary. [3027626f7239] 2011-12-07 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-single/sdbox- sync.c: dbox: If index was fscked, rebuild indexes to make sure no mails got lost. [1e118913348b] * src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index.h: lib-index: Added mail_index_reset_fscked() [8535def4ad01] * src/lib-storage/mailbox-list-iter.c: lib-storage: MAILBOX_LIST_ITER_RETURN_SPECIALUSE was checked wrong [b6083d4d77d5] * doc/example-config/conf.d/15-mailboxes.conf, doc/example- config/conf.d/Makefile.am: example-config: Added example mailboxes. [9b9a206395f7] * src/config/config-parser.c, src/config/doveconf.c, src/lib-settings /settings-parser.c: config: Allow section names to contain spaces. [2adcc2b87117] 2011-12-06 Timo Sirainen * doc/example-config/conf.d/10-mail.conf: example-config: Use a default uncommented "namespace inbox". [2c8d39467f21] * src/lib-storage/mail-namespace.h, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage /mail-storage.c, src/lib-storage/mailbox-list-iter.c, src/plugins/autocreate/autocreate-plugin.c: Moved mailbox {} settings inside namespace {} and no longer require ns prefix in name. This allows specifying mailboxes more easily with per-user namespace prefixes. [867f06516121] * src/lib-storage/mailbox-list-iter.c: lib-storage: Avoid crashes if listing subscriptions for a namespace that can't have any. i.e. the namespace and its parents all have subscriptions=no [85f33815c5e7] * src/master/master-settings.c: master: Be more relaxed about giving service auth's client_limit being too low. imap/pop3/lmtp processes with service_count=1 use up a client only for a very short time. Don't count them. [24fe54f2cfcb] 2011-12-05 Timo Sirainen * src/plugins/autocreate/autocreate-plugin.c: autocreate: Make sure we don't crash if there are no mailbox{}es. [3054d73cf293] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list-iter.c: lib-storage: Don't crash when no there are no mailbox {} sections. [272b705f0938] 2011-12-02 Timo Sirainen * src/auth/passdb-vpopmail.c: auth: Fixed vpopmail to work again after recent change. [c067025026ed] * README: README: Added SPECIAL-USE RFC [092d55003a7b] * configure.in, src/imap/cmd-list.c, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /mailbox-list-iter.c, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.h: Implemented IMAP SPECIAL-USE extension. [32d1a903d42d] * src/config/settings-get.pl, src/lib-storage/mail-storage-private.h, src/lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage-settings.h, src/lib-storage/mail-storage.c, src/lib-storage /mailbox-list-iter.c, src/lib-storage/mailbox-list-private.h, src/plugins/autocreate/autocreate-plugin.c: Moved autocreate plugin functionality into lib-storage. The autocreate plugin is still used for backwards compatibility. Mailboxes can be configured like: mailbox Sent { auto = subscribe } mailbox Spam { auto = create } [ee783a878120] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/list/mailbox-list-index-iter.c, src /lib-storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-none.c, src/lib-storage/list/mailbox-list- subscriptions.c, src/lib-storage/mailbox-list-private.h, src/plugins/acl/acl-mailbox-list.c: lib-storage: Added pool to struct mailbox_list_iterate_context. [b48fb6a08389] * src/lib-storage/Makefile.am, src/lib-storage/mailbox-list-iter.c, src/lib-storage/mailbox-list.c: lib-storage: Moved mailbox list iteration functions to a separate file. [37c2348b67f5] * src/lib-imap-client/imapc-connection.c: imapc: Check for when to prefer LOGIN to AUTHENTICATE was wrong. [6591f7783d55] 2011-12-01 Timo Sirainen * src/lib-imap-client/imapc-connection.c: imapc: If remote server disconnects, log the reason. [8e5c9f3ca158] * src/auth/Makefile.am: auth: Fixed loading authdb_imap plugin when Dovecot is configured --without-shared-libs [e99c65be76f7] 2011-11-30 Timo Sirainen * src/auth/auth-worker-server.c: auth: Mention auth_worker_max_count in warning message about worker queue being slow. [9fa7c1b2c2ee] 2011-11-25 Timo Sirainen * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Fixed search when all terms were MUST_NOT. [1753a762b56f] 2011-11-24 Timo Sirainen * src/auth/auth-settings.c: auth: Dropped default client_limit back to default_client_limit. Having it above 1024 logs an annoying warning at startup. Also in most cases the auth process wouldn't have nearly that many clients. If about 1000 imap/pop3 processes were logging in at the exact same time, the limit would be reached, but that's a bit unlikely. [8c8dd04b8496] * NEWS, README: NEWS, README: Added SCRAM-SHA-1 support. [f6069185b418] * .hgsigs: Added signature for changeset 18f32bf70fac [34436a5a01e7] * .hgtags: Added tag 2.1.rc1 for changeset 18f32bf70fac [7256163465c5] * NEWS, configure.in: Released v2.1.rc1. [18f32bf70fac] [2.1.rc1] * doc/man/doveadm-search-query.7: man: mailbox[-guid] doesn't need to be first parameter in search query. [7894c74cb740] * src/lib/Makefile.am: Makefile: Added missing hmac-sha1.h [f33c1462bf80] * src/lib-lda/lmtp-client.c: lib-lda: Use ostream corking better in LMTP/SMTP client. [31bce737a64b] * TODO: TODO updated [79bae0318b46] * doc/example-config/conf.d/10-ssl.conf: example-config: Added ssl_crypto_device. [a4e44005ee58] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h, src/lib-storage/index/imapc/imapc-settings.c, src/lib- storage/index/imapc/imapc-settings.h, src/lib-storage/index/imapc /imapc-storage.c: imapc: Pass ssl_crypto_device setting to lib-ssl-iostream. [e8c6ff480a18] * src/lib-ssl-iostream/iostream-openssl-context.c, src/lib-ssl- iostream/iostream-ssl.h: lib-ssl-iostream: Added crypto_device setting to set OpenSSL engine. Multiple engines aren't supported, so the first crypto_device value gets used for all SSL connections. [e56409d9615c] * src/login-common/ssl-proxy-openssl.c: login: Do engine cleanups _after_ finishing the used engine. [9a474b7934c9] * src/login-common/login-settings.c, src/login-common/login- settings.h, src/login-common/ssl-proxy-openssl.c: login: Added ssl_crypto_device setting to set OpenSSL engine. [ca49f570f0c1] * src/login-common/client-common.h, src/login-common/sasl-server.c: login: Save final SASL reply to client struct. [cc497af529cd] * src/lib-ssl-iostream/iostream-openssl-context.c: lib-ssl-iostream: Call OpenSSL_add_all_algorithms() to make some OpenSSL versions happy. [733ac4aba089] * src/auth/userdb-ldap.c: auth: LDAP iterate's debug message didn't use expanded base string. [1fed3c1c166e] * src/lib-storage/index/index-mail-headers.c: lib-storage: Getting headers as UTF-8 could have returned garbage for multi-line headers. [40aba52a4386] * src/imap-login/client.c, src/login-common/login-common.h, src/login- common/sasl-server.c, src/pop3-login/client.c: login: Use AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP if protocol supports it. [4ecb77154ac7] * src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.h: lib-auth: Added AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP flag. [a19fb078a259] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth/mech- digest-md5.c, src/auth/mech-scram-sha1.c: auth: If client gives "final-resp-ok" parameter, send it in OK reply with DIGEST-MD5, SCRAM-SHA-1 [f2608c3a64ee] 2011-11-23 Timo Sirainen * src/auth/mech-scram-sha1.c: auth: Cleanups, fix and Dovecot code-stylifications to SCRAM-SHA-1. [34b3655ca484] 2011-09-16 Florian Zeitz * src/auth/Makefile.am, src/auth/mech-scram-sha1.c, src/auth/mech.c: auth: Implement the SCRAM-SHA-1 SASL mechanism [c69790ad93c1] * src/lib/Makefile.am, src/lib/hmac-sha1.c, src/lib/hmac-sha1.h: lib: Add hmac-sha1 adapted from hmac-md5 [4d56549a5505] 2011-11-23 Timo Sirainen * src/doveadm/doveadm-auth.c, src/doveadm/doveadm-director.c, src/lib- auth/auth-master.c, src/lib-auth/auth-master.h, src/lib-storage /mail-storage-service.c: lib-auth: auth_master_user_list_init() now takes user_mask and info parameters. These are passed to auth process, which may use them to limit what usernames are returned. [59e25ebc976f] * src/auth/auth-master-connection.c, src/auth/auth-settings.c, src/auth/auth-worker-client.c, src/auth/userdb-blocking.c, src/auth /userdb-blocking.h, src/auth/userdb-ldap.c, src/auth/userdb-passwd- file.c, src/auth/userdb-passwd.c, src/auth/userdb-sql.c, src/auth/userdb.h: auth: Support passing regular %variables to sql/ldap iterate queries. [acfe332f9aeb] * src/auth/main.c: auth: Don't leak memory in deinit. [35764175dc92] * src/master/master-settings.c: Compiler warning fix [b8e1c9685c69] * src/lib-auth/auth-server-connection.c: lib-auth: Log a warning about auth disconnection only if there are pending requests. [49044b7cfa3d] * src/master/master-settings.c: master: Log a warning at startup if fd limit is too low. [540d9d296dc9] * src/lib/restrict-process-size.c, src/lib/restrict-process-size.h: Added restrict_get_fd_limit() [0644361ca409] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c: lib-storage: Track storage's all mailboxes to make it easier to debug if one isn't closed. [deaebb4dc98c] * src/anvil/anvil-connection.c: Compile fix for some compilers. [4f1d20b57c04] * src/lib-index/mail-index-sync.c: lib-index: Make sure we never go to infinite loop if fsck can't fix syncing problem. [b9c4a7e4a27f] * src/lib/file-cache.c: file_cache_set_size(): Cleanup properly after mmap() failure. [db51a627d726] * src/lib-index/mail-index-modseq.c, src/lib-index/mail-index-sync.c, src/lib-index/mail-index-view-sync.c, src/lib-index/mail- transaction-log.h: lib-index: Handle transaction log read errors separately from log corruption. [fb0ffce5a0ba] * src/plugins/fts-lucene/fts-lucene-plugin.c: fts-lucene: Crashfix when compiled without stemmer. [90ecb83a9ca7] * src/lib-imap-client/imapc-client.h, src/lib-storage/index/imapc /imapc-storage.c: Compile fixes. [bfcd0bed5a9e] * src/lib-imap-client/imapc-connection.c: Compiling fix for non-gcc. [1cdd39d11ce4] 2011-11-22 Timo Sirainen * src/lib-imap-client/imapc-connection.c: imapc: Added assert to make sure callback is never NULL. [3501e62284dc] * src/lib-imap-client/imapc-connection.c: imapc: Crashfix after having idled for 29 mins without IDLE. [da07002ca0d4] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Don't assert-crash when having to open mail file during specific copying situations. [8132fb8ee3eb] 2011-11-21 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-dump-dbox.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-dump.h: doveadm dump: Added support for dumping dbox headers/metadata. [5bc3ea6ebbed] * src/lib-storage/index/dbox-common/dbox-file.h: dbox: Compiler warning fix if trying to include dbox-file.h directly. [4411f7434d19] * src/lib/hex-dec.c: hex2dec(): Allow data to contain also lowercase hex characters. [38846458ef78] * src/lib-storage/index/dbox-common/dbox-file.h: dbox: Removed unused message type from header. [c89dec41ad69] 2011-11-19 Timo Sirainen * src/login-common/main.c: login: Moved all i_fatal()s to preinit stage. This avoids a wrongly configured login process from rapidly respawning. [1827699b8156] * src/director/main.c: director: Moved all i_fatal()s to preinit stage. This avoids a wrongly configured director process from rapidly respawning. [5ce2123d24ed] * src/auth/auth.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c: auth: Moved all i_fatal()s to preinit stage. This avoids a wrongly configured auth process from rapidly respawning. [ffb2993c99cf] * src/auth/auth-worker-server.c: auth: Handle auth worker creation failure without killing the whole auth process. [6b62d786fdc4] * src/login-common/client-common.c: login: Show empty username in disconnect message. [6e87e399ccd7] * src/auth/auth-request-handler.c: auth: If auth fails due to invalid username, send the username in the FAIL message. [b1955fdf2ef8] * src/login-common/client-common-auth.c, src/login-common/client- common.c, src/login-common/client-common.h, src/login-common/sasl- server.c: login: Log a different disconnect message if client didn't finish SASL auth. [679837ca1c95] * src/lib/env-util.c: env_clean(): Previous OSX compile fix broke the function completely. [9d022d3fba42] * src/lib/env-util.c: Compile fix for OSX. [b2c9298e981a] * doc/Makefile.am: doc: Removed auth-protocol.txt from Makefile. [338f35625e06] 2011-11-18 Timo Sirainen * doc/auth-protocol.txt: doc: Removed auth-protocol.txt. A more up to date version is in wiki docs. [46b07e8dca14] * src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth/auth-request.h: auth: Don't allow auth clients to set internal auth request fields. This could have allowed attacker to bypass authentication if login process was first successfully attacked to allow arbitrary code execution. [9a6aa717bc46] * src/login-common/main.c: login: Call master_service_init_finish() later. This prevents automatic infinite process respawns if SSL initialization fails. [ba1f99456742] * src/lib-master/master-service.c: lib-master: Set service/client limits already in master_service_init() [c6f5203bf59f] * src/login-common/login-settings.c, src/login-common/login- settings.h, src/login-common/ssl-proxy-openssl.c: login proxy: Added ssl_client_cert/key settings. The client cert is used sent to proxy destination server when SSL is used. [700e92b43c74] * src/login-common/main.c: login: Added assert. [dafa6dc27398] * src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.h, src /lib-auth/auth-server-connection.c, src/login-common/client- common.c, src/login-common/client-common.h, src/login-common/sasl- server.c: login: Differentiate between auth failure and auth process communication failure. Log a warning if auth connection dies. [dd66ea0e7d00] * src/auth/auth-client-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h: auth: Log a warning if auth client disconnects while it still has pending requests. [2ecd0e90402a] * src/login-common/client-common.c, src/login-common/login-common.h, src/login-common/main.c: login: Minor potential authentication fix when service_count>1 [80558d1b7040] 2011-11-17 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: login: Fixed a memory leak when SSL client connection was closed uncleanly. [81eff56d8bc1] * src/auth/passdb-vpopmail.c: passdb vpopmail: Fix to handling mixed cleartext/crypt passwords. [c4ecdea00e4d] * src/login-common/ssl-proxy-openssl.c: login proxy: Don't fail connection if CRL isn't found for some certificate. [f986b56d8e2a] 2011-11-16 Timo Sirainen * src/lib/ipwd.c: i_getgr*(): Use a generic workaround for all OSes that report too small grbuf size. [b0c0d11792fc] * src/auth/db-checkpassword.c: checkpassword: Export all auth %variables to AUTH_* environment. [0a94dfe6ac92] * src/lmtp/commands.c: lmtp: Include local/remote port in userdb lookups. [9ead5aea2ce4] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Added local/remote port to struct mail_storage_service_input for userdb lookups. [bca3950cad53] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Fixed listing subscriptions from prefix!="" namespace [16024d03f66e] * src/lib-storage/mail-storage.c: lib-storage: Fixed error handling for mailbox_set_subscribed() [4bdfe947a0b2] * src/lib-storage/index/shared/shared-storage.c, src/lib- storage/index/shared/shared-storage.h: lib-storage: Fixed using "auto" driver with shared namespaces. [e0556ffd1527] * src/lib-storage/mail-storage.c: lib-storage: Improved storage creation failure error message for "auto" driver. [f11ce0efa6a8] * src/lib-storage/mail-storage.c: lib-storage: Crashfix for "auto" driver in some situations. [e5fb66051028] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c: lib-storage: Use namespace owner user's home dir for autodetection (for shared namespaces). [7559768b1491] * doc/man/doveadm-altmove.1.in, doc/man/doveadm-auth.1.in, doc/man /doveadm-director.1.in, doc/man/doveadm-dump.1.in, doc/man/doveadm- expunge.1.in, doc/man/doveadm-fetch.1.in, doc/man/doveadm-force- resync.1.in, doc/man/doveadm-help.1.in, doc/man/doveadm-import.1.in, doc/man/doveadm-index.1.in, doc/man/doveadm-kick.1.in, doc/man /doveadm-log.1.in, doc/man/doveadm-mailbox.1.in, doc/man/doveadm- move.1.in, doc/man/doveadm-penalty.1.in, doc/man/doveadm-purge.1.in, doc/man/doveadm-pw.1.in, doc/man/doveadm-quota.1.in, doc/man /doveadm-search-query.7, doc/man/doveadm-search.1.in, doc/man /doveadm-user.1.in, doc/man/doveadm-who.1.in, doc/man/doveadm.1.in, doc/man/doveconf.1.in, doc/man/dovecot-lda.1.in, doc/man/dovecot.1.in, doc/man/dsync.1.in: man: Dovecot version numbers updated. [a695e124e62f] * src/config/config-parser.c: config: Skip spaces between '<' and value in "key=< value" [3368f9b3c8df] * src/master/service-monitor.c: master: Don't log errors at shutdown about services' "command startup failed". [ba5d4c918842] * src/login-common/client-common.c, src/login-common/client-common.h, src/login-common/sasl-server.c: login: Improved auth failed log messages. [346c022df7af] * doc/man/doveadm-search-query.7: man: Fixes to previous doveadm-search-query.7 change. [5fefb7f1e6c4] 2011-11-15 Timo Sirainen * doc/man/doveadm-search-query.7: man: Updated doveadm-search-query.7 to include MAILBOX[-GUID] as search keys. [857d4c45588f] * src/master/service-monitor.c: master: Don't throttle successfully started services just because their processes didn't have clients. [3dc1806bd27e] * src/stats/mail-session.c: stats: If process has crashed/restarted, hide initial "missing session GUID" warnings. [6b9f7cb07c8f] * configure.in: configure: Don't reorder --with-storages values. The ordering is used for storage autodetection. [500bf1444ad6] * src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: Added support for autodetection of ~/mdbox/ as mdbox storage. [bcb20d216edd] * src/lib-storage/mail-storage.c: lib-storage: Added "auto" mail storage driver for forcing autodetection. [ad0136b56d6e] * src/stats/mail-user.c: stats: Freeing a user didn't remove it from hash table, leading to crash later. [c8076e71c849] * doc/example-config/conf.d/10-mail.conf, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-settings.c, src/lib-storage/index/maildir/maildir- settings.h: maildir: Added maildir_broken_filename_sizes setting. [3c5d3d618c76] * src/lib-storage/index/maildir/maildir-mail.c: maildir: When noticing invalid 'S' in filename, replace it with the correct one instead of removing it. [466badb63c0b] 2011-11-14 Timo Sirainen * src/plugins/imap-stats/imap-stats-plugin.c: imap-stats: Don't send IDLE command updates to stats service. [a538eec53922] * src/stats/mail-command.c: stats: Forcibly free command after running for 15 minutes without updates. [1cda9fe6d7fa] 2011-11-09 Timo Sirainen * src/lib-storage/list/mailbox-list-maildir-iter.c: maildir++: If listing finds non-mUTF7/UTF8 mailbox dir, rename it instead of assert-crashing later. [4d49122ba42a] * src/master/main.c: master: Increase process count limit (ulimit -u) at startup high enough that we don't reach it. [eace12589314] * src/lib/restrict-process-size.c, src/lib/restrict-process-size.h, src/login-common/main.c, src/master/service-process.c: restrict_process_size() API changes. [523f34bffc94] * src/lib/restrict-access.c: restrict_access*(): If setuid() fails with EAGAIN, suggest ulimit -u being the problem. [33ecba7f10cc] * src/imap-login/imap-login-settings.c, src/pop3-login/pop3-login- settings.c: imap/pop3-login: Use default_vsz_limit instead of adding our own. There's not a huge difference between 64 MB and the default 256 MB, and this change makes it easier to change the default limit globally. [9bdc40e2d1c6] * src/master/service-process.c: master: vsz_limit enforcement was done for 1024 times too much memory. [94c95853f25c] * src/lmtp/lmtp-settings.c: lmtp: Default vsz_limit wasn't used for lmtp service. [011f10758702] * src/lib-storage/index/maildir/maildir-mail.c: maildir: When fixing broken size in filename, try harder to find the latest filename. [a155105e298e] * src/lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/maildir/maildir-util.c: maildir: Whenever we're guessing a filename correctly, remember it in uidlist. [b29d9d98f5c0] * src/lib-storage/index/maildir/maildir-mail.c: maildir: When renaming filename due to broken size, don't forget message flags. [0a3eafad58c0] * .hgsigs: Added signature for changeset 437ae2c24872 [12bd19be1315] * .hgtags: Added tag 2.1.beta1 for changeset 437ae2c24872 [255f39b1e8ba] * NEWS, configure.in: Released v2.1.beta1. [437ae2c24872] [2.1.beta1] * src/lib-storage/list/mailbox-list-index-sync.c: Make static analyzer happier. [b43bbf9b705d] 2011-11-08 Timo Sirainen * TODO: TODO updated [825a122eb9d3] * README: README: Added FUZZY RFC. [72e894a8d267] * configure.in, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl- iostream/iostream-openssl.h, src/login-common/Makefile.am, src /login-common/login-proxy.c, src/login-common/ssl-proxy-openssl.c, src/login-common/ssl-proxy.c, src/login-common/ssl-proxy.h: login proxy: Verify that remote hostname matches SSL cert, unless ssl=any-cert [7e3afd2252fd] * src/lib/eacces-error.c: eacces_error_get*(): Crashfix for recent change. [439ba86c91fc] * src/lib-storage/index/maildir/maildir-mail.c: maildir: Log less lines when removing broken sizes from filenames. [762b31157c42] * src/master/service-process.c: master: Never create new processes for services that are being destroyed (reload, deinit) [96e469ea4fc8] * src/login-common/client-common.c, src/login-common/client-common.h, src/login-common/sasl-server.c: login: If login fails for some reason, but auth was successful, don't log "auth failed". For example if proxy fails to connect to remote server. [d03524bfcf16] * src/login-common/login-proxy.c: login proxy: Always log the username in the error messages. [d9b89af302e7] 2011-11-07 Timo Sirainen * src/auth/auth-master-connection.c: auth: When complaining about auth-userdb permission errors, log also the wanted UID's name. [08afc14abc21] * src/indexer/master-connection.c: indexer-worker: If indexes are disabled for a mailbox, do nothing but log a message. [d0a071b6847c] * src/master/service-process.c: master: Fixed giving config socket path to anvil process. [9da49294f49d] 2011-11-05 Timo Sirainen * configure.in: configure: Use libtool's -no-undefined flag instead of attempting it ourself. Patch by Brad. [3ecd119bd63b] * src/doveadm/doveadm-mail-import.c: doveadm import: Added -s parameter to subscribe to created mailboxes. [afec4ceda8e1] * src/dsync/dsync.c: dsync: Set user to be admin to ignore quota limits. [3248730d84ae] * src/plugins/quota/quota.c: quota: Ignore quota limits for admin users. [131e44d50d35] * src/master/main.c, src/master/service-monitor.c, src/master/service- monitor.h, src/master/service.c, src/master/service.h: master: Wait for services to stop listening before unlinking the pid file. [6894298ae5fd] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Use FTS_BACKEND_FLAG_BUILD_FULL_WORDS flag. [21145b853d64] * src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-build-mail.c: fts: Added FTS_BACKEND_FLAG_BUILD_FULL_WORDS for sending data to backends only in full words. [f4a95383ea8a] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Optimize searching for existence of an indexed header. [efe369e2885d] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Index the header name tokenized, or we can't search it. [6e7658437688] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Fixed handling "maybe" queries (unindexed headers) [c700ff42a6cc] 2011-11-04 Pascal Volk * doc/man/doveadm-user.1.in: man: Added -f option to doveadm-user.1. [5cf885412627] 2011-11-05 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: Use SSL_MODE_RELEASE_BUFFERS if available to keep memory usage low. Based on patch by Cristian Rodríguez. [88d5239c0d9a] * src/lmtp/lmtp-settings.c: lmtp: Changed default client_limit to 1. LMTP processes can wait a long time on disk I/O, so a single process will be busy waiting long before it reaches default_client_limit (100). [b5d4b4e43840] 2011-11-04 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c: imapc: When doing a LIST, delete any extra local mailbox (index) directories. [0103b917fa0c] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: imapc: Don't use separate indexes/ directory anymore. Fixes/cleanups to make it possible. [7e1981ecbe40] * src/lib-imap-client/imapc-connection.c: imapc: If rawlog directory doesn't exist, silently ignore it. [ebdb1d51ea14] * src/lib-storage/index/imapc/imapc-list.c: imapc: Index files weren't deleted when mailbox was deleted. [a79c256b361e] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/mailbox-list.h: lib-storage: Added MAILBOX_LIST_FLAG_OPTIONAL_BOXES flag. [64ca27392217] * src/anvil/anvil-connection.c, src/anvil/common.h, src/anvil/main.c, src/master/service-anvil.c, src/master/service-anvil.h, src/master /service-process.c: anvil: Handle crash restarts without failing completely. [926a7ceeaa10] * src/doveadm/doveadm-dump-index.c: doveadm dump index: Dump also mime.parts decoded. [9f739df97593] * src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene /fts-lucene-plugin.h, src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Added whitespace_chars subsetting to fts_lucene. A value of "@." could be useful so that user@domain.tld allows searching user, domain and tld separately instead of requiring the whole string to match. [6d483a22134e] * src/lib/eacces-error.c: eacces_error_get*(): Log if group has r/w permissions, but we don't belong to it. [b6e5cf112b3e] 2011-10-25 Timo Sirainen * src/master/service-monitor.c: master: Assert-crashfix when service process limit was reached. Introduced by commit fddbb26400d0. [1dd992f75906] * src/login-common/client-common.h, src/login-common/ssl-proxy- openssl.c: login: When renegotiating SSL handshake, don't reread settings when TLS SNI is used. [c9ef7a0f9b44] * src/login-common/main.c: login: Increased client's initial memory pool size. [402cff03919a] 2011-10-20 Timo Sirainen * src/master/service-monitor.c, src/master/service.h: master: When process_limit fills up, wait 10s before closing pending connections. It might have only been a temporary burst that gets resolved quickly enough. [fddbb26400d0] * src/master/service-monitor.c: master: Reset service's listen_pending flag when it gets a new available process. [a95bb5877f00] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- connection.c, src/lib-imap-client/imapc-connection.h: imapc: Fixed reopening a mailbox. [221ec0404d8e] 2011-10-19 Timo Sirainen * src/auth/passdb-static.c: auth: passdb static crashed if no password was given [809944f5015a] 2011-10-18 Timo Sirainen * src/lib-storage/index/maildir/maildir-mail.c: maildir: If maildir filename has broken W/S size, rename the file to drop them. [e3d2262e995a] * src/lib-storage/index/istream-mail.c: istream-mail: Call mail_cache_set_corrupted() properly [fb22546542a5] 2011-10-17 Timo Sirainen * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h, src/lib-imap-client/imapc-connection.c, src/lib- storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc /imapc-settings.h, src/lib-storage/index/imapc/imapc-storage.c: imapc: Added imapc_ssl_verify setting. [63ac3b1c2950] 2011-10-12 Timo Sirainen * src/plugins/mail-log/mail-log-plugin.c: mail-log: Use mail_log_update_wanted_fields() to avoid parsing message multiple times. [381555875651] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox- mail.c, src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/lib-storage/test- mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: Added mail_log_update_wanted_fields() [e77601949937] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox rebuild: Log an error whenever opening a mailbox fails. [fad85406a088] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Mail body wasn't always prefetched when it should have been. [d2608fc3c9e2] 2011-10-09 Timo Sirainen * src/lib-imap-client/imapc-client.c: imapc: When asking for capabilities, try to ask from a logged in connection. [337f4e427bb1] * src/lib-imap-client/imapc-connection.c: imapc: Post-login capabilities weren't detected/used. [8a2ec8284b61] * src/lib-imap-client/imapc-client-private.h, src/lib-imap-client /imapc-client.c, src/lib-imap-client/imapc-connection.c, src/lib- imap-client/imapc-connection.h, src/lib-storage/index/imapc/imapc- mail-fetch.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-storage/index/imapc /imapc-sync.c, src/lib-storage/index/imapc/imapc-sync.h: imapc: Support retrying some IMAP commands if we get disconnected. [c9594ff166a9] * src/director/director-test.c, src/imap-login/client.c, src/imap/cmd- append.c, src/imap/imap-client.c, src/lib-imap-client/imapc- connection.c, src/lib-imap/imap-bodystructure.c, src/lib-imap/imap- envelope.c, src/lib-imap/imap-id.c, src/lib-imap/imap-parser.c, src /lib-imap/imap-parser.h, src/lib-imap/test-imap-parser.c, src/plugins/virtual/virtual-config.c: lib-imap: Added reference counting to imap parser. [f63f2b2217c3] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Mailbox reopening fix. [2dbc6108f090] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Fixed expunging too many messages from index. [d8ba3f6d1b9d] * src/lib-storage/index/imapc/imapc-sync.c: imapc: Better implementation of checking if index is missing messages. [2ecf19d88f8e] * src/lib-imap-client/imapc-connection.c: imapc: Fixes to sending commands. [256b9b32b242] * src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h, src /lib-storage/index/imapc/imapc-sync.c: imapc: Fixed detecting when messages are missing from index. [305ca9c93dd7] * src/lib-imap-client/imapc-client-private.h, src/lib-imap-client /imapc-client.c, src/lib-imap-client/imapc-client.h, src/lib-imap- client/imapc-connection.c, src/lib-imap-client/imapc-connection.h, src/lib-imap-client/imapc-msgmap.c, src/lib-imap-client/imapc- msgmap.h, src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Initial support for automatically reconnecting to remote server. [8fdd22504aab] 2011-10-08 Timo Sirainen * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Fixed updating message flags from another session. [7e0bdfa76f12] 2011-10-07 Timo Sirainen * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Fixed handling keywords. The status->keywords must point to mail_index's keywords. [92dd30cf0d22] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Detect when message has been unexpectedly expunged from index. [aaa0463aa66f] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: IDLE didn't notify immediately about new mails. [3058a10313bd] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Code cleanup: avoid unnecessarily accessing imapc-client- private.h [cd4a65125c84] * src/lib-imap-client/imapc-client-private.h, src/lib-imap-client /imapc-client.c, src/lib-imap-client/imapc-client.h, src/lib-imap- client/imapc-connection.c: imapc: Removed unused "stop now" functionality. [4f305d785bc7] * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h, src/lib-imap-client/imapc-connection.c, src/lib-imap- client/imapc-connection.h, src/lib-storage/index/imapc/imapc- storage.c: imapc: Changed mailbox opening API to be more extensible. [c358b13e32cc] * src/lib-imap-client/imapc-client-private.h, src/lib-imap-client /imapc-client.c, src/lib-imap-client/imapc-client.h, src/lib-imap- client/imapc-connection.c, src/lib-imap-client/imapc-connection.h, src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-mail-fetch.c, src/lib-storage/index/imapc /imapc-mail.c, src/lib-storage/index/imapc/imapc-save.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-sync.c: imapc: Command sending API changed to be more extensible. [e0a339d677cb] * src/auth/auth-master-connection.c: auth: Don't re-add IO to master connection input. This fixes a panic crash in some situations. [21566f1780ef] * src/auth/auth-master-connection.c, src/auth/auth-master- connection.h, src/auth/main.c: auth: Improved "auth client doesn't have permissions to do .." errors. [99ff7bf3c490] 2011-10-05 Timo Sirainen * src/pop3/pop3-client.c: pop3: When pop3_fast_size_lookups=yes, don't assume we need to fetch virtual size. This fixes prefetch unnecessarily opening mail files. [a70f6f04f1fe] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Fixed fetching data for a saved, but uncommitted, mail. [09707b608d8d] * src/lib-storage/index/index-mail.c: lib-storage: Fixed reopening a mail stream. [fab95106bcd6] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-mail-fetch.c: imapc: Memory leak fixes. [186910f65582] * src/lib-storage/index/imapc/imapc-mail.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-mail.h: imapc: Fixed closing mail properly. [e026ff4467a8] * src/lib-storage/index/imapc/imapc-save.c: imapc: Fixed potential assert-crash when saving a mail. [0602a0d36164] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Fixed "Bad file descriptor" errors after mail was closed. [f2732fa01394] * src/lib-storage/index/raw/raw-storage.c: raw storage: Don't crash with mailbox_get_metadata() [ae1f8bae28eb] 2011-10-04 Timo Sirainen * src/lib-storage/index/Makefile.am, src/lib-storage/index/imapc /imapc-mail-fetch.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/istream-mail- stats.c, src/lib-storage/index/istream-mail-stats.h, src/lib- storage/index/istream-mail.c, src/lib-storage/index/istream-mail.h: lib-storage: Verify that cached message size matches actually read size. [75f044354386] * src/doveadm/doveadm-mail-fetch.c, src/imap/imap-fetch-body.c, src /lib-lda/mail-send.c, src/lib-storage/index/cydir/cydir-mail.c, src /lib-storage/index/dbox-common/dbox-mail.c, src/lib-storage/index /dbox-common/dbox-mail.h, src/lib-storage/index/imapc/imapc-mail.c, src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-search.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/raw/raw-mail.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.h, src/lib- storage/mail.c, src/lib-storage/test-mail.c, src/plugins/virtual /virtual-mail.c: lib-storage: Added mail_get_hdr_stream() and use it where possible. This makes it clearer for backends when it needs a message body instead of only message header. [276a39ebda4d] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Mail body caching should be done at close(), not at free(). This cached wrong mail bodies when fetching multiple mails. [d3b30b82a225] 2011-10-03 Timo Sirainen * src/util/script-login.c: script-login: Disable alarm after input has been read. [6d1c20b1936c] 2011-10-02 Timo Sirainen * src/auth/passdb-vpopmail.c: passdb vpopmail: Always prefer to lookup plaintext password if it exists. This is important when multiple auth mechanisms are used and the password is cached. [423cf2ccd1f1] * src/lib-storage/list/mailbox-list-index-status.c: mailbox list indexes: Get mailbox_get_metadata(guid) from index if possible. [341174c093ee] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/index- status.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/mail-storage.c, src/plugins/virtual/virtual-storage.c: lib-storage: mailbox_get_metadata() no longer always opens mailbox. [b7e58d26393f] * src/lib-storage/mail-storage.c: lib-storage: Compile fix for recent change. [c2a173716500] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Maildir list index change check should always check index log changes. (Not only when maildir_very_dirty_syncs=no) [65696275eaa6] * src/lib-storage/list/mailbox-list-index-sync.c, src/lib-storage/list /mailbox-list-index.c: mailbox list indexes: Handle name="" mailboxes. [37c078f1745c] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-sync.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib-storage/mail- storage-private.h: lib-storage: Mailbox list index's ext_id shouldn't be cached in mail_storage. It's mailbox_list-specific, not mail_storage-specific. The easiest fix was to just cache it into mailbox rather than create a new index_mailbox_list. [d9b0cd5b77b5] * src/lib-storage/list/mailbox-list-index.h: mailbox list indexes: Added comment. [612b8a73ada7] * src/lib-storage/list/mailbox-list-index-sync.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h: mailbox list indexes: Code cleanups. [6912969d94e8] * src/lib-storage/list/mailbox-list-index-status.c, src/lib- storage/list/mailbox-list-index-sync.c, src/lib-storage/list /mailbox-list-index.c, src/lib-storage/list/mailbox-list-index.h: mailbox list indexes: Error handling fixes. [75679aca405a] * src/lib-storage/list/Makefile.am, src/lib-storage/list/mailbox-list- index-sync.c, src/lib-storage/list/mailbox-list-index.c, src/lib- storage/list/mailbox-list-index.h: mailbox list indexes: Moved syncing code to separate file. [940ddec22822] * src/lib-storage/list/Makefile.am, src/lib-storage/list/mailbox-list- index-iter.c, src/lib-storage/list/mailbox-list-index.c, src/lib- storage/list/mailbox-list-index.h: mailbox list indexes: Moved iteration code to separate file. [cd7b56e965d2] * src/lib-storage/list/Makefile.am, src/lib-storage/list/index- mailbox-list-status.c, src/lib-storage/list/index-mailbox-list.c, src/lib-storage/list/index-mailbox-list.h, src/lib-storage/list /mailbox-list-index-status.c, src/lib-storage/list/mailbox-list- index.c, src/lib-storage/list/mailbox-list-index.h, src/lib- storage/register/Makefile.am: Renamed index-mailbox-list* to mailbox-list-index* [8800d0429b7c] * src/lib-storage/list/index-mailbox-list.c: mailbox list indexes: Disable index files for shared/public namespaces. [37c4e282a605] * src/lib-storage/list/index-mailbox-list-status.c, src/lib- storage/list/index-mailbox-list.c, src/lib-storage/list/index- mailbox-list.h: mailbox list indexes: Use storage names instead of virtual names. [e06e178c8fd1] * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: lmtp: Code cleanup. [93cba8e84546] * src/lda/main.c: lda: Code cleanups [020d2092f2f7] * src/lda/main.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-storage.h, src/lmtp/commands.c: lda/lmtp: Moved common raw mailbox allocation code to raw-storage. [ac9fecc9202e] * src/lib-storage/mail-storage.c: lib-storage: Keep mail_user referenced while storage objects exist. This allows unreferencing mail_user after mailbox_alloc() and having it freed on mailbox_free(). [b7995a25c052] * src/lib/ioloop.c: ioloop: Memory leak fix on ioloop destroy. [f41a3dd03be2] * src/lib/istream-seekable.c: istream-seekable: Memory leak fix. [7f7724f28d78] * src/lda/main.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-storage.h, src/lmtp/client.c: lda/lmtp: Moved raw user creation code to common raw_storage_create_from_set() [5bd6c0fbfef1] * src/lib-storage/list/index-mailbox-list-status.c: mailbox list index: Minor code cleanup. [967ad9ad37ff] 2011-10-01 Timo Sirainen * src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc- client.h, src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/imapc/imapc-sync.c: imapc: Changed imapc_client_mailbox_cmd() parameter order to be same as in _cmdf(). [a418589173c8] * src/lib-imap-client/imapc-connection.c: imapc: Don't assert-crash when receiving 0 size literal. [037e963c9a34] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Make sure "is mail expunged?" NOOP is sent to correct connection. (Although currently there are never more than a single connection.) [4cfe3f14bb46] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Make sure mail cache is freed when mailbox is closed. [967a53c3ef5e] * src/auth/auth-common.h, src/auth/main.c, src/auth/mech.c, src/auth/passdb.c, src/auth/userdb.c: auth: Lazily load authdb_* and mech_* plugins only when they're needed. [695e9d58ed17] * src/auth/Makefile.am, src/auth/passdb-imap.c: auth: Renamed passdb_imap plugin to authdb_imap. [f53cf5670adf] * src/lib/module-dir.c, src/lib/module-dir.h: module_dir_load*(): Support filtering and ignoring missing modules. [976e414d5bf4] * doc/example-config/conf.d/10-ssl.conf, src/login-common/login- settings.c, src/login-common/login-settings.h, src/login-common/ssl- proxy-openssl.c: Added ssl_protocols setting. [406a1d52390b] * src/doveadm/doveadm-pw.c: doveadm: Compile fix for previous auth change. [c126a88546f8] * src/auth/auth-request.c, src/auth/passdb.c, src/auth/password- scheme.c, src/auth/password-scheme.h: auth: If password data isn't valid for specified scheme, give a better error message. [c9894346b1a3] 2011-09-30 Timo Sirainen * src/imap/cmd-copy.c, src/imap/cmd-expunge.c, src/imap/cmd-store.c, src/imap/imap-search-args.c: imap: Memory leak fixes for invalid parameter handling. [1fd1321e55f4] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- mail.h, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Keep the last fetched message body cached until mailbox is closed. This primarily helps partial IMAP fetches so each partial fetch doesn't redownload the message body. [5726f89486a0] * src/imap/imap-client.h, src/imap/imap-fetch-body.c: imap: Moved partial fetch cache from static variable into struct client. [690f60827f59] * src/lib-storage/index/maildir/maildir-mail.c: maildir: Handle open() failing with ESTALE. [64d3f748a612] 2011-09-27 Timo Sirainen * src/stats/client-export.c, src/stats/mail-command.c, src/stats/mail- command.h: stats: Mail commands were sorted in wrong order, so they were never removed from memory. [e62621d28591] * src/pop3/pop3-client.c: pop3: Fixed POP3-order sorting. [69826dc7a959] * src/stats/mail-command.c, src/stats/mail-domain.c, src/stats/mail- ip.c, src/stats/mail-session.c, src/stats/mail-user.c: stats: Compiler warning fixes. [b36ad0f9b3cf] * src/stats/mail-stats.c: stats: Error message fix. [4538030286f6] * src/lib/network.c: Compile fix for Solaris. [b020b9f7aa54] 2011-09-26 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-sync.c: sdbox: Memory leak fix. [415aa8e92203] * src/auth/Makefile.am, src/auth/auth-settings.c, src/auth/auth- settings.h, src/auth/passdb-imap.c: auth: Added passdb imap plugin. [fe89e95867a4] * configure.in, src/Makefile.am, src/lib-imap-client/Makefile.am, src /lib-imap-client/imapc-client-private.h, src/lib-imap-client/imapc- client.c, src/lib-imap-client/imapc-client.h, src/lib-imap-client /imapc-connection.c, src/lib-imap-client/imapc-connection.h, src /lib-imap-client/imapc-msgmap.c, src/lib-imap-client/imapc-msgmap.h, src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-client-private.h, src/lib-storage/index/imapc/imapc-client.c, src/lib-storage/index/imapc/imapc-client.h, src/lib- storage/index/imapc/imapc-connection.c, src/lib-storage/index/imapc /imapc-connection.h, src/lib-storage/index/imapc/imapc-msgmap.c, src /lib-storage/index/imapc/imapc-msgmap.h: Moved imapc-client into its own lib-imap-client library. [743ebecc1224] 2011-09-25 Pascal Volk * .hgignore, doc/man/Makefile.am, doc/man/doveadm-move.1.in, doc/man/doveadm.1.in: man: Added doveadm move. [af13ef62d083] 2011-09-23 Timo Sirainen * src/stats/mail-command.c: stats: Make sure unfinished commands get freed when their session disconnects. [67a545272b3f] * src/lib/file-dotlock.c: file_dotlock: And fix to previous change.. [df74f0052707] * src/lib/file-dotlock.c: file_dotlock: Don't warn about changed mtime when it's 1 second. This is mainly to avoid bogus warnings with NFS and its caching. [fecd095394b6] * src/lib-storage/index/maildir/maildir-util.c: maildir: Improved guessing filename when it's still in new/ dir. [b3111bbbaf22] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Don't always drop new flag from files when syncing. [f24550491039] * src/lib-storage/mail-namespace.c: lib-storage: mail_namespace_find_unalias() crashed when namespace wasn't found. [ed97724884a2] * src/doveadm/server-connection.c: doveadm server: Previous non-authentication fix broken authentication. [46e90b44d378] * src/plugins/fts/fts-parser-script.c: fts: Support also RFC 2231 style parsing when finding the attachment filename. [e932f81eba48] 2011-09-22 Timo Sirainen * src/plugins/fts/fts-parser-script.c: fts: Fixed running attachment decoder scripts. [2b219b549007] * src/lib-storage/index/imapc/imapc-save.c: imapc: Fix to previous message saving change. [43df6495edb8] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- mail.h, src/lib-storage/index/imapc/imapc-save.c: imapc: Allow accessing a mail that is being saved without crashing. This fixes crashes with LDA, LMTP, mail_log plugin, etc. [b6633cb57814] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: iampc: Small code cleanup. [645a56f9d8ee] * src/lib-mail/rfc822-parser.c: lib-mail: Added broken input workaround to rfc822_parse_content_param(). [00b6848a5a63] * src/login-common/client-common.c, src/login-common/login-common.h, src/login-common/main.c: login: Added -R parameter to write pre-login rawlogs to given directory. [1ff636720b9f] * src/login-common/client-common.c: login: "cert required, client didn't start TLS" error could have been logged wrongly. [e19a3a2d554d] 2011-09-21 Timo Sirainen * src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: Added new mail_location setting "UTF8" to use UTF-8 instead of mUTF-7 in storage names. This basically changes mailbox names to be UTF-8 everywhere where they are mUTF-7 currently (filesystem, subscriptions, etc.) [fbbf2802e11f] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Don't try to send literal stream output until its '+' has been received. [9a42e3690b1b] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc/imapc-settings.h, src/lib- storage/index/imapc/imapc-storage.c: imapc: Added imapc_rawlog_dir setting. [87662d9ceff8] * src/lib/Makefile.am, src/lib/iostream-rawlog-private.h, src/lib /iostream-rawlog.c, src/lib/iostream-rawlog.h, src/lib/istream- rawlog.c, src/lib/istream-rawlog.h, src/lib/ostream-rawlog.c, src/lib/ostream-rawlog.h: Added rawlog i/ostreams. [0860ac364dec] * src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: If flush wants to read, make sure the flush callback isn't being called again. [e0bee6c56a05] * src/lib/ostream.c: ostream: Keep track of flush callback for filter ostreams as well. [62e1c575b16a] * src/lib/istream.c: i_stream_next_line(): Don't fail if stream doesn't have write buffer, we can handle it. [0fb296c11edc] * src/lib-fs/ostream-cmp.c, src/lib-ssl-iostream/ostream-openssl.c, src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib/ostream- private.h, src/lib/ostream.c, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: Simplified creating filter ostreams. [8c3c0e01e00d] * src/lib-fs/ostream-cmp.c, src/lib-mail/istream-dot.c, src/lib-mail /istream-header-filter.c, src/lib-ssl-iostream/istream-openssl.c, src/lib-ssl-iostream/ostream-openssl.c, src/lib-storage/index /istream-attachment.c, src/lib-storage/index/istream-mail-stats.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib-test/test- common.c, src/lib/Makefile.am, src/lib/ioloop-epoll.c, src/lib /ioloop-internal.h, src/lib/ioloop-iolist.c, src/lib/ioloop- kqueue.c, src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify-fd.c, src/lib/ioloop-notify-inotify.c, src/lib/ioloop-notify-kqueue.c, src/lib/ioloop-notify-none.c, src/lib/ioloop-poll.c, src/lib/ioloop- private.h, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib /iostream-internal.h, src/lib/iostream-private.h, src/lib/iostream.c, src/lib/istream-base64-encoder.c, src/lib /istream-concat.c, src/lib/istream-crlf.c, src/lib/istream-data.c, src/lib/istream-file.c, src/lib/istream-internal.h, src/lib/istream- limit.c, src/lib/istream-mmap.c, src/lib/istream-private.h, src/lib /istream-seekable.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib/ostream- internal.h, src/lib/ostream-private.h, src/lib/ostream.c, src/lib /test-istream-base64-encoder.c, src/lib/test-istream-concat.c, src/lib/test-istream-crlf.c, src/lib/test-istream-seekable.c, src/lib/test-istream-tee.c, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: Renamed lib/*-internal.h files to lib/*-private.h for consistency. [cf77e448295c] 2011-09-19 Timo Sirainen * src/doveadm/server-connection.c: doveadm: Fixed sending commands to doveadm server when it didn't require authentication. [1d8009c7b67e] 2011-09-21 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-openssl.h, src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Don't require SSL ostream to always have unlimited buffer size. It's important when reading/handshaking wants to write to output buffer, but writing itself can safely have zero sized buffer (e.g. while sending a large input stream). [b97c53c54f72] 2011-09-20 Timo Sirainen * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-msgmap.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Added more checks to catch buggy IMAP server responses. [d174fa047d56] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: When remote IMAP server becomes confused, don't mark our indexes corrupted. Mark them corrupted only when after a reconnection the initial mailbox sync doesn't work. [1dcc1ebe9516] * src/lib-storage/index/imapc/imapc-mail-fetch.c: imapc: Filter out X-Message-Flag: header from incoming mails. This is only added by MS Exchange when \Flagged flag is set, so it could be made optional, but it probably doesn't really hurt to just make it unconditional to ease the configuration. [501b33c4aa28] * src/lib-storage/index/imapc/imapc-mail.c: imapc: If FETCH is missing a reply, but we haven't seen EXPUNGE for it, do NOOP and check again. This fixes checking if message is expunged with servers that don't immediately send EXPUNGE during UID FETCH. [a15a1b1994cc] * src/lib-storage/index/imapc/imapc-storage.c, src/lib-storage/mail- storage-service.c: Increased initial memory pool sizes. [bed9bc9b9e22] * src/lib-storage/index/imapc/imapc-sync.c: imapc: If mailbox sync fails, don't mark index corrupted. The sync could have failed because of disconnection. The failure will just cause the sync to be rollbacked and retried later. No need to delete the whole index. [c9b758cd6c43] * src/lib-storage/index/imapc/imapc-sync.c: imapc: next_uid was sometimes lowered. [5a27ac58db25] * src/lib-storage/index/imapc/imapc-mail.c: imapc: When IMAP server unexpectedly doesn't send a reply, log also the mailbox name. [60f31136af52] * src/lib/ioloop-notify-inotify.c: inotify: If read() fails with EAGAIN, ignore it instead of dying. [803979bc30ab] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Handle disconnection better when fetching a mail. [25f9856be51e] 2011-09-19 Timo Sirainen * configure.in: Enable --no-undefined linker flag only for Linux. BSDs don't seem to be happy with it. [7d9163ce4253] * src/plugins/fts-lucene/fts-lucene-plugin.c: fts-lucene: Fixed to work without stemmer support. [02c84406c661] * src/lib/network.c: Compile fix for OpenBSD. [97135a53951e] * src/doveadm/doveadm-mail-move.c: doveadm: Typofix s/messsage/message/ [ee36cef69246] 2011-09-16 Timo Sirainen * .hgsigs: Added signature for changeset f9e744ffe021 [823b7ab2e1d7] * .hgtags: Added tag 2.1.alpha2 for changeset f9e744ffe021 [9b2c23b63474] * configure.in: Released v2.1.alpha2. [f9e744ffe021] [2.1.alpha2] * .hgsigs, .hgtags, NEWS, configure.in, src/auth/main.c, src/auth /passdb-ldap.c, src/doveadm/doveadm-mail-altmove.c, src/doveadm /doveadm-mail-iter.c, src/dsync/dsync-worker-local.c, src/dsync/dsync.c, src/lib-index/mail-cache.h, src/lib-index/mail- index-transaction-update.c, src/lib-index/mail-index-view.c, src /lib-index/mail-index.h, src/lib-lda/mail-deliver.c, src/lib-sql /driver-mysql.c, src/lib-sql/driver-sqlpool.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync.c, src/lib-storage/index/index- transaction.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/mail-copy.c, src/lib-storage /mail-storage-service.c, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h, src/lib-storage/mailbox-list.c, src/lib/ioloop.c, src/lib/ioloop.h: Merged changes from v2.0.15. [490a85b869e0] * .hgsigs: Added signature for changeset 11ef52450096 [22858efc84bb] * .hgtags: Added tag 2.0.15 for changeset 11ef52450096 [48395777f852] * NEWS, configure.in: Released v2.0.15. [11ef52450096] [2.0.15] * src/auth/main.c: auth: Use "auth-worker:" log prefix for auth worker processes. [8379707478d7] * src/lib-storage/mail-storage.c: lib-storage: Improved debug logging messages. [19086b0d53f4] * src/lib-storage/index/shared/shared-storage.c: lib-storage: If shared namespace prefix doesn't end with hierarchy separator, fail. [ea657df52a85] * src/lib-storage/mail-storage.c: lib-storage: If mailbox_rename() isn't possible and mail_debug=yes, log the reason why. [e57bd3e2ec27] * src/lib-storage/mailbox-list.c: lib-storage: Changed debug message to sound less like an error message. [99e1a9aa03f7] * src/lib-sql/driver-sqlpool.c: lib-sql: Fixed load balancing between multiple SQL hosts to actually work. [327698228158] * src/doveadm/doveadm-mail-iter.c, src/lib-index/mail-index- transaction-update.c, src/lib-storage/index/index-sync.c: s/commiting/committing/ Caught by Marco Nenciarini. [79d54b6ccfe1] * src/config/config-parser.c: config: Don't crash strlist section contains a subsection. [1a57526721d7] * doc/man/dsync.1.in: man: Escape fix. [2795be14f37f] 2011-09-15 Pascal Volk * doc/man/doveadm-altmove.1.in: man: Added -r option to doveadm-altmove.1. [85853915c8c0] 2011-09-15 Timo Sirainen * src/lib-sql/sql-api-private.h: lib-sql: Dropped connect timeout to 5 seconds. Postfix is using 10 second auth timeout and this needs to be less than that. [20a901f1de31] * src/lib-sql/driver-sqlpool.c: lib-sql: Don't try to connect to connections that are going to be reconnected later. This avoids unnecessarily trying to connect to failing connections. [3955a5b2a917] * src/lib-sql/driver-sqlpool.c: lib-sql: Connect to all configured hosts immediately. This makes load balancing between them actually work always. [55552b4e8c65] * src/lib-sql/driver-sqlpool.c: lib-sql: When escaping a string, use the first ready connection (if any). This avoids unnecessarily trying to reconnect to a failing connection. [1b829680dce4] * src/lib-sql/driver-mysql.c: lib-sql: If MySQL connect takes more than 1 sec, don't try to reconnect for that many secs. [11273f581686] * src/lib-sql/driver-mysql.c: lib-sql: If MySQL connect fails, update ioloop times so later timeouts get added properly. [c056bd23fdcc] * src/lib/ioloop.c, src/lib/ioloop.h: liblib: Added io_loop_time_refresh() [3334c12a2b1a] * src/auth/auth-request-handler.c: auth: Don't assert-crash if login client disconnects during multi- reply mechanism. [0dffdc3bfad1] * src/lib-storage/index/mbox/mbox-storage.c: mbox: mailbox_get_guid() works now without trying to sync the opened mailbox. This fixes assert-crash when LDA was trying to get mailbox GUID during save. [0264ac68c770] * src/doveadm/doveadm-mail-altmove.c: doveadm altmove: Added -r parameter to move mails back to primary storage. [1910c76a6cc9] 2011-09-13 Timo Sirainen * src/lib-storage/mail-storage-service.c: Removed unnecessary code. [d635bcf35df7] * src/dsync/dsync.c: dsync: Ignore SIGHUP [41dd8f4d44d5] * src/lib-index/mail-index-view.c: lib-index: mail_index_view_clone() didn't properly clear all fields in the destination view. The only caller already had it cleared though. Patch by Mike Abbott / Apple. [df8bd044a47d] 2011-09-12 Timo Sirainen * src/dsync/dsync-worker-local.c: dsync: If mailbox can't be opened, log an error but continue anyway. [3c8b44bb1974] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Fixed fetching last message from compressed mboxes. [a930318a74a1] * src/plugins/quota/quota-dirsize.c: quota-dirsize: Get the quota from "mail root dir", not "mailboxes dir". Normally they are different only with dbox (~/dbox vs. ~/dbox/mailboxes). This mainly fixes using dirsize with mdbox, where the mail data is in ~/dbox/storage/ directory. Patch by Роман Захров. [9ea79795088d] * src/auth/passdb-ldap.c: ldap: Fixed auth binds for nonexistent users with some LDAP servers. [d00c95f33643] 2011-09-08 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Error handling fix for key+=value when key isn't of string type. [0f63b7c5dd7c] * src/lmtp/lmtp-proxy.c: lmtp: Improved "DATA output timeout" error message. [8de8752b2e94] * src/lib-lda/mail-deliver.c: lib-lda: Log message improvement to differentiate mailbox open vs. save error. [323ab62983b6] * src/lib-storage/mail-copy.c: lib-storage: Fixed mail_storage_copy() error handling. [858298eb101f] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c: lib-storage: Minor error handling cleanups. [1903d5fd7e76] 2011-09-01 Timo Sirainen * src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- view-sync.c: lib-index: Make sure mail_index_sync_record() doesn't waste data stack. [1a6528646e11] 2011-08-30 Timo Sirainen * src/lib-storage/index/index-sync.c, src/lib-storage/index/index- transaction.c, src/lib-storage/mail-storage.h: lib-storage: Added MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC and use it when precaching. The result is that "doveadm index" no longer changes caching decisions. [5320315600a4] * src/lib-index/mail-cache-decisions.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache.c, src/lib-index/mail-cache.h: lib-index: Added mail_cache_view_update_cache_decisions() [efedf0644da8] 2011-09-16 Timo Sirainen * TODO: TODO updated [6a918d40d6f7] * src/plugins/acl/acl-plugin.h, src/plugins/acl/acl-shared-storage.c: acl: Fixed listing multiple shared namespaces. [4552430ae44e] * src/lib-storage/mail-storage.c: lib-storage: Don't try to use the same mail_storage for shared storages. This fixes having multiple independent shared namespaces. [cfbca51c0ade] * src/imap/cmd-list.c, src/lib-storage/index/shared/shared-list.c, src /lib-storage/list/mailbox-list-subscriptions.c: Fixes to listing mailboxes/subscriptions in shared namespaces. [080c8f9521d2] * src/plugins/quota/quota.c: quota: When matching mailbox names in quota rules, unalias namespaces first. [7f7dc4c89d04] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h: lib-storage: Added mail_namespace_find_unalias() [ff6272a52f0d] 2011-09-15 Timo Sirainen * src/stats/client-export.c: stats: Export also username for commands. [61d3544f8fdf] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Fixed listing subscriptions in shared namespaces. [309a707c22c0] 2011-09-13 Timo Sirainen * src/auth/main.c: auth: Use auth-worker(pid) prefix for auth processes. [667f604e79c5] * src/lib-storage/mail-storage.c: lib-storage: Make sure status/metadata structs are cleared when they're looked up. [8eea5682ac5b] * src/lib-storage/index/imapc/imapc-list.c: imapc: Handle \Noselect flag properly for untagged LSUB replies. [50d0906b556f] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Fixed handling subscriptions when they were saved to prefix!="" namespace. [f3eb6cc4b627] * src/lib-storage/index/imapc/imapc-client.c: imapc: Crashfix when sometimes closing mailbox. [e60a3b29117c] 2011-09-12 Timo Sirainen * src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h, src/stats/client-export.c, src/stats/mail-stats.c, src/stats/mail- stats.h: stats: Track [rw]char and sysc[rw] fields in /proc/self/io (with Linux). [835891cf2eef] * src/plugins/stats/stats-plugin.c, src/stats/client-export.c, src/stats/mail-stats.c, src/stats/mail-stats.h: stats: Added mail_ prefix to mail transaction statistics. Also added "m" prefix for them in the internal protocol. [b1870cf2d3ff] * src/dsync/dsync-worker-local.c: dsync: If mailbox can't be opened, log an error but continue anyway. [74e945315e2c] * src/plugins/fts-squat/fts-backend-squat.c: fts-squat: Crashfixes on indexing. [ddb5c2a8f3d2] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Don't break when there are duplicate From/To/Subject/etc. fields. [600034b77a1c] * src/stats/mail-session.c: stats: Increased idle timeout to 15 minutes. [502b794f654b] * src/stats/mail-command.c, src/stats/mail-session.c, src/stats/mail- session.h: stats: Avoid duplicate "Couldn't find session GUID" warnings. When it happens, just create a dummy session for it and log a warning once. [2492161a87f5] * src/plugins/virtual/virtual-storage.c: virtual: Compile fix for recent mailbox_exists() change. [a2c62701a1c4] * src/indexer/master-connection.c: indexer: Fixed assert-crash when number of indexed messages was divisible by 100. [f4899179ad4c] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Fixed fetching last message from compressed mboxes. [ea8f667ac6ef] * src/plugins/quota/quota-dirsize.c: quota-dirsize: Get the quota from "mail root dir", not "mailboxes dir". Normally they are different only with dbox (~/dbox vs. ~/dbox/mailboxes). This mainly fixes using dirsize with mdbox, where the mail data is in ~/dbox/storage/ directory. Patch by Роман Захров. [1a39f7648c9d] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-list.h, src/lib-storage/index/imapc/imapc- storage.c: imapc: Fixed mailbox_exists() to actually work. This fixes problems with subscribing to mailboxes. [cc9332de9982] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/mail-storage.c: lib-storage: Handle INBOX in the common mailbox_exists() code. [3844653d483a] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-storage.c: imapc: Fixes to handling non-empty imapc namespace prefix. [59c7b30973cf] * src/lib-storage/mailbox-list.c: lib-storage: Fixed mailbox_list_mailbox() for backends without get_mailbox_flags(). [84e31a32293e] * src/lib-storage/list/mailbox-list-fs-flags.c, src/lib-storage/list /mailbox-list-fs.h: lib-storage: Finished previous get_mailbox_flags() change. [7669862d95e7] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-maildir-iter.c, src/lib-storage/list/mailbox-list- maildir.h, src/lib-storage/list/mailbox-list-none.c, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-list.c: lib-storage: Removed unused struct stat parameter from mailbox_list.get_mailbox_flags() [896ed71917aa] 2011-09-09 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-storage.c: imapc: More fixes to listing mailbox names. [3e1aad7bfd97] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Another try at fixing mUTF-7 mailbox names. [0801852b2156] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Use mUTF-7 for mailbox names. [92ab9fa4ec36] 2011-09-08 Timo Sirainen * src/lib-storage/index/imapc/imapc-mail-fetch.c: imapc: If mail prefetching fails because of disconnection, don't log about it again. [ec947cc9c9c7] * src/lib-storage/index/imapc/imapc-storage.c: imapc: If NOOP fails with disconnection, set "internal error" to storage. [960907bfc29e] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c: fts-solr: Fixed indexing messages with multiple MIME body parts. [283e08771d92] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-connection.c: imapc: Send NOOP command every 29 minutes to remote server. This avoids server idle-disconnecting us after doing nothing for 30 minutes. [1aa51cd11614] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-openssl.h: lib-ssl-iostream: If plain stream disconnects, disconnect SSL stream also. [c53f15aab7aa] * src/lib-lda/mail-deliver.c: lib-lda: Log message improvement to differentiate mailbox open vs. save error. [2d82377dc855] * src/lib-storage/mail-copy.c: lib-storage: Fixed mail_storage_copy() error handling. [b69feb0352f1] * src/lib-storage/mail-storage.c: lib-storage: Code cleanup to mail_storage_set_critical() [84bce2c8626f] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c: lib-storage: Minor error handling cleanups. [bba92468b051] 2011-09-01 Timo Sirainen * src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- view-sync.c: lib-index: Make sure mail_index_sync_record() doesn't waste data stack. [ad9b826df5a2] 2011-09-07 Timo Sirainen * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-connection.c, src/lib-storage/index/imapc /imapc-connection.h: imapc: When closing mailbox, don't abort any pending non-mailbox commands. [d3335654e9a7] * src/auth/auth.c: auth: Don't crash when using default static userdb. [fdca1c2cce01] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Some tweaks to BIO handling. [9380133c8531] * src/lib-storage/index/imapc/imapc-sync.c: imapc: Fixed assert-crashing when deleting a mailbox [f7de547a54d5] * src/lib-storage/index/imapc/imapc-list.c: imapc: Place index files under root_dir/indexes/ directory. [c943580d3a1b] * src/lib-index/mail-index-sync.c: lib-index: Don't allow syncing to begin if index is marked corrupted. [9815d3292470] * src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Handle flush_pending and set_max_buffer_size properly. [4b707b98176e] * src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Fixed ostream to preserve/use flush callback correctly. [de7f3810589a] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Switch connection output streams' ioloop when needed. This fixes hangs when output stream got full. [31471ce338ab] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: When plain_output's buffer is full, set it flush- pending. This fixes hangs when the output buffer got full. [d96c03d7eeef] * src/lib-ssl-iostream/ostream-openssl.c, src/lib/ostream-file.c, src/lib/ostream-internal.h, src/lib/ostream.c, src/lib/ostream.h, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: Added o_stream_switch_ioloop() and implemented it to all ostreams. [977dcd541f69] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-list.h, src/lib-storage/index/imapc/imapc- storage.c: imapc: Connect to server immediately at startup and lookup hierarchy separator. If connecting to server fails, this makes it fail earlier. Also we don't have to worry about what to do later if hierarchy separator lookup fails. [e5570ee5d695] * src/lib-ssl-iostream/istream-openssl.c, src/lib-ssl-iostream /ostream-openssl.c: lib-ssl-iostream: When SSL i/ostream is closed, close also the plain stream. [0e1a65d30964] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c: imapc: Don't crash if a newly seen uncommitted message is expunged. [3ae5d7e0a4b4] * src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-mailbox.c: imapc: Removed accidentally committed debug sleeps. [3828fa3b8fd4] * src/lib-ssl-iostream/iostream-ssl-none.c: lib-ssl-iostream: Fixed compiling when SSL is disabled. [513802d016a0] * src/lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Compiler warning fix. [fb03574ddd34] 2011-09-06 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c: imapc: Don't crash when trying to use imapc's subscription list for another namespace. [7ae9c4aa5edb] * src/lib-storage/mail-storage-service.c: lib-storage: When mail_debug=yes logs userdb fields, hide values of all whose key contains "pass". [af6a6da91978] * src/lib-auth/auth-master.c: lib-auth: When debug logging auth input, hide values of all fields containing "pass" in key. [1180505cdcdb] * src/auth/auth-master-connection.c: auth: If auth_debug_passwords=no, hide values of userdb keys containing "pass" string. [7b115033405d] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Error logging fix when SSL handshake fails. [991ce1aed5f7] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Verify that SSL certificate matches the connected hostname. [e40d6b5ef97e] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-ssl.h: lib-ssl-iostream: Added ssl_iostream_cert_match_name() [c3dc563c9800] * src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream /iostream-openssl.h, src/lib-ssl-iostream/istream-openssl.c, src /lib-ssl-iostream/ostream-openssl.c: lib-ssl-iostream: Code cleanups, fixes, asserts and comments. [6a3f3a5ad9a5] 2011-09-05 Timo Sirainen * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Avoid assert-crashing when remote disconnects during write. [44bbbb238f2a] * src/lib-storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync.c: maildir: Avoid refreshing uidlist unnecessarily. Even if the uidlist itself wasn't read, it was still stat()ed. [4124c28db2a4] * src/lib-storage/index/maildir/maildir-sync.c: maildir: When logging "scanning took n secs" warning, log also why scan was done. This could help debugging why cur/ directory is sometimes scanned with maildir_very_dirty_syncs=yes (if the previous commit didn't fully solve it). [ae7a7282af83] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Drop internal new-flag from mails that have been moved from new/ to cur/. This avoids unnecessary cur/ directory scans. [ed8ed96cc828] * src/stats/mail-session.c: stats: Don't crash at deinit if there are still connected sessions. [361aafbd448c] * src/stats/mail-session.c: stats: If forcibly disconnecting a session, show the session's username also. [7669b0fbada5] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: mailbox_status now returns permanent flags/keywords as they are on remote server. [4ddbbfa1c515] * src/lib-storage/mailbox-keywords.c: lib-storage: mailbox_keyword_is_valid() returns now FALSE if keyword can't be created. [a5e47ce5a5a0] * src/lib-storage/index/index-status.c, src/lib-storage/mail-storage- private.h: lib-storage: Added mailbox.disallow_new_keywords and use it for mailbox_status. [d15b173688f9] 2011-09-04 Timo Sirainen * src/stats/stats-settings.c: stats: Add stats_ prefix to all settings. [c979efcc13cf] * src/master/service-listen.c: master: fifos weren't created with correct user/group. [667b3e80acf5] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Another compiler warning fix. [7d1260ab78ac] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Compiler warning fix. [d504c507ba2f] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Fixed checking if mail is expunged. [5e3d217ceedf] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Syncing fixes [581597411f6b] * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-client-private.h, src/lib-storage/index/imapc/imapc-client.c, src/lib-storage/index/imapc/imapc-client.h, src/lib- storage/index/imapc/imapc-connection.c, src/lib-storage/index/imapc /imapc-mail.c, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-msgmap.c, src/lib-storage/index/imapc /imapc-msgmap.h, src/lib-storage/index/imapc/imapc-seqmap.c, src /lib-storage/index/imapc/imapc-seqmap.h, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c, src/lib- storage/index/imapc/test-imapc-seqmap.c: imapc: Redesigned remote sequence <-> index file record mapping is done. The previous code didn't work when multiple connections modified the same index files. [26c38da7b7fc] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c: imapc: Delay handling new messages and setting uidvalidity/uidnext until sync. [1da4bc23d4dc] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Never use box->view for syncing related purposes. The view isn't up to date when MAILBOX_SYNC_FLAG_NO_EXPUNGES is used to sync it. Instead always use a separate sync view. [5dac75d12c59] * src/lib-index/mail-index.c: lib-index: Fixed reopening index file that was marked as corrupted. [33dc66d4286d] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-mail-fetch.c, src/lib-storage/index/imapc/imapc-mail.c, src /lib-storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h, src /lib-storage/index/imapc/imapc-sync.c: imapc: Fixed handling immediate changes when starting IDLE. [e404a1bef6bc] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Avoid assert-crashing if a new message's UID is smaller than next_uid. [b9c967c7d66b] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c: imapc: Error logging cleanups. Don't bother to log disconnection errors for NOOP. [7db3ed5e17ed] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Fixed error handling while opening mailbox. [0b786a676453] * src/lib-index/mail-index.c, src/lib-index/mail-transaction-log.c, src/lib-index/mail-transaction-log.h: lib-index: When marking index corrupted, delete also transaction log file. [7b240ecc37b5] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.h: imapc: Fixed syncing external changes to mailbox when opening it. [f8d5f872498d] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-storage.c: imapc: Added assert. [44e3c053f9f8] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Fixed IDLE handling. [e1a8ad9c83cd] * src/stats/mail-session.c: stats: Minor error message fix. [583023c4db60] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Use EXAMINE command when possible. [54318eaada67] * src/stats/mail-command.c: stats: Don't increase session stats based on command stats. This was buggy because the session stats were now increased twice. It could have been possible to keep doing this and on UPDATE-SESSION simply replace the old session stats, but that might still have caused the session stats to temporarily go too high and then drop down. [9434093229aa] * src/anvil/anvil-connection.c: anvil: Assert-crashfix at exit when there were fifo connections. [66453d942761] * src/stats/mail-command.c: stats: Don't assert-crash at exit if there are unfinished commands. [ddcf7d2f109a] 2011-09-03 Timo Sirainen * src/lib-sql/Makefile.am: lib-sql: Don't link sql libraries to libdovecot-sql.so when building them as plugins. [d2b27eae9221] 2011-09-02 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Don't send delete to Solr if we're quite sure it doesn't exist. [338ba56340c0] 2011-09-01 Timo Sirainen * src/stats/mail-command.c, src/stats/mail-session.c, src/stats/mail- stats.c, src/stats/mail-stats.h: stats: Log more verbosely what happened if stats shrink. [1c2d8da38a06] * src/plugins/stats/stats-plugin.c: stats plugin: Get disk I/O from getrusage(), not from /proc/self/io. They're pretty much the same values anyway, and getrusage() is more portable. [ea0b4da3ceef] * .hgsigs: Added signature for changeset 8ae243558677 [c05ac0650e23] * .hgtags: Added tag 2.1.alpha1 for changeset 8ae243558677 [0308a068353e] * configure.in: Released v2.1.alpha1. [8ae243558677] [2.1.alpha1] * src/lib/network.c: Make static analyzer happy. [7b293478f609] * src/doveadm/doveadm-stats.c: doveadm: Error handling fix [f4082acf2e5a] * NEWS: NEWS updated [3a4bc00b7027] * TODO: TODO updated [f0fb3cede05c] * src/plugins/stats/stats-connection.c, src/stats/client-export.c, src/stats/mail-session.c, src/stats/mail-stats.h: stats: Keep track of session's PIDs. [07f02f421588] * src/stats/client-export.c, src/stats/mail-command.c, src/stats/mail- domain.c, src/stats/mail-ip.c, src/stats/mail-session.c, src/stats /mail-stats.h, src/stats/mail-user.c: stats: Keep track of last_update in microsecond precision and export it as such. [fd68963a7add] * src/doveadm/doveadm-print.h, src/doveadm/doveadm-stats.c: doveadm: Change "stats dump" default formatter to "tab". [03ad86ec4ebd] * src/doveadm/doveadm-stats.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Initial implementation of "stats top" command. Currently it's hard coded to assume ANSI compatible terminal. [0b7ab4965c91] * src/doveadm/doveadm-print-table.c: Increased initial memory pool size. [87ce8bba8731] * src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h: stats plugin: Send one no-change session update after changes. This tells the stats client that the session is idle now. [b595afb1338e] * src/stats/client-export.c: stats: Export CPU usecs prefixed with right number of zeros. [b43fe57b2de7] * src/doveadm/doveadm-stats.c: doveadm stats: Renamed "top" command to "dump" and allow giving any parameters to it. [55d34ec2e8ac] * src/stats/client-export.c: stats: Fixed dumping command stats. [5bd2deb87ccf] * src/stats/client-export.c, src/stats/mail-session.c, src/stats/main.c: stats: Fixed handling IP address stats. [f77ee6f0c42a] * src/plugins/imap-stats/imap-stats-plugin.c, src/plugins/stats/Makefile.am, src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h: stats plugin: Added stats_refresh and stats_track_cmds settings. The stats plugin is enabled only when refresh is set to non-zero. The imap_stats plugin tracks commands only when stats_track_cmds=yes. [ec6d171a54bd] * src/plugins/stats/stats-plugin.c: stats plugin: Optimized to lookup statistics only when necessary. [fafbd108008c] * src/plugins/stats/stats-plugin.c: stats: Don't attempt to track stats for autocreated users. [4d8cec7a7496] * src/lda/main.c, src/lib-storage/index/shared/shared-storage.c, src /lib-storage/mail-user.h, src/lmtp/client.c: lib-storage: Set struct mail_users.autocreated for raw/shared users. [f7f75a5a6abf] * src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h, src/stats/client-export.c, src/stats/mail-stats.c, src/stats/mail- stats.h: stats: Added more statistics fields (syscpu, page faults, context switches). [2211371a3de5] * src/doveadm/doveadm-stats.c: doveadm stats top: Don't hang if stats server doesn't send any statistics. [f5f7f7b48b6c] 2011-08-31 Timo Sirainen * src/lib-storage/index/index-status.c: lib-storage: Recognize "flags" cache field in MAILBOX_METADATA_PRECACHE_FIELDS. [ceed6275222b] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c: fts-solr: Fixed updating last indexed uid in fts header. [4a993091dcc7] * src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-storage.c: fts: Removed unused code. [cb6fea1d6d07] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Fixed checking if optimize should be done directly or via indexer. [6c6834984a42] * src/doveadm/doveadm-dump-index.c, src/lib-index/mail-cache- compress.c, src/lib-index/mail-cache.c, src/lib-index/mail-cache.h, src/lib-storage/index/index-status.c, src/lib-storage/index/index- transaction.c: lib-index: Changed mail_cache_view_close() API to take pointer-to- pointer. [b355309955f4] * src/indexer/indexer-queue.c, src/indexer/master-connection.c, src/indexer/worker-connection.c: indexer: Send completion% status updates to clients. [986fdb5deb7a] * src/doveadm/doveadm-mail-index.c, src/indexer/master-connection.c, src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox- mail.c, src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src /lib-storage/index/index-status.c, src/lib-storage/index/index- sync.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/lib-storage/test- mail.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts/Makefile.am, src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-build-indexer.c, src/plugins/fts/fts-build- mail.c, src/plugins/fts/fts-build-mail.h, src/plugins/fts/fts-build- mailbox.c, src/plugins/fts/fts-build-private.h, src/plugins/fts/fts- build-virtual.c, src/plugins/fts/fts-build.c, src/plugins/fts/fts- build.h, src/plugins/fts/fts-indexer.c, src/plugins/fts/fts- indexer.h, src/plugins/fts/fts-storage.c, src/plugins/fts/fts- storage.h, src/plugins/virtual/virtual-mail.c, src/plugins/virtual /virtual-storage.c: Redesigned mail precaching APIs. There's no longer a one monolithic mailbox_sync(MAILBOX_SYNC_FLAG_PRECACHE) call, but rather one mail_precache() call for each mail to be precached. This allows the callers to show the progress and in general is cleaner. [51e9b2fb0596] * src/plugins/fts/fts-api.c: fts: Fixed checking settings compatibility with non-INBOX namespaces. [1a27e3a83f1e] * src/lib-index/mail-cache.c, src/lib-index/mail-cache.h: lib-index: Added mail_cache_exists() [11ff6a7eb576] 2011-08-30 Timo Sirainen * src/auth/passdb-template.c, src/auth/passdb-template.h, src/auth /userdb-template.c, src/auth/userdb-template.h: auth: Added missing files from recent commit. [60f3d0b8900d] * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-solr /fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts/fts-api- private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts-api.h, src/plugins/fts/fts-search.c: fts: Added lookup_done() API call. Lucene uses it to close the index. This way it Lucene doesn't keep the index files unnecessarily open forever. [31c8b0f1dbfd] * src/lib-storage/index/mbox/mbox-storage.c: mbox: mailbox_get_guid() does now better error handling when read- only mbox doesn't have GUID. [8f22713b21cc] * src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/fts- backend-solr.c: fts-lucene, fts-solr: Try to optimize searching for existence of header name. [a9389aed85e5] * doc/example-config/conf.d/auth-ldap.conf.ext, doc/example- config/conf.d/auth-passwdfile.conf.ext, doc/example-config/conf.d /auth-system.conf.ext, src/auth/Makefile.am, src/auth/auth- request.c, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/auth.c, src/auth/passdb-static.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb-passwd.c, src/auth/userdb- static.c, src/auth/userdb-static.h, src/auth/userdb.c, src/auth/userdb.h: auth: Added default_fields and override_fields settings to all passdbs and userdbs. [83ac50d3b76f] * src/lib-storage/index/index-sync.c, src/lib-storage/index/index- transaction.c, src/lib-storage/mail-storage.h: lib-storage: Added MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC and use it when precaching. The result is that "doveadm index" no longer changes caching decisions. [096406c67288] * src/lib-index/mail-cache-decisions.c, src/lib-index/mail-cache- private.h, src/lib-index/mail-cache.c, src/lib-index/mail-cache.h: lib-index: Added mail_cache_view_update_cache_decisions() [4a19aea565f7] * NEWS, TODO, configure.in, src/doveadm/doveadm-mail-list-iter.c, src/doveadm/server-connection.c, src/lib-index/mail-index.c, src /lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index /dbox-single/sdbox-mail.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib-storage/mailbox-list.c, src/login-common/client-common- auth.c: Merged changes from v2.0 tree. [548ef72c942f] 2011-08-29 Timo Sirainen * .hgsigs: Added signature for changeset aa68f38c04f0 [e01c9f89b0b0] * .hgtags: Added tag 2.0.14 for changeset aa68f38c04f0 [d30a79f4b5a4] * NEWS, TODO, configure.in: Released v2.0.14. [aa68f38c04f0] [2.0.14] * src/doveadm/doveadm-mail-server.c: doveadm: Proxying fix [3b7ef442595d] * src/doveadm/server-connection.c: doveadm: Fixed authentication with remote doveadm server. [c7dccec3eaa4] * src/doveadm/doveadm-director.c: doveadm: Added "director ring status" command. [00f9dd706a90] * src/director/doveadm-connection.c: director: Updated DIRECTOR-LIST doveadm command. [63680f6e21a2] * src/doveadm/doveadm-mail-list-iter.c: doveadm: Skip mailbox optimizations under OR search terms. This fixes problem with e.g. "mailbox foo or seen". [24516f31a75d] * src/lib-index/mail-index-write.c: lib-index: Error logging fix to previous commit. [32eb50cc35d4] 2011-08-23 Timo Sirainen * src/lib-index/mail-index-write.c: lib-index: When creating dovecot.index.backup files, fdatasync() them first. Otherwise if the dovecot.index file had been written to recently, it could lose both the new and the old backup data. [f08bf97278ac] * src/lib-storage/index/dbox-single/sdbox-mail.c: sdbox: Avoid assert-crashing if mail being saved suddenly became corrupted. [de0ea56932e5] * src/lib-master/ipc-server.c: lib-master: Make sure ipc server fd isn't tried to be accessed after it's closed. [eaeb7bcfb51e] * src/util/rawlog.c: rawlog: Use the lib-master API calls. [d4effbfae49c] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Avoid crashing when getting GUID or header-md5 in some conditions. mbox file can be opened and locked (especially with pop3_lock_session=yes) without actually creating a stream for it. [030394c74f54] * src/plugins/zlib/istream-zlib.c: zlib: Fixed reading concatenated .gz files. [35e4a547231c] * src/login-common/client-common-auth.c: login proxy: Fixed assert-crash on io_add() when client disconnects at a bad time. [39655869f2ee] * src/lib-lda/lmtp-client.c: lib-lda: Don't crash if remote disconnects during sending mail via LMTP. [2f988e370a41] 2011-08-18 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox: Remove refcount=0 records from map index on the first purge (not second). [1449a2e2c1f5] 2011-08-16 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: Log alt path when mail_debug=yes [46bf11666cdd] * src/lib-index/mail-index-sync-update.c: lib-index: Optimized handling MAIL_TRANSACTION_EXPUNGE_GUID records in large index. [17d7aceda8ba] 2011-08-04 Timo Sirainen * src/lib-index/mail-index.c: mail_index_get_keywords() / status.keywords weren't actually guaranteed to be NULL terminated This could have caused crashes or garbage keywords be presented to clients in some situations. [ba03935cc599] 2011-08-28 Timo Sirainen * configure.in: configure: Added --with-stemmer and output which fts backends are compiled. [57aeda3d94ad] * src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm-mail.c, src/dsync/dsync-worker-local.c, src/imap /cmd-select.c, src/imap/imap-commands-util.c, src/imap/imap- status.c, src/indexer/master-connection.c, src/lib-lda/mail- deliver.c, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/index-sync.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-sync.c, src /lib-storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox /mbox-sync.c, src/lib-storage/list/index-mailbox-list.c, src/lib- storage/list/mailbox-list-fs-iter.c, src/lib-storage/mail-storage.h, src/lib-storage/mailbox-guid-cache.c, src/lib-storage/mailbox- list.c, src/plugins/acl/doveadm-acl.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts/fts-api.c, src/plugins/imap-acl /imap-acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota /quota-count.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash /trash-plugin.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-sync.c, src/pop3/pop3-client.c: lib-storage: Replaced MAILBOX_FLAG_KEEP_RECENT flag with reverse MAILBOX_FLAG_DROP_RECENT. Very few places actually want to drop recent flags, so this way is easier. [9d152c0388ee] * src/plugins/stats/stats-plugin.c: stats plugin: Fixed stats connection reference counting. [1d93d6eb3958] * src/doveadm/doveadm-dump-index.c: doveadm dump: Updated fts_index_header. [89fe41c4fbfd] * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /fts-lucene-plugin.c, src/plugins/fts-lucene/fts-lucene-plugin.h, src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: If default_language changes, reindex mailbox. [1f71afc29810] * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-solr /fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-api.c: fts: Changed private fts_index_header accessing APIs [9fa11cecd8c8] * src/plugins/stats/stats-plugin.c: stats plugin: Don't crash if stats collecting is disabled. [0b99dd56ebb1] * src/lib-storage/mail-user.c: lib-storage: Default mail_user.service (from NULL) to master_service.name. [58bfb3744ccc] 2011-08-27 Timo Sirainen * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Error logging fix. [9b6580e9e26b] 2011-08-26 Timo Sirainen * src/stats/mail-session.c: stats: Refresh idle timeout whenever session is updated. [dc5f038da30f] * src/doveadm/Makefile.am, src/doveadm/doveadm-stats.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added initial implementation of "stats top" command. [34e2190a56c6] * .hgignore, configure.in, src/Makefile.am, src/plugins/Makefile.am, src/plugins/imap-stats/Makefile.am, src/plugins/imap-stats/imap- stats-plugin.c, src/plugins/imap-stats/imap-stats-plugin.h, src/plugins/stats/Makefile.am, src/plugins/stats/stats-connection.c, src/plugins/stats/stats-connection.h, src/plugins/stats/stats- plugin.c, src/plugins/stats/stats-plugin.h, src/stats/Makefile.am, src/stats/client-export.c, src/stats/client-export.h, src/stats/client.c, src/stats/client.h, src/stats/global-memory.c, src/stats/global-memory.h, src/stats/mail-command.c, src/stats/mail- command.h, src/stats/mail-domain.c, src/stats/mail-domain.h, src/stats/mail-ip.c, src/stats/mail-ip.h, src/stats/mail-server- connection.c, src/stats/mail-server-connection.h, src/stats/mail- session.c, src/stats/mail-session.h, src/stats/mail-stats.c, src/stats/mail-stats.h, src/stats/mail-user.c, src/stats/mail- user.h, src/stats/main.c, src/stats/stats-settings.c, src/stats /stats-settings.h: Initial implementation of statistics gathering daemon and plugins to feed it. Some statistics are still missing, some of the code is a bit ugly and the internal protocols will probably still change. [c51fbe64eae1] * src/director/notify-connection.c, src/lib-master/master-service.c, src/log/log-connection.c: lib-master: Don't count FIFOs as clients anymore. We never see them disconnected. This fixes a problem with shutdown_clients=no when a closed director process could hang around forever waiting for the FIFO to close. [076a71f9a154] * src/master/service-listen.c: master: If fifo already exists, replace it to be sure it has proper permissions. [78f9f28b5d24] * src/imap/cmd-append.c, src/imap/cmd-uid.c, src/imap/imap-client.c, src/imap/imap-commands.c, src/imap/imap-commands.h: imap: Added hooks that can be run always before/after any command handler. [6eb42d5d0ce3] * src/lib/network.c, src/lib/network.h: liblib: Added IPADDR_BITS() macro. [d473660bc54d] 2011-08-25 Timo Sirainen * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-common/dbox-mail.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/index-mail-headers.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index /istream-mail-stats.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib-storage/index/raw/raw-mail.c, src/lib-storage/mail-storage- private.h: lib-storage: Moved all transaction stats_* to struct mailbox_transaction_stats. [4317429862e1] * src/lib/llist.h: liblib: Added _FULL versions of all linked list handling macros with prev and next params. This allows putting structs into multiple linked lists. [eaee3b8a98cf] * src/doveadm/doveadm-dump-index.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail- search.c, src/dsync/dsync-brain-msgs.c, src/dsync/dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync-worker-local.c, src/dsync /test-dsync-brain-msgs.c, src/dsync/test-dsync-common.c, src/dsync /test-dsync-common.h, src/dsync/test-dsync-proxy-server-cmd.c, src/dsync/test-dsync-proxy.c, src/imap/imap-status.c, src/lib-index /mail-index-transaction-update.c, src/lib-index/mail-index.h, src /lib-index/mail-transaction-log.h, src/lib-index/mailbox-log.h, src /lib-index/test-mail-index-transaction-finish.c, src/lib-index/test- mail-index-transaction-update.c, src/lib-lda/mail-deliver.c, src /lib-lda/mail-deliver.h, src/lib-mail/mail-types.h, src/lib- storage/index/dbox-common/dbox-file-fix.c, src/lib-storage/index /dbox-common/dbox-save.c, src/lib-storage/index/dbox-common/dbox- save.h, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.h, src/lib-storage/index/dbox-multi/mdbox- sync.c, src/lib-storage/index/dbox-single/sdbox-copy.c, src/lib- storage/index/dbox-single/sdbox-file.c, src/lib-storage/index/dbox- single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-storage.h, src /lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/index-attachment.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index /index-storage.c, src/lib-storage/index/index-sync-changes.c, src /lib-storage/index/index-sync-changes.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/mbox/mbox-storage.h, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/list/index-mailbox- list-status.c, src/lib-storage/list/index-mailbox-list.h, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h, src/lib-storage/mail.c, src/lib-storage /mailbox-guid-cache.c, src/lib-storage/mailbox-guid-cache.h, src /lib-storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/lib-storage/test-mailbox-get.c, src/lib/Makefile.am, src/lib/guid.c, src/lib/guid.h, src/lmtp/client.c, src/plugins/fts-lucene/doveadm-fts-lucene.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h, src/plugins/fts/doveadm-dump-fts-expunge-log.c, src/plugins/fts/fts- api-private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts- expunge-log.c, src/plugins/fts/fts-expunge-log.h: Moved GUID code to liblib. Use guid_128_t type consistently everywhere. [957060ca5b69] * src/lib/ioloop.c, src/lib/ioloop.h: liblib: Added io_loop_get_current_context() [b6b16c9eb3d5] * src/lib-storage/mail-storage-service.c, src/lib/ioloop.c, src/lib/ioloop.h: liblib: io_loop_context_remove_callbacks() now requires also callbacks. [c17e4f8ddc81] 2011-08-24 Timo Sirainen * NEWS: NEWS updated [a5edd3fe466b] * configure.in: configure: Removed accidentally committed stats directory. [12b70c1819a9] * configure.in, src/plugins/fts-lucene/Makefile.am, src/plugins/fts- lucene/doveadm-fts-lucene.c, src/plugins/fts-lucene/fts-backend- lucene.c, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins /fts-lucene/fts-lucene-plugin.h, src/plugins/fts-lucene/lucene- wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h: fts-lucene: Added default_language setting and separated stemmer/textcat support. [c5bb5db9f541] 2011-08-23 Timo Sirainen * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Add '/' suffix to textcat_dir if it's not already there. [f0e415c46490] * src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h: fts-lucene: Free all Lucene's memory on plugin deinit. [0e2b79d2be59] * src/plugins/fts-lucene/Snowball.cc, src/plugins/fts- lucene/SnowballAnalyzer.h: fts-lucene: Fixed memory leak in snowball analyzer. [7d4e9c85ff2d] * src/indexer/worker-pool.c: indexer: Treat worker connections as client connections to avoid early idle-kills. [fa2425fd9cf4] * src/lib-master/master-service.c, src/lib-master/master-service.h: lib-master: Added master_service_client_connection_created() [030e33bde821] 2011-08-18 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox: Remove refcount=0 records from map index on the first purge (not second). [c7fa03ee87c8] * src/lib-storage/mail-storage-service.c: Increased initial memory pool size. [e538fa0bdcbb] * src/indexer/worker-pool.c: indexer: Code cleanup [887bf77ae6f5] 2011-08-16 Timo Sirainen * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Use TermQuery instead of PrefixQuery for searches. Although PrefixQuery gives a more IMAP-like result, it's slower and can fail if the prefix string is small. [38e333c52d99] * src/plugins/fts-lucene/doveadm-fts-lucene.c, src/plugins/fts-lucene /fts-backend-lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h: fts-lucene: Automatically delete corrupted indexes and mark all mailboxes unindexed. [d4b6b0ebb200] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: doveadm fts rescan now resets "last indexed uid" for all mailboxes. [ff263750ce71] * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /lucene-wrapper.cc: fts-lucene: Avoid unnecessarily creating the lucene-indexes directory. [4dff29fbc78d] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-storage.h: dbox: Create symlink to alt root dir, and warn whenever it changes. [8aeeaf770612] * src/lib-storage/mailbox-list.c: lib-storage: Don't crash on getting alt root dir, when no alt dir is specified. [da8da4a11039] * src/lib-storage/mailbox-list.c: lib-storage: Log alt path when mail_debug=yes [1a40ebfedaa2] * src/lib-index/mail-index-sync-update.c: lib-index: Optimized handling MAIL_TRANSACTION_EXPUNGE_GUID records in large index. [ee151b7e0d5a] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Don't add messages to expunge log that aren't even in the index. [2d4175c9ff52] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Once enough messages have been deleted, trigger optimize via indexer. [86d752132290] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Yet another (final!) attempt at avoiding "Too Many Clauses" error. [8d38b23d77f8] * src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-build- indexer.c: fts: Added fts_indexer_cmd() for easily sending commands to indexer. [c664dd8e248b] * src/indexer/indexer-client.c, src/indexer/indexer-queue.c, src/indexer/indexer-queue.h, src/indexer/indexer.c, src/indexer /master-connection.c, src/indexer/worker-connection.c, src/indexer /worker-connection.h: indexer: Added OPTIMIZE command to optimize fts index. [ad429a8311f4] * src/lib-storage/mail-storage.h, src/plugins/fts/fts-storage.c: lib-storage: Added MAILBOX_SYNC_FLAG_OPTIMIZE flag for triggering fts optimize. This is a pretty ugly kludge, since it does nothing when FTS isn't enabled.. [bd0e2c2d0f1d] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Another attempt to avoid "Too Many Clauses" error by not using ? wildcard. [b0777f44c999] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Fix to previous change: actually use WildcardQuery, not TermQuery.. [6b8ef63846d7] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Avoid crashing if user init fails. [cddc09ae5e1d] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Use WildcardQuery rather than RangeQuery to limit what UIDs to fetch. [16d8a1c1543f] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Fixed assert-crash when trying to open lazy-expunge mailbox. [f6c534c1baee] * src/lib-storage/mail-storage-service.c: lib-storage: MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT crashed after previous ioloop change. [9c76b6239fff] * src/plugins/fts/fts-parser-html.c: fts: Assert-crashfix to HTML parsing if the document ends with a small tag. [69cf3bb0b8e8] * src/lib-storage/mail-storage-service.c, src/lib/ioloop-internal.h, src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify-inotify.c, src/lib /ioloop-notify-kqueue.c, src/lib/ioloop.c, src/lib/ioloop.h: Replaced "ioloop log" with a more generic "ioloop context". The context can call multiple callbacks that can do anything they want, including setting the log prefix. [32315c24992c] * src/lib-storage/index/index-search.c: lib-storage: Fixed assert-crash caused by previous stats change. [390f69281fb8] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-common/dbox-mail.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/index-mail-headers.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index /istream-mail-stats.c, src/lib-storage/index/istream-mail-stats.h, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/raw/raw-mail.c, src/lib-storage/mail-storage- private.h: lib-storage: Moved stats_* from mail to transaction. With the API changes to search, having them in mail doesn't make sense anymore, since mailbox_search_next() can return multiple different mails with different stats. [b7a6573dacca] * src/lib-storage/mail-storage.c: Compiler warning fix. [3936152ecc03] 2011-08-15 Timo Sirainen * src/lib-index/mail-transaction-log-file.c: lib-index: Assert-crashfix when reading transaction log header fails with ESTALE. [e17f48dc9fc6] * src/lib-index/mail-transaction-log-file.c: lib-index: Avoid crashing when dealing with duplicate transaction log sequences. [d2890dd972ae] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Don't crash if expunging didn't actually do anything. [282bd80ce7b2] * doc/example-config/conf.d/10-auth.conf: example-config: Updated auth_username_format default to match reality. [717af808a752] * src/lib-storage/mail-copy.c: lib-storage: Fixed mail_storage_copy_can_use_hardlink() for mode=0600 with different uids. [3439fc65838a] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/mail-storage-private.h, src /lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/plugins/acl/acl-backend-vfile.c: lib-storage: mailbox_list_get_permissions() now returns struct mailbox_permissions. Also added new file_uid and file_gid fields to the mailbox_permissions. [cc7cef1f6a21] * src/lib-storage/mail.c: Compiler warning fix. [584557ef2965] * src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync-private.h, src/lib-storage/index/mbox /mbox-sync.c: mbox: Generate mailbox GUID without syncing the mbox, locking it is enough. [e2379af31de1] * src/lib-storage/index/mbox/mbox-lock.c: mbox: Fixed crashing with pop3_lock_session=yes [68c7faa869f8] 2011-08-14 Timo Sirainen * src/lib-storage/mail-storage.c: lib-storage: Don't crash if INBOX is in a namespace with non-"" non-"INBOX/" prefix. [5aee3be80d10] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: doveadm fts rescan now also optimizes the index at the end. [e3337e8acbaf] * src/plugins/fts-solr/Makefile.am, src/plugins/fts-solr/fts-backend- solr-old.c: fts-solr-old: Mailbox names are mUTF-7 in the Solr index, not UTF-8. [d54365f9863b] * src/lib-imap/imap-utf7.c, src/lib-imap/imap-utf7.h: lib-imap: Added t_imap_utf8_to_utf7() [1a2ad02123f1] * src/indexer/indexer.c, src/indexer/worker-pool.c, src/indexer /worker-pool.h: indexer: Don't die on "idle kill signal" if workers are still busy. [221d159befec] * src/indexer/worker-connection.c: indexer: Potential crashfix on deinit. [0ef83aa215d3] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Actually delete messages from index on expunge/rescan. [956b19efefc4] * src/plugins/fts/fts-expunge-log.c: fts: fts_expunge_log_uid_count() returned garbage on nonexistent log. [3680e4a0ca95] * src/plugins/fts/fts-storage.c: fts: Memory leak fix [5d56c327752f] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Avoid crashing on doveadm dump. [8e57be54d45b] * src/plugins/fts-lucene/doveadm-fts-lucene.c: fts-lucene: Fixed doveadm dump's lucene-index detection. [7c088e4d56de] 2011-08-12 Timo Sirainen * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h: fts-lucene: Use fts expunge log instead of scanning the entire index for expunged mails. [bed970b4ca5e] * src/plugins/fts/doveadm-fts.c: fts: Added "doveadm fts rescan" command. [f4b565b76827] * src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr /fts-backend-solr.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts-api.h: fts: Added fts_backend_rescan() [fd2e6a08052a] * src/plugins/fts/Makefile.am, src/plugins/fts/doveadm-dump-fts- expunge-log.c, src/plugins/fts/doveadm-fts.c, src/plugins/fts /doveadm-fts.h, src/plugins/fts/fts-expunge-log.c, src/plugins/fts /fts-expunge-log.h: fts: Added generic "fts expunge log". This is intended to be used by fts backends that can't directly expunge from the index, but rather need to log the expunges and do the actual expunging later. Added also "doveadm dump" support for the log. [046090da4aaf] * src/plugins/fts-lucene/Makefile.am, src/plugins/fts-lucene/doveadm- fts-lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins /fts-lucene/lucene-wrapper.h: fts-lucene: Added "doveadm dump" support for lucene index. [a50ac3a840a9] * src/lib-storage/mail-storage.h, src/lib-storage/mail.c, src/lib- storage/mailbox-guid-cache.c: lib-storage: Added mail_guid_128_hash/cmp() [271bbac3047d] * src/lib/hash.c, src/lib/hash.h: liblib: Added generic mem_hash() [83699b38229b] 2011-08-11 Timo Sirainen * src/plugins/fts/Makefile.am, src/plugins/fts/doveadm-fts.c, src/plugins/fts/fts-storage.c, src/plugins/fts/fts-storage.h: fts: Added "doveadm fts optimize" command. [bf55c954ba3b] * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h: fts-lucene: Several fixes and improvements. [19d8ec0db2e3] * src/lib-storage/Makefile.am, src/lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src /lib-storage/mailbox-guid-cache.c, src/lib-storage/mailbox-guid- cache.h, src/lib-storage/mailbox-list-private.h, src/lib-storage /mailbox-list.c: lib-storage: Added mailbox_alloc_guid() for opening mailbox by its GUID. [7098642a0374] * src/lib-storage/index/index-storage.c, src/lib-storage/mail-storage- private.h: lib-storage: Added struct mailbox.generation_sequence. This can be used for caching struct mailbox pointers and checking later if two struct mailboxes + their generation sequences match. If they do, it's the same struct mailbox. [bd0e7cdbb6b2] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Store indexed header names lowercased so they can actually be searched. [a29438231cd2] 2011-08-10 Timo Sirainen * src/plugins/fts-squat/squat-trie.c: fts-squat: Assert-crashfix on indexing [0c60f139b09f] * src/imap/imap-status.c, src/lib-storage/index/imapc/imapc-seqmap.c, src/lib-storage/list/index-mailbox-list-status.c, src/lib- storage/list/index-mailbox-list.c: Removed dead code. [2c75688d093b] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: ssl_iostream_get_security_string() didn't return compression. [074d564f9054] * src/plugins/fts-lucene/Makefile.am, src/plugins/fts/Makefile.am: Makefile fixes to include everything in dist [df09f521a972] * src/plugins/fts/fts-storage.c: fts: Increased initial memory pool size [8095a30c8ee2] * configure.in, src/lib-ssl-iostream/Makefile.am, src/lib-ssl-iostream /iostream-ssl-none.c: Fixed compiling without OpenSSL. [eb6d2fcca15b] * src/plugins/fts-lucene/textcat.conf: fts-lucene: Added missing textcat.conf [f7b10bfa6bbf] * src/lib-storage/index/index-status.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-sync.c: lib-storage: Fixed getting recent count for mailbox when it wasn't synced. [1fb6cc545575] * src/doveadm/doveadm-mail-index.c, src/indexer/master-connection.c: doveadm index -n: Don't sync mailbox when checking the recent count. The syncing alone can take a long time with huge maildirs. Better to be slightly wrong than waste a lot of time all the time. [e6eaf803ce09] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c: lib-storage: Fixes to handling INBOX/ namespace prefix. [076673c45e58] * src/indexer/indexer.c: indexer: Deinitialize without crashing when there are requests. [513ec6bf3fab] * src/indexer/worker-connection.c: indexer: Fix to handling disconnected worker. [f7c5ee1ef0c0] * src/plugins/fts/fts-parser-html.c: fts: Assert-crashfix to HTML parsing. [e2c6a2535b55] * src/plugins/fts/fts-parser-script.c: fts: Don't crash if application/octet-stream attachment doesn't have filename. [04d35b8bc764] * src/indexer/worker-connection.c: indexer: If worker disconnects, log whose requests were discarded. [0cc1cd6f9406] * src/indexer/worker-connection.c: indexer: Handle unexpected worker disconnections better. [fdd1599b5072] * src/doveadm/doveadm-mail-index.c: doveadm: The actual doveadm part of the previous commit.. [3087d25c2f6b] * src/indexer/indexer-client.c, src/indexer/indexer-queue.c, src/indexer/indexer-queue.h, src/indexer/indexer.c, src/indexer /master-connection.c, src/indexer/worker-connection.c, src/indexer /worker-connection.h: doveadm index: Added -n parameter to specify max number of recent msgs to perform indexing. The idea is that if a user hasn't opened the mailbox for a long time (or ever), there's not much point in wasting time on doing indexing. [8dcb7c7f66d5] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Crashfix for handling header searches with stop words (etc). [753a8346e1ba] 2011-08-09 Timo Sirainen * src/plugins/quota/quota.c, src/util/script.c: script: Be sure to handle LF+LF properly. [048cb694759a] * src/util/script.c: script: Comment update [9a8c6cdcd5ca] * src/indexer/master-connection.c: indexer-worker: verbose_proctitle=yes now shows username+mailbox. [699d0cebaaa7] * src/plugins/fts/fts-search.c: fts: Data stack access fix. [3c4e3451fd2a] * src/indexer/indexer.c: indexer: Read configuration earlier while we still have privileges. [63ce98c611e4] * src/indexer/indexer-client.c, src/indexer/indexer-client.h, src/indexer/indexer-queue.c, src/indexer/indexer-queue.h, src/indexer/indexer.c, src/indexer/indexer.h: indexer: If verbose_proctitle=yes, show how many clients/requests there are. [af8c5e56d098] * src/plugins/fts-lucene/Makefile.am, src/plugins/fts-lucene/lucene- wrapper.cc: fts-lucene: Fixed compiling without textcat/snowball [c705f4fa7a77] * src/plugins/fts/fts-build-private.h, src/plugins/fts/fts-build.c: fts: Log how many messages were indexed. [8e0fb1d59be6] * src/lib-index/mail-index.h: lib-index: MAIL_INDEX_SYNC_FLAG_DELETING_INDEX comment updated [916974b550a3] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction-private.h, src/lib-index/mail-index-transaction.c: lib-index: MAIL_INDEX_SYNC_FLAG_DELETING_INDEX now allows committing changes to deleted index. This fixes deleting mailboxes. [6db2f76bc493] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Crashfix when textcat wasn't enabled. [1de8c2e4adb2] * configure.in, src/plugins/fts-lucene/Makefile.am, src/plugins/fts- lucene/Snowball.cc, src/plugins/fts-lucene/SnowballAnalyzer.h, src/plugins/fts-lucene/SnowballFilter.h, src/plugins/fts-lucene/fts- backend-lucene.c, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene/fts-lucene-plugin.h, src/plugins/fts-lucene /lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h: fts-lucene: Added initial support for language detection and stemming. This requires textcat and snowball (libstemmer) libraries. This can be enabled by setting: fts_lucene = textcat_dir=/usr/share/libtextcat \ textcat_conf=/etc/dovecot/textcat.conf I'm not yet sure how good of an idea it is to actually use this, so it needs some testing.. For example how bad is it if language is detected incorrectly? [b099ac847f86] * src/indexer/indexer-worker.c: indexer-worker: Added -D parameter to enable core dumps. [9d784aab6398] * src/plugins/fts/decode2text.sh: decode2text: If unzip fails, just ignore the attachment silently. [42cbd3f2e585] * src/plugins/fts/fts-parser-html.c: fts html parser: Assert-crashfix when parsing entities. [8608630a672e] * src/plugins/fts/decode2text.sh: decode2text: Ignore any errors from pdftotext [883e76d90355] * src/lib-storage/index/index-mail.c: Compile fix for CentOS 4.9 (and maybe others). [4996e834139f] 2011-08-07 Timo Sirainen * src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c: doveadm-server: More fixes [c0b7dde5b193] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm /doveadm-print-server.c, src/doveadm/server-connection.c: doveadm-server: Many fixes to make it actually work properly. [09eb79247e71] * src/doveadm/doveadm-mail-index.c: doveadm index -q: Delay connecting to indexer. [4babc93e87ea] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm server: Fixed handling command parameters [8d25026689ca] 2011-08-05 Timo Sirainen * src/plugins/fts/decode2text.sh: fts: decode2text.sh now ignores any errors from doc/xls/ppt decoders. [7dfa0ad16fa7] 2011-08-04 Timo Sirainen * src/lib-master/ipc-server.c: ipc client: Fixed crashing on ipc server disconnection. [b9b9d0711780] * src/lib-index/mail-index.c: mail_index_get_keywords() / status.keywords weren't actually guaranteed to be NULL terminated This could have caused crashes or garbage keywords be presented to clients in some situations. [bc4249cdf6d9] * src/pop3/pop3-commands.c: pop3: Fixed RETR/TOP commands. [083328ee8fcc] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Several fixes to avoid opening index during expunging. [e953b1e3a6ad] * src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-storage.c: fts: Tell backends if we're currently in the code because we're syncing. That basically means it's either indexer process or doveadm index. [9eade7fa1dcb] * src/plugins/fts/fts-storage.c: fts: Maildir workaround to avoid assert-crash during indexing. This should be fixed by simply not having Maildir do a full sync when it's trying to find some file. [0360c990c397] * src/plugins/fts/fts-build.c: fts: Don't fail index build if trying to index a message that is already expunged. [5ddba16842c7] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Don't crash when trying to search an unsearchable word. [a767969ac1c8] * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene /lucene-wrapper.cc: fts-lucene: Fixed checking if we need to track expunges or optimize. [558a50f1c593] * src/plugins/fts-lucene/fts-backend-lucene.c: fts-lucene: Fixed handling expunges [5bd585b6f34d] * src/plugins/fts/fts-api.c: fts: Clear updating flag on update deinit. [43d77c1bf237] * src/plugins/fts/Makefile.am: fts: Define pkglibexecdir explicitly in Makefile.am, since older automakes don't. [0d6c7ef08ddf] * src/plugins/fts/decode2text.sh: fts: Added a bit more error checking to decode2text.sh [5d17181b1a2e] * src/plugins/fts/fts-storage.c: fts: force-resync now calls optimize on the backend. This mainly works with Lucene backend to recheck what messages actually exist. [216710c3736e] * src/plugins/fts/fts-build.c: fts: NULs weren't still handled correctly in message headers. [7481ea45b95f] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Don't crash if optimize can't open the index. [ed4f9475fa32] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: If optimize doesn't find an index, set all UIDs as missing. [4a537b1c32d4] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Delete stale write locks. [8e3c5e8d8de9] * src/plugins/fts/Makefile.am, src/plugins/fts/decode2text.sh: fts: Install decode2text to libexecdir. [84fbe111ff90] * src/plugins/fts/decode2text.sh: fts: decode2text added support for openxml and opendocument formats [43bf1283df78] * .hgignore, src/plugins/fts/Makefile.am, src/plugins/fts/xml2text.c: fts: Added xml2text binary [f89d7ac7bbcd] * src/plugins/fts/fts-parser-html.c: fts: HTML parser now makes sure space is added for each This could be smarter though, like not doing this for , but it gets a bit complex.. [81e6ba752d98] 2011-08-03 Timo Sirainen * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Don't crash listing subscription entry of "ns prefix" without separator. [9dccd061a8d9] * src/doveadm/doveadm-mail-server.c: doveadm server: Non-proxying mode may not have worked. [ddc99ce81343] * src/lib/eacces-error.c: eacces_error_get*(): Handle non-int struct stat.st_mode properly. [8aeff3210f8d] * src/imap/cmd-select.c, src/imap/imap-fetch-body.c, src/lib-lda/mail- deliver.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib- storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index/index- search.c, src/lib-storage/index/index-storage.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/mail-namespace.c, src/lmtp/client.c, src/lmtp/commands.c, src/plugins/acl/doveadm- acl.c, src/plugins/imap-quota/imap-quota-plugin.c: Merged changes from v2.0 tree. [3b4612e2a25a] 2011-08-02 Timo Sirainen * src/lib/ipwd.c: i_getgr*(): OpenBSD workaround is now only used for <5.0. Patch by Brad. [d7f76c266657] 2011-07-29 Timo Sirainen * src/lib-storage/list/mailbox-list-fs.c: lib-storage: renaming mailboxes under different parent was broken in fs layout If alt storage was used with sdbox or if index or control dirs were used, renaming "foo" to "bar/foo" would result "foo" not being renamed for those directories. [f42aac06a3df] * src/lib-storage/index/index-storage.c, src/lib-storage/mail- namespace.c: lib-storage: Removed unnecessary NULL checks. [94c6e1cd58f1] 2011-07-28 Timo Sirainen * src/lib-storage/index/index-search.c: lib-storage: Fixed crashing on "NOT " search. [0e64f0217feb] * src/imap/imap-fetch-body.c: imap: FETCH BODY[HEADER.FIELDS (..)] may have tried to fetch garbage field names. Such situations were quite likely to cause a crash though. [a77d53d40ea3] 2011-07-27 Timo Sirainen * src/plugins/imap-quota/imap-quota-plugin.c: imap-quota: Don't crash if invalid mailbox name is given to GETQUOTAROOT. [b383271890fe] 2011-07-12 Timo Sirainen * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: Do INBOX GUID deduplication based on mailbox GUID, not username. This should be a bit more reliable. [e6300c6a5814] * src/lib-mail/mail-types.h: lib-mail: Make a mail_guid_128_t typedef. [aaffc1bf6c65] 2011-06-30 Timo Sirainen * src/lmtp/client.c: lmtp: Error message update [537d4b6d9a7a] * src/lib-lda/lmtp-client.c: lmtp client: Do corking when sending message data. [36e7ded2ef0b] * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: lmtp: Log the current state in disconnect message. [1b1fc681a277] * src/lib-storage/mail-storage-service.c: lib-storage: Fixed /chroot/./home style chrooting from userdb home. [1d78d2a4e8d1] * src/lib/failures.c: liblib: Don't try to send a log prefix to log process if there is none. [ed0688858e59] 2011-06-28 Timo Sirainen * src/doveadm/doveadm-mail-server.c: doveadm: Fixed displaying output when using -A or -u wildcards. [02d97fb66047] * src/plugins/acl/doveadm-acl.c: doveadm acl: Updated usage string. [aa9b50f6a92b] * src/lib-storage/mail-storage-service.c: lib-storage: Changed userdb +key=value to key+=value [4285147ed694] * src/lib-lda/smtp-client.c: lib-lda: waitpid() for executed sendmail binary wasn't called correctly. It may have failed with -ECHILD, if the sendmail binary itself forked other processes. [748b0fd169d1] * src/imap/cmd-select.c: imap: Don't crash if mailbox UIDVALIDITY is zero when SELECTing a mailbox. [0535d79ea686] * src/lib-storage/index/dbox-multi/mdbox-mail.c: mdbox: Minor code cleanup. [01d43e0b2420] * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Log an error if uidvalidity=0 unexpectedly. [028b953e7040] 2011-08-03 Timo Sirainen * src/plugins/fts/fts-build.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h: fts: Don't pass NUL bytes to FTS backend. It can confuse them. [4ed44f06c54c] * src/plugins/fts/fts-parser-html.c: fts: Fixed a crash in HTML parser. [62c8eadd09d2] * src/plugins/fts/fts-parser-script.c: fts: Crashfix. [5b7cc753f7c8] 2011-07-29 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_mailbox() now returns INBOX as nonexistent if it physically doesn't exist. This is important for MAILBOX_LIST_ITER_NO_AUTO_BOXES to work correctly with Maildir++ layout INBOX. [0a0f962c1a6f] * src/imap/cmd-subscribe.c, src/lib-storage/index/index-storage.c, src /lib-storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/list/mailbox-list-fs-iter.c, src /lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage/test-mailbox.c, src/plugins/acl/acl-mailbox.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/virtual/virtual-storage.c: lib-storage: Added auto_boxes parameter to mailbox_exists(). [4dca25ea4a1c] * src/lib-storage/test-mail.c: lib-storage: Unit test fix [45e3d5be6ed8] * src/dsync/dsync-worker-local.c: dsync: Crashfix [6f43ee658efb] 2011-07-28 Timo Sirainen * src/plugins/fts/Makefile.am, src/plugins/fts/decode2text.sh, src/plugins/fts/fts-build.c, src/plugins/fts/fts-parser-html.c, src/plugins/fts/fts-parser-script.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h: fts: Added attachment decoding via an external script. [bbb023aa1efd] * src/lib-mail/message-decoder.c, src/lib-mail/message-decoder.h: lib-mail: Added message_decoder_set_return_binary() [15082db3225a] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index /dbox-common/dbox-save.c, src/lib-storage/index/dbox-multi/mdbox- save.c, src/lib-storage/index/dbox-single/sdbox-copy.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-mail.h, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: mail->saving was set too late, which could have caused crashes. [06873db0bfef] * src/lmtp/client.c: lmtp: Crashfix [222cc828c31f] * src/plugins/quota/quota.c, src/util/script.c: "script" service API changed to provide more functionality. [7440d6e1577f] * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Crashfix [3156e6616e83] 2011-07-27 Timo Sirainen * src/plugins/fts/Makefile.am, src/plugins/fts/fts-build-private.h, src/plugins/fts/fts-build.c, src/plugins/fts/fts-parser-html.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h, src/plugins/fts/html-entities.h: fts: Strip text/html mails to plaintext before sending them to FTS backend. [f4a5e66be05b] * doc/solr-schema.xml: solr-schema: Version number is Solr's schema version, not Dovecot version. [fa852748e601] 2011-07-26 Timo Sirainen * configure.in, src/imap/imap-search.c, src/imap/imap-search.h: IMAP: Implemented the rest of FUZZY extension. [04716e20f44f] * src/lib-storage/index/index-sort.c: lib-storage: Sorting by relevancy returned messages in reverse order. [2e15e70f5f2d] * src/imap/cmd-sort.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-sort.c, src/lib-storage/mail-storage.h, src/plugins/fts/fts-storage.c: s/search score/search relevancy/ [10dcd83cd77d] * src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Added fuzzy search support. [7417163fada0] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Added fuzzy search support. [2beef586a46a] * src/lib-storage/mail-search-register-imap.c, src/lib-storage/mail- search.h: lib-storage: Added FUZZY search key that adds fuzzy=TRUE to its child args. [2ab237202629] * src/lib-storage/mail-search-build.c, src/lib-storage/mail-search- build.h, src/lib-storage/mail-search-register-imap.c: lib-storage: Search query building no longer converts strings to decomposed titlecase. [a16971f5937b] * src/plugins/fts-squat/fts-backend-squat.c: fts-squat: Convert search key to decomposed titlecase instead of assuming it is. [254bcfcb64b1] * src/lib-mail/message-search.c, src/lib-mail/message-search.h: lib-mail: message_search_init() now converts search key to decomposed titlecase. [87430246c3e1] * src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts/fts-api- private.h, src/plugins/fts/fts-build-private.h, src/plugins/fts/fts- build.c: fts: Convert input text to decomposed titlecase only for Squat backend. Lucene and Solr can handle case-insensitivity internally. [e6eac5f1e21b] 2011-07-22 Timo Sirainen * src/doveadm/doveadm-dump-index.c: doveadm dump: Added fts support. [2224c74b0187] * src/plugins/fts/fts-build.c: fts: Make sure build_more() is called at least once, even when message is 0 bytes. [88f1c971f3a9] * src/plugins/fts/fts-api.c: fts: Make sure fts_index_get_last_uid() gets the latest value from index. [ed7f134a9429] * configure.in, doc/solr-schema.xml, src/plugins/fts-lucene/fts- backend-lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-lucene/lucene-wrapper.h, src/plugins/fts- solr/Makefile.am, src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-solr/fts- solr-plugin.c, src/plugins/fts-solr/fts-solr-plugin.h, src/plugins /fts-solr/solr-connection.c, src/plugins/fts-solr/solr-connection.h, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts-squat /squat-test.c, src/plugins/fts-squat/squat-trie.c, src/plugins/fts- squat/squat-trie.h, src/plugins/fts/Makefile.am, src/plugins/fts /fts-api-private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts- api.h, src/plugins/fts/fts-build-indexer.c, src/plugins/fts/fts- build-mailbox.c, src/plugins/fts/fts-build-private.h, src/plugins/fts/fts-build-virtual.c, src/plugins/fts/fts-build.c, src/plugins/fts/fts-build.h, src/plugins/fts/fts-mailbox.c, src/plugins/fts/fts-mailbox.h, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-plugin.h, src/plugins/fts/fts-search- serialize.c, src/plugins/fts/fts-search-serialize.h, src/plugins/fts /fts-search.c, src/plugins/fts/fts-storage.c, src/plugins/fts/fts- storage.h, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-storage.h: fts: Redesigned/enhanced FTS API and how virtual plugin works with it. The changes include: - Only indexer process and "doveadm index" do FTS indexing now. Other processes connect to the indexer process via UNIX socket and request indexing a specific mailbox. - FTS backends can now index/search any search key. Current backends implement indexing for some specific header fields (Subject, From, To, Cc, Bcc), but it would also be possible to add indexing for e.g. message size or date. - CLucene support is fixed and fully functional. - Solr is split to "solr" and "solr_old" backends. The new "solr" backend supports the new header fields. It also uses mailbox GUIDs as mailbox identifiers, so that renaming a mailbox doesn't require reindexing. The "solr_old" uses the old Solr schema and doesn't support any new features. [7b9978eb6f91] * src/lib/unichar.c, src/lib/unichar.h: Added uni_utf8_strlen(). [fbd680c37b6a] * src/lib-storage/mail-storage.c: lib-storage: mailbox_exists() now returns NOSELECT for invalid mailbox names instead of error. [3a12ac2413e2] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Error handling fix for FS layout. [c2aec00f40c5] * src/lib-mail/message-address.c, src/lib-mail/message-address.h: lib-mail: Added message_header_is_address() [e07c5cb0ae60] * src/indexer/Makefile.am: indexer: Fixed loading some plugins when using configure --without- shared-libs. [e2b6f9cb6e2a] * src/indexer/indexer-client.c: indexer: Send OK reply to client with the given tag. [268f76a75e51] * src/indexer/worker-connection.c: indexer: When worker disconnects, forget which user it was attached to. This fixes an assert crash. [4049efa22afa] 2011-07-02 Timo Sirainen * src/doveadm/doveadm-mail-list-iter.c, src/imap/imap-search-args.c, src/lib-storage/index/index-search.c, src/lib-storage/mail-search- build.c, src/lib-storage/mail-search-register-imap.c, src/lib- storage/mail-search.c, src/lib-storage/mail-search.h, src/plugins/fts/fts-search.c: lib-storage: Renamed mail_search_arg.not to match_not. C++ compilers don't like the "not". [252f64964403] * src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox- list.h: lib-storage: Made mailbox_list_mkdir_root() public [ea794250b826] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index/maildir /maildir-util.c, src/lib-storage/list/subscription-file.c, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/plugins/acl/acl-backend-vfile- acllist.c: lib-storage: mkdir APIs changed. [c4bac1e48611] 2011-06-30 Timo Sirainen * src/auth/Makefile.am, src/lib-sql/Makefile.am: Fixed compiling ldap/sql/gssapi plugins. I couldn't figure out any way to disable NOPLUGIN_FLAGS only for those plugins, so those flags are now always disabled for lib-sql library and auth binaries. [b4e3875772f7] 2011-06-29 Timo Sirainen * src/lib-storage/index/imapc/imapc-sync.c: imapc: Fixed previous UID EXPUNGE fix. [e849081d732e] * src/lib-storage/index/imapc/imapc-sync.c: imapc: Fixed using UID EXPUNGE for multiple messages [60dd5c629c84] 2011-06-27 Timo Sirainen * src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-solr /fts-backend-solr.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-solr/fts-solr-plugin.h, src/plugins/fts-squat/fts- backend-squat.c, src/plugins/fts-squat/squat-trie.c, src/plugins /fts-squat/squat-trie.h, src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts-api.h, src/plugins/fts/fts-search.c, src/plugins/fts/fts-storage.h: fts: Replaced unnecessary lock()/unlock() from API with refresh() [2f11a7252816] * src/lib-storage/index/index-search.c, src/lib-storage/mail-search- register-imap.c, src/lib-storage/mail-search.c, src/lib-storage /mail-search.h, src/plugins/fts/fts-search.c, src/plugins/fts/fts- storage.c, src/plugins/fts/fts-storage.h: fts: Removed the separation of "substring" and "fast" fts backends and search keys. No one wants to use two separate backends and it just makes the code more difficult. [afacdeddfbec] * src/doveadm/doveadm-mail-index.c: doveadm index: Added -q option to do indexing via the new indexer service. [683751c6357e] * .hgignore, configure.in, src/Makefile.am, src/indexer/Makefile.am, src/indexer/indexer-client.c, src/indexer/indexer-client.h, src/indexer/indexer-queue.c, src/indexer/indexer-queue.h, src/indexer/indexer-settings.c, src/indexer/indexer-worker- settings.c, src/indexer/indexer-worker.c, src/indexer/indexer.c, src/indexer/indexer.h, src/indexer/master-connection.c, src/indexer /master-connection.h, src/indexer/worker-connection.c, src/indexer /worker-connection.h, src/indexer/worker-pool.c, src/indexer/worker- pool.h: Added "indexer" service, which uses worker processes to perform queued mailbox indexing. Only a single worker process will index the same user at the same time. This avoids lock waits, especially when doing full text search indexing with backends that require locking. [0faaceb2f83c] * src/lib/strescape.c, src/lib/strescape.h: liblib: Added [tp]_strsplit_tabescaped() [e07d2e37053d] * src/lib-master/master-service-private.h, src/lib-master/master- service.c, src/lib-master/master-service.h: lib-master: Added master_service_set_idle_die_callback() [c55ea4fc3344] * src/lib-master/master-interface.h, src/lib-master/master-service- private.h, src/lib-master/master-service.c, src/lib-master/master- service.h, src/master/service-process.c: master process now tells its children their service's process_limit. [a5ab569ee4cd] 2011-06-26 Timo Sirainen * src/doveadm/doveadm-mail-index.c, src/lib-storage/index/index-sync- private.h, src/lib-storage/index/index-sync.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.h, src/plugins/fts /fts-storage.c: Merged changes from v2.0 tree. [f97a4ef02d6b] * src/doveadm/doveadm-mail-index.c: doveadm: Minor code cleanup [0adf8c1731e6] 2011-06-22 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Fixed +key=value support to actually work. [3d07ab746a67] * src/lib-storage/index/index-sync.c: lib-storage: MAILBOX_SYNC_FLAG_PRECACHE did nothing when mail_debug=yes [fcc4ff5b83c4] 2011-06-16 Timo Sirainen * src/ssl-params/main.c: ssl-params: Make sure we don't leak a timeout. [327486d79620] 2011-06-14 Timo Sirainen * src/doveadm/doveadm-mail-index.c, src/lib-storage/index/index- sync.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/plugins/fts/fts-storage.c: Moved the main functionality from "doveadm index" to MAILBOX_SYNC_FLAG_PRECACHE This also allows plugins to hook into the sync and implement their own precaching easily. fts indexing is now done this way rather than kludging. [8c76426a9e53] 2011-06-23 Timo Sirainen * src/lib-storage/mail-storage.c: lib-storage: Error message fix. [79002b020df2] * src/lib-storage/mail-storage.c: lib-storage: Treat "INBOX" in INBOX/children also case- insensitively. [e8313c6b839b] 2011-06-14 Timo Sirainen * NEWS, configure.in, src/Makefile.am, src/auth/db-ldap.c, src/config /old-set-parser.c, src/doveadm/Makefile.am, src/doveadm/doveadm- mail-index.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm- mail.h, src/imap/cmd-append.c, src/imap/cmd-delete.c, src/imap/cmd- rename.c, src/imap/imap-commands-util.c, src/lda/main.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox-multi /mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src /lib-storage/index/imapc/imapc-mail.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-mail.h, src/lib-storage/index /index-sort.c, src/lib-storage/index/index-sync.c, src/lib- storage/index/index-transaction.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw /raw-mail.c, src/lib-storage/list/mailbox-list-none.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.h, src/lib- storage/mail.c, src/lib-storage/test-mail.c, src/lmtp/commands.c, src/login-common/login-proxy.c, src/login-common/login-settings.c, src/master/main.c, src/master/master-settings.c, src/plugins/acl /acl-mailbox-list.c, src/plugins/acl/doveadm-acl.c, src/plugins/fts- lucene/Makefile.am, src/plugins/fts/fts-storage.c, src/plugins/virtual/virtual-mail.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c: Merged changes from v2.0 tree. [d686decbc1a4] 2011-06-13 Timo Sirainen * src/lmtp/commands.c: lmtp: Fixed parsing quoted strings with spaces as local-part for MAIL FROM and RCPT TO. [09b8701362a4] 2011-06-10 Timo Sirainen * src/lib-storage/index/index-sync.c: lib-storage: When "Recent flags state corrupted" happens, avoid assert-crashing afterwards. [3e1ee816271d] 2011-06-08 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Allow appending to existing settings via userdb extra fields. "foo=bar" replaces the setting, while "+foo=bar" appends to the setting. [778067e9ccc2] * src/auth/passdb-vpopmail.c: vpopmail: Fixed opening SMTP relays. Also don't even try to open IPv6 relays, since vpopmail becomes an open relay then. Based on patch by Matt Brookings. [8e5d8c4b103d] 2011-06-07 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Fixed mail_chroot to work when process was already chrooted there. [ed05316ed441] * src/auth/db-ldap.c: ldap: Fixed random assert-crashing with with sasl_bind=yes. [c0734f08b3f3] 2011-06-06 Timo Sirainen * src/auth/auth-cache.c, src/auth/mech-winbind.c, src/doveadm/doveadm- mail.c, src/lib-master/master-service.c, src/lib/child-wait.c, src/log/main.c, src/master/main.c, src/ssl-params/main.c, src/util/maildirlock.c: Use SA_RESTART flag for signals wherever possible. Only SIGTERM (and SIGINT for standalone programs) shouldn't use it. [6fdee880c5dc] * src/lib/lib-signals.c, src/lib/lib-signals.h: lib_signals_set_handler(): Changed API to take flags instead of boolean. This is still compatible with the old API, because using FALSE/TRUE as the flags still maps to the same behavior. [86e4023d08e4] * src/lib/lib-signals.c: lib-signals: Removed unnecessary code. [0c6a9b907656] 2011-06-03 Timo Sirainen * src/util/script-login.c: script-login: When not using "-d" parameter, don't do unnecessary config lookup. [a2d57b43ccb2] * src/plugins/acl/doveadm-acl.c: doveadm acl debug: Show also path to mailbox if it doens't exist. [5b03ca65f4ed] * src/config/settings-get.pl, src/master/master-settings.c: master: Fail at startup if default_login_user or default_internal_user doesn't exist. [99da5f4f375d] * src/lib/eacces-error.c: eacces_get_error(): Give even better error message for directory permission errors. [d339aeb782ed] * src/lib/eacces-error.c: eaccess_get_error(): Show also directory mode. [17d8e1f12901] * src/lib/eacces-error.c: eaccess_get_error(): Fixes to reporting dir permissions. Also fixed an infinite loop if stat("/") fails. [12e3e8570d77] * src/imap/imap-commands-util.c: IMAP: Treat also "inbox/" case-insensitively as invalid mailbox name. [1c9b54de43f2] * src/imap/imap-commands-util.c: IMAP: Treat "namespace prefix/" as invalid mailbox name. [e371cb27c5b6] * .hgignore: .hgignore updated [4bc98c94883f] * src/director/director-connection.c: Compiler warning fix. [66e3cc789efb] * src/doveadm/doveadm-print.c: doveadm -A: Crashfix for doveadm server when using commands that print nothing. [0e1254dcf86b] 2011-05-31 Timo Sirainen * src/plugins/fts-lucene/Makefile.am, src/plugins/fts-lucene/fts- backend-lucene.c, src/plugins/fts-lucene/lucene-wrapper.cc: fts-lucene: Fixes to work with CLucene v2.3.3.4 and new FTS API. It's still not recommended to actually use this. [9ae30e5d6935] * src/lib/unichar.c, src/lib/unichar.h: liblib: Added uni_utf8_to_ucs4_n(). [7a7c22755b7a] 2011-05-24 Timo Sirainen * src/director/director.c, src/doveadm/doveadm-proxy.c, src/login- common/login-proxy.c: doveadm proxy: s/kill/kick/ and related internal code changes. Mainly for consistency, because "doveadm kick" already existed. [936f6c2ddfdd] 2011-05-23 Timo Sirainen * configure.in: configure: Added missing ipc [9127a988acb8] * src/director/director.c: director: Changed the "user killed" delay from 12 secs to 2 secs. It was 12 secs only for testing. [2bfdd566c149] * src/ipc/client.c, src/ipc/ipc-group.c, src/ipc/ipc-group.h: ipc: Fixes when sending commands to an empty group. [6bb200302acd] * src/director/director-connection.c, src/director/director-request.c, src/director/director-test.sh, src/director/director.c, src/director/director.h, src/director/doveadm-connection.c, src/director/user-directory.c, src/director/user-directory.h, src/doveadm/doveadm-director.c, src/login-common/login-proxy.c: director: Added support for moving user to another server with "doveadm director move". [79f9dce5d5fd] 2011-05-20 Timo Sirainen * src/lib-mail/message-header-parser.c: message header parser: Allow NULs in header name also when header is missing ':'. This doesn't fix any crashes/corruption unlike the earlier fix, but it makes the code more correct. Although it might help with mbox rewriting seeing some size mismatches (or might not). [f8c378e8b461] * src/login-common/login-proxy.c: login proxy: Show in disconnect reason who did the disconnection and possible error. [d1c2cc4c513d] * src/doveadm/Makefile.am, src/doveadm/doveadm-proxy.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added "proxy list" and "proxy kill" commands. [f2874eef6b0b] * src/login-common/login-proxy.c: login proxy: Connect to IPC server and implement KILL and LIST commands. [e4f7fb3b5a9c] * src/Makefile.am, src/ipc/Makefile.am, src/ipc/client.c, src/ipc/client.h, src/ipc/ipc-connection.c, src/ipc/ipc- connection.h, src/ipc/ipc-group.c, src/ipc/ipc-group.h, src/ipc/ipc- settings.c, src/ipc/main.c, src/lib-master/Makefile.am, src/lib- master/ipc-client.c, src/lib-master/ipc-client.h, src/lib-master /ipc-server.c, src/lib-master/ipc-server.h: Added support for a simplified IPC infrastructure. The idea is that you have one "ipc" proxy process, where all server processes connect to. IPC clients can then connect to the proxy and ask it to forward commands to either a specific server or all servers. The proxy does this, and forwards back any replies from the server. [bf5c8ee58e5e] * src/doveadm/client-connection.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h: doveadm: Added doveadm_allowed_commands setting, which is used by doveadm server. [c67ba5bf1ba9] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c: doveadm server: Fixed running multiple commands without crashing. [c46b1ce45cd1] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added support for using local/remote {} settings. [b6568a36ecf9] * src/doveadm/client-connection.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/server-connection.c: doveadm: Added simple PLAIN authentication for remote connections. Currently clients are required to use "doveadm" as the username and the password must match doveadm_password setting. When using doveadm as a client, it automatically uses these settings when connecting to remote servers. [6604f80abb02] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm /doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/main.c: doveadm: Added doveadm_proxy_port setting to make it work with proxying. [9c9f81ad0111] * src/doveadm/doveadm-mail.c: doveadm: Set service=doveadm for userdb lookup. [d20588657ddc] 2011-05-16 Timo Sirainen * src/pop3/main.c: pop3: If mail storage couldn't be initialized, send -ERR to client before disconnecting. [ac006833cd66] * src/pop3/pop3-client.c: pop3: Add [IN-USE] to all login -ERR replies. [f786d95dc5c0] * src/imap/cmd-append.c: imap: If client disconnects in APPEND, log more about what it did before that. [53fed82f8013] * src/director/user-directory.c: Compiler warning fix on 32bit systems. Patch by Mike Abbott / Apple [d9d5759196ee] 2011-05-11 Pascal Volk * doc/man/doveadm-index.1.in: man: Corrected cmd name in doveadm-index.1. [e76a3313a46c] 2011-05-11 Timo Sirainen * src/doveadm/doveadm-mail-index.c: doveadm: Code correctness fix. [b72d72ae9bd6] * .hgsigs: Added signature for changeset aa8dfa085a99 [72c2784fcbc9] * .hgtags: Added tag 2.0.13 for changeset aa8dfa085a99 [5a9adcae1a0e] * NEWS, configure.in: Released v2.0.13. [aa8dfa085a99] [2.0.13] * .hgignore, doc/man/Makefile.am, doc/man/doveadm-index.1.in, doc/man/doveadm.1.in: man: Added doveadm index. [822bd4936d46] * doc/man/doveadm-director.1.in: man: Added doveadm director dump. [a410f68c5fba] * src/lib/lib-signals.c: Increased highest signal number limit. HP-UX can use at least 44. [a32debbe3496] * src/lib/compat.h: Compile fix for HP-UX [39389620ace4] * doc/example-config/conf.d/10-auth.conf: example-config: Updated auth_krb5_keytab comment. [b41ff254e1d6] * src/config/old-set-parser.c: config: Updated obsolete protocol warning messages. [7f88557102c3] * src/director/user-directory.c: director: Avoid potential problems by making sure users list is always sorted by timestamp. [dab7043e8263] * doc/man/doveconf.1.in: man: Updated doveconf. [a6db801253c6] * src/plugins/fts/fts-storage.c: fts: Added assert to make sure all header data is valid UTF-8. [5e5daccf1de3] * src/lib-mail/message-decoder.c, src/lib-mail/message-header- decode.c: message [header] decoder: Output only valid UTF-8 data. [c392158f374d] * src/lib-mail/message-header-parser.c: message header parser: Fixed handling NUL characters in header names. line->name_len was too large and line->middle pointer may have pointed past allocated memory. These may have caused crashes/corruption (fts, mbox at least). [cef76cf2cec9] * src/lda/main.c: lda: Log destination address and its source with mail_debug=yes [8f605efb15ce] * doc/example-config/conf.d/10-auth.conf: example-config: Updated auth_gssapi_hostname comment. [370bf3d2d54f] 2011-05-10 Timo Sirainen * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Don't unnecessarily reset istream caches. [66ec075a49d3] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: istream-[b]zlib: stat(exact=FALSE) should always return the same value if file hasn't changed. [15a0687ec9d0] * src/doveadm/doveadm-mail.c: doveadm mailbox status: Don't assert-crash at exit if syncing a mailbox fails. [b74dfa49692b] * src/plugins/acl/acl-mailbox-list.c: acl: Don't waste time doing ACL checks for IMAP LSUB command. [a7f1980d250c] * src/login-common/login-settings.c, src/login-common/login- settings.h: Removed ssl_parameters_file setting. It wasn't used by anything. [40a5f8f07bd2] 2011-05-09 Timo Sirainen * src/util/script-login.c: script-login: When -d isn't given, drop privileges as specified by the service settings. [25a452227a09] * src/util/script-login.c: script-login: Reverted last change. [56a1b3082b4b] * src/util/script-login.c: script-login: Changed default behavior to be to drop privileges. Also since the default is to run as root, allow that. There is now "-n" parameter to avoid dropping privileges. [1bbb45a97cc1] * src/plugins/lazy-expunge/lazy-expunge-plugin.h: Minor typofix. [4e99454e2c7c] * src/lib-settings/settings-parser.c: lib-settings: Crashfix for broken settings under strlist. [74248914cf40] * src/auth/db-ldap.c: auth: Added assert. [3ada82147977] * src/master/master-settings.c: master: Warn if service's vsz_limit < 1 MB It's unlikely anyone wants it to be smaller, and small values give random errors/crashes. [c3f4201f9818] * src/imap/cmd-delete.c, src/imap/cmd-rename.c: imap: RENAME and DELETE wasn't replying with NONEXISTENT resp code. [6790433a1e77] * src/lib-storage/list/mailbox-list-none.c: lib-storage: Fixed LIST/LSUB with LAYOUT=none. It shouldn't have listed INBOX if it didn't match the given patterns. [78286b1a0a16] * src/lmtp/commands.c: lmtp: With lmtp_save_to_detail_mailbox=yes, save mail to detail. The previous behavior required using prefix="" namespace to work. [622d42376fe0] 2011-05-05 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added "index" command to add unindexed messages into index/cache/fts. The caching adds only the fields that were previously added to the mailbox's caching decisions, so it won't do anything useful for mailboxes that user's client hasn't accessed yet. [840e27a52e51] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox- mail.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/lib-storage/test- mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: Added mail_parse(). [e9918fd289f3] * src/lib-storage/index/index-transaction.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.h, src/lib- storage/mail.c: lib-storage: Added mail_is_cached() [55ff92050bd7] * src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache.h: lib-index: Added mail_cache_field_exists_any() [45f6d523b1a1] 2011-05-04 Timo Sirainen * src/doveadm/doveadm-auth.c: doveadm user: Added -f parameter to show only the specified extra field's value. [23b6234ce0ae] * src/doveadm/doveadm-auth.c: doveadm cleanup: Don't try to keep auth/user comand handlers in same function. [d0f54521bb3b] * src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c: pop3: Added support for showing messages in "pop3 order". [c9b7e829c6a9] * src/lib-storage/index/index-sort.c, src/lib-storage/mail-storage.h: lib-storage: Added MAIL_SORT_POP3_ORDER [fac2d4fe86b1] * src/lib-storage/index/index-mail.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib-storage/mail-storage.h: lib-storage: Added MAIL_FETCH_POP3_ORDER special field and implemented for Maildir. The idea is that this specifies the order of messages when accessing via POP3. This is useful when migrating both POP3 and IMAP users from servers where their message ordering differes and they still want to be preserved. [bf0a80c91536] * src/pop3/pop3-client.h, src/pop3/pop3-commands.c: pop3: Small code cleanup. [869795a295b5] 2011-05-03 Timo Sirainen * src/director/doveadm-connection.c, src/doveadm/doveadm-director.c: doveadm: Added "director dump" command. It outputs doveadm director commands to add/remove the current host configuration, so if all directors are stopped, their state can be easily restored by running the commands. [c838d40bd38e] * src/lib-index/mail-transaction-log-file.c: lib-index: Try to avoid duplicate "duplicate transaction log sequence" errors. [036260ae0261] * src/lib-storage/list/mailbox-list-subscriptions.c: lib-storage: Remove invalid subscription file entries instead of only ignoring them. [490a81fe688f] 2011-06-07 Timo Sirainen * NEWS, src/auth/auth-settings.c: auth_username_format default changed to %Lu [c0b40ebc527d] 2011-06-03 Timo Sirainen * src/lib-storage/mail-storage.c: lib-storage: Treat "namespace prefix/" as invalid mailbox name. [c22e5e7c0dcd] 2011-05-23 Timo Sirainen * src/imap/imap-commands-util.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/test-mailbox.c, src/plugins/acl/acl- mailbox.c, src/plugins/virtual/virtual-storage.c: lib-storage: Export a list of permanent flags via mailbox_status(). Removed mailbox_allow_new_keywords(), since it's now included in the status structure. ACL plugin may limit what flags are permanent according to ACLs. [189c9baf840a] * src/doveadm/doveadm-pw.c: doveadm: Compile fix for recent auth change. [6ec2a6d229ec] * src/plugins/acl/acl-mailbox.c: acl: ACLs apply to private flags as well. Fixed returning READ-ONLY resp-code. [93c41a60f894] * src/auth/password-scheme-otp.c, src/auth/password-scheme.c, src/auth /password-scheme.h: auth: Don't log warnings/errors when guessing a password's scheme. [62945c9d6b47] * src/auth/auth-request.c: auth: Give password scheme suggestions also when passdb data is invalid for scheme. [9490d57d2f7b] 2011-05-16 Timo Sirainen * src/imap/imap-settings.c: imap: Changed default imap_logout_format. [1e1674cedf2d] 2011-05-11 Timo Sirainen * src/lib-storage/index/index-mail.c: lib-storage: Fixed checking if mail's virtual size is cached. [cd811a24652a] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Fix for 32bit systems. [9f2fb7da9501] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h: doveadm: doveadm_mail_iter_init() API change to fix "doveadm fetch" crash. [24a983a9ff6f] * src/doveadm/doveadm-mail-search.c: doveadm search crashfix [2cf6ade3e42e] * src/lib-storage/list/index-mailbox-list.c: Compiler warning fixes [4d976ed1c3d5] 2011-04-30 Timo Sirainen * TODO: TODO updated [ec7462da501a] * NEWS, configure.in, src/auth/auth-request.c, src/auth/db-ldap.c, src/doveadm/Makefile.am, src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail- import.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail- iter.h, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/dsync/dsync-worker-local.c, src /imap-login/client.c, src/imap/imap-fetch.c, src/lda/main.c, src /lib-index/mail-index.c, src/lib-lda/mail-deliver.c, src/lib- storage/index/dbox-common/dbox-file.c, src/lib-storage/index/dbox- multi/mdbox-mail.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/index-attachment.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/mail-namespace.c, src/lib-storage/mail- namespace.h, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /mailbox-get.c, src/lib-storage/mailbox-list.c, src/lib-storage /test-mailbox-get.c, src/lib-storage/test-mailbox.c, src/plugins/autocreate/Makefile.am, src/plugins/autocreate /autocreate-plugin.c, src/plugins/fts/fts-storage.c, src/plugins/quota/quota.c: Merged changes from v2.0 tree. [80eef14e9e15] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: In-memory mailbox GUID differed from on-index GUID after mailbox_create(). [663528c5c799] 2011-04-29 Timo Sirainen * src/master/service-listen.c: master: Increased max. listen() backlog 128 -> 511 (by copying Apache) [bf8c2edfbc3e] * doc/example-config/conf.d/10-logging.conf: example-config: Removed plugin/mail_log_group_events since it no longer exists. [46aed30670bb] 2011-04-28 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-file.c: dbox: If file can't be opened read-write, fallback to read-only. [de7c0d84c560] * src/lib-index/mail-transaction-log-file.c: lib-index: If .log file can't be opened read-write, fallback to read-only indexes. [5429f41aa6c1] * src/lib-settings/settings-parser.c: Compiler warning fix. [dfd7df8cd214] * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox purge: Fixed warning about corrupted extrefs. [bb0bd8cb6f68] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Looking up GUID/MD5(header) more than once was broken. [36025cbfec3b] * src/doveadm/doveadm-mail-altmove.c, src/lib-storage/index/index- sync-changes.c: Compiler warning fixes about enums. [c2f81056d38f] 2011-04-27 Timo Sirainen * src/lib/ipwd.c: i_getgr*(): OpenBSD workaround. [127b4e08d3c0] 2011-04-20 Timo Sirainen * src/config/config-parser.c, src/config/doveconf.c: config: Avoid growing data stack / memory pools. [b8fa3171f6d7] * src/config/config-parser.c: doveconf: Fixed a broken "subsection has ssl=yes" warning. [7d60cd847c70] * src/lib-lda/mail-deliver.c: lib-lda: If deliver_log_format setting is empty, don't log anything. Patch by Joseph Tam. [0e406e7cb609] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Added asserts to make sure invalid extension records aren't written to uidlist. [fa2e92526716] * src/lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h: maildir: Remove invalid extension records from dovecot-uidlist. For now we'll assume that if the key is outside A..Z it's invalid. Since only 4 keys are used currently, there is still a lot of letters available for future use. [4fe53879ceb1] * src/lib-storage/index/maildir/maildir-mail.c: maildir: If uidlist has an empty GUID entry, log an error and remove it. This fixes an assert-crash in dsync. [d3d635ee3016] 2011-04-13 Timo Sirainen * src/config/doveconf.c: doveconf: Added -S parameter to dump a simplified machine readable config. This should make it slightly easier for external programs/scripts to call doveconf and parse its output. [811a6d173bb2] * src/config/config-parser.c: config: Abort local/remote block DNS lookups after 30s and warn after 5s. [cf9c2252a3ea] * src/lib/ipwd.c: Compiling fix for Solaris. [b60d73301c08] 2011-04-12 Timo Sirainen * .hgsigs: Added signature for changeset 606faab2b896 [fef40f957c11] * .hgtags: Added tag 2.0.12 for changeset 606faab2b896 [a957418b55af] * NEWS, configure.in: Released v2.0.12. [606faab2b896] [2.0.12] * src/lib-storage/index/test-index-fetch.c: test-index-fetch unit test fixed. [8101b70e4a27] * src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c: sdbox: When rebuilding index, don't unnecessarily change mailbox's GUID. [bdd5a26ee180] * src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.h: sdbox: If message file is unexpectedly lost, rebuild index. [d4945c93c33b] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-single/sdbox-sync.c, src/lib-storage/index/dbox-single/sdbox- sync.h: sdbox: Commit expunges to index first before unlinking the files. [edf79127fccd] * src/lib-storage/index/dbox-multi/mdbox-mail.c: mdbox: Fixed mail_get_save_date() returning wrong return value. This broke expire plugin. [2269cea521b6] * src/auth/auth-request.c: auth: Export/import auth_request->successful for auth workers. [bbcef91eac7e] * src/auth/db-ldap.c, src/auth/db-ldap.h: auth: Removed max. request queue limit from LDAP. Old requests get dropped after 60 seconds, but other than that there is probably not much point in having a hard coded limit. [56616bad7310] 2011-04-10 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Fixed crash in mail_storage_service_all_init() (doveadm .. -A) [475e6633b1d7] 2011-04-08 Timo Sirainen * src/imap-login/client.c: imap-login: Reduced the max. number of allowed bad commands. This makes it even more sure that we won't reply with anything dangerous when attempting to access us with HTTP client. [a0c1c6f7cf6e] * src/imap-login/client.c: imap-login: Don't allow IMAP command tags that have invalid characters. This simply attempts to prevent HTTP requests from replying with any potentially danerous data that some web browsers might execute, e.g.: curl --request POST -F 'x=""' http://localhost:143/ The above command probably doesn't work, because max. bad commands is reached earlier. But if it isn't, this change makes sure it doesn't return back anything, because '"' and '(' aren't allowed characters. Even if '"' weren't required, there hopefully isn't much to be done without being able to call any functions. [9b94597c3f02] * src/lib-index/mail-cache.c, src/lib-index/mail-index-map-read.c, src /lib-index/mail-index-strmap.c, src/lib-index/mail-index.c, src/lib- index/mail-transaction-log-file.c, src/lib-index/mailbox-list- index.c, src/lib/compat.h: Linux NFS: fstat() may return ENOENT instead of ESTALE in some kernel versions. [d14b0fd0a423] * src/director/director-connection.c, src/director/director.c: director: Improved debug/error logging. [e9139f74c451] * src/director/director-connection.c, src/director/director.c: director: Reset hosts' last_failed timestamps when they're suspected to be working again. This should fix some problems during director removals and additions. [2b7af3a16521] * src/doveadm/doveadm-mail-import.c: doveadm import: Initialize the import user properly. [e2b747f88e54] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Allow each user lookup to override global mail_storage_service_flags. [1f545a4a1ffb] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h: lib-storage: Added mail_namespaces_init_location() for creating a single namespace for user. [dafc2dcc1a64] * src/config/config-parser.c: config: Log a warning if global ssl=no, but some section has ssl=yes/required. Actually supporting per-protocol (or even worse, per-ip) SSL would be too much trouble. [18e87d50a10a] * src/lib/eacces-error.c: eperm_error_get_chgrp(): Changed wiki link. [ab12bc9fcc21] * src/lib/eacces-error.c: eperm_error_get_chgrp(): Improved error message and added a link to wiki. [1319931cfda0] * doc/documentation.txt: Updated main documentation.txt index. [0b8f3ddbe29f] * INSTALL, README, doc/documentation.txt, doc/example-config/dovecot- ldap.conf.ext, doc/example-config/dovecot-sql.conf.ext, doc/example- config/dovecot.conf, src/lda/main.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/mail-storage-service.c: Changed wiki.dovecot.org links to wiki2.dovecot.org [b6a705c42001] 2011-04-05 Timo Sirainen * src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c: sdbox: Added more error message logging. [654b5a2fc926] * src/lib-index/mail-index-map.c: lib-index: Fix to previous check. [699d181a5578] * src/lib-index/mail-index-map.c: lib-index: Added extra checks against broken extension record introductions. [64f354128f4e] * src/plugins/quota/quota.c: quota: Fixed the quota limit check changes in previous commit. Casting (uint64_t)-1 to (int64_t) isn't a good idea. [6cc356a5d0a5] 2011-04-04 Timo Sirainen * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: Code cleanup. [230458801916] * src/plugins/quota/quota.c: quota: Fixed checking message count limit when saving multiple mails in transaction. [618f610c7c67] * src/plugins/quota/quota.c: quota: Set quota limit correctly (for code path that doesn't exist). quota_alloc() followed by quota_test/try_alloc() set the "quota left" limit wrong. But this is only a theoretical problem, because nothing actually calls quota_alloc() currently. [8fa544520413] * src/lib-storage/index/index-attachment.c: dbox: External attachment's size was set wrong if base64 MIME part ended unexpectedly. [10ea7f598e11] * src/auth/db-ldap.c: auth: If initial binding to LDAP server hangs, detect it and abort. [cef23de90ff1] 2011-04-03 Timo Sirainen * doc/example-config/conf.d/auth-vpopmail.conf.ext: example-config: Fixed vpopmail config. [0ce50c22f84c] 2011-03-31 Timo Sirainen * src/auth/auth-request.c: auth: Mention auth_username_chars in log when disallowing username because of it. [3eaf0d3a38d4] 2011-03-26 Timo Sirainen * src/lib-settings/settings-parser.c: lib-settings: Fixed crash when trying treat strlist as having a subsection. For example "plugin/foo/bar=yes" crashed, while it should have been just ignored. [746b4e9e7015] * src/lib-index/mail-transaction-log-private.h: lib-index: Delete dovecot.index.log.2 files after 2 days, not after 30 mins. [0d437e2e6949] * src/dsync/dsync-worker-local.c: dsync: Fixed handling expunges of last message when it didn't have a known GUID. [e0f13d7510ef] * src/imap/imap-fetch.c: imap: Use mailbox_get_expunged_uids() for QRESYNC code. [e5547c86528f] * src/lib-storage/index/index-fetch.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/test-index-fetch.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h, src/lib-storage/test-mailbox.c: lib-storage: Fixed mailbox_get_expunges() to return GUIDs with all mailbox formats. Also added mailbox_get_expunged_uids() for use cases that don't really need GUIDs. [99e3209fc78d] 2011-03-24 Timo Sirainen * src/lmtp/Makefile.am: lmtp: Fixed loading Sieve plugin when configuring --without-shared- libs [8c409049402c] * src/plugins/autocreate/Makefile.am, src/plugins/autocreate /autocreate-plugin.c: autocreate: Disable plugin when running from dsync. [4242a7bf8918] * src/lib-storage/mail-storage.c: lib-storage: Removed extra "don't allow INBOX to be deleted" check. It's already checked in places where it could cause actual harm (accidentally deleting other mailboxes) and where it's not allowed (IMAP). This allows dsync backup to delete unwanted INBOX if the mail location settings allow it. [84354efc93bd] * src/dsync/dsync-worker-local.c: dsync backup: Handle better deletion of mailboxes from destination. [65f4791d0eb4] 2011-03-23 Timo Sirainen * src/lib-storage/mail-namespace.c: lib-storage: When mail_location is looked up from environment, set its unexpanded string properly. This fixes a crash when creating index directories and mail location was autodetected. [a5f9264674fb] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h, src/doveadm/doveadm-mail-move.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added "move" command for moving mails between mailboxes. [d7a02077d91f] 2011-03-22 Timo Sirainen * src/config/config-request.c, src/config/doveconf.c: doveconf: Fixed showing plugin {} section. [a94abbccea0f] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Added MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES flag. [b5768d835e79] 2011-03-21 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: Don't try to create /dovecot.mailbox.index when indexes are disabled. [4f1b77b81cf3] * doc/example-config/dovecot.conf: example-config: Uncommented !include_try local.conf At least one Linux distro wants this. [0dcbd2357451] * src/lib-lda/lmtp-client.c: lmtp/smtp client: Crashfix if remote returned failure to RCPT TO. [31b3f1819c89] 2011-03-17 Timo Sirainen * src/plugins/fts/fts-storage.c: fts: Don't notify storage about finishing indexing if notify_ok callback is NULL. [3d48418b0501] 2011-04-30 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c, src/lib-storage/index /index-storage.c, src/lib-storage/index/shared/shared-list.c, src /lib-storage/list/mailbox-list-delete.c, src/lib-storage/list /mailbox-list-delete.h, src/lib-storage/list/mailbox-list-fs.c, src /lib-storage/list/mailbox-list-maildir.c, src/lib-storage/list /mailbox-list-none.c, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: mailbox_delete() for a symlink now removes the symlink instead of expunging mails. [9949b7987409] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota/quota-storage.c: lib-storage: mailbox_delete() now always first expunges all mails before trying deletion. If any new mails are added during expunging, the mailbox deletion fails. This behavior allows removing basically duplicated code where this is done for mdbox, sdbox with external attachments, quota updates and lazy-expunge. [a8fe529ea72b] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Fixed storage rebuild [5f0ed47db523] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Removed support for more than one lazy-expunge namespace. More than one is conceptually difficult to understand, complicates the code and after the next change it wouldn't even work anymore. [efc0eea75258] * configure.in, src/plugins/acl/Makefile.am, src/plugins/autocreate/Makefile.am, src/plugins/expire/Makefile.am, src/plugins/fts-lucene/Makefile.am, src/plugins/fts- solr/Makefile.am, src/plugins/fts-squat/Makefile.am, src/plugins/fts/Makefile.am, src/plugins/imap-acl/Makefile.am, src/plugins/imap-quota/Makefile.am, src/plugins/imap- zlib/Makefile.am, src/plugins/lazy-expunge/Makefile.am, src/plugins/listescape/Makefile.am, src/plugins/mail- log/Makefile.am, src/plugins/notify/Makefile.am, src/plugins/quota/Makefile.am, src/plugins/snarf/Makefile.am, src/plugins/trash/Makefile.am, src/plugins/virtual/Makefile.am, src/plugins/zlib/Makefile.am: Use -Wl,--as-needed -Wl,--no-undefined GNU ld flags for non-plugins. [0be58f3930b2] * src/lib-ssl-iostream/Makefile.am: Compile fix for previous change. [2956ccf6c4bf] * src/lib-sql/Makefile.am, src/lib-ssl-iostream/Makefile.am, src /login-common/Makefile.am: Makefile: Fixes to compiling with LDFLAGS="-Wl,--as-needed -Wl,--no- undefined" [385664bd01be] * src/imap-login/client.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/client-common.h, src /login-common/login-common.h, src/login-common/login-settings.c, src /login-common/main.c, src/login-common/sasl-server.c, src/pop3-login/client.c: login-common API redesign so that the library doesn't refer to nonexistent variables. [6f0396e35fd9] 2011-04-05 Timo Sirainen * doc/example-config/conf.d/10-master.conf, src/auth/auth-settings.c: Changed auth-userdb socket's default permissions to 0666. [bd869a7053c5] * src/auth/auth-master-connection.c, src/auth/auth-master- connection.h, src/auth/main.c: auth: If auth-userdb socket is 0666, allow peer to do only USER lookups whose uid matches its. Anything else results in failure. If userdb doesn't return uid, the lookups also fail. To truly give full permissions for everyone, use 0777 mode. [03b8a8fe1959] * configure.in, src/lib/network.c, src/lib/network.h: Added net_getunixcred() to get UNIX socket peer process's UID and GID. [352999078d83] 2011-04-04 Timo Sirainen * src/lib-storage/index/index-search.c: lib-storage: Request sort program's all fields, not just the first one. [1ff458ba2e4b] * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-search.c, src/lib-storage/index/index-thread.c, src/lib- storage/mail-storage-private.h: lib-storage: Removed struct mail_private.extra_* fields. There isn't much point in keeping them separated. [2c04c3dcd544] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Minor code cleanup. [f051c326463e] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- mailbox.c: imapc: Fixes to handling expunges. [0dec197d1bb7] * src/lib-ssl-iostream/iostream-openssl.c: Compiler warning fix for newer OpenSSL library. [dc0d02efe64b] * src/lib-storage/index/imapc/imapc-save.c, src/lib- storage/index/imapc/imapc-storage.c: imapc: Make sure we wait for SELECT/APPEND/COPY commands to finish. [b3392b09623a] * src/lib-storage/index/imapc/imapc-client-private.h, src/lib- storage/index/imapc/imapc-client.c, src/lib-storage/index/imapc /imapc-client.h, src/lib-storage/index/imapc/imapc-mail-fetch.c, src /lib-storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Removed support for connection locking and multiple connections to mailbox. If needed they can be added back by reversing this change, but for now they're no longer needed. [6a9348fb2253] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Don't log an error message about missing BODY[] if message was already expunged. [939e0fccd517] * src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c: imapc: Stop FETCH wait after untagged reply is received, don't wait for tagged reply. [194855240d31] * src/lib-storage/index/index-mail.h, src/lib-storage/index/index- search.c, src/lib-storage/mail-search.c, src/lib-storage/mail- search.h: lib-storage: Added mail prefetching support for searching. [51ef5ffea07f] * configure.in, src/doveadm/Makefile.am: doveadm: Don't link with all AUTH_LIBS, only -lcrypt is needed. [b93d45b71332] * src/plugins/autocreate/autocreate-plugin.c: Compile warning fix. [ac8a28a8b5c0] 2011-03-31 Timo Sirainen * configure.in, doc/example-config/conf.d/10-mail.conf, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib- storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox- single/sdbox-storage.c, src/lib-storage/index/imapc/Makefile.am, src /lib-storage/index/imapc/imapc-mail-fetch.c, src/lib- storage/index/imapc/imapc-mail.c, src/lib-storage/index/imapc/imapc- mail.h, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-search.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h, src /lib-storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src/lib-storage/index/index-search-private.h, src/lib-storage/index /index-search.c, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage-settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage/mail.c, src/lib-storage/test-mail.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual- search.c: Search supports now prefetching data for returned mails. Dropped imapc's own prefetching. mail_prefetch_count specifies how many mails can be kept open and issue a prefetch. This works using posix_fadvise(POSIX_FADV_WILLNEED) for maildir, sdbox and cydir backends. Apparently only Linux supports this. imapc backend also implements this internally by sending wanted IMAP commands to remote server. The command pipelining helps with latency. This change also makes it actually possible for imapc backend to first check if wanted data is already cached in local index and avoid sending unnecessary IMAP commands to remote server. [0461e23ae57c] * src/lib-storage/index/index-search.c, src/lib-storage/index/index- sort.c, src/lib-storage/index/index-sort.h: lib-storage: Search code cleanup. [b47f17b173f5] * src/lib-storage/mail-search-build.c, src/lib-storage/mail-search- build.h: lib-storage: Fail mail_search_build() if charset is unknown, even if it's not used. For example this causes "SEARCH CHARSET foo ALL" command to fail. [b131b89f5e20] * src/doveadm/doveadm-mail.c, src/imap/imap-search-args.c, src/lib- mail/message-search.c, src/lib-mail/message-search.h, src/lib- storage/Makefile.am, src/lib-storage/index/index-search-private.h, src/lib-storage/index/index-search.c, src/lib-storage/mail-search- build.c, src/lib-storage/mail-search-build.h, src/lib-storage/mail- search-register-imap.c, src/lib-storage/mail-search.c, src/lib- storage/mail-search.h, src/lib-storage/mail-storage.h, src/plugins/fts/Makefile.am, src/plugins/fts/fts-search.c, src/plugins/virtual/virtual-config.c: Changed header/body searching to do search key charset translation earlier. This cleans up and simplifies error handling. [d399d5c65aca] 2011-03-29 Timo Sirainen * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- mail-import.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm- mail-iter.h, src/doveadm/doveadm-mail-search.c, src/dsync/dsync- worker-local.c, src/imap/cmd-copy.c, src/imap/cmd-store.c, src/imap /imap-expunge.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap-fetch.h, src/imap/imap-search.c, src/imap/imap- search.h, src/lib-storage/index/dbox-single/sdbox-storage.c, src /lib-storage/index/imapc/imapc-search.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/index-search- private.h, src/lib-storage/index/index-search-result.c, src/lib- storage/index/index-search.c, src/lib-storage/index/index-status.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/index- thread.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /test-mailbox.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts/fts-storage.c, src/plugins/lazy-expunge/lazy- expunge-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota /quota-storage.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- search.c, src/plugins/virtual/virtual-storage.h, src/plugins/virtual /virtual-sync.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c: lib-storage: Changed mailbox_search_*() API to return pointer struct mail. This reduces the flexibility, because now different mailbox_search_next() calls can't have different mail parameters with possibly different wanted_fields settings. This flexibility was never used though, and removing it gives a couple of benefits: * it's now easier for backends to implement prefetch and parallel search * usage is easier since mail_alloc()/mail_free() is no longer needed [1fbd59c48414] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Try to get received date first from cache. [1473b5b24b8b] * src/lib-storage/index/imapc/imapc-mail.c: imapc: Try to get physical/virtual size first from cache. [d81878a21d57] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- mail.h, src/lib-storage/index/maildir/maildir-mail.c: lib-storage: Small optimizations to setting mail's access_parts. [80e1881d1d8b] 2011-03-24 Timo Sirainen * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/imapc/imapc-storage.c, src /lib-storage/index/index-storage.h, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-storage.c, src /lib-storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw /raw-storage.c, src/lib-storage/mail-storage-private.h, src/lib- storage/test-mailbox.c, src/plugins/virtual/virtual-storage.c: lib-storage: Moved index_mailbox_context.save_*() methods to mailbox_vfuncs. [59e4c0d1457b] * src/lib-storage/index/index-storage.h: lib-storage: Removed unused index_mailbox_context.notify_last_check [1543f3af1d5d] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- mail.h: lib-storage: Removed unused index_mail.uid_validity. [8c7d3ec506f4] 2011-03-23 Timo Sirainen * src/plugins/autocreate/autocreate-plugin.c: autocreate: Don't list autocreate mailboxes with MAILBOX_LIST_ITER_NO_AUTO_BOXES. [b16512b60808] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- mail-import.c, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail- search.c, src/dsync/dsync-worker-local.c, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-maildir- iter.c, src/lib-storage/mailbox-list.h: lib-storage: Renamed MAILBOX_LIST_ITER_NO_AUTO_INBOX to _NO_AUTO_BOXES. [d805c7ce8d67] 2011-03-17 Timo Sirainen * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Fixed setting flags for newly seen messages. [2db1d9cbc334] * NEWS, TODO, configure.in, src/auth/auth-penalty.c, src/auth/auth- request.c, src/auth/db-ldap.c, src/auth/passdb-ldap.c, src/auth /userdb-ldap.c, src/config/old-set-parser.c, src/doveadm/doveadm- dump-index.c, src/doveadm/doveadm-dump-log.c, src/doveadm/doveadm- mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm /doveadm-mail-iter.c, src/doveadm/doveadm-mail-list-iter.c, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail- mailbox.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm- mail.c, src/dsync/dsync-worker-local.c, src/dsync/dsync.c, src/imap /cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap /cmd-delete.c, src/imap/cmd-enable.c, src/imap/cmd-fetch.c, src/imap /cmd-list.c, src/imap/cmd-namespace.c, src/imap/cmd-rename.c, src/imap/cmd-select.c, src/imap/cmd-status.c, src/imap/cmd-store.c, src/imap/cmd-subscribe.c, src/imap/imap-client.c, src/imap/imap- commands-util.c, src/imap/imap-fetch.c, src/imap/imap-search.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/lda/main.c, src /lib-auth/auth-client-request.c, src/lib-charset/charset-iconv.c, src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-envelope.c, src /lib-imap/imap-parser.c, src/lib-index/mail-index-transaction.c, src /lib-index/mail-index-view.c, src/lib-index/mail-index.c, src/lib- index/mail-transaction-log-append.c, src/lib-index/mail-transaction- log-view.c, src/lib-index/mail-transaction-log.c, src/lib- lda/duplicate.c, src/lib-lda/mail-deliver.c, src/lib-master/anvil- client.c, src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql/driver-sqlpool.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib- storage/index/dbox-common/dbox-mail.c, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox- multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-file.c, src/lib-storage/index/dbox-single/sdbox- save.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index/index-sort.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync.c, src/lib-storage/index/index-thread.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-filename.c, src/lib-storage/index/maildir/maildir- keywords.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/maildir/maildir-sync- index.c, src/lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /mbox-file.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/list/index-mailbox-list.c, src /lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir- iter.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-none.c, src/lib-storage/list/mailbox-list- subscriptions.c, src/lib-storage/list/subscription-file.c, src/lib- storage/mail-copy.c, src/lib-storage/mail-namespace.c, src/lib- storage/mail-search-register-human.c, src/lib-storage/mail-search- register-imap.c, src/lib-storage/mail-search.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage-settings.c, src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src /lib-storage/mailbox-list.c, src/lib-storage/mailbox-tree.c, src /lib-storage/mailbox-uidvalidity.c, src/lib-storage/test-mailbox.c, src/lib/ioloop.c, src/lib/lib.c, src/lib/printf-format-fix.c, src/lib/process-title.c, src/lmtp/client.c, src/lmtp/commands.c, src /login-common/sasl-server.c, src/master/main.c, src/master/master- settings.c, src/master/service-monitor.c, src/master/service- process.c, src/master/service.c, src/plugins/acl/acl-backend-vfile- acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl- mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl /doveadm-acl.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-squat/fts- backend-squat.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl /imap-acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/quota/quota- count.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c, src/plugins/snarf/snarf- plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual /virtual-config.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual-save.c, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-storage.h, src/plugins/virtual/virtual-sync.c, src/plugins/virtual/virtual- transaction.c, src/plugins/zlib/zlib-plugin.c, src/pop3/pop3-client.c, src/util/script.c: Merged changes from v2.0 tree. [3984231cd873] * src/auth/passdb-bsdauth.c, src/auth/passdb-passwd.c, src/auth /userdb-passwd.c, src/auth/userdb.c, src/lda/main.c, src/lib- storage/index/mbox/mbox-lock.c, src/lib-storage/mail-storage- service.c, src/lib/eacces-error.c, src/lib/home-expand.c, src/lib /ioloop-notify-inotify.c, src/lib/lib.c, src/lib/mkdir-parents.c, src/lib/restrict-access.c, src/master/main.c, src/master/service- process.c: Replaced all getpw/gr*() to use i_getpw/gr*() with improved error handling. [02829f7f79c7] * src/lib/Makefile.am, src/lib/ipwd.c, src/lib/ipwd.h: Added i_getpw*() and i_getgr*() wrappers for getpw*()/getgr*(). These functions make error handling easier. [7f5735ab7c35] 2011-03-16 Timo Sirainen * src/master/main.c: master: Don't close stderr if logging goes there. [26d5351649ac] * src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-storage.h: virtual: Support +mailbox entries that clear \Recent flag from messages. [be0f0de75e34] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c: dbox: Fixed crash on creation of a new mailbox. Broken by recent changes. [310f2784de31] * src/lib/eacces-error.c: eacces_error_get*(): Handle errors to / directory better. [46d46fa3929f] * src/lib-auth/auth-master.c: lib-auth: If connection to auth-master gets lost, reconnect. [7d9db422549a] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage /mail-storage.c: lib-storage: Moved mailbox_update() assert check from mdbox to common, plus fixed it. [18d801449444] * src/dsync/dsync-brain.c, src/dsync/dsync-data.h, src/dsync/dsync- proxy.c, src/dsync/dsync-worker-local.c, src/dsync/test-dsync- brain.c, src/dsync/test-dsync-proxy-server-cmd.c: dsync: Preserve \Recent flags state (instead of setting everything \Recent). [ad393de782ce] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c, src/lib-storage/mail-storage.h: lib-storage: Added min_first_recent_uid to struct mailbox_update. Implemented for dbox. Maildir/mbox needs some more code to make this work correctly. [08e4c5d0dc9b] * src/lib-storage/index/index-status.c, src/lib-storage/mail- storage.h: lib-storage: Added first_recent_uid to struct mailbox_status. [4baca6914518] 2011-03-15 Timo Sirainen * src/imap-login/client.c: imap-login: Changed CAPABILITY's tagged OK reply to say post-login capabilities have more. [31d8d43fa6b5] 2011-03-14 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Fixed wrong error check while reading external attachments. [890a46b3ab63] 2011-03-12 Timo Sirainen * src/dsync/dsync-brain.c: dsync: When showing mailbox names, show also their GUIDs. [0a1a0d33c1b2] * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Give more verbose error message about broken attachment ext- refs. [d3d6ed6d268b] * src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/maildir/maildir-save.c: maildir, sdbox: If committed transaction has only aborted msg saves, don't assert-crash. [b896d72d7fa7] * src/dsync/dsync-proxy-client.c: dsync: If remote dsync times out, log a more verbose reason. [4b537650b4de] * src/lib-storage/mail-storage-service.c: lib-storage: When uid/gid is invalid, tell if it's from setting or userdb lookup. [e83eec6d0126] * doc/example-config/conf.d/20-imap.conf, src/imap/cmd-list.c, src/imap/imap-settings.c, src/imap/imap-settings.h: imap: Added tb-lsub-flags to imap_client_workarounds. Patch by Bruno Tréguier. [0405f4c507c9] 2011-03-10 Timo Sirainen * src/dsync/dsync-proxy-server.c: dsync: Reset idle timeouts at the end of i/o callbacks, not beginning. This could make a difference if the callback runs for a long time. [2ac35ed2f943] 2011-03-09 Timo Sirainen * src/lib-imap/imap-id.c: IMAP: Fixed ID command to log the parameters properly. Patch by Mike Abbott / Apple. [3b2c301ab31f] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy.h: dsync: Use a smaller idle timeout value for client than for server. [60c5cf26c3dd] 2011-03-07 Timo Sirainen * src/dsync/dsync-proxy-client.c: dsync: Avoid hanging when saving messages. [33cd03255c94] * src/plugins/expire/expire-plugin.c: expire: Fixed mail_debug logging when same transaction expunged all messages and saved new. [2cb0fb910441] * src/plugins/expire/expire-plugin.c: expire: Added more debugging with mail_debug=yes [63ed0d3f4f52] * src/plugins/expire/expire-plugin.c: expire: When saving first message to expire mailbox, use the oldest message's save-time. This makes it easier to enable and test expire plugin. This also changes how expire dict is used: previously when all messages were expunged in a mailbox its entry was deleted in dict, but now its value is set to 0. [eac54c2dc98b] * .hgsigs: Added signature for changeset 3355b4bbd4ac [47279462da5a] * .hgtags: Added tag 2.0.11 for changeset 3355b4bbd4ac [4f76b03db4cd] * NEWS, configure.in: Released v2.0.11. [3355b4bbd4ac] [2.0.11] * src/lib-storage/mail-storage-settings.c: lib-storage: dotlock_use_excl default was accidentally set to "no". [61ed55d1c870] * src/dsync/dsync-proxy-client.c: dsync: Fixed a timeout/crash when saving messages to remote dsync. [5767657f0170] 2011-03-06 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Avoid leaking fds when saving many messages larger than mdbox_rotate_size. [d1f30e375f40] 2011-03-05 Timo Sirainen * src/auth/db-ldap.c: auth: Fixed ldap assert-crash. [b44ec48d9425] 2011-03-04 Timo Sirainen * src/plugins/acl/doveadm-acl.c: doveadm acl set: Require non-standard rights to be prefixed with ':' char. [d757b13d84ff] * .hgsigs: Added signature for changeset 755c63ff089f [81d799f52912] * .hgtags: Added tag 2.0.10 for changeset 755c63ff089f [58039a22d17f] * NEWS, TODO, configure.in: Released v2.0.10. [755c63ff089f] [2.0.10] * src/anvil/anvil-connection.c, src/anvil/anvil-settings.c, src/anvil /connect-limit.c, src/anvil/main.c, src/anvil/penalty.c, src/anvil /test-penalty.c, src/auth/auth-cache.c, src/auth/auth-client- connection.c, src/auth/auth-master-connection.c, src/auth/auth- penalty.c, src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth-stream.c, src/auth/auth- worker-client.c, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/db-checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd- file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech- anonymous.c, src/auth/mech-cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech-external.c, src/auth/mech-plain.c, src/auth/mech.c, src/auth/passdb-blocking.c, src/auth/passdb-bsdauth.c, src/auth /passdb-cache.c, src/auth/passdb-checkpassword.c, src/auth/passdb- ldap.c, src/auth/passdb-passwd-file.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c, src/auth/passdb-sql.c, src/auth/passdb- static.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth /password-scheme-crypt.c, src/auth/password-scheme.c, src/auth /userdb-blocking.c, src/auth/userdb-checkpassword.c, src/auth /userdb-ldap.c, src/auth/userdb-nss.c, src/auth/userdb-passwd- file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb- vpopmail.c, src/auth/userdb.c, src/config/config-connection.c, src/config/config-filter.c, src/config/config-parser.c, src/config /config-request.c, src/config/config-settings.c, src/config/doveconf.c, src/config/main.c, src/config/old-set- parser.c, src/config/sysinfo-get.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/dict/dict-settings.c, src/dict/main.c, src/director/auth-connection.c, src/director /director-connection.c, src/director/director-host.c, src/director /director-request.c, src/director/director-settings.c, src/director /director-test.c, src/director/director.c, src/director/doveadm- connection.c, src/director/login-connection.c, src/director/mail- host.c, src/director/main.c, src/director/notify-connection.c, src/director/user-directory.c, src/dns/dns-client-settings.c, src/dns/dns-client.c, src/doveadm/client-connection.c, src/doveadm /doveadm-auth.c, src/doveadm/doveadm-director.c, src/doveadm /doveadm-dump-index.c, src/doveadm/doveadm-dump-log.c, src/doveadm /doveadm-dump-mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-kick.c, src/doveadm /doveadm-log.c, src/doveadm/doveadm-mail-altmove.c, src/doveadm /doveadm-mail-expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-list-iter.c, src/doveadm/doveadm-mail- mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm /doveadm-mail-search.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-master.c, src/doveadm/doveadm-mutf7.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print-server.c, src/doveadm/doveadm-print-tab.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm-util.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/main.c, src/doveadm/server- connection.c, src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync- brain-msgs.c, src/dsync/dsync-brain.c, src/dsync/dsync-data.c, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy.c, src/dsync /dsync-worker-local.c, src/dsync/dsync-worker.c, src/dsync/dsync.c, src/dsync/test-dsync-brain-msgs.c, src/dsync/test-dsync-brain.c, src/dsync/test-dsync-common.c, src/dsync/test-dsync-proxy-server- cmd.c, src/dsync/test-dsync-proxy.c, src/dsync/test-dsync-worker.c, src/imap-login/client-authenticate.c, src/imap-login/client.c, src /imap-login/imap-login-settings.c, src/imap-login/imap-proxy.c, src/imap/cmd-append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd- capability.c, src/imap/cmd-check.c, src/imap/cmd-close.c, src/imap /cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap /cmd-enable.c, src/imap/cmd-examine.c, src/imap/cmd-expunge.c, src/imap/cmd-fetch.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/cmd-logout.c, src/imap/cmd-lsub.c, src/imap/cmd-namespace.c, src/imap/cmd-noop.c, src/imap/cmd- rename.c, src/imap/cmd-search.c, src/imap/cmd-select.c, src/imap /cmd-sort.c, src/imap/cmd-status.c, src/imap/cmd-store.c, src/imap /cmd-subscribe.c, src/imap/cmd-thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd-unsubscribe.c, src/imap/cmd-x-cancel.c, src/imap/imap-client.c, src/imap/imap- commands-util.c, src/imap/imap-commands.c, src/imap/imap-expunge.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap- search-args.c, src/imap/imap-search.c, src/imap/imap-settings.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/imap/mail-storage- callbacks.c, src/imap/main.c, src/lda/main.c, src/lib-auth/auth- client-request.c, src/lib-auth/auth-client.c, src/lib-auth/auth- master.c, src/lib-auth/auth-server-connection.c, src/lib-charset /charset-iconv.c, src/lib-charset/charset-utf8.c, src/lib-dict/dict- client.c, src/lib-dict/dict-db.c, src/lib-dict/dict-file.c, src/lib- dict/dict-sql-settings.c, src/lib-dict/dict-sql.c, src/lib- dict/dict.c, src/lib-dict/test-dict.c, src/lib-dns/dns-lookup.c, src /lib-fs/fs-api.c, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-common.c, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c, src/lib-fs/ostream- cmp.c, src/lib-imap/imap-arg.c, src/lib-imap/imap-base-subject.c, src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-date.c, src /lib-imap/imap-envelope.c, src/lib-imap/imap-id.c, src/lib-imap /imap-match.c, src/lib-imap/imap-parser.c, src/lib-imap/imap- quote.c, src/lib-imap/imap-seqset.c, src/lib-imap/imap-utf7.c, src /lib-imap/imap-util.c, src/lib-imap/test-imap-match.c, src/lib-imap /test-imap-parser.c, src/lib-imap/test-imap-utf7.c, src/lib-imap /test-imap-util.c, src/lib-index/mail-cache-compress.c, src/lib- index/mail-cache-decisions.c, src/lib-index/mail-cache-fields.c, src /lib-index/mail-cache-lookup.c, src/lib-index/mail-cache-sync- update.c, src/lib-index/mail-cache-transaction.c, src/lib-index /mail-cache.c, src/lib-index/mail-index-alloc-cache.c, src/lib-index /mail-index-dummy-view.c, src/lib-index/mail-index-fsck.c, src/lib- index/mail-index-lock.c, src/lib-index/mail-index-map-hdr.c, src /lib-index/mail-index-map-read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index- strmap.c, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail- index-sync-keywords.c, src/lib-index/mail-index-sync-update.c, src /lib-index/mail-index-sync.c, src/lib-index/mail-index-transaction- export.c, src/lib-index/mail-index-transaction-finish.c, src/lib- index/mail-index-transaction-sort-appends.c, src/lib-index/mail- index-transaction-update.c, src/lib-index/mail-index-transaction- view.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail- index-util.c, src/lib-index/mail-index-view-sync.c, src/lib-index /mail-index-view.c, src/lib-index/mail-index-write.c, src/lib-index /mail-index.c, src/lib-index/mail-transaction-log-append.c, src/lib- index/mail-transaction-log-file.c, src/lib-index/mail-transaction- log-view.c, src/lib-index/mail-transaction-log.c, src/lib-index /mailbox-list-index-sync.c, src/lib-index/mailbox-list-index.c, src /lib-index/mailbox-log.c, src/lib-index/test-mail-index-sync-ext.c, src/lib-index/test-mail-index-transaction-finish.c, src/lib-index /test-mail-index-transaction-update.c, src/lib-index/test-mail- transaction-log-append.c, src/lib-index/test-mail-transaction-log- view.c, src/lib-lda/duplicate.c, src/lib-lda/lda-settings.c, src /lib-lda/lmtp-client.c, src/lib-lda/mail-deliver.c, src/lib-lda /mail-send.c, src/lib-lda/smtp-client.c, src/lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src/lib-mail/mbox-from.c, src /lib-mail/message-address.c, src/lib-mail/message-date.c, src/lib- mail/message-decoder.c, src/lib-mail/message-header-decode.c, src /lib-mail/message-header-encode.c, src/lib-mail/message-header- parser.c, src/lib-mail/message-id.c, src/lib-mail/message-parser.c, src/lib-mail/message-part-serialize.c, src/lib-mail/message- search.c, src/lib-mail/message-send.c, src/lib-mail/message-size.c, src/lib-mail/quoted-printable.c, src/lib-mail/rfc2231-parser.c, src /lib-mail/rfc822-parser.c, src/lib-mail/test-istream-dot.c, src/lib- mail/test-istream-header-filter.c, src/lib-mail/test-mbox-from.c, src/lib-mail/test-message-address.c, src/lib-mail/test-message- date.c, src/lib-mail/test-message-decoder.c, src/lib-mail/test- message-header-decode.c, src/lib-mail/test-message-header-encode.c, src/lib-mail/test-message-header-parser.c, src/lib-mail/test- message-id.c, src/lib-mail/test-message-parser.c, src/lib-mail/test- quoted-printable.c, src/lib-mail/test-rfc2231-parser.c, src/lib- master/anvil-client.c, src/lib-master/master-auth.c, src/lib-master /master-login-auth.c, src/lib-master/master-login.c, src/lib-master /master-service-settings-cache.c, src/lib-master/master-service- settings.c, src/lib-master/master-service.c, src/lib-master/syslog- util.c, src/lib-settings/settings-parser.c, src/lib- settings/settings.c, src/lib-sql/driver-mysql.c, src/lib-sql/driver- pgsql.c, src/lib-sql/driver-sqlpool.c, src/lib-sql/sql-api.c, src /lib-sql/sql-db-cache.c, src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/cydir /cydir-sync.c, src/lib-storage/index/dbox-common/dbox-attachment.c, src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib- storage/index/dbox-common/dbox-file.c, src/lib-storage/index/dbox- common/dbox-mail.c, src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-sync-rebuild.c, src/lib-storage/index /dbox-multi/mdbox-file.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox- multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-copy.c, src/lib-storage/index/dbox-single/sdbox- file.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/dbox-single/sdbox-save.c, src/lib-storage/index/dbox- single/sdbox-storage.c, src/lib-storage/index/dbox-single/sdbox- sync-rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src /lib-storage/index/index-attachment.c, src/lib-storage/index/index- fetch.c, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mailbox- check.c, src/lib-storage/index/index-search-result.c, src/lib- storage/index/index-search.c, src/lib-storage/index/index-sort- string.c, src/lib-storage/index/index-sort.c, src/lib-storage/index /index-status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-changes.c, src/lib-storage/index/index- sync-search.c, src/lib-storage/index/index-sync.c, src/lib- storage/index/index-thread-finish.c, src/lib-storage/index/index- thread-links.c, src/lib-storage/index/index-thread.c, src/lib- storage/index/index-transaction.c, src/lib-storage/index/istream- attachment.c, src/lib-storage/index/istream-mail-stats.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-filename.c, src/lib-storage/index/maildir/maildir- keywords.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-settings.c, src/lib-storage/index/maildir/maildir- storage.c, src/lib-storage/index/maildir/maildir-sync-index.c, src /lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /istream-raw-mbox.c, src/lib-storage/index/mbox/mbox-file.c, src /lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-md5.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- settings.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync-parse.c, src/lib-storage/index/mbox /mbox-sync-rewrite.c, src/lib-storage/index/mbox/mbox-sync-update.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw /raw-mail.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-sync.c, src/lib-storage/index/shared/shared- list.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/index/test-index-fetch.c, src/lib-storage/list/index- mailbox-list-sync.c, src/lib-storage/list/index-mailbox-list.c, src /lib-storage/list/mailbox-list-delete.c, src/lib-storage/list /mailbox-list-fs-flags.c, src/lib-storage/list/mailbox-list-fs- iter.c, src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir-iter.c, src/lib-storage/list/mailbox-list- maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/list /subscription-file.c, src/lib-storage/mail-copy.c, src/lib-storage /mail-error.c, src/lib-storage/mail-namespace.c, src/lib-storage /mail-search-build.c, src/lib-storage/mail-search-parser-cmdline.c, src/lib-storage/mail-search-parser-imap.c, src/lib-storage/mail- search-parser.c, src/lib-storage/mail-search-register-human.c, src /lib-storage/mail-search-register-imap.c, src/lib-storage/mail- search-register.c, src/lib-storage/mail-search.c, src/lib-storage /mail-storage-hooks.c, src/lib-storage/mail-storage-service.c, src /lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage.c, src/lib-storage/mail-thread.c, src/lib-storage/mail- user.c, src/lib-storage/mail.c, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-search-result.c, src/lib-storage/mailbox- tree.c, src/lib-storage/mailbox-uidvalidity.c, src/lib-storage/test- mail-storage.c, src/lib-storage/test-mail.c, src/lib-storage/test- mailbox.c, src/lib-test/test-common.c, src/lib/abspath.c, src/lib/aqueue.c, src/lib/array.c, src/lib/askpass.c, src/lib /backtrace-string.c, src/lib/base64.c, src/lib/bsearch-insert-pos.c, src/lib/buffer.c, src/lib/child-wait.c, src/lib/close-keep-errno.c, src/lib/compat.c, src/lib/crc32.c, src/lib/data-stack.c, src/lib /eacces-error.c, src/lib/env-util.c, src/lib/execv-const.c, src/lib/failures.c, src/lib/fd-close-on-exec.c, src/lib/fd-set- nonblock.c, src/lib/fdatasync-path.c, src/lib/fdpass.c, src/lib /file-cache.c, src/lib/file-copy.c, src/lib/file-dotlock.c, src/lib /file-lock.c, src/lib/file-set-size.c, src/lib/hash-format.c, src/lib/hash-method.c, src/lib/hash.c, src/lib/hash2.c, src/lib/hex- binary.c, src/lib/hex-dec.c, src/lib/home-expand.c, src/lib/hostpid.c, src/lib/imem.c, src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify-fd.c, src/lib/ioloop-notify-inotify.c, src/lib /ioloop-notify-none.c, src/lib/ioloop-poll.c, src/lib/ioloop- select.c, src/lib/ioloop.c, src/lib/iostream.c, src/lib/istream- base64-encoder.c, src/lib/istream-concat.c, src/lib/istream-crlf.c, src/lib/istream-data.c, src/lib/istream-file.c, src/lib/istream- limit.c, src/lib/istream-mmap.c, src/lib/istream-seekable.c, src/lib /istream-tee.c, src/lib/istream.c, src/lib/lib-signals.c, src/lib/lib.c, src/lib/mempool-alloconly.c, src/lib/mempool- datastack.c, src/lib/mempool-system.c, src/lib/mempool-unsafe- datastack.c, src/lib/mempool.c, src/lib/mkdir-parents.c, src/lib /mmap-anon.c, src/lib/mmap-util.c, src/lib/module-dir.c, src/lib/mountpoint.c, src/lib/network.c, src/lib/nfs-workarounds.c, src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib/ostream.c, src/lib/printf-format-fix.c, src/lib/priorityq.c, src/lib/process- title.c, src/lib/randgen.c, src/lib/read-full.c, src/lib/restrict- access.c, src/lib/restrict-process-size.c, src/lib/safe-memset.c, src/lib/safe-mkdir.c, src/lib/safe-mkstemp.c, src/lib/sendfile- util.c, src/lib/seq-range-array.c, src/lib/str-find.c, src/lib/str- sanitize.c, src/lib/str.c, src/lib/strescape.c, src/lib/strfuncs.c, src/lib/strnum.c, src/lib/test-aqueue.c, src/lib/test-array.c, src/lib/test-base64.c, src/lib/test-bsearch-insert-pos.c, src/lib /test-buffer.c, src/lib/test-crc32.c, src/lib/test-hash-format.c, src/lib/test-hex-binary.c, src/lib/test-istream-base64-encoder.c, src/lib/test-istream-concat.c, src/lib/test-istream-crlf.c, src/lib /test-istream-seekable.c, src/lib/test-istream-tee.c, src/lib/test- lib.c, src/lib/test-llist.c, src/lib/test-mempool-alloconly.c, src/lib/test-network.c, src/lib/test-ostream-file.c, src/lib/test- primes.c, src/lib/test-priorityq.c, src/lib/test-seq-range-array.c, src/lib/test-str-find.c, src/lib/test-str-sanitize.c, src/lib/test- strescape.c, src/lib/test-strfuncs.c, src/lib/test-time-util.c, src/lib/test-utc-mktime.c, src/lib/test-var-expand.c, src/lib/time- util.c, src/lib/unichar.c, src/lib/unix-socket-create.c, src/lib /unlink-directory.c, src/lib/unlink-old-files.c, src/lib/utc- mktime.c, src/lib/utc-offset.c, src/lib/var-expand.c, src/lib/write- full.c, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/lmtp- proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/main.c, src/log/log- connection.c, src/log/log-settings.c, src/log/main.c, src/login- common/access-lookup.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/login-proxy-state.c, src/login-common/login-proxy.c, src/login-common/login-settings.c, src/login-common/main.c, src/login-common/sasl-server.c, src/login- common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/master/dup2-array.c, src/master/main.c, src/master/master-settings.c, src/master/service- anvil.c, src/master/service-listen.c, src/master/service-log.c, src/master/service-monitor.c, src/master/service-process-notify.c, src/master/service-process.c, src/master/service.c, src/plugins/acl /acl-api.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire /expire-plugin.c, src/plugins/expire/expire-set.c, src/plugins/fts- lucene/fts-backend-lucene.c, src/plugins/fts-lucene/fts-lucene- plugin.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts- solr/fts-solr-plugin.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts-squat /fts-squat-plugin.c, src/plugins/fts-squat/squat-test.c, src/plugins /fts-squat/squat-trie.c, src/plugins/fts-squat/squat-uidlist.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-search.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/quota/doveadm-quota.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- mail.c, src/plugins/virtual/virtual-plugin.c, src/plugins/virtual /virtual-save.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- sync.c, src/plugins/virtual/virtual-transaction.c, src/plugins/zlib /doveadm-zlib.c, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib /istream-zlib.c, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib /ostream-zlib.c, src/plugins/zlib/zlib-plugin.c, src/pop3-login /client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3 -login-settings.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/ssl-params/main.c, src/ssl-params/ssl- params-openssl.c, src/ssl-params/ssl-params-settings.c, src/ssl- params/ssl-params.c, src/util/gdbhelper.c, src/util/listview.c, src/util/maildirlock.c, src/util/rawlog.c, src/util/script-login.c, src/util/script.c, src/util/tcpwrap-settings.c, src/util/tcpwrap.c: Updated copyright notices to include year 2011. [44d0474a451e] * src/lib-master/anvil-client.c: lib-master: Added reconnection timeout to anvil client. Previously if anvil kept disconnecting, the client was rapidly flooding the logs with errors. [54e354cbf061] * src/master/master-settings.c: master: Allow protocols value to be empty (= same as "none") [a6382acebe7e] * src/master/common.h, src/master/main.c, src/master/service- monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h: master: Use per-services_list "master is dead" fd, so services know when config is reload. [539da23bff31] * src/master/service.c: master: Memory leak fix if services couldn't be initialized. (On config reload.) [65e943eafe8b] * src/lib-sql/driver-sqlpool.c: lib-sql: When adding more connections to sql pool, connect to them immediately. [e758f10f40c1] * src/lib-sql/driver-pgsql.c: pgsql: Don't assert-crash if query fails when trying to send it. [f95b1e26f1f2] * src/lib-sql/driver-pgsql.c: pgsql: If host isn't given, don't show pgsql((null)) as log prefix (or crash). [27ee65dc87c2] * doc/example-config/dovecot.conf: example-config: Added import_environment. [dfd5a2efd7df] * src/login-common/sasl-server.c: login: Skip auth penalty checks from IPs in login_trusted_networks. [73cad87e2045] * src/auth/auth-penalty.c, src/auth/auth-request.c, src/auth/auth- request.h, src/lib-auth/auth-client-request.c, src/lib-auth/auth- client.h: auth: Allow clients to specify that they want to skip auth penalty check. This is "safe", because the clients specify the IP for the penalty check anyway. [bf6749d4db08] * src/plugins/virtual/virtual-config.c: virtual: Allow search rule continuation lines to begin with tab as well as space. [d32a23fa160d] * src/lib-imap/imap-parser.c: lib-imap: imap_parser_finish_line() didn't return failure on invalid input. [3f21260a72ce] * src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c: sdbox: Fixed creating mailbox with given GUID. [1ffeb083c993] * src/plugins/acl/doveadm-acl.c: doveadm acl debug: If any errors are noticed, fix them. [325e163a6f84] * src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl-api.h, src/plugins/acl/acl-backend-vfile- acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl- backend-vfile.h: acl: Added acl_backend_nonowner_lookups_rebuild() [313e9af474a4] * src/plugins/acl/doveadm-acl.c: doveadm: Added acl delete command. [20b173d061d9] * src/plugins/acl/doveadm-acl.c: doveadm acl debug: Show also if mailbox has private flags. [6c4f67202ebf] * src/plugins/acl/Makefile.am, src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-lookup-dict.h, src/plugins/acl/doveadm-acl.c: acl: Added doveadm plugin supporting acl get/set/rights/debug commands. [a2120ee55303] * src/lib-storage/mail-storage-service.c: lib-storage: MAIL_STORAGE_SERVICE_FLAG_DEBUG didn't do anything. [35577e832d5a] * src/plugins/acl/acl-lookup-dict.c: acl: Fixed crash when acl_lookup_dict was disabled and user belonged to groups. [c0203b7923d3] 2011-03-02 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox purge: Fixes to handling corrupted mdbox files. [989f3990b254] * src/lib-storage/index/dbox-common/dbox-file.c: mdbox: Storage rebuilding may have skipped over messages if the file was already at EOF. Probably didn't happen except when purging noticed corruption and triggered index rebuild. [fe144ecec678] * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c: mysql/pgsql: Log prefixes now contain also the hostname. This is useful when there are multiple hosts in use. [965b9019ef2e] 2011-02-28 Timo Sirainen * src/lib-charset/charset-iconv.c: lib-charset: Skip over only invalid characters, not entire buffers around them. [b6f8d4bee20d] * src/doveadm/doveadm-mail-import.c: doveadm import: Fixed potential memory corruption. [2ab52f478b72] * src/doveadm/doveadm-mail.c: doveadm: Unload plugins only after calling command's deinit() function. This fixes a crash on deinit when using a plugin that hooks into user.deinit(). [60daca1d28c7] * src/doveadm/doveadm-mail.c: doveadm: Memory leak fix. [f7cb34c45864] * src/auth/auth-request.c, src/auth/auth-request.h, src/auth/db- ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c, src/auth/userdb- ldap.c: auth: Log a warning if ldap attribute has unexpectedly multiple values. [946d1cd3300b] * src/lib-storage/index/index-thread.c: lib-storage: Failures when building thread index were hidden. [067f038ded8b] 2011-02-25 Timo Sirainen * src/lib-index/mail-index-transaction-export.c: lib-index: If keyword is added and remove within transaction, don't write a broken keyword update. This could have caused "No UID ranges (type=0x400)" errors. [2762bb5a7481] * HEAD branch somehow came back. Removing it again. [679a1fa26479] 2011-02-24 Timo Sirainen * src/lib-index/mail-index-transaction-export.c: lib-index: If keyword is added and remove within transaction, don't write a broken keyword update. This could have caused "No UID ranges (type=0x400)" errors. [b492ad185b53] 2011-02-22 Timo Sirainen * src/config/old-set-parser.c: config: Fixed converting old auth/mail_process_size settings. [2480413a80fb] 2011-03-10 Timo Sirainen * src/lib-storage/index/imapc/imapc-connection.c: imapc: When unselecting a mailbox, send DONE to stop IDLE. [6c4a2ca946f3] * src/lib-storage/index/imapc/imapc-connection.c: imapc: If server sends BAD, disconnect from it. [598bc0b91855] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-list.h, src/lib-storage/index/imapc/imapc- mailbox.c, src/lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-storage/index/imapc /imapc-sync.c, src/lib-storage/index/imapc/imapc-sync.h: imapc: Initial support for local index files. [934c529052eb] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h: lib-storage: Allow creating a secondary mailbox_list for a namespace. [395af848ec10] * src/plugins/quota/quota-fs.c: quota-fs: Don't log error if storage doesn't have a root directory. [5086e1504e28] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/plugins/listescape/listescape- plugin.c: Moved most of listescape plugin functionality directly to lib- storage. This fixes actually opening escaped mailboxes. The plugin may eventually be removed and replaced with a setting. [1421c354ced7] 2011-03-04 Timo Sirainen * src/anvil/anvil-connection.c, src/anvil/anvil-settings.c, src/anvil /connect-limit.c, src/anvil/main.c, src/anvil/penalty.c, src/anvil /test-penalty.c, src/auth/auth-cache.c, src/auth/auth-client- connection.c, src/auth/auth-master-connection.c, src/auth/auth- penalty.c, src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth-stream.c, src/auth/auth- worker-client.c, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/db-checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd- file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech- anonymous.c, src/auth/mech-cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech-external.c, src/auth/mech-plain.c, src/auth/mech.c, src/auth/passdb-blocking.c, src/auth/passdb-bsdauth.c, src/auth /passdb-cache.c, src/auth/passdb-checkpassword.c, src/auth/passdb- ldap.c, src/auth/passdb-passwd-file.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c, src/auth/passdb-sql.c, src/auth/passdb- static.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth /password-scheme-crypt.c, src/auth/password-scheme.c, src/auth /userdb-blocking.c, src/auth/userdb-checkpassword.c, src/auth /userdb-ldap.c, src/auth/userdb-nss.c, src/auth/userdb-passwd- file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb- vpopmail.c, src/auth/userdb.c, src/config/config-connection.c, src/config/config-filter.c, src/config/config-parser.c, src/config /config-request.c, src/config/config-settings.c, src/config/doveconf.c, src/config/main.c, src/config/old-set- parser.c, src/config/sysinfo-get.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/dict/dict-settings.c, src/dict/main.c, src/director/auth-connection.c, src/director /director-connection.c, src/director/director-host.c, src/director /director-request.c, src/director/director-settings.c, src/director /director-test.c, src/director/director.c, src/director/doveadm- connection.c, src/director/login-connection.c, src/director/mail- host.c, src/director/main.c, src/director/notify-connection.c, src/director/user-directory.c, src/dns/dns-client-settings.c, src/dns/dns-client.c, src/doveadm/client-connection.c, src/doveadm /doveadm-auth.c, src/doveadm/doveadm-director.c, src/doveadm /doveadm-dump-index.c, src/doveadm/doveadm-dump-log.c, src/doveadm /doveadm-dump-mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-kick.c, src/doveadm /doveadm-log.c, src/doveadm/doveadm-mail-altmove.c, src/doveadm /doveadm-mail-expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-list-iter.c, src/doveadm/doveadm-mail- mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm /doveadm-mail-search.c, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-master.c, src/doveadm/doveadm-mutf7.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print-server.c, src/doveadm/doveadm-print-tab.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-sis.c, src/doveadm/doveadm-util.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/main.c, src/doveadm/server- connection.c, src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync- brain-msgs.c, src/dsync/dsync-brain.c, src/dsync/dsync-data.c, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy.c, src/dsync /dsync-worker-local.c, src/dsync/dsync-worker.c, src/dsync/dsync.c, src/dsync/test-dsync-brain-msgs.c, src/dsync/test-dsync-brain.c, src/dsync/test-dsync-common.c, src/dsync/test-dsync-proxy-server- cmd.c, src/dsync/test-dsync-proxy.c, src/dsync/test-dsync-worker.c, src/imap-login/client-authenticate.c, src/imap-login/client.c, src /imap-login/imap-login-settings.c, src/imap-login/imap-proxy.c, src/imap/cmd-append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd- capability.c, src/imap/cmd-check.c, src/imap/cmd-close.c, src/imap /cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap /cmd-enable.c, src/imap/cmd-examine.c, src/imap/cmd-expunge.c, src/imap/cmd-fetch.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/cmd-logout.c, src/imap/cmd-lsub.c, src/imap/cmd-namespace.c, src/imap/cmd-noop.c, src/imap/cmd- rename.c, src/imap/cmd-search.c, src/imap/cmd-select.c, src/imap /cmd-sort.c, src/imap/cmd-status.c, src/imap/cmd-store.c, src/imap /cmd-subscribe.c, src/imap/cmd-thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd-unsubscribe.c, src/imap/cmd-x-cancel.c, src/imap/imap-client.c, src/imap/imap- commands-util.c, src/imap/imap-commands.c, src/imap/imap-expunge.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap- search-args.c, src/imap/imap-search.c, src/imap/imap-settings.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/imap/mail-storage- callbacks.c, src/imap/main.c, src/lda/main.c, src/lib-auth/auth- client-request.c, src/lib-auth/auth-client.c, src/lib-auth/auth- master.c, src/lib-auth/auth-server-connection.c, src/lib-charset /charset-iconv.c, src/lib-charset/charset-utf8.c, src/lib-dict/dict- client.c, src/lib-dict/dict-db.c, src/lib-dict/dict-file.c, src/lib- dict/dict-sql-settings.c, src/lib-dict/dict-sql.c, src/lib- dict/dict.c, src/lib-dict/test-dict.c, src/lib-dns/dns-lookup.c, src /lib-fs/fs-api.c, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-common.c, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-sis.c, src/lib-fs/ostream- cmp.c, src/lib-imap/imap-arg.c, src/lib-imap/imap-base-subject.c, src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-date.c, src /lib-imap/imap-envelope.c, src/lib-imap/imap-id.c, src/lib-imap /imap-match.c, src/lib-imap/imap-parser.c, src/lib-imap/imap- quote.c, src/lib-imap/imap-seqset.c, src/lib-imap/imap-utf7.c, src /lib-imap/imap-util.c, src/lib-imap/test-imap-match.c, src/lib-imap /test-imap-parser.c, src/lib-imap/test-imap-utf7.c, src/lib-imap /test-imap-util.c, src/lib-index/mail-cache-compress.c, src/lib- index/mail-cache-decisions.c, src/lib-index/mail-cache-fields.c, src /lib-index/mail-cache-lookup.c, src/lib-index/mail-cache-sync- update.c, src/lib-index/mail-cache-transaction.c, src/lib-index /mail-cache.c, src/lib-index/mail-index-alloc-cache.c, src/lib-index /mail-index-dummy-view.c, src/lib-index/mail-index-fsck.c, src/lib- index/mail-index-lock.c, src/lib-index/mail-index-map-hdr.c, src /lib-index/mail-index-map-read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index- strmap.c, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail- index-sync-keywords.c, src/lib-index/mail-index-sync-update.c, src /lib-index/mail-index-sync.c, src/lib-index/mail-index-transaction- export.c, src/lib-index/mail-index-transaction-finish.c, src/lib- index/mail-index-transaction-sort-appends.c, src/lib-index/mail- index-transaction-update.c, src/lib-index/mail-index-transaction- view.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail- index-util.c, src/lib-index/mail-index-view-sync.c, src/lib-index /mail-index-view.c, src/lib-index/mail-index-write.c, src/lib-index /mail-index.c, src/lib-index/mail-transaction-log-append.c, src/lib- index/mail-transaction-log-file.c, src/lib-index/mail-transaction- log-view.c, src/lib-index/mail-transaction-log.c, src/lib-index /mailbox-log.c, src/lib-index/test-mail-index-sync-ext.c, src/lib- index/test-mail-index-transaction-finish.c, src/lib-index/test-mail- index-transaction-update.c, src/lib-index/test-mail-transaction-log- append.c, src/lib-index/test-mail-transaction-log-view.c, src/lib- lda/duplicate.c, src/lib-lda/lda-settings.c, src/lib-lda/lmtp- client.c, src/lib-lda/mail-deliver.c, src/lib-lda/mail-send.c, src /lib-lda/smtp-client.c, src/lib-mail/istream-dot.c, src/lib-mail /istream-header-filter.c, src/lib-mail/mbox-from.c, src/lib-mail /message-address.c, src/lib-mail/message-date.c, src/lib-mail /message-decoder.c, src/lib-mail/message-header-decode.c, src/lib- mail/message-header-encode.c, src/lib-mail/message-header-parser.c, src/lib-mail/message-id.c, src/lib-mail/message-parser.c, src/lib- mail/message-part-serialize.c, src/lib-mail/message-search.c, src /lib-mail/message-send.c, src/lib-mail/message-size.c, src/lib-mail /quoted-printable.c, src/lib-mail/rfc2231-parser.c, src/lib- mail/rfc822-parser.c, src/lib-mail/test-istream-dot.c, src/lib-mail /test-istream-header-filter.c, src/lib-mail/test-mbox-from.c, src /lib-mail/test-message-address.c, src/lib-mail/test-message-date.c, src/lib-mail/test-message-decoder.c, src/lib-mail/test-message- header-decode.c, src/lib-mail/test-message-header-encode.c, src/lib- mail/test-message-header-parser.c, src/lib-mail/test-message-id.c, src/lib-mail/test-message-parser.c, src/lib-mail/test-quoted- printable.c, src/lib-mail/test-rfc2231-parser.c, src/lib-master /anvil-client.c, src/lib-master/master-auth.c, src/lib-master /master-login-auth.c, src/lib-master/master-login.c, src/lib-master /master-service-settings-cache.c, src/lib-master/master-service- settings.c, src/lib-master/master-service.c, src/lib-master/syslog- util.c, src/lib-settings/settings-parser.c, src/lib- settings/settings.c, src/lib-sql/driver-mysql.c, src/lib-sql/driver- pgsql.c, src/lib-sql/driver-sqlpool.c, src/lib-sql/sql-api.c, src /lib-sql/sql-db-cache.c, src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/cydir /cydir-sync.c, src/lib-storage/index/dbox-common/dbox-attachment.c, src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib- storage/index/dbox-common/dbox-file.c, src/lib-storage/index/dbox- common/dbox-mail.c, src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-sync-rebuild.c, src/lib-storage/index /dbox-multi/mdbox-file.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox- multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-copy.c, src/lib-storage/index/dbox-single/sdbox- file.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/dbox-single/sdbox-save.c, src/lib-storage/index/dbox- single/sdbox-storage.c, src/lib-storage/index/dbox-single/sdbox- sync-rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src /lib-storage/index/imapc/imapc-sync.c, src/lib-storage/index/index- attachment.c, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mailbox- check.c, src/lib-storage/index/index-search-result.c, src/lib- storage/index/index-search.c, src/lib-storage/index/index-sort- string.c, src/lib-storage/index/index-sort.c, src/lib-storage/index /index-status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-sync-changes.c, src/lib-storage/index/index- sync-search.c, src/lib-storage/index/index-sync.c, src/lib- storage/index/index-thread-finish.c, src/lib-storage/index/index- thread-links.c, src/lib-storage/index/index-thread.c, src/lib- storage/index/index-transaction.c, src/lib-storage/index/istream- attachment.c, src/lib-storage/index/istream-mail-stats.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-filename-flags.c, src/lib-storage/index/maildir/maildir- filename.c, src/lib-storage/index/maildir/maildir-keywords.c, src /lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-settings.c, src/lib-storage/index/maildir/maildir- storage.c, src/lib-storage/index/maildir/maildir-sync-index.c, src /lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /istream-raw-mbox.c, src/lib-storage/index/mbox/mbox-file.c, src /lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-md5.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- settings.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync-parse.c, src/lib-storage/index/mbox /mbox-sync-rewrite.c, src/lib-storage/index/mbox/mbox-sync-update.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw /raw-mail.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-sync.c, src/lib-storage/index/shared/shared- list.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/list/mailbox-list-delete.c, src/lib-storage/list/mailbox- list-fs-flags.c, src/lib-storage/list/mailbox-list-fs-iter.c, src /lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox- list-maildir-iter.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/list /mailbox-list-subscriptions.c, src/lib-storage/list/subscription- file.c, src/lib-storage/mail-copy.c, src/lib-storage/mail-error.c, src/lib-storage/mail-namespace.c, src/lib-storage/mail-search- build.c, src/lib-storage/mail-search-parser-cmdline.c, src/lib- storage/mail-search-parser-imap.c, src/lib-storage/mail-search- parser.c, src/lib-storage/mail-search-register-human.c, src/lib- storage/mail-search-register-imap.c, src/lib-storage/mail-search- register.c, src/lib-storage/mail-search.c, src/lib-storage/mail- storage-hooks.c, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-storage-settings.c, src/lib-storage/mail-storage.c, src /lib-storage/mail-thread.c, src/lib-storage/mail-user.c, src/lib- storage/mail.c, src/lib-storage/mailbox-get.c, src/lib-storage /mailbox-header.c, src/lib-storage/mailbox-keywords.c, src/lib- storage/mailbox-list.c, src/lib-storage/mailbox-search-result.c, src /lib-storage/mailbox-tree.c, src/lib-storage/mailbox-uidvalidity.c, src/lib-storage/test-mail-storage.c, src/lib-storage/test-mail.c, src/lib-storage/test-mailbox-get.c, src/lib-storage/test-mailbox.c, src/lib-test/test-common.c, src/lib/abspath.c, src/lib/aqueue.c, src/lib/array.c, src/lib/askpass.c, src/lib/backtrace-string.c, src/lib/base64.c, src/lib/bsearch-insert-pos.c, src/lib/buffer.c, src/lib/child-wait.c, src/lib/close-keep-errno.c, src/lib/compat.c, src/lib/crc32.c, src/lib/data-stack.c, src/lib/eacces-error.c, src/lib/env-util.c, src/lib/execv-const.c, src/lib/failures.c, src/lib/fd-close-on-exec.c, src/lib/fd-set-nonblock.c, src/lib /fdatasync-path.c, src/lib/fdpass.c, src/lib/file-cache.c, src/lib /file-copy.c, src/lib/file-dotlock.c, src/lib/file-lock.c, src/lib /file-set-size.c, src/lib/hash-format.c, src/lib/hash-method.c, src/lib/hash.c, src/lib/hash2.c, src/lib/hex-binary.c, src/lib/hex- dec.c, src/lib/home-expand.c, src/lib/hostpid.c, src/lib/imem.c, src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify-fd.c, src/lib /ioloop-notify-inotify.c, src/lib/ioloop-notify-none.c, src/lib /ioloop-poll.c, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib/iostream.c, src/lib/istream-base64-encoder.c, src/lib /istream-concat.c, src/lib/istream-crlf.c, src/lib/istream-data.c, src/lib/istream-file.c, src/lib/istream-limit.c, src/lib/istream- mmap.c, src/lib/istream-seekable.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/lib-signals.c, src/lib/lib.c, src/lib /mempool-alloconly.c, src/lib/mempool-datastack.c, src/lib/mempool- system.c, src/lib/mempool-unsafe-datastack.c, src/lib/mempool.c, src/lib/mkdir-parents.c, src/lib/mmap-anon.c, src/lib/mmap-util.c, src/lib/module-dir.c, src/lib/mountpoint.c, src/lib/network.c, src/lib/nfs-workarounds.c, src/lib/ostream-buffer.c, src/lib /ostream-file.c, src/lib/ostream.c, src/lib/printf-format-fix.c, src/lib/priorityq.c, src/lib/process-title.c, src/lib/randgen.c, src/lib/read-full.c, src/lib/restrict-access.c, src/lib/restrict- process-size.c, src/lib/safe-memset.c, src/lib/safe-mkdir.c, src/lib /safe-mkstemp.c, src/lib/sendfile-util.c, src/lib/seq-range-array.c, src/lib/str-find.c, src/lib/str-sanitize.c, src/lib/str.c, src/lib/strescape.c, src/lib/strfuncs.c, src/lib/strnum.c, src/lib /test-aqueue.c, src/lib/test-array.c, src/lib/test-base64.c, src/lib /test-bsearch-insert-pos.c, src/lib/test-buffer.c, src/lib/test- crc32.c, src/lib/test-hash-format.c, src/lib/test-hex-binary.c, src/lib/test-istream-base64-encoder.c, src/lib/test-istream- concat.c, src/lib/test-istream-crlf.c, src/lib/test-istream- seekable.c, src/lib/test-istream-tee.c, src/lib/test-lib.c, src/lib /test-llist.c, src/lib/test-mempool-alloconly.c, src/lib/test- network.c, src/lib/test-ostream-file.c, src/lib/test-primes.c, src/lib/test-priorityq.c, src/lib/test-seq-range-array.c, src/lib /test-str-find.c, src/lib/test-str-sanitize.c, src/lib/test- strescape.c, src/lib/test-strfuncs.c, src/lib/test-time-util.c, src/lib/test-utc-mktime.c, src/lib/test-var-expand.c, src/lib/time- util.c, src/lib/unichar.c, src/lib/unix-socket-create.c, src/lib /unlink-directory.c, src/lib/unlink-old-files.c, src/lib/utc- mktime.c, src/lib/utc-offset.c, src/lib/var-expand.c, src/lib/write- full.c, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/lmtp- proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/main.c, src/log/log- connection.c, src/log/log-settings.c, src/log/main.c, src/login- common/access-lookup.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/login-proxy-state.c, src/login-common/login-proxy.c, src/login-common/login-settings.c, src/login-common/main.c, src/login-common/sasl-server.c, src/login- common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/master/dup2-array.c, src/master/main.c, src/master/master-settings.c, src/master/service- anvil.c, src/master/service-listen.c, src/master/service-log.c, src/master/service-monitor.c, src/master/service-process-notify.c, src/master/service-process.c, src/master/service.c, src/plugins/acl /acl-api.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/expire/doveadm-expire.c, src/plugins/expire /expire-plugin.c, src/plugins/expire/expire-set.c, src/plugins/fts- lucene/fts-backend-lucene.c, src/plugins/fts-lucene/fts-lucene- plugin.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts- solr/fts-solr-plugin.c, src/plugins/fts-solr/solr-connection.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts-squat /fts-squat-plugin.c, src/plugins/fts-squat/squat-test.c, src/plugins /fts-squat/squat-trie.c, src/plugins/fts-squat/squat-uidlist.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts-mailbox.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-search.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap-acl- plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins /imap-zlib/imap-zlib-plugin.c, src/plugins/lazy-expunge/lazy- expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/quota/doveadm- quota.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota- dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota/quota- fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota- plugin.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- config.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual /virtual-plugin.c, src/plugins/virtual/virtual-save.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-sync.c, src/plugins/virtual /virtual-transaction.c, src/plugins/zlib/doveadm-zlib.c, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c, src/plugins/zlib/zlib-plugin.c, src/pop3-login/client- authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-login- settings.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/ssl-params/main.c, src/ssl-params/ssl- params-openssl.c, src/ssl-params/ssl-params-settings.c, src/ssl- params/ssl-params.c, src/util/gdbhelper.c, src/util/maildirlock.c, src/util/rawlog.c, src/util/script-login.c, src/util/script.c, src/util/tcpwrap-settings.c, src/util/tcpwrap.c: Updated copyright notices to include year 2011. [447bce266022] * src/plugins/virtual/virtual-config.c: virtual: Allow search rule continuation lines to begin with tab as well as space. [991d1dfa88d4] * src/lib-imap/imap-parser.c: lib-imap: imap_parser_finish_line() didn't return failure on invalid input. [92212cdfb962] * src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c: sdbox: Fixed creating mailbox with given GUID. [6f0321a9dce7] * src/plugins/acl/doveadm-acl.c: doveadm acl debug: If any errors are noticed, fix them. [a177e4f3ee2e] * src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl-api.h, src/plugins/acl/acl-backend-vfile- acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl- backend-vfile.h: acl: Added acl_backend_nonowner_lookups_rebuild() [988e363ac17d] * src/plugins/acl/doveadm-acl.c: doveadm acl debug: Compile fix for earlier change. [6b0f4dc0fac6] * src/plugins/acl/doveadm-acl.c: doveadm: Added acl delete command. [5dea44b3d133] * src/plugins/acl/doveadm-acl.c: doveadm acl debug: Show also if mailbox has private flags. [cb393d8a1fd7] * src/lib-storage/index/shared/shared-list.c: lib-storage: Fixed accessing shared mailboxes. [a121592817ba] * src/lib-storage/mail-storage-service.c: lib-storage: MAIL_STORAGE_SERVICE_FLAG_DEBUG didn't do anything. [e26af53b6b40] * src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-lookup- dict.h, src/plugins/acl/doveadm-acl.c: acl: Added doveadm acl debug command. [a868f845cd40] * src/plugins/acl/acl-lookup-dict.c: acl: Fixed crash when acl_lookup_dict was disabled and user belonged to groups. [d03bdf2bf709] * src/plugins/acl/Makefile.am, src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/doveadm-acl.c: acl: Added doveadm plugin supporting acl get/set/rights commands. [5b16b5436e4e] 2011-02-28 Timo Sirainen * src/lib-storage/index/index-thread.c: lib-storage: Crashfix on thread handling. [0a8ed89df696] * src/lib-storage/index/imapc/imapc-client-private.h, src/lib- storage/index/imapc/imapc-client.c, src/lib-storage/index/imapc /imapc-client.h, src/lib-storage/index/imapc/imapc-connection.c, src /lib-storage/index/imapc/imapc-connection.h, src/lib- storage/index/imapc/imapc-list.c, src/lib-storage/index/imapc/imapc- save.c, src/lib-storage/index/imapc/imapc-search.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Use multiple client connections when necessary. Some other fixes. [c5816dd58dcf] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Fixed sending large streams in commands (APPEND) [c23cd8a92661] 2011-02-24 Timo Sirainen * src/lib-storage/index/imapc/imapc-search.c: imapc: Don't try to wait for FETCH to return messages that are known to be expunged. [b36c14a5d680] * src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-search.c: imapc: Fixes to handling FETCH commands. [0c1e221fc140] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-connection.h, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- seqmap.c, src/lib-storage/index/imapc/imapc-seqmap.h, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c, src/lib- storage/index/imapc/imapc-sync.h: imapc: Many fixes related to syncing and error handling. [345100da8c67] * src/lib-index/mail-index-private.h, src/lib-index/mail-index-view.c, src/lib-index/mail-index.c, src/lib-index/mail-transaction-log- view.c, src/lib-index/mail-transaction-log.c, src/lib-index/mail- transaction-log.h: lib-index: Give better assert-crashes if view or log view isn't closed. Earlier it should have also assert-crashed with "log->files == NULL", which didn't make it clear enough why the files aren't NULL. [74300385cce0] * src/lib/ioloop.c: ioloop: Memory leak fix. [3e8ee35da672] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Fixed crashing in IDLE handling when server got disconnected. [8e222035b6e9] * src/imap/imap-sync.c, src/lib-index/mail-index-transaction.c, src/lib/process-title.c: Avoid unnecessary data stack leaks. [ea1c0e39f794] * src/lib-index/mail-index-transaction-export.c: lib-index: If keyword is added and remove within transaction, don't write a broken keyword update. This could have caused "No UID ranges (type=0x400)" errors. [99b340a4c747] 2011-02-22 Timo Sirainen * NEWS: NEWS updated with initial list of new features. [a9162e7c3574] * TODO: TODO updated [04073884748a] * TODO, configure.in, src/doveadm/doveadm-mail-import.c, src/doveadm /doveadm-mail.c, src/dsync/dsync-worker-local.c, src/imap/cmd- copy.c, src/imap/imap-client.c, src/imap/imap-client.h, src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- map.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/list/mailbox- list-none.c, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/mailbox-list.c, src/lib/ioloop.c, src/lmtp/client.c, src/lmtp/commands.c, src/plugins/virtual/virtual- save.c, src/util/script.c: Merged changes from v2.0 tree. [baa0314ed610] * src/config/config-request.c: config: Previous commit allows removing "0" from strlist/0/key=value output. [e7fa2906f875] * src/lib-settings/settings-parser.c: lib-settings: Fixed setting "strlist/key=value" when strlist hadn't been initialized yet. This happened when using -O parameter. [bc77e80947c0] * doc/example-config/conf.d/15-lda.conf, src/lib-lda/lda-settings.c, src/lib-lda/lda-settings.h, src/lib-lda/smtp-client.c: lib-lda: Added submission_host setting to send mails via SMTP instead of sendmail. [be78b9fd88e7] * src/imap/imap-client.c, src/imap/imap-client.h: imap: Fixed infinite loop / memory eating with SEARCHRES + pipelining $. If SEARCH RETURN (SAVE) command was running long enough so that Dovecot started executing the next command, and if that command used $ in messageset, Dovecot went into infinite function recursion. [3053befe6a64] 2011-02-22 Mike Kazantsev (sacrilege) * dovecot.service.in: systemd service: added [Install] section, so it can be used independently from dovecot.socket [324f9ca60539] 2011-02-22 Timo Sirainen * src/plugins/expire/doveadm-expire.c: doveadm expire: Added more error and debug messages. [9862e8388a1c] * src/doveadm/doveadm-mail-import.c: doveadm import: Settings weren't correctly used for the import storage. For example plugins weren't loaded, causing problems with zlib compressed messages. [dc4e0320c087] * src/lib-index/mail-transaction-log-view.c: lib-index: Verify that expunge-guid records have valid UID. [9a4c198597d8] 2011-02-18 Timo Sirainen * src/plugins/zlib/doveadm-zlib.c: Compiler warning fix. [cce208f9b393] * src/lib/unichar.c, src/lib/unichar.h: Added uni_utf8_data_is_valid(). [35c6df7f6144] 2011-02-17 Pascal Volk * doc/man/doveadm-quota.1.in: man: Storage quota values are reported in kilobytes. [206cc9b37215] 2011-02-17 Timo Sirainen * src/dsync/dsync-brain-msgs-new.c: dsync: Flush workers' output earlier when saving messages. [b48c31797b93] * src/dsync/dsync-proxy-client.c: dsync: Error handling fix to "proxy client timed out". [b1992c77e9d2] * src/dsync/dsync-proxy-client.c: dsync: Fixed somewhat random failures with saving messages to remote dsync. [7ce47a476656] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib- storage/index/dbox-common/dbox-sync-rebuild.h, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox- single/sdbox-sync-rebuild.c: dbox index rebuild: If alt dir isn't mounted (can't be mkdir()ed), abort rebuild. [159605040ec0] * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Check that attachment extref parts won't point outside message. [c9af551124fb] * src/lib/istream-limit.c: istream-limit: Allow seeking past limit without assert-crashing. The next read() will simply return EOF. [7705bd04924c] * doc/example-config/conf.d/20-pop3.conf: example-config: mail_max_userip_connections default is 10, even for pop3. 3 would probably be better, but there's no way to set per- protocol defaults currently. [db7abf4a29e5] * src/lib-sql/driver-pgsql.c: pgsql: Added assert. [b3cb10df15e6] * src/lib-sql/driver-pgsql.c: pgsql: Don't assert-crash on "query timed out" error. [7d265040cd02] * src/lib-storage/mail-storage.c: lib-storage: Fixed renaming mailboxes in a non-private namespace. [3c61817f30bb] * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: lmtp: Don't forget LHLO host when sending multiple messages in session. [aba5a6a24b99] 2011-02-11 Timo Sirainen * src/auth/auth-request.c: auth: If username contains invalid chars, log sanitized username even without auth_debug. [049a922c193c] * src/doveadm/doveadm-mail.c: doveadm: Previous mailbox create -s fix broke -A/-u parameters. Fixed now properly the root cause: -S parameter was handled as -s by getopt. [775a3a64ea74] 2011-02-10 Dennis Schridde * src/lib/module-dir.c: Put modulename in quotes when complaining about its non-existence [723a26a7d328] 2011-02-10 Timo Sirainen * src/master/main.c: master: Change stderr to /dev/null just before forking. [08e4280e5bfd] * src/lib-mail/istream-header-filter.c: istream-header-filter: Fixes handling HEADER_FILTER_END_BODY_WITH_LF correctly. [079a81fb5117] * src/lib-storage/list/mailbox-list-maildir.c: Maildir++: Fixed crash when listing subscriptions for a subscriptions=no namespace from LAYOUT=fs namespace. [4374ae187075] * src/doveadm/doveadm.c, src/lib-lda/smtp-client.c, src/lib-master /master-interface.h, src/lib-master/master-service-settings.c, src /lib-master/master-service-settings.h, src/lib-master/master- service.c, src/lib-master/master-service.h, src/lib-storage/mail- storage-service.c, src/master/main.c, src/master/master-settings.c, src/master/master-settings.h, src/master/service-process.c, src/master/service.c, src/master/service.h: Added import_environment setting. This also cleans up different places in code where TZ and other environments are preserved. If it's not in the import_environment setting, it's not preserved. [cec7fa92ff48] * src/doveadm/doveadm-mail.c: doveadm: Fixed giving parameters to mail commands. [98f13cc1e649] 2011-02-08 Timo Sirainen * src/lib-master/master-auth.c: lib-master: If post-login socket disconnects unexpectedly, suggest process_limit being the reason. [443cc3044d91] * src/master/service-monitor.c: master: If process limit is reached, just accept and close the client connection. This makes it a bit clearer what the problem is, so that client can log a better error message. [b399f91ae660] 2011-02-07 Timo Sirainen * src/lib-storage/mail-storage-service.c: lib-storage: Give restrict_access() uid/gid source (userdb or mail_u/gid setting). [888999441619] * src/lib/restrict-access.c, src/lib/restrict-access.h: restrict_access(): Show uid/gid source in setuid()/setgid() failure messages if given. [cb2c008ae3e8] 2011-02-04 Timo Sirainen * src/lmtp/commands.c: lmtp: Fixed handling recipient_delimiter when it was found from domain name. [c34d871a7bb6] 2011-02-02 Timo Sirainen * src/imap/cmd-copy.c: imap: Fixed a hang when trying to COPY to a nonexistent mailbox. [826981b2c5c4] 2011-01-31 Timo Sirainen * src/lib-sql/driver-mysql.c: lib-sql: Implemented sql_result_get_field_value_binary() for MySQL. [5a6e44ca5825] 2011-01-30 Timo Sirainen * dovecot-config.in.in, dovecot.m4: dovecot-config, dovecot.m4: Export SQL_LIBS as DOVECOT_SQL_LIBS [816a6e69d4b5] * src/lib-sql/Makefile.am: lib-sql: Install libdovecot-sql.so as well. [f57d19f262a5] * src/lib-storage/list/mailbox-list-none.c: lib-storage: layout=noop now shows INBOX as existing if namespace has inbox=yes. It also shows INBOX as always being subscribed. [ff73c325ff01] * src/util/script.c: script: Root permissions weren't being dropped before executing the script. [7ec1982fb275] 2011-01-26 Timo Sirainen * src/lib/ioloop.c: ioloop: Use -1 for infinite poll/epoll timeout rather than INT_MAX. Should improve performance a tiny bit and also works around a CPU eater bug in Linux 2.6.37. [16ce45dbcb53] 2011-01-25 Timo Sirainen * src/lib-storage/mailbox-list.c: lib-storage: Give a better error message if mail_location has INBOX but no mail root dir. [fc02e620204d] * src/lib/file-dotlock.c: dotlocks: When locking using hard links, make sure the dotlock's timestamp is new enough. [3582271a897e] 2011-01-24 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.c: dbox: mailbox_create/update() might not have updated index header correctly. [42ca32299617] 2011-01-21 Timo Sirainen * src/imap/cmd-idle.c: IDLE: Don't assert-crash if IDLE+DONE is sent in same TCP packet. [4741f1b4f9b3] * src/plugins/zlib/Makefile.am, src/plugins/zlib/doveadm-zlib.c: Added doveadm zlibconnect command for testing IMAP COMPRESS. [108754651836] * src/plugins/zlib/ostream-zlib.c: zlib: Make sure output stream flushes the stream automatically when not corked. Fixes hangs with IMAP COMPRESS extension. [b71834419ea3] 2011-01-20 Timo Sirainen * src/lib/file-dotlock.c: dotlocks: Refresh current time after having waited for a lock. [5a3c87124066] * src/lib-storage/mail-storage-service.c: lib-storage: Fixed handling chroot/home for services that don't really chroot (lmtp). [0fc2d00f83df] 2011-01-19 Pascal Volk * src/lmtp/commands.c: lmtp: Write "+ext" part to Delivered-To: header. (reverted changeset 19231e3585db) [a3a7cc0172fd] 2011-01-19 Timo Sirainen * src/auth/auth-request.c: auth: Logging improvement for nopassword=y. [4b16a5b1da62] 2011-01-17 Timo Sirainen * src/lib-index/mail-index.c: lib-index: Avoid corrupting dovecot.index file when recreating it even in case of broken file locking. [7ecc5e10da57] 2011-01-16 Christian Wiese * src/auth/mech-winbind.c: auth: Fixed mech_winbind_ntlm by using mech_winbind_auth_initial() In changeset 9002 a new function named mech_winbind_auth_initial() was introduced, but only the mech_winbind_spnego module part was changed to finally use this function. The mech_winbind_ntlm module part was not properly adapted which leads to a non functioning NTLM authentication mechanism while using winbind, because it will never call the `ntlm_auth` helper. The simple fix is to replace mech_generic_auth_initial() with mech_winbind_auth_initial() as auth_initial "hook" when setting up the mech_winbind_ntlm module, like it is done in the mech_winbind_spnego module. References: - Changeset 9002: http://hg.dovecot.org/dovecot-2.0/diff/9d0037a997f4/src/auth/mech- winbind.c --- src/auth/mech-winbind.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) [d8179b523116] 2011-01-16 Timo Sirainen * doc/man/dsync.1.in: man: Updated dsync.1's -o parameter description. [31ffb4e631ab] * doc/man/dovecot-lda.1.in: man: Added -o parameter to dovecot-lda.1 [9d111f5b22e2] * src/lib/mkdir-parents.c: mkdir_*chown/chgrp(): If chown() fails, rmdir() the directory. [c75a13e5b678] * src/dsync/dsync-data.c: dsync: Fixed crash when mailbox had zero cache_fields but its array was initialized. [113b54dcb950] 2011-01-13 Timo Sirainen * .hgsigs: Added signature for changeset 440fcf8cb338 [af92646d36d6] * .hgtags: Added tag 2.0.9 for changeset 440fcf8cb338 [fc4cbc255691] * NEWS, TODO, configure.in: Released v2.0.9. [440fcf8cb338] [2.0.9] 2011-01-09 Timo Sirainen * src/lib/istream.c: i_stream_read(): Added extra assert. [fdb79a873e37] * src/lib/istream-seekable.c: istream-seekable: Minor code cleanup. [80c055dbea89] * src/auth/passdb.c: auth: Don't give an error if doing a passdb lookup and the result has NULL password. [ed675e34dfa7] * src/lib-sql/driver-pgsql.c: pgsql: When executing synchronous queries, don't wrongly add a connect timeout. [f043ef71b936] * src/lib-storage/index/cydir/cydir-mail.c: cydir: Minor code fix. [73a889098495] 2011-01-08 Timo Sirainen * src/lib/istream-seekable.c: istream-seekable: Minor code cleanup. [5f49aebe8120] 2011-01-05 Timo Sirainen * src/dsync/dsync-worker-local.c: dsync: Don't crash if message can't be saved to destination mailbox. [7bdd06de6f5a] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-multi/mdbox- map.c, src/lib-storage/index/dbox-single/sdbox-save.c: mdbox: Don't leave partially written messages to mdbox files. [39f5ef8d612c] * src/dsync/dsync-brain-msgs.c: dsync: Fixed iterating through mailboxes when using proxy. This fixes "Unexpected reply from server: +" errors. [b32e7bc87a09] 2011-01-04 Timo Sirainen * src/config/config-parser.c: config: Give clear error that auth settings aren't supported inside local/remote blocks. [89f4e4cdbeac] * src/login-common/client-common.c, src/login-common/login-settings.c, src/login-common/login-settings.h: login: ssl_require_client_cert and ssl_username_from_cert settings should have had auth_ prefix. The actual functionality was provided by the auth_* settings, but with these duplicated settings login process didn't give as good error messages. [fd9c01323475] * src/auth/passdb-cache.c: auth: Minor code cleanup, use PASSWORD_HIDDEN_STR macro. [8e84c40b7a67] * src/lib-storage/list/mailbox-list-maildir.c: maildir: Fixed renaming child mailboxes when using a namespace prefix. [6e95552439e1] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Getting mailbox GUID unnecessarily rewrote the uidlist. [af5903102d38] * configure.in: IDLE was listed twice in capabilities. [d607cdd33f0c] * src/dsync/dsync-worker-local.c: dsync: Saved messages' save-date was set to 1970-01-01. [a45ce2faf82a] * src/plugins/virtual/virtual-save.c: virtual: Fixed saving multiple mails in a transaction (e.g. copy multiple messages). [3216c3883a7b] * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlite.c: lib-sql: Include Dovecot version number check when loading SQL plugins. [b8896cfa38cb] 2011-01-03 Timo Sirainen * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: Simplified mail_deliver_deduplicate_guid_if_needed() API. [48fa29e1c34b] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Added mailbox_save_get_transaction(). [048d7025c89f] * src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-lda/mail- deliver.h, src/lmtp/commands.c: lmtp: If delivering duplicate messages to same user's INBOX, use different GUIDs. This is to avoid POP3 clients getting confused with duplicate UIDLs, when using GUIDs as UIDLs. [2b8d7b6bcfc7] * src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-single/sdbox-copy.c: dbox: If mail GUID is changed for copied mail, create a new copy of it so it changes. [384d8615039f] 2011-02-19 Timo Sirainen * configure.in, src/lib-storage/register/Makefile.am: Fixed compiling with configure --with-storages when imapc wasn't listed. [437e24ac6303] * src/lib-storage/mailbox-list.c: fs layout: Fixed crash on listing % when namespace had a prefix. [bd780e7bdba6] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-storage.c: imapc: Added more debugging output with mail_debug=yes [ce7b1fa63f2f] 2011-02-17 Timo Sirainen * src/lib-storage/index/imapc/Makefile.am: Makefile: Added missing imapc-client*.h [4363f0b68031] * src/lib-storage/index/imapc/imapc-storage.c: imapc: When local IDLE is started, force remote server to first check changes with NOOP. This is makes clicking Thunderbird's "get mail" button to check for new mails with servers that don't notify about them immediately after they arrive. [ceab4f233bff] 2011-02-12 Timo Sirainen * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-list.c, src/lib-storage/index/imapc/imapc-list.h: imapc: Mailbox listing code works now perfectly. [0af45e821da1] * src/lib-storage/mailbox-list.c: lib-storage: Fixes to mailbox_list_iter_update() [440a1a3660ba] * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_mailbox() should have replaced info flags, not updated them. Many callers didn't have the flags cleared before calling it. [47b4b5a12335] * src/lib-storage/mailbox-tree.c, src/lib-storage/mailbox-tree.h: lib-storage: Added mailbox_tree_set_separator() [f11870d3db09] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-maildir-iter.c: lib-storage: Minor code cleanup. [0393b95d3289] * src/lib-storage/list/mailbox-list-subscriptions.c, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: When listing subscriptions, make sure children flags are returned if requested. [59748a023cc4] * src/lib/printf-format-fix.c: printf_format_fix*() assert-crashed if the format ended with "%%". [43edb481978f] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/list/mailbox-list-fs-iter.c, src/plugins/virtual/virtual- storage.c: lib-storage: layout=fs now uses mailbox_exists() instead of requiring storage hooks. [c65dc5f520f8] * src/lib-storage/mail-storage.c: lib-storage: mailbox_create() failed if it was done to \noselect mailbox. [078419bc739a] * src/lib-storage/list/index-mailbox-list.c: lib-storage: mailbox_list_index setting meaning was reversed. [03a8767cb9e5] * src/imap/cmd-subscribe.c, src/lib-storage/index/index-storage.c, src /lib-storage/index/index-storage.h, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/test-mailbox.c, src/plugins/acl/acl- mailbox.c, src/plugins/autocreate/autocreate-plugin.c: lib-storage: mailbox_exists() can now return if it's selectable or non-selectable. [b281619735c6] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-none.c, src/lib-storage/list/mailbox-list-subscriptions.c, src /lib-storage/list/mailbox-list-subscriptions.h, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-list.c: lib-storage: Changed mailbox_list.subscriptions_refresh() API to be more flexible. The new API makes it easier implement subscriptions=no to a backend that doesn't use the regular subscriptions file. [28f43332ba12] * src/lib-storage/list/index-mailbox-list.c: lib-storage: Mailbox list indexes are now enabled also for in-memory indexes. [87a75628c8f5] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c: lib-storage: Don't allow renaming mailbox under another one with different permissions. This is mainly to avoid any weird situations arising with shared mailboxes. [e2605d2d6b33] * src/lib-storage/list/index-mailbox-list.c: lib-storage: Crashfix to removing deleted mailboxes from mailbox list index. [31b633336ab5] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/mailbox-list.c: lib-storage: When creating a new mailbox, get permissions from its parent mailbox, not root. [238bafcca676] 2011-02-09 Timo Sirainen * src/lib-storage/list/index-mailbox-list-status.c, src/lib- storage/list/index-mailbox-list.c, src/lib-storage/list/index- mailbox-list.h: lib-storage: Use RECENT count in mailbox list index to set \Marked and \UnMarked LIST flag. [0cadba9597cb] * src/lib-storage/list/index-mailbox-list-status.c: lib-storage: Update mailbox list indexes also after each transaction commit. Fixed RECENT counter. [c296f95b856c] * src/lmtp/client.c: lmtp: Fixed crash at startup. [47ce7fec6f22] * src/lda/main.c: lda: Fixed crash at startup. [f02d429ff6bd] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-sync.c, src/lib-storage/index/maildir/maildir- sync-index.c, src/lib-storage/index/maildir/maildir-sync.h, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/list/index-mailbox-list-status.c, src /lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c: lib-storage: Return STATUS replies from mailbox list index only when it's fully up-to-date. [87f84a76fb1e] 2011-02-08 Timo Sirainen * src/lib-storage/list/index-mailbox-list-status.c, src/lib- storage/list/index-mailbox-list.c, src/lib-storage/list/index- mailbox-list.h: lib-storage: Mailbox list indexes now refresh the index on create/delete/rename. [d3d5f104ca40] * src/doveadm/doveadm-dump-index.c, src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index.h: lib-index: sync_stamp and sync_size fields are unused, mark them as such. [13fdb8fed8bc] * src/lib-storage/index/mbox/mbox-sync.c: mbox: No longer try to preserve sync stamps from v1.0 mbox index files. The worst that can happen is if a v1.0 user upgrades to v2.1, an mbox gets resynced unnecessarily. [f5f877ecd7f6] * src/lib-index/Makefile.am, src/lib-index/mailbox-list-index- private.h, src/lib-index/mailbox-list-index-sync.c, src/lib-index /mailbox-list-index.c, src/lib-index/mailbox-list-index.h, src/util/Makefile.am, src/util/listview.c: lib-index: Removed the old "mailbox list" type index, which is no longer used. It was rather overdesigned and fragile. [46dc31d8769f] * src/lib-storage/list/Makefile.am, src/lib-storage/list/index- mailbox-list-status.c, src/lib-storage/list/index-mailbox-list- sync.c, src/lib-storage/list/index-mailbox-list.c, src/lib- storage/list/index-mailbox-list.h, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage /mail-storage.c: lib-storage: Initial commit for rewritten mailbox list indexes code. They're only enabled with mailbox_list_index=yes setting (default is no). They can also get out of sync pretty easily currently. [ad002fdc6a6c] * src/lib-index/mail-transaction-log-append.c: lib-index: Avoid writing tail offset unnecessarily to transaction log file. This could have happened with MAIL_INDEX_TRANSACTION_FLAG_AVOID_FLAG_UPDATES when all flag updates were cancelled and no other changes were done. [19ffd1889f40] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Crashfix to layout=fs. [96c284f7548f] 2011-02-05 Timo Sirainen * src/lib-storage/list/mailbox-list-subscriptions.c, src/lib-storage /mailbox-list.c: lib-storage: Crashfix. [951d89021e5f] 2011-02-02 Timo Sirainen * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/index- mailbox-list.c, src/lib-storage/list/mailbox-list-fs-iter.c, src /lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox- list-maildir-iter.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/list /mailbox-list-subscriptions.c, src/lib-storage/list/mailbox-list- subscriptions.h, src/lib-storage/list/subscription-file.c, src/lib- storage/list/subscription-file.h, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- tree.c, src/lib-storage/mailbox-tree.h: lib-storage: Cleaned up subscription listing internally. The subscription listing code is now mostly separated from the mailbox listing code. [4e4c7f982fd5] * src/imap/cmd-list.c: IMAP LIST: Never return subscribed children state if RECURSIVEMATCH isn't specified. Not even when backends give it automatically. [fa4b84059ae2] * src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Support IDLE even if remote IMAP server doesn't support it. [4fdf3084f74f] * src/plugins/autocreate/Makefile.am, src/plugins/autocreate /autocreate-plugin.c: autocreate: Redesigned autocreate plugin to create/subscribe mailboxes lazily. Mailboxes are listed as if they existed, but they're not created until the mailbox is opened for the first time. Mailboxes are autosubscribed only during mailbox creation, so subscription file isn't unnecessarily being read all the time either. This lazy creation also means that if autocreate mailbox is removed from configuration and it was never opened by the client, it was also never physically created. [431430c43aec] * src/lib-storage/list/mailbox-list-maildir-iter.c: lib-storage: Fixed mailbox listing with Maildir++ layout [1c8cc9bdb141] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/mailbox- list-private.h: lib-storage: Made struct mailbox_list_iterate_context usable for plugins. [2c599f0eab69] 2011-02-01 Timo Sirainen * src/lib-storage/index/maildir/maildir-storage.c: maildir: Avoid stat()ing dovecot-shared unnecessarily. [7701fb66d82a] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/list/subscription-file.c, src/lib-storage/mail- storage.c, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- list.h, src/lib-storage/mailbox-uidvalidity.c, src/plugins/acl/acl- backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota /quota-maildir.c: lib-storage: Merged returning dir mode into mailbox_list_get_[root_]permissions(). [82f984d7a241] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-mailbox- status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm- mail.c, src/doveadm/doveadm-mail.h, src/imap/cmd-list.c, src/imap /cmd-subscribe.c, src/imap/imap-commands-util.c, src/imap/imap- fetch.c, src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-storage /mail-search-register-human.c, src/lib-storage/mail-search-register- imap.c, src/lib-storage/mail-storage.c, src/lib-storage/mailbox- list.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-config.c: lib-storage: Mailbox virtual names are now in UTF-8 format, not IMAP mUTF-7. Plugins that use mailbox names in configuration now take them also as UTF-8 rather than mUTF-7. [02370eda76f8] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Don't use uninitialized variable. [49f487b435bd] * src/lib-storage/index/imapc/imapc-settings.c, src/lib- storage/index/imapc/imapc-storage.c: imapc: Default imapc_user to %u. [e945bf4f1e59] * src/lib-storage/index/imapc/imapc-list.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c: imapc: Don't force a root directory to exist. [aa131065b53d] * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-settings.c, src/lib-storage/index/imapc/imapc-settings.h, src /lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h: imapc: Moved settings from plugin {} section to proper imapc_* settings. [495fb0e9f7cc] 2011-01-31 Timo Sirainen * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c: imapc: Added support for STARTTLS. [893e0738733b] * src/lib-ssl-iostream/iostream-openssl.c: lib-ssl-iostream: Don't hang if given output stream is in corked state. [dab0e52eb294] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Avoid hanging with SSL [31eb7db0c4b9] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c: imapc: Don't use AUTHENTICATE PLAIN if server doesn't advertise AUTH=PLAIN capability. [4244c828b59d] * src/lib-storage/index/imapc/imapc-list.c: imapc: Fixed LIST/LSUB handling. [b9baa9db8950] * src/lib-storage/index/imapc/imapc-storage.c: imapc: Fixed sending STATUS command. [c83cdf089725] * src/Makefile.am: Makefile: Build lib-ssl-iostream earlier [ac84693374ad] * configure.in, src/lib-storage/index/imapc/Makefile.am, src/lib- storage/index/imapc/imapc-client-private.h, src/lib- storage/index/imapc/imapc-client.c, src/lib-storage/index/imapc /imapc-client.h, src/lib-storage/index/imapc/imapc-connection.c, src /lib-storage/index/imapc/imapc-storage.c: imapc: Added initial support for SSL. [7b7434fef6ff] * configure.in, src/Makefile.am, src/lib-ssl-iostream/Makefile.am, src /lib-ssl-iostream/iostream-openssl-context.c, src/lib-ssl-iostream /iostream-openssl-params.c, src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream/iostream-openssl.h, src/lib-ssl-iostream /iostream-ssl.h, src/lib-ssl-iostream/istream-openssl.c, src/lib- ssl-iostream/ostream-openssl.c: Added lib-ssl-iostream for handling SSL connections more easily. [bd23d4e10fa1] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-mail.c, src /lib-storage/index/imapc/imapc-mail.h, src/lib-storage/index/imapc /imapc-mailbox.c, src/lib-storage/index/imapc/imapc-save.c, src/lib- storage/index/imapc/imapc-search.c, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Write large message bodies to temp files rather than keeping in memory. [3dde816d945d] * src/lib-imap/imap-arg.h, src/lib-imap/imap-parser.c: lib-imap: struct imap_arg.str_size now contains the string value lengths. This is especially useful for literals that might contain NUL bytes. [1e88287fc721] * src/lib-storage/index/index-thread.c: lib-storage: Threading code uses now separate extra_wanted_headers also. [cecc6c28ce0e] * src/lib-storage/index/imapc/imapc-mail.h, src/lib- storage/index/imapc/imapc-search.c: imapc: Fixed sending single FETCH queries. [676b6d931624] * src/imap/imap-search.c, src/lib-storage/index/index-mail-headers.c, src/lib-storage/index/index-search-private.h, src/lib-storage/index /index-search.c, src/lib-storage/index/index-sort.c, src/lib-storage /mail-storage-private.h: lib-storage: Moved setting "wanted fields/headers" fields for sort program from imap-specific code. Also separate between fields that are actually wanted to be fetched from the fields that sorting wants to temporarily use. [16a541057e88] * src/lib-storage/index/imapc/imapc-search.c: imapc: Minor code cleanup [4964b39c6ae4] 2011-01-30 Timo Sirainen * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-client-private.h, src/lib-storage/index/imapc/imapc-client.c, src/lib-storage/index/imapc/imapc-client.h, src/lib- storage/index/imapc/imapc-connection.c, src/lib-storage/index/imapc /imapc-connection.h, src/lib-storage/index/imapc/imapc-mail.c, src /lib-storage/index/imapc/imapc-mail.h, src/lib-storage/index/imapc /imapc-mailbox.c, src/lib-storage/index/imapc/imapc-search.c, src /lib-storage/index/imapc/imapc-storage.c, src/lib- storage/index/imapc/imapc-storage.h, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-mail.h: imapc: Send UID FETCH commands with larger uidset parameter if possible. This code assumes that server doesn't reorganize FETCH replies when it's given an increasing UID range, which in theory IMAP server would be allowed to do, but I doubt there are any. [391ba80cb125] * src/lib-storage/index/Makefile.am, src/lib-storage/index/index- search-private.h, src/lib-storage/index/index-search.c: lib-storage: Index search context is now more accessible by backends. Moved struct index_search_context to index-search- private.h and added recheck_index_args flag that backends can set. [b96efbad2fa4] * src/util/script.c: script: Root permissions weren't being dropped before executing the script. [40f668d36547] 2011-01-28 Timo Sirainen * src/plugins/quota/quota.c, src/util/script.c: script utility now supports the script using stdio/stdout for communication. [54bcc1728a43] * src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-search.c: imapc: If mail's input stream is changed, don't assume virtual size = physical size. [d675c0264190] * src/lib-storage/index/imapc/imapc-connection.c, src/lib- storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/imapc /imapc-save.c, src/lib-storage/index/imapc/imapc-search.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Added support for saving and copying messages. [0e5c36a54ce8] 2011-01-26 Timo Sirainen * src/lib/ioloop.c: ioloop: Use -1 for infinite poll/epoll timeout rather than INT_MAX. Should improve performance a tiny bit and also works around a CPU eater bug in Linux 2.6.37. [0c8fb305df30] 2011-01-25 Timo Sirainen * src/lib-storage/index/imapc/imapc-sync.c: imapc: Syncing optimization: Don't wait for STOREs to complete before sending EXPUNGE. [3136e78751f7] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-sync.c, src /lib-storage/index/imapc/imapc-sync.h: imapc: Added support for changing flags and expunging. [1413a0fa9ae7] * src/lib-storage/index/imapc/imapc-mailbox.c: imapc: Added support for keywords. [ba3c0ee558f5] 2011-01-24 Timo Sirainen * src/dsync/dsync-worker-local.c, src/dsync/dsync.c: dsync: Changes to make it work with imapc storage. [513e6e0b27ed] * src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-search.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Fixed mail_set_seq/uid() to work. [360af3cc616b] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.c: dbox: mailbox_create/update() might not have updated index header correctly. [a349c50cddaa] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-connection.c, src/lib-storage/index/imapc /imapc-connection.h, src/lib-storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h: imapc: Implemented more methods. [d75d4841c890] 2011-01-23 Timo Sirainen * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-connection.c, src/lib-storage/index/imapc /imapc-connection.h, src/lib-storage/index/imapc/imapc-list.c, src /lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-sync.c: imapc: Fixed mailbox deletion and some error handling. Code cleanups. [5d97dfa9d86c] * src/lib-storage/index/index-storage.c: lib-storage: Don't fail mailbox deletion if backend doesn't support mailbox GUIDs. [f7e4d46e980f] * src/lib-storage/mailbox-list.c: lib-storage: Recent changes accidentally made INBOX case-sensitive. [ad3abe06954b] * src/lib-storage/index/imapc/imapc-client.c, src/lib- storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-connection.h, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/index/imapc/imapc-sync.c: imapc: Handle properly mailbox changes while it's selected. Added support for IDLE. [475050722f54] * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-seqmap.c, src/lib-storage/index/imapc/test-imapc-seqmap.c: imapc: Fixed seqmap to work. The algorithm is a bit slow, could be improved. But probably won't make much of a difference in real life. [868f2de3898b] 2011-01-21 Timo Sirainen * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-client.h, src/lib-storage/index/imapc/imapc-connection.c, src /lib-storage/index/imapc/imapc-list.c, src/lib-storage/index/imapc /imapc-list.h, src/lib-storage/index/imapc/imapc-mailbox.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h: imapc: Code cleanups and fixes. [9e471f267fb4] * src/lib-storage/index/imapc/imapc-search.c: imapc: Call istream_opened() method if it's set for mail. [2fd54529e7d6] 2011-01-20 Timo Sirainen * src/lib-storage/index/imapc/Makefile.am, src/lib-storage/index/imapc /imapc-list.c, src/lib-storage/index/imapc/imapc-list.h, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc /imapc-storage.h, src/lib-storage/register/Makefile.am: imapc: Added support for LIST/LSUB. [1b8fb4ff2bb3] * src/lib-storage/index/imapc/imapc-search.c: imapc: Don't send broken FETCH command when we don't actually have to fetch anything. [c3a258ee96c4] * TODO, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail- iter.c, src/doveadm/doveadm-mail-list-iter.c, src/doveadm/doveadm- mail-mailbox.c, src/doveadm/doveadm-mail.c, src/dsync/dsync-worker- local.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd- list.c, src/imap/cmd-namespace.c, src/imap/cmd-rename.c, src/imap /cmd-select.c, src/imap/cmd-status.c, src/imap/cmd-subscribe.c, src/imap/imap-commands-util.c, src/imap/imap-commands-util.h, src /lib-lda/mail-deliver.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-storage.c, src/lib-storage/index/imapc/imapc- storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/index/shared /shared-list.c, src/lib-storage/index/shared/shared-storage.c, src /lib-storage/list/index-mailbox-list.c, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-fs.c, src /lib-storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list- maildir.h, src/lib-storage/list/mailbox-list-none.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/mail- namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage/mail- search.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib- storage/mailbox-list.h, src/lib-storage/test-mail-storage.h, src /lib-storage/test-mailbox.c, src/plugins/acl/acl-backend-vfile- acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl- mailbox-list.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts- storage.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap- quota/imap-quota-plugin.c, src/plugins/listescape/listescape- plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota- maildir.c, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/snarf/snarf-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- config.c, src/plugins/virtual/virtual-storage.c, src/pop3/pop3-client.c: lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes. All storage_name <-> vname conversions now go through the same two mailbox_list methods. This has many benefits, such as: * listescape plugin is now much simpler and bugfree * allows changing lib-storage API to use UTF-8 mailbox names in future * allows creation of "mailbox aliases" plugin [a2780b694b2d] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c, src/dsync/dsync-worker-local.c, src/imap /cmd-fetch.c, src/imap/imap-commands-util.c, src/imap/imap-status.c, src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/lmtp/commands.c, src/plugins/autocreate /autocreate-plugin.c, src/plugins/lazy-expunge/lazy-expunge- plugin.c, src/plugins/quota/quota-count.c, src/plugins/snarf/snarf- plugin.c, src/plugins/virtual/virtual-storage.c, src/pop3/pop3-client.c: lib-storage: Added mailbox_get_last_*error() wrappers and use them. [b748c622e896] * src/lib-storage/mailbox-list.c: lib-storage: Crashfix on trying to create index root dir. [8dbcf27f7c08] * src/imap/cmd-subscribe.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/imapc/imapc-storage.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-none.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/mailbox-list-private.h, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h, src/lib-storage /test-mailbox.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl /acl-mailbox.c, src/plugins/listescape/listescape-plugin.c, src/plugins/virtual/virtual-storage.c: lib-storage: Replaced mailbox_list_get_name_status() with mailbox_exists(). [4073ccc8123f] 2011-01-19 Timo Sirainen * src/lib-storage/index/imapc/imapc-connection.c: imapc: Fixed authenticating with AUTHENTICATE command without SASL- IR. [3949d0091a44] * src/lib-storage/index/imapc/imapc-connection.c: imapc: Fixed sending non-syncing literals. [9db6762167fb] 2011-01-16 Timo Sirainen * configure.in, src/lib-storage/index/Makefile.am, src/lib- storage/index/imapc/Makefile.am, src/lib-storage/index/imapc/imapc- client-private.h, src/lib-storage/index/imapc/imapc-client.c, src /lib-storage/index/imapc/imapc-client.h, src/lib-storage/index/imapc /imapc-connection.c, src/lib-storage/index/imapc/imapc-connection.h, src/lib-storage/index/imapc/imapc-mail.c, src/lib- storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc- search.c, src/lib-storage/index/imapc/imapc-seqmap.c, src/lib- storage/index/imapc/imapc-seqmap.h, src/lib-storage/index/imapc /imapc-storage.c, src/lib-storage/index/imapc/imapc-storage.h, src /lib-storage/index/imapc/imapc-sync.c, src/lib-storage/index/imapc /imapc-sync.h, src/lib-storage/index/index-sync-private.h, src/lib- storage/index/index-sync.c: Added initial implementation of "imapc" storage. It can be used to create a "smart IMAP proxy" where Dovecot uses remote IMAP server as a mail storage. This is a very rough early implementation. Performance isn't good, many required features are missing, error handling is lacking and code needs de-uglification. Still, it should be enough for selecting INBOX and accessing mails in it. [7dd1e45721ae] 2011-01-13 Timo Sirainen * TODO: TODO updated [e1f0f4798b5e] * src/lib/ioloop.c, src/lib/ioloop.h: Added io_loop_move_io() and io_loop_move_timeout(). [7785af0ca36e] * src/lib-storage/index/cydir/cydir-mail.c: cydir: Minor fix. [a0ad3fbc3b0b] 2011-01-01 Timo Sirainen * configure.in: configure: Added a note that this is the UNSTABLE branch. [1e425fe18dea] * TODO, src/imap/imap-search.c, src/lib-storage/index/maildir/maildir- sync.c, src/lib-storage/mail-storage.h, src/plugins/acl/acl-mailbox- list.c: Merged fixes from v2.0 tree. [c39557b7662d] * src/lib-storage/mail-storage.h: lib-storage: Added warning comments about mail_get_*header*utf8(). [c1e71f579adc] * src/lib-storage/index/index-sort.c: lib-storage: Don't double-demimefy headers when DISPLAYFROM/DISPLAYTO sorting. [6813e76eb29e] 2010-12-30 Timo Sirainen * src/lib-storage/list/mailbox-list-delete.c, src/lib-storage/list /mailbox-list-delete.h, src/lib-storage/list/mailbox-list-maildir- iter.c: lib-storage: Fixed deleting symlinked mailbox. [b78e772cf1d2] * src/lib/unlink-directory.c: unlink_directory(): Return ELOOP for unexpected symlinks also when O_NOFOLLOW isn't supported. [c67f4a2a2253] * src/plugins/quota/doveadm-quota.c: doveadm quota: Don't crash if quota isn't enabled. [a293626e09e2] * src/doveadm/doveadm-mail-list-iter.c: doveadm: Fixed mailbox-guid search key to work with shared/public mailboxes. [15c32384817b] * src/auth/passdb-vpopmail.c: vpopmail: "Service disabled" check wasn't being done correctly. [9216e5c861ee] * src/doveadm/doveadm-auth.c: doveadm user: If user isn't found, exit with status 2. [c9b3716e56f7] 2010-12-17 Timo Sirainen * src/lda/main.c: lda: Removed optimization of not creating temp files for large mails when not using Sieve. The backwards seeking was still needed if bouncing the mail because of out of quota. [89936539e3b8] * src/plugins/snarf/snarf-plugin.c: snarf: Make sure destination mailbox is open when syncing it. [b7dd7a966a3a] 2010-12-15 Timo Sirainen * src/lib-master/master-interface.h, src/lib-master/master-service.c, src/master/common.h, src/master/main.c, src/master/service- process.c: master-child API change: Use a separate fd for tracking when master dies. This works around a Linux performance problem where when one process writes to status fd all the other processes of the same service type wake up. [b0ec48006d57] 2010-12-13 Timo Sirainen * src/lib/network.c: net_listen(): If IPv6 isn't supported, don't fallback to IPv4 if my_ip is given. [cde0d403c6ff] * src/plugins/quota/quota.c: quota: Quota warnings could have been executed at incorrect times with some configs. If target mailbox had quota ignored, the warning was sent if the mail would have otherwise exceeded the warning threshold. Same when using multiple quota roots where all of the roots weren't used for the target mailbox. [f3d42a99ce44] 2010-12-09 Timo Sirainen * src/imap/imap-search.c: imap: Fixed a memory leak in ESEARCH [e030df616faf] * src/lib-storage/index/index-mailbox-check.c: lib-storage: Added assert check to make sure we never do timeout_add(0) [694ef2d76d51] 2010-12-08 Timo Sirainen * src/plugins/acl/acl-mailbox-list.c: acl: Crashfix at deinit in some configurations. [7353e3253840] 2010-12-07 Timo Sirainen * src/auth/auth-request.c: auth: Master user login + prefetch userdb changed username to master user. [f9d34d929c3f] * src/auth/passdb-checkpassword.c: auth: Checkpassword's output fields are now logged with auth_debug=yes [6a48a361c63f] 2010-12-06 Timo Sirainen * TODO, src/auth/auth-request-handler.c: auth: When logging in as anonymous user, return "anonymous" userdb extra field. [c41ba33b8e16] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Avoid harder to unnecessarily read uidlist when syncing mailbox. [b7a8d2a357a8] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Avoid unnecessarily reading uidlist when opening mailbox. [8afad3c2928d] * src/lib-storage/mailbox-list.c: lib-storage: Mailbox directory creation didn't properly enforce that the name was valid. The name was checked against "valid existing name" rather than "valid create name", which mainly meant that the name could have contained control characters and other things that weren't really intended. This couldn't be used to cause any security holes though. [4b084f357db1] 2010-12-03 Timo Sirainen * src/lib-master/master-login-auth.c: lib-master: Error message typofix. [6a0f3010d592] 2011-01-01 Timo Sirainen * TODO: TODO updated. [917f3699af5b] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-mailbox- status.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm- mail.c, src/doveadm/doveadm-mail.h, src/dsync/dsync-worker-local.c, src/imap/cmd-enable.c, src/imap/cmd-select.c, src/imap/cmd-store.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap- commands-util.c, src/imap/imap-fetch.c, src/imap/imap-search.c, src/imap/imap-status.c, src/imap/imap-status.h, src/imap/imap- sync.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-search.c, src/lib-storage/index/index-status.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/list/index- mailbox-list-sync.c, src/lib-storage/mail-storage-private.h, src /lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-squat/fts- backend-squat.c, src/plugins/fts/fts-storage.c, src/plugins/virtual /virtual-save.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-sync.c, src/pop3/pop3-client.c: lib-storage: Moved some items from mailbox_get_status() to a new mailbox_get_metadata(). The idea is now that all status items are tracked all the time after mailbox is opened and they can always be looked up without failure. The metadata items are looked up lazily and the lookups may fail at any time. mailbox_get_status() can be used after mailbox_alloc() to indicate that the mailbox doesn't necessarily have to be opened, just that the status fields get returned. If mailbox is already known to be open, mailbox_get_open_status() can be used. It never fails. [2c299c0e3bc8] 2010-12-29 Timo Sirainen * src/doveadm/doveadm-mail-mailbox-status.c, src/dsync/dsync-worker- local.c, src/imap/cmd-select.c, src/imap/imap-client.c, src/imap /imap-status.c, src/imap/imap-sync.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-storage.h, src/lib- storage/list/index-mailbox-list-sync.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/lib-storage/test-mailbox.c: lib-storage: mailbox_get_status() can now fail. It might have failed earlier also, but the errors were hidden from caller. [bbfa924bc4bc] * src/lib-storage/index/index-storage.c: lib-storage: Crashfix for opening sdbox/mdbox mailbox. [832d77536f07] 2010-12-06 Timo Sirainen * TODO, src/auth/auth-request-handler.c: auth: When logging in as anonymous user, return "anonymous" userdb extra field. [e6a9bf26ad1e] * TODO: TODO updated. [ab30580b88d9] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-attachment.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/mail-storage-private.h, src/lib-storage/test-mailbox.c, src/plugins/virtual/virtual-storage.c: lib-storage: Moved mailbox.save_is_attachment() to mail_save_context.part_is_attachment() [9507a067233b] * src/lib-storage/Makefile.am, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/index-mail-headers.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-mail.h, src/lib-storage/index /index-storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw /raw-storage.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mailbox-header.c, src/lib- storage/test-mailbox.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual-storage.c: lib-storage: Unvirtualized mailbox_header_lookup_*() [dc3b59b71fca] * src/lib-storage/Makefile.am, src/lib-storage/index/Makefile.am, src /lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-fetch.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-storage.c, src /lib-storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw /raw-storage.c, src/lib-storage/index/test-index-fetch.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mailbox-get.c, src/lib-storage/test-mailbox-get.c, src /lib-storage/test-mailbox.c, src/plugins/virtual/virtual-storage.c: lib-storage: Unvirtualized some methods from struct mailbox. There was never any point in overriding or hooking into them. [c7e607631eec] * src/lib-storage/mailbox-keywords.c: lib-storage: Added missing mailbox-keywords.c for recent commit. [8d27401008c9] * src/plugins/fts/fts-mailbox.c, src/plugins/fts/fts-mailbox.h: fts: Added missing new files for last commit. [5815ff80f198] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw /raw-storage.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib- storage/test-mailbox.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/Makefile.am, src/plugins/fts/fts-storage.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h: Moved fts/virtual plugin communication functions away from lib- storage. [3c883e0dcb31] * src/lib-lda/duplicate.c, src/lib-lda/duplicate.h: lib-lda: duplicate_check() should return bool, not int. [d0a24521d13f] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/list/subscription-file.c, src/lib-storage/mail- storage.c, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- list.h, src/lib-storage/mailbox-uidvalidity.c, src/plugins/acl/acl- backend-vfile-acllist.c, src/plugins/lazy-expunge/lazy-expunge- plugin.c, src/plugins/quota/quota-maildir.c: lib-storage: Added mailbox_list_get_root_[dir_]permissions() They should be used instead of mailbox_list_get_[dir_]permissions() with name=NULL parameter. [57d7ea7fa5f6] * src/dsync/dsync-worker-local.c, src/imap/cmd-append.c, src/imap/cmd- store.c, src/lib-lda/mail-deliver.c, src/lib-storage/Makefile.am, src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/mail-copy.c, src/lib-storage/mail-search.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/test-mailbox.c, src/plugins/acl/acl- mailbox.c, src/plugins/virtual/virtual-save.c, src/plugins/virtual /virtual-storage.c, src/plugins/virtual/virtual-sync.c: lib-storage: Simplified mailbox_keyword*() APIs. They are no longer struct mailbox methods, because they're always implemented as being wrappers to lib-index APIs anyway. Also mailbox_keywords_ref/unref() no longer take mailbox parameter. [16929d83a00c] * src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/maildir/maildir-storage.h, src/lib-storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- storage.h, src/lib-storage/index/mbox/mbox-sync.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c: lib-storage: Removed mailbox.backend_readonly. Backends set it internally lazily now. [9d947390a875] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Avoid harder to unnecessarily read uidlist when syncing mailbox. [b399c8dd1650] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Avoid unnecessarily reading uidlist when opening mailbox. [059277ba8a75] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /test-mailbox.c, src/plugins/acl/acl-mailbox.c, src/plugins/virtual /virtual-storage.c: lib-storage: Moved box->private_flags_mask to mailbox_get_private_flags_mask() This allows getting it lazily only when it's actually needed. [67257180c7ea] * src/imap/cmd-subscribe.c, src/lib-storage/mailbox-list.c: lib-storage: Removed subscription name validity check from lib- storage after all. It could have broken when subscriptions were being set for subscriptions=no namespace. [565351636cd7] * src/plugins/acl/acl-mailbox-list.c: acl: Make the mailbox visible only when it has l/r/i right. This change only affects the ability to SUBSCRIBE to a mailbox. Previously it was allowed when user had any rights at all to mailbox. [ecf551a5fe86] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/acl/acl-mailbox-list.c: lib-storage: Removed unused mailbox_list_get_mailbox_name_status() status codes. [9185c2a88291] * src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c: imap-acl, imap-quota: Compile fix for last change. [35625c2d01a2] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-rename.c, src/imap/cmd-select.c, src/imap/cmd-status.c, src/imap/cmd-subscribe.c, src/imap/imap- commands-util.c, src/imap/imap-commands-util.h: imap: Avoid using mailbox_list_get_mailbox_name_status() The validity checks should already be done by the actual commands in most cases (if they didn't, there would be race condition bugs). The only exception is SUBSCRIBE. It doesn't require that the mailbox exists, but we want to enforce that anyway via IMAP. [4d276dc712eb] * src/lib-storage/mailbox-list.c: lib-storage: Don't allow subscribing to invalid mailbox names. [c6a2ae813dd0] * src/lib-storage/mailbox-list.c: lib-storage: Mailbox directory creation didn't properly enforce that the name was valid. The name was checked against "valid existing name" rather than "valid create name", which mainly meant that the name could have contained control characters and other things that weren't really intended. This couldn't be used to cause any security holes though. [ab7deaefa2f5] 2010-12-05 Timo Sirainen * src/lib/macros.h: Removed unused BITS_IN_UINT and CLAMP macros. [f3979da99d5f] * src/lib/lib.c, src/lib/macros.h: Unexpand BITS_IN_SIZE_T in the only place it's used and remove the macro. [12e89e04d690] * src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-envelope.c, src/lib/macros.h: Moved a global NVL() macro to the few places in lib-imap where it was actually used. [25958384d938] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c: lib-storage: Fixed error handling when trying to delete mailbox under noinferiors mailbox. [a4e683282d1a] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src /lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c: lib-storage: Don't allocate index until mailbox_open() [b22766c1aa51] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-single/sdbox- file.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-keywords.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox /mbox-lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib- storage/index/raw/raw-mail.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/mail-copy.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/plugins/fts- squat/fts-backend-squat.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual-sync.c, src/plugins/zlib/zlib-plugin.c: lib-storage: Lazily look up mailbox path and permissions. Added functions to get them. [b26d6da05d48] * src/lib-storage/mail-storage.c: lib-storage: mailbox_create_fd() handles "no inferior mailboxes allowed" error now. [b63ff46f82ee] * src/lib-storage/index/dbox-common/dbox-mail.c, src/lib-storage/index /index-mail-headers.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/index-storage.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/mail-storage- private.h, src/plugins/virtual/virtual-mail.c, src/plugins/virtual /virtual-save.c, src/plugins/virtual/virtual-transaction.c, src/plugins/virtual/virtual-transaction.h: lib-storage: Removed struct index_transaction_context. All of its contents are now in struct mailbox_transaction_context. [88577ccb1380] * src/lib-storage/index/maildir/maildir-sync.h: Compiler warning fix. [7c147f053c9b] 2010-09-06 Timo Sirainen * src/lib-storage/index/maildir/Makefile.am, src/lib- storage/index/maildir/maildir-filename-flags.c, src/lib- storage/index/maildir/maildir-filename-flags.h, src/lib- storage/index/maildir/maildir-filename.c, src/lib- storage/index/maildir/maildir-filename.h, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-sync-index.c, src/lib-storage/index/maildir/maildir-util.c: maildir: Moved maildir_filename_flags_*() to a separate file. [dc75c71b4671] 2010-12-05 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: uidlist code cleanup. [820d370eb2fe] * src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-sync.h, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/maildir/maildir-util.c: maildir: maildir_uidlist_lookup() -> maildir_sync_lookup() refactoring. [a803cd10b19c] 2010-12-03 Timo Sirainen * .hgsigs: Added signature for changeset 51e41fcc7856 [485ed7702ce2] * .hgtags: Added tag 2.0.8 for changeset 51e41fcc7856 [6c86c1d5a740] * NEWS, TODO, configure.in: Released v2.0.8. [51e41fcc7856] [2.0.8] * doc/example-config/conf.d/10-master.conf: example-config: Added comments to default_vsz_limit. [7dda7d20b04c] * src/lib-index/mail-index-sync-keywords.c: lib-index: Make static analyzer happier. [0e72f1629096] * src/lib/test-istream-base64-encoder.c: Dead code removal. [383b3acff1ee] * src/lib-storage/mail-copy.c: lib-storage: mail_storage_copy_can_use_hardlink() was always returning TRUE. [2ec2fde979be] * src/lib-storage/index/dbox-common/dbox-attachment.c: dbox: Fixed reading attachments for compressed mails. [235383a75fc7] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-common/dbox- mail.c: dbox: Added dbox_file_get_plaintext_size() for easily getting it. [251612ef4186] * src/lib-master/master-login-auth.c, src/login-common/client- common.c: Log login pid/id for internal failures to allow matching errors between processes. [c6b0e643d2dc] * src/lib-storage/index/index-attachment.c: lib-storage: Fixed storing newlines at the end of base64 attachments. [4455f79f964d] * src/lib/istream-base64-encoder.c: istream-base64-encoder: Fixed reading when parent stream returned little data. [e5dcc12f8dba] * src/auth/userdb-passwd.c, src/lib-fs/fs-posix.c: Compiler warning fixes. [014a6a0a93cf] * src/lib/ioloop.c: ioloop: Don't leak memory when detecting a leaked timeout. [8fa2c23e9256] * src/lib/ioloop.c: ioloop log: Added asserts [23eb7ec9c37d] * src/lib-storage/mail-storage-service.c: mail storage service: Use ioloop log prefix automation. This properly fixes imap/pop3 when using with client_limit>1. [1d1cd60d5429] * src/lib/ioloop-epoll.c, src/lib/ioloop-internal.h, src/lib/ioloop- kqueue.c, src/lib/ioloop-poll.c, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib/ioloop.h: ioloop: Added support for per-io/timeout callback log prefix automation. [1bac1c09201a] * src/imap/cmd-append.c, src/imap/cmd-idle.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-search.c, src/pop3/pop3-client.c: imap, pop3: Removed previous log prefix hack. [841f56ea9d54] * src/imap/imap-client.c, src/pop3/pop3-client.c: imap, pop3: Small optimization to last logging change. Also added FIXMEs. This is an ugly way to change log prefixes. [c9c9ea2bdec9] * src/imap/cmd-append.c, src/imap/cmd-idle.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-search.c, src/pop3/pop3-client.c: imap, pop3: Try to use the correct log prefix when service_count!=1. [8ebf513b875c] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-sync- update.c, src/lib-index/mail-transaction-log-append.c, src/lib-index /mail-transaction-log-file.c, src/lib-index/mail-transaction-log.h: lib-index: Added "transaction boundary" record for future compatibility. [b7d13ee51aa4] 2010-12-02 Timo Sirainen * src/lib/lib.c: lib_init(): Call srand() with a bit better seed. [8e30a07d8dd0] * src/auth/auth-request-handler.c: auth: Fail if auth client tries to use a duplicate ID. [6c9bc37fcf41] * src/lib-master/master-login-auth.c: lib-master: Try to use auth request ID numbers from wider range to ease debugging. [16dbbb57a4b2] * src/auth/auth-request.c, src/auth/auth-request.h: auth: passdb credentials lookup fix when using multiple passdbs. If at least one passdb returns "user unknown" and the last passdb returns "credential lookup not supported", the proper return value is still "user unknown". [627aeadb0955] * src/lib-master/master-login-auth.c: lib-master: Added extra debug info for a "user not found" error message. [4113324354f5] * src/lib-index/mail-index-sync-update.c: lib-index: Added a missing sanity check for expunge-guid record's uid. This fixes a non-self healing assert-crash. [e12572ca4454] 2010-11-30 Timo Sirainen * doc/example-config/conf.d/20-lmtp.conf, src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp-settings.h: lmtp: Added lmtp_save_to_detail_mailbox setting. [d7886c6d9ba5] * src/master/service-process.c: master: Fixed crash due to recent SSL key password askpass change. [6e6d3a1cf799] * src/lib/askpass.c: askpass: Removed unnecessary code. [a131a498731f] * src/lib/askpass.c: askpass: Allow reading password from stdin even if it's not a tty. [719ce27f9955] * src/master/common.h, src/master/main.c: master: Use t_askpass() for getting the manual SSL key password. [28db9b177087] * src/lib/askpass.c: t_askpass(): Removed a limit of 1024 bytes for the password. [6ea1671108f1] 2010-11-29 Timo Sirainen * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp /lmtp-settings.c, src/lmtp/lmtp-settings.h: lmtp: Recent change broke accessing mail_temp_dir. Also when it happened, an error message wasn't always logged. [77d582b2dc51] * src/lib-fs/fs-sis.c: fs-sis: Memory leak fix. [5e82c5b1b4a9] * src/doveadm/doveadm-mail-import.c: doveadm import: Free memory used by source storage at deinit. [97b3d4b714cf] 2010-11-26 Pascal Volk * doc/man/doveadm-import.1.in: man: doveadm-import.1: Added missing argument descriptions. [9e54d61d57fb] 2010-11-26 Timo Sirainen * TODO: TODO updated [0757f4f5b882] * src/auth/userdb-ldap.c, src/auth/userdb-sql.c: auth sql/ldap: Allow using global %variables in iterate_query/filter. No per-query %variables are defined, but e.g. %{hostname} or %{env:*} can be used. [8ca8de045df1] * src/login-common/client-common-auth.c: login: Fixed potential assert-crash during failed proxy authentication. [e9b90ff13910] * src/auth/main.c: auth: Assume inet_listeners are auth client listeners if they exist. [fe8e82b5bff9] * src/auth/main.c: auth: Minor error message fix. [3abefa63b8e7] 2010-11-25 Pascal Volk * doc/man/Makefile.am, doc/man/doveadm-altmove.1.in, doc/man/doveadm- expunge.1.in, doc/man/doveadm-fetch.1.in, doc/man/doveadm-force- resync.1.in, doc/man/doveadm-import.1.in, doc/man/doveadm- mailbox.1.in, doc/man/doveadm-purge.1.in, doc/man/doveadm- quota.1.in, doc/man/doveadm-search.1.in, doc/man/doveadm.1.in, doc/man/global-options-formatter.inc, doc/man/global-options.inc, doc/man/option-S-socket.inc, doc/man/sed.sh: man: Added "-S socket_path" description. [fee02c0565e7] 2010-11-24 Timo Sirainen * src/doveadm/doveadm-mail.c: doveadm: -s was already used by some mailbox commands, renamed to -S. Also added -S to usage output. [17a67be8edb5] 2010-11-24 Pascal Volk * src/doveadm/doveadm.c: doveadm: Removed -s option from the usage message (according to 66428c763354) [a9bf33946acf] 2010-11-23 Timo Sirainen * src/lib-storage/mail-storage-settings.c: lib-storage: mail_temp_dir setting should have done %variable expansion. [0bc3751c6657] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm.c: doveadm: Moved -s parameter among -u/-A parameters, since it's only used by mail commands. [66428c763354] 2010-11-23 Pascal Volk * doc/man/doveadm.1.in, doc/man/global-options-formatter.inc, doc/man /global-options.inc: man: Added -s parameter. [21966f298a3c] 2010-11-23 Timo Sirainen * src/lib-index/mail-transaction-log.c: lib-index: Don't try to stat() in-memory index. [e6076467fbf0] 2010-11-23 Pascal Volk * doc/man/doveadm-import.1.in: man: *roff syntax-fix. [464fe0e62078] * src/doveadm/doveadm.c: doveadm: Added -s parameter to the usage message. [9c2e49d13fd3] 2010-11-23 Timo Sirainen * doc/man/doveadm-import.1.in: man: Make it clear that doveadm-import allows dest_parent to be "" [16338d5462ba] * doc/man/doveadm.1.in: man: Added pointer to doveadm-import from doveadm main man page. [ef24f74f32d7] * src/lib-storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-sync.h: maildir: Log a warning if scanning new/ or cur/ takes over 60s. [69efe4b2bc80] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Added missing master_service_get_settings_parser() required by recent change. [94fd6fee57a1] * src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-single/sdbox-copy.c, src/lib-storage/index/maildir/maildir- copy.c, src/lib-storage/mail-copy.c, src/lib-storage/mail-copy.h, src/lib-storage/mail-storage-private.h: lib-storage: If disable_reflink_copy_to=TRUE, disable hardlink/refcount copying. [10c2540e91b9] * src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/main.c: doveadm server: Fixes to command/parameter handling. [490138318288] * src/doveadm/doveadm.c: doveadm: Added -s parameter to execute mail command via given doveadm socket. [8c14551c5e26] * src/doveadm/client-connection.c: doveadm-server: Don't disconnect client after each command. [8b82ccf48f32] 2010-11-22 Timo Sirainen * src/imap/cmd-idle.c: imap: Make sure IDLE isn't broken too early if DONE is sent in multiple packets. [66a523135836] * src/plugins/quota/quota.c: quota: If user has unlimited quota, ignore any specific quota rules. [3a93121f652a] * src/doveadm/client-connection.c: doveadm-server: Fixed command parameter handling. [b724ef3bdc0a] 2010-11-19 Timo Sirainen * src/lib-master/anvil-client.c, src/lib-master/anvil-client.h: lib-master: Added missing anvil_client_is_connected() [f5bec4e94b55] * src/imap/main.c, src/pop3/main.c: imap, pop3: Fixed giving any -parameters. [0d455d1a9ea6] 2010-11-18 Timo Sirainen * src/auth/auth-penalty.c: auth: If we get disconnected from anvil and can't reconnect, die. [3e4a65a74c40] * src/auth/auth-client-connection.c: auth: Fixed assert-crash at deinit if there were clients left with pending auth requests. [9a9f65bcbe19] * src/plugins/snarf/Makefile.am, src/plugins/snarf/snarf-plugin.c: snarf: Added mbox_snarf setting to enable snarfing only optionally. [8adacd9c03b2] * configure.in, src/plugins/Makefile.am, src/plugins/mbox- snarf/Makefile.am, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.h, src/plugins/snarf/Makefile.am, src/plugins/snarf/snarf-plugin.c, src/plugins/snarf/snarf-plugin.h: Replaced broken mbox-snarf plugin with a more generic snarf plugin. [7446b066fc75] * src/pop3/pop3-client.c: pop3: Avoid crash when updating proctitle if client init fails. [9c96b54c8a76] * src/lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-storage.c: mbox: Allow mail_privileged_group locking for INBOXes also in inbox=no namespaces. [1afad049f37f] * configure.in: configure: And small fix to previous --with-systemdsystemunitdir fix. [94c5d2189006] * configure.in: configure: --with-systemdsystemunitdir wasn't working right. [e0b42fcf31a1] * configure.in: configure: Use AS_HELP_STRING() macro. [ae5b5961a6a7] * src/master/service-listen.c: master: Compiling fix when systemd is enabled. [36c80d0bdd8a] 2010-11-17 Timo Sirainen * Makefile.am, configure.in, dovecot.service.in, dovecot.socket, src /lib-master/master-service.c, src/master/Makefile.am, src/master/main.c, src/master/sd-daemon.c, src/master/sd-daemon.h, src/master/service-listen.c: Added support for systemd. Based on patch by Christophe Fergeau [84eb4afebc95] * configure.in: configure: Use PKG_PROG_PKG_CONFIG to find pkg-config binary. [c1d8fb31c1ad] * src/lib-mail/istream-header-filter.c: istream-header-filter: Fixed header name validation to use case- insensitive comparison. [e7299f187938] * src/lib-master/master-login-auth.c: lib-master: If auth master login fails, make sure error message is logged. [aec1f1614028] * src/lib-sql/driver-mysql.c: mysql: When using multiple hosts, it never connected to more than the first one. [666fd046ab7f] * src/lib-sql/driver-sqlpool.c: lib-sql: Connect earlier to fallback host when using multiple hosts and primary fails. [990abbb6d3dd] * src/master/master-settings.c: master: Allow services' vsz_limit to be 0 (unlimited) [2456cd0917d3] 2010-11-16 Timo Sirainen * src/anvil/anvil-settings.c, src/auth/auth-settings.c, src/config /config-settings.c, src/dict/dict-settings.c, src/director/director- settings.c, src/dns/dns-client-settings.c, src/doveadm/doveadm- settings.c, src/imap/imap-settings.c, src/log/log-settings.c, src/pop3/pop3-settings.c, src/ssl-params/ssl-params-settings.c, src/util/tcpwrap-settings.c: Services' default vsz_limit wasn't actually using default_vsz_limit but rather 4 GB. [8793036f6de8] * src/lib-storage/mail-storage-service.c: Fixed home=/home/./user style chrooting to work again. [eeaf30cfad36] * src/master/master-settings.c: master: Fail if service's vsz_limit is less than 1 kB [f78260c108b0] * src/imap-login/imap-login-settings.c, src/pop3-login/pop3-login- settings.c: imap/pop3-login: Default vsz_limit=64 caused it to be unlimited, not 64 MB. [ddd929c68c0f] * src/lib-storage/index/mbox/mbox-file.c: mbox: Another utime()=EPERM log message hiding. [586d549732f5] * src/lib-storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox /mbox-sync.c: mbox: Ignore utime()=EPERM failures when trying to set atime back. This happens with shared mboxes when file's owner isn't the process's euid. [3daec8435d29] 2010-11-15 Timo Sirainen * src/lib/istream-base64-encoder.c: istream-base64-encoder: Set the stream seekable if parent stream is seekable. [3aced5ececd7] * src/imap/main.c, src/lib-master/master-interface.h, src/lmtp/main.c, src/master/service-process.c, src/pop3/main.c, src/util/script- login.c: "Running standalone?" check now uses a new DOVECOT_CHILD_PROCESS environment rather than GENERATION. The GENERATION environment was already set in some systems for Java. [10c163bb5e22] * src/lib-settings/settings-parser.c: lib-settings: Improved performance of previous duplicate key parsing change. [172942ae0b58] * src/lib-settings/settings-parser.c: lib-settings: Fixed parsing settings when the key was duplicated to multiple roots. Previously only the first one got the value set, now all of them get it. [656da7e0d6b9] * src/imap/imap-settings.c, src/imap/imap-settings.h, src/master /master-settings.c, src/master/master-settings.h, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Removed unused auth/mail_debug settings from structs. [d9913925a111] * src/lib/istream-file.c: istream-file: Minor error message fix. [8a28deb29320] * src/lib/Makefile.am, src/lib/test-istream-base64-encoder.c, src/lib /test-lib.c, src/lib/test-lib.h: Added unit test for istream-base64-encoder. [bb6fc4e13bc9] * src/lib/istream-base64-encoder.c: istream-base64-encoder: Fixed seeking to beginning of stream. [b1d946388d9b] * src/lib/istream-base64-encoder.c: istream-base64-encoder: Don't add unwanted trailing [CR]LF [3f19e7e43506] * src/lib-storage/index/dbox-common/dbox-mail.c: dbox: dbox file could have been closed too early in some situations, causing EBADF errors. [967de059f94d] * src/lib/istream-base64-encoder.c: stream-base64-encoder: Added support for seeking backwards in stream. [eb08ed7c6a7b] * src/lib/istream-internal.h, src/lib/istream.c: istream: Exported i_stream_default_seek() [236ed6d5b391] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Fixed race condition when one session opens a mailbox while another is still creating it. This happened mostly when nonexistent INBOX was being opened by multiple sessions at the same time. [dbcbf6a46710] 2010-11-10 Timo Sirainen * src/anvil/main.c: anvil: Don't die until all of our clients have gone. [67fbf09d3fa5] 2010-11-09 Timo Sirainen * src/lib-settings/settings-parser.c, src/lib/env-util.c, src/lib/env- util.h, src/lib/process-title.c: Added env_get_environ_p() as more portable way of accessing environ variable. Implemented with OS X using _NSGetEnviron(). [e60061623012] * doc/example-config/conf.d/15-lda.conf: example-config: sendmail_path defaults to /usr/sbin/sendmail, not /usr/lib/sendmail [f89b4de6688d] * doc/example-config/dovecot.conf: example-config: Moved include conf.d/*.conf last in dovecot.conf. This fixes problems where conf.d/ files try to modify settings in dovecot.conf, especially managesieve adding itself to protocols setting. [638db56a53ec] * src/dsync/dsync-worker-local.c: dsync: Don't assert-crash if trying to convert mailbox whose name is too long. [fa62e1a578a0] * src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: istream-[b]zlib: Corking now affects also the parent stream. [631e0d846e57] * src/lib/failures.c: liblib: Delay sending log prefix updates until it's needed. This avoids sending them unnecessarily. [e2a880387cca] * src/imap/cmd-logout.c, src/imap/imap-client.c: imap: Uncork at logout a bit later. [fa911bf1cbee] * src/lib-master/master-login-auth.c: lib-master: Don't wait for handshake before sending auth-master request. [e72ab743b8df] * src/lib-storage/mailbox-list.c: lib-storage: Fixed expanding "~" (without '/' afterwards) in mail_location [d1cf770dbef5] 2010-11-08 Timo Sirainen * NEWS: NEWS: Split too long line. [f859a6e06b62] * .hgsigs: Added signature for changeset d0d3aca1c958 [27fce4d468e9] * .hgtags: Added tag 2.0.7 for changeset d0d3aca1c958 [bd36f254bcac] * NEWS, TODO, configure.in: Released v2.0.7. [d0d3aca1c958] [2.0.7] * src/lmtp/commands.c: lmtp: Don't allow mixed proxy/non-proxy RCPT TO destinations. Although the code attempts to handle this case already, the DATA replies aren't sent in correct order. [97e60c1a4f8d] * src/lmtp/lmtp-proxy.c: lmtp proxy: Don't internally finish proxying before client has even sent DATA command. This fixes some crashes when all recipients were invalid. [748e613fd73a] * src/lib/istream-tee.c: istream-tee: Fixed to work right when input stream didn't start from offset 0. [2a252c9cda5e] * src/lib-storage/index/maildir/maildir-mail.c: maildir: p_strdup() GUID and UIDL_BACKEND to make sure they don't change unexpectedly. [11169c6c6e8d] 2010-11-05 Timo Sirainen * src/lib-index/mail-transaction-log-file.c: lib-index: Fixed another transaction log read optimization. Buffer's size should always be the same as sync_offset, otherwise some optimizations could think that the data doesn't have to be re-read even though it was updated in disk already. [878746da7992] * src/lib-index/mail-transaction-log-file.c: lib-index: Fix to transaction log read optimization. The log wasn't always refreshed while locked when it should have. [7f8f73bed7f9] * src/lib-auth/auth-master.c: lib-auth: Less leaky fix to previous auth_master_*() bugfix. [57477db05aff] * src/lib-auth/auth-master.c: lib-auth: Don't crash in auth_master_*() lookups if caller hasn't created ioloop. [55d144a33e62] 2010-11-04 Timo Sirainen * src/plugins/quota/quota-maildir.c, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c: quota: Better fix to avoid counting quota for virtual mailboxes. [5a10aaf6f510] * src/lib-storage/mail-storage-private.h, src/plugins/virtual/virtual- storage.c: virtual: Set MAIL_STORAGE_CLASS_FLAG_NOQUOTA to storage's class_flags. [37833c393ef8] * src/lib-index/mail-transaction-log-file.c: lib-index: Minor error message improvement. [16abe905f897] * src/lib-fs/fs-posix.c: lib-fs / posix: If create/link/rename fails with ENOENT, try creating parent dir multiple times. This avoids random failures when the parent dir happens to be removed at just the right time. [952dc335eb75] * src/lib-storage/index/dbox-common/dbox-storage.c: dbox: Minor optimization when creating a mailbox when its alt dir already existed. Patch by DINH Viêt Hoà [ed94f6d615ef] * src/login-common/ssl-proxy-openssl.c: ssl: Call OpenSSL_add_all_algorithms() to make some OpenSSL versions happy. [8fed40bfaaba] * src/lib-storage/index/istream-attachment.c: istream-attachment: Error handling improvements. [455bea720c13] * src/lib/istream-concat.c: istream-concat: Fixed error handling when one of the stream read()s failed. [71e13b4a44d4] * src/config/config-parser-private.h, src/config/config-parser.c: config parser: Log an error about missing '}'. [e57054f88e66] * src/lib/istream-base64-encoder.c: istream-base64-encoder: Panic if stat() is tried to be called with exact size. [af252c044393] * src/lib-storage/index/istream-attachment.c: istream-attachment: Removed parent stream's size sanity check. It didn't work right with base64 streams. [29c71b6e354e] 2010-11-03 Timo Sirainen * src/lda/main.c: lda: If Sieve is disabled, don't create temp files for large mails. [fd44ba1fa729] * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: mail_deliver_save() tries now to avoid re-parsing message header when logging the result. [b9487d271b72] * src/plugins/zlib/Makefile.am, src/plugins/zlib/doveadm-zlib.c: doveadm dump: Added imapzlib type to uncompress IMAP's COMPRESS DEFLATE I/O traffic. [e21d08bf5e9d] * src/doveadm/doveadm-dump.c, src/doveadm/doveadm-dump.h, src/doveadm/doveadm.c: doveadm dump: Allow plugins to add more dump types [708fd6faca39] * src/master/master-settings.c: master: Log a warning at startup if anvil's client_limit is too low. [97b286b6ec45] * src/lmtp/lmtp-settings.c: lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/ [d3d07da70102] * src/director/main.c: director: Show number of connections in process title if verbose_proctitle=yes [a69ad6b69481] * src/anvil/main.c: anvil: Show number of connections in process title if verbose_proctitle=yes [7b1aae5f7bd5] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-master/master-service.c, src/lib-master /master-service.h: lib-master: Added MASTER_SERVICE_FLAG_UPDATE_PROCTITLE for showing number of connections in ps. The title is still only updated if verbose_proctitle=yes, so this allows binaries to easily just set the flag and lib-master handles the rest. [4d91cec713cf] * src/auth/main.c: auth workers: Don't unnecessary connect to anvil. [3ce7879e3ac0] * src/master/master-settings.c, src/master/service.c: master: default_process_limit wasn't actually used anywhere, rather the default was unlimited. [b4b6bf889044] 2010-11-02 Timo Sirainen * src/lib-storage/list/mailbox-list-maildir-iter.c: lib-storage: Maildir++ mailbox listing could have given wrong flags to parent mailboxes. [eb72f2523ffa] * src/imap/imap-client.c: imap: Removed accidentally commited debug code. [055e5206b836] * src/lib-master/master-login-auth.c: lib-master: Stop accepting new connections after auth-master gets disconnected. [9f179255b796] * src/imap/main.c, src/pop3/main.c: imap, pop3: Use absolute path to auth-master socket. [0b77044fbdd4] * src/auth/db-ldap.c: ldap auth: Hide password_noscheme from debug logs unless auth_debug_passwords=yes [1fab347c4b94] * src/auth/passdb-sql.c: sql auth: Fixed using password_noscheme [840a488289ac] * src/auth/auth-request.c, src/auth/passdb-cache.c: auth: Disable auth caching entirely for master users. The cache key contains only the master username, without the logged-in username, so wrong data could be looked up from cache. [075963b71b94] * src/imap/cmd-select.c, src/imap/imap-client.c, src/imap/main.c: imap: Fixed SELECT QRESYNC not to crash on mailbox close if a lot of changes were being sent. [1d381325a973] * src/auth/passdb-vpopmail.c, src/auth/userdb-vpopmail.c: auth: vpopmail passdb/userdb uses now auth-worker processes by default. Adding blocking=no parameter disables this. [5a8533404979] * src/lib-storage/index/dbox-common/dbox-file.h: dbox: Comment update. [2b709ff27b3a] * src/imap/cmd-list.c: imap: Fixed LIST-STATUS when listing subscriptions with subscriptions=no namespaces. [3e59dbe29f81] * src/plugins/mail-log/mail-log-plugin.c: mail-log plugin: Log mailbox name as virtual name rather than physical name. [4ee632794f0b] * src/director/main.c: director: inet_listener port finder should ignore doveadm's port. [f55b91aaddfe] 2010-11-01 Timo Sirainen * src/plugins/quota/quota-storage.c: quota: Added a temporary hack to avoid virtual mailboxes being counted in quota. [b7511f567d2e] 2010-10-25 Timo Sirainen * src/dsync/dsync-proxy-server-cmd.c: dsync: Make sure MSG-GET command doesn't hang. [601065674f74] * src/dsync/dsync-proxy-client.c: dsync: Added more idle timeout resets to proxying. [a408c08784bc] * src/lib-storage/index/dbox-common/dbox-mail.c: dbox: mail_get_special() for POP3 UIDL or GUID return value wasn't permanent enough. Another call to mail_get_*() could have caused the string to point to some garbage. [94be7b193c48] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-worker-local.c: dsync: Error handling fixes. [f52d4d77f16f] * src/dsync/dsync-worker-local.c: dsync: If msg input reading fails, don't also log a wrong "Unknown internal error" line. [d46a3fca7259] * src/lib-storage/mail-storage.h: lib-storage: Comment update to mail_get_stream() [1b2caff94b49] * src/master/main.c: master: Use env_clean_except() instead of doing it ourself. [d1fd5b84d410] * src/lib-master/master-service.c: lib-master: Use env_clean_except() for master_service_env_clean() [e0a97842182f] * src/lib/env-util.c, src/lib/env-util.h: Added env_clean_except() [fe72469ccdf5] * src/lib-master/master-service.c: lib-master: Code cleanup for master_service_env_clean() [7cf8e3094b39] * src/doveadm/doveadm-mail-expunge.c: doveadm expunge: Sync mailbox after commit to make sure messages get physically expunged. [d991b5c99397] * src/lib-storage/index/maildir/maildir-save.c: maildir: Duplicate GUIDs during a single save transaction weren't handled correctly. [c8eb81e1b5d6] 2010-10-21 Timo Sirainen * src/lib/file-set-size.c: file_preallocate(): Don't ignore ENOSPC with OSX either, caller will check it. [aaca506ea33b] * src/lib/file-set-size.c: file_preallocate(): Added support for OS X. [f6e45e83796b] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added support for pop3.uidl field. [3b13bd2d64f4] * NEWS: NEWS: mdbox_preallocate_space is for ext4, not ext3. [9aa158bd50eb] * configure.in: configure: Use sdbox name instead of dbox in the help. [a7d99b69523a] * .hgsigs: Added signature for changeset 8a838dcf8e76 [ece681b7bb4e] * .hgtags: Added tag 2.0.6 for changeset 8a838dcf8e76 [bc4baed68068] * NEWS, TODO, configure.in: Released v2.0.6. [8a838dcf8e76] [2.0.6] * src/doveadm/doveadm-sis.c: Static analyzer warning fix. [a6eb233ac3ba] * src/doveadm/doveadm-mail-import.c: doveadm import: Code correctness fix (wasn't visible to users) [d9a66fa6e206] * src/lib-fs/fs-posix.c: lib-fs: Fixed error handling for posix.write_stream_finish() [75cc38d62711] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-file.h, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-single/sdbox-file.c, src/lib-storage/index/dbox- single/sdbox-file.h, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c: dbox: Reverted the "check if altpath is mounted" change for now. If alt path didn't yet exist, it reported bogus errors. It should somehow check if there is anything under the alt root dir. [9e400f6963eb] * src/dsync/dsync-worker-local.c: dsync: Make sure POP3 UIDL string isn't corrupted while saving it. [4f90256c0e9c] * src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/mail- storage.c: lib-storage: Make sure POP3 UIDLs aren't tried to be saved with LFs. [3959ddbc633c] * src/lib-master/master-login-auth.c: Compiler warning fix. [f38e4e1465c8] * src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/userdb- passwd.c: auth: userdb passwd iteration now lists only users within first_valid_uid..last_valid_uid range. [745ef289b0ea] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-file.h, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-single/sdbox-file.c, src/lib-storage/index/dbox- single/sdbox-file.h, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c: dbox: If alt path is lost, fail with an error rather than rebuilding indexes. This could be simply because alt storage is unmounted at the time and rebuilding would just lose messages. If this error happens unintentionally, it's still possible to fix it with "doveadm force-resync". [099925543768] * src/dsync/dsync.c: dsync: Don't crash if USER environment isn't set and -u parameter isn't given. [760d84e274ad] 2010-10-20 Timo Sirainen * doc/example-config/conf.d/10-mail.conf: example-config: Added a warning about mail_attachment* being experimental. [ca2f5af61e7d] * doc/example-config/conf.d/10-mail.conf: example-config: Added mail_attachment_* settings. [d55afae11f89] * src/plugins/zlib/zlib-plugin.c: zlib: Hook into mail.istream_opened() method rather than mail.get_stream() This fixes zlib plugin to work with mail attachments. [82a1bdac2e4e] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-common/dbox-attachment.c, src/lib-storage/index/dbox-common /dbox-attachment.h, src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index/dbox-common/dbox-file.h, src/lib-storage/index /dbox-common/dbox-mail.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src /lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /test-mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: Added istream_opened() method to struct mail. This can be hooked into by plugins that want to do something with the message's stream in the message file, rather than the virtual resulting stream visible to client. For example when using dbox attachments, this stream contains only the data in the dbox files without any external attachments. [d94957cafd3e] * src/lib/istream-concat.c: istream-concat: Avoid assert-crashing. [90fb346baeb2] * doc/example-config/conf.d/10-mail.conf, src/lib-storage/index/dbox- multi/mdbox-file.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-settings.h, src /lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.h: mdbox: Added mdbox_preallocate_space setting to preallocate size for newly created files. [b884441a713f] * configure.in, src/lib/file-set-size.c, src/lib/file-set-size.h: Added file_preallocate() to preallocate space to a file without changing its size. Implemented for Linux. Doesn't look like other OSes support this. [22c81f884032] * src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-single/sdbox-copy.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-copy.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/maildir/maildir-storage.h: dbox, maildir: When copying messages, copy the cached fields also. Copy only fields whose caching decision is not "no" in the destination mailbox. [8ccf177754b3] * src/lib-storage/index/index-status.c: lib-storage: mailbox_get_status(): return cache fields allocated from data stack. Allocating them from mailbox's pool just wastes memory if it's called multiple times for same mailbox. [8a6cdefd829a] * src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache.h: lib-index: Added mail_cache_register_get_field(). [f170b3e39a34] 2010-10-19 Timo Sirainen * src/pop3/pop3-client.c: pop3: Don't crash if client disconnects in output handler. [5f9919f9e321] * src/lib/ioloop-iolist.c: ioloop: If io_add() is called twice for same fd, give a bit more informative panic message. [f7f2edaf6dca] * src/lib-mail/istream-header-filter.c: istream-header-filter: Fix to previous change. [0ac9af7f7d5b] * src/config/settings-get.pl, src/lib-storage/index/Makefile.am, src /lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/Makefile.am, src/lib-storage/index/dbox-common/dbox- attachment.c, src/lib-storage/index/dbox-common/dbox-attachment.h, src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-save.c, src/lib-storage/index/dbox-common/dbox- storage.c, src/lib-storage/index/dbox-common/dbox-storage.h, src /lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox- single/Makefile.am, src/lib-storage/index/dbox-single/sdbox-copy.c, src/lib-storage/index/dbox-single/sdbox-file.c, src/lib- storage/index/dbox-single/sdbox-file.h, src/lib-storage/index/dbox- single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-storage.h, src /lib-storage/index/dbox-single/sdbox-sync.c, src/lib-storage/index /index-attachment.c, src/lib-storage/index/index-attachment.h, src /lib-storage/index/index-storage.c, src/lib-storage/index/istream- attachment.c, src/lib-storage/index/istream-attachment.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage /test-mailbox.c, src/plugins/virtual/virtual-storage.c: lib-storage: Added support for saving mail attachments separately via filesystem API. Currently this works only with sdbox and mdbox backends. [28eaaa23f2c6] * src/lib/Makefile.am, src/lib/istream-base64-encoder.c, src/lib /istream-base64-encoder.h: liblib: Added istream for reading binary data as base64-encoded. [ce5bb3246ffb] * src/doveadm/Makefile.am, src/doveadm/doveadm-sis.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added commands for managing SiS directories. [21c70ff6b344] * configure.in, src/Makefile.am, src/lib-dovecot/Makefile.am, src/lib- fs/Makefile.am, src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-api.h, src/lib-fs/fs-posix.c, src/lib-fs/fs-sis- common.c, src/lib-fs/fs-sis-common.h, src/lib-fs/fs-sis-queue.c, src /lib-fs/fs-sis.c, src/lib-fs/ostream-cmp.c, src/lib-fs/ostream- cmp.h: Added lib-fs for simple filesystem accessing. Implemented POSIX, SiS and SiS-queue backends. [e3fe87b855ef] * src/lib/Makefile.am, src/lib/hash-format.c, src/lib/hash-format.h, src/lib/test-hash-format.c, src/lib/test-lib.c, src/lib/test-lib.h: liblib: Added API for easily building hash strings based on given format string and input. [22689f4ceecb] * src/lib/Makefile.am, src/lib/hash-method.c, src/lib/hash-method.h, src/lib/md4.c, src/lib/md4.h, src/lib/md5.c, src/lib/md5.h, src/lib/sha1.c, src/lib/sha1.h, src/lib/sha2.c, src/lib/sha2.h: liblib: Added a common API for accessing all hash methods. [368fd1cce4d6] * src/lib-mail/istream-header-filter.c: istream-header-filter: Drop duplicate headers instead of assert- crashing with them. [d95510ee0c8f] 2010-10-18 Timo Sirainen * src/plugins/acl/acl-mailbox.c: acl: Recent change broke setting acls. [0908326bf4b9] * .hgignore, doc/man/Makefile.am, doc/man/doveadm-import.1.in, src/doveadm/Makefile.am, src/doveadm/doveadm-mail-import.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added import command for importing mails from other storages. [6c2d5ed0b664] * src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Call mail command's init() only after service storage is initialized. [507d4c4859cf] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: lib-storage: Added no_userdb_lookup flag to storage service lookups. [27289650ed4c] * src/lib/Makefile.am, src/lib/ostream-file.c, src/lib/test-lib.c, src/lib/test-lib.h, src/lib/test-ostream-file.c: ostream-file: Fixed potential crash in write_at() and also fixed attempted optimization. [17957b5082cd] * src/lib-index/mail-index-lock.c: lib-index: More undoing of locking code changes. [0dae63c1af96] * src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c: acl: Fixed memory leaks. [7b47c5a321b9] * src/auth/auth-settings.c: auth: Default for auth_cache_negative_ttl was supposed to be 1 hour, not disabled. [94608c2debe2] * src/auth/auth-request.c: auth: Log userdb cache hits and misses with auth_debug=yes [b0ef4e803b1a] * src/lib-storage/mail-storage.c: lib-storage: Log a debug message if shared user's storage root doesn't exist with mail_debug=yes [953e7c6e546b] * src/plugins/acl/acl-backend-vfile.c: acl: Avoid passing NULL parameter to printf %s when mail_debug=yes [00637db0e54c] 2010-10-16 Timo Sirainen * src/pop3/pop3-client.c: pop3: Recent corking change caused hangs. [b8803a1e2dc2] * src/lib-index/mail-index-sync-ext.c, src/lib-mail/istream-header- filter.c, src/plugins/acl/acl-backend-vfile.c: Removed some dead code. [794f09e5571d] * src/lib-index/mail-index-sync-update.c: lib-index: Work around clang static analyzer's false positive "dead code" issue. [84a9dc26108f] * src/lib-lda/duplicate.c: lib-lda: Make sure duplicate_init() handles non-existent home correctly. With previous change mail_user_get_home() always set home, but this is good anyway. [0521ab2380cf] * src/lib-storage/mail-user.c: lib-storage: mail_user_get_home(): Make sure user_r is always set. [811e49651662] * src/lib-storage/mail-storage.c: lib-storage: mailbox_get_guid() crashed if storage didn't support GUIDs. [092d5ba2dcfa] * src/lib/istream-concat.c: istream-concat: Fixed another memory leak. [cc81de55245f] * src/lmtp/commands.c: lmtp: Don't access freed memory if input couldn't be opened as raw mail. This shouldn't really have ever happened. [d44e64390bdd] 2010-10-15 Timo Sirainen * src/lib-mail/istream-header-filter.c, src/lib-mail/test-istream- header-filter.c: istream-header-filter: Assert-crash if headers aren't given sorted. [0d689c112c6e] * src/master/main.c: Compiler warning/error fix to recent logging API changes. [9dd776345b22] * src/lmtp/commands.c: lmtp: Reverted last change after all. Besides, the error code was wrong. [a771ccba0c31] * src/lmtp/commands.c: lmtp: Don't allow saving zero byte sized messages. [2c364acbc293] * src/lib/ioloop-epoll.c: epoll: Suggest not-so-UUOC if epoll_ctl() fails for stdin [7a839a028dfa] * src/lib/istream-concat.c: istream-concat: Fixed a memory leak. [f48b52b9427e] * src/lib-storage/index/index-transaction.c: lib-storage: Added assert to transaction rollback to make sure all mails are freed. The same assert was already in commit, so this should be fine. [d2910cd43d1d] * src/auth/auth-penalty.c: auth: Make sure auth request is kept referenced during the lookup. [0b509f1ee95c] * src/lib-master/master-service.c: lib-master: Properly fixed accepting FIFO connections with BSDI. [3385e9028410] * src/log/log-connection.c: log: Avoid calling time() unnecessary when logging multiple lines. [80097e5c38e9] * src/lib/failures.c, src/lib/failures.h: Failure logging supports now getting timestamp as parameter. [e68366e88099] * src/doveadm/doveadm-log.c, src/lib-test/test-common.c, src/lib/failures.c, src/lib/failures.h, src/log/log-connection.c, src/master/main.c: Cleaned up log callbacks and made them more extensible. fatal_failure_callback_t type is now gone, there's only failure_callback_t left that has a struct pointer as parameter. More parameters can be easily added to the struct in future. [4933c3095ee2] * src/plugins/acl/acl-mailbox-list.c: acl: Log mailbox names that are skipped due to missing lookup right with mail_debug=yes [b0e4edc4d79a] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Log attempted accesses to nonexistent users' mails with mail_debug=yes. [b277b71fb57f] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Use MAIL_STORAGE_FLAG_NO_AUTOVERIFY for creating shared namespace storages. This avoids failing storage creation for nonexistent users. Previous failure made it possible for logged in users to figure out what other usernames existed on the system. [2d6396330099] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Added MAIL_STORAGE_FLAG_NO_AUTOVERIFY to skip checking storage root dir existence. [0cc916fc09f9] * src/auth/passdb-ldap.c, src/auth/userdb-ldap.c: ldap: Compare LDAP attribute names case-insensitively. [a8b9d7fdc646] * src/auth/userdb-ldap.c: ldap: Log a warning if iterate_attrs has other fields than 'user'. [5cc31ecf199e] 2010-10-14 Timo Sirainen * src/lib-storage/index/maildir/maildir-util.c: maildir: Check correctly if file is a symlink. Patch by Mike Abbott / Apple. [df6f5d270a46] * src/lib-index/mail-index-lock.c: lib-index: Put back some of the removed locking complexity. This fixes a crash when mmap_disable=no and a index was mmap()ed (which keeps the index locked) and later its read-lock was tried to be changed to write-lock. [ff1ac6f22ba1] * src/login-common/client-common.c: *-login: If client didn't log in, don't log mpid in logout message. [c38f630dae09] * src/imap/imap-client.c, src/pop3/pop3-client.c: imap, pop3: Cork TCP connection before trying to flush output in output callback. [f3aa8be626fa] * src/lib-storage/mail-storage.c: lib-storage: If mailbox deletion failed, we crashed while trying to write undelete record to index. [a3e40c6b14fe] * src/lib-index/mailbox-log.c: lib-index: Don't reopen mailbox log file too often. [03ac8057710d] * src/lib-index/mailbox-log.c: lib-index: Mailbox log writing was trying to write to a closed log file fd. [80a080814041] * src/auth/auth-request.c: auth: Give a better error message if pass=yes can't be used in master passdb. [f451ffa51772] 2010-10-06 Timo Sirainen * src/plugins/quota/quota-maildir.c: quota: Log a warning if Maildir++ quota is enabled for non-Maildir storage. [6ea01abfaea9] * src/master/main.c: master: Parse and check full config at startup. [092c39cf86b9] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Added support for parse_full_config input option for settings parsing. [d63b48a452f1] * src/config/doveconf.c: doveconf: Added -p parameter to parse full config even if -m module is given. [8d36d8f5fcef] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Write only base filenames to uidlist. Previously the old filename was used to guess the initial filename, but nowadays we do that by building the filename based on flags in index. [cc969ee7074b] * src/lib-storage/mail-search-register-imap.c: imap search: Fixed YOUNGER/OLDER [84014f0baaf4] * src/lib-storage/index/index-search.c: search: If body search fails due to I/O error, keep the result as "unknown". Found by Vadim Okun [41454ed5a3eb] * src/lda/main.c: lda: -m parameter's UTF-8 validity wasn't checked correctly. Found by Vadim Okun [c4f91b9acb01] * src/lib-lda/mail-deliver.c: lib-lda: Fixed error handling if newly delivered mail couldn't be opened. Found by Vadim Okun. [74ede782269d] * src/lib-index/mail-index-transaction-finish.c, src/lib-index/mail- index-transaction-private.h, src/lib-index/mail-index-transaction.c: lib-index: Always update index map while committing a transaction. The previous code was doing this only in some situations, which was probably enough, except maybe in some special cases. The log file was also read until EOF always anyway, so the only thing this was saving was some CPU. With the new behavior the committing stage should be more reliable, and also makes it easier to do changes without accidentally breaking it. [ab2222fd3f5d] * src/lib-index/mail-cache-transaction.c, src/lib-index/mail-index- transaction-private.h, src/lib-index/mail-index-transaction- update.c: lib-index: Cache offsets were sometimes written pointing to an older cache file. [d0ddc30f0eef] * src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-transaction.c, src/lib-index/mail-index- write.c, src/lib-index/mail-index.c, src/lib-index/mail-transaction- log-append.c, src/lib-index/mail-transaction-log-file.c, src/lib- index/mail-transaction-log-private.h, src/lib-index/mail- transaction-log.c, src/lib-index/test-mail-transaction-log-view.c: lib-index: Avoid unnecessary pread()s at end of transaction log file. If we've already read until EOF while the file has been locked, there's no need to do it again. Previously this worked while index was being synced, but not while committing a transaction. [41e99ee5c1dd] * src/lib-index/mail-index-lock.c: lib-index: Removed unnecessary code from lock handling. The code was intended only for blocking write-locks, but those haven't been used for a long time now. [814adaed5b00] * src/lib-dict/dict-client.c: lib-dict: If connect() to dict socket fails, log an error, but don't die. [c61cc8fd42ef] * src/plugins/quota/quota.c: quota: Give better error message for connect() EACCES failure to quota-warning socket. [93fe557c0f7b] 2010-10-05 Timo Sirainen * src/auth/passdb-static.c: auth: Added lookup_credentials() support for passdb static [e92d2aaab3e4] * src/imap/cmd-idle.c: imap IDLE: Don't send "Still here" notifications if there is already data in output buffer. [73c6b077bcba] * src/master/main.c: master: Get only master-related configuration from doveconf at startup. [760e584b352b] * src/lib-storage/index/maildir/maildir-save.c: maildir: Don't assert-crash when saving a message without locking uidlist. [e2f9baa436f2] 2010-10-04 Timo Sirainen * src/lib/priorityq.c: priority queue: Set item's idx value to invalid when it's removed from queue. This should assert-crash on double-removes more reliably. [4db5123f91e4] * src/lmtp/lmtp-proxy.c: lmtp proxy: Avoid hanging at the end of message input. [1f784904111b] * src/lib-storage/list/subscription-file.c, src/lib-storage/list /subscription-file.h, src/lib-storage/mailbox-list.c: lib-storage: Don't write to dovecot.mailbox.log if setting subscription didn't actually change anything. [45812039b7ce] * src/lib-index/mailbox-log.c: lib-index: Fixed leaking fds when writing to dovecot.mailbox.log [2b8b2875af26] * src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c: imap-* plugins: Use the new imap_client_created_hook_set() to set the hook. This avoids accessing variables directly, which allows Dovecot to give better error messages if imap-* plugins are tried to be loaded by non-imap binary. [1df6a392a613] * src/imap/imap-common.h, src/imap/main.c: imap: Added imap_client_created_hook_set() to update the hook. [31a34cff1ebe] * configure.in: configure: Added IDLE to banner CAPABILITY to make Blackberry happy. [b63b6ad01448] * src/login-common/ssl-proxy-openssl.c: login: Give a better error message if ssl_cert=path is attempted without '<' [a508ff1db74c] 2010-10-01 Timo Sirainen * .hgsigs: Added signature for changeset 2690facaa927 [b0e0dc5c3dd3] * .hgtags: Added tag 2.0.5 for changeset 2690facaa927 [7bf1818ff32b] * NEWS, TODO, configure.in: Released v2.0.5. [2690facaa927] [2.0.5] * src/lmtp/commands.c: lmtp: Make sure we partial messages aren't saved if client disconnects during DATA. [a75e62340aa5] * src/lib-storage/list/mailbox-list-subscriptions.c, src/lib- storage/list/subscription-file.c: lib-storage: Don't wrongly ignore subscriptions=no namespace entries. [da9185d1309c] * src/dsync/dsync.c: dsync: Fail if both source and destination mail location point to same directory. This should prevent some accidents. [39ef52bc4999] * src/config/config-request.c: config: Show time/size setting values as more human readable. [7c4e4a6b1714] * src/imap/imap-client.c, src/plugins/imap-zlib/imap-zlib-plugin.c: imap: Don't reset input/output byte counters when COMPRESS is started. [766564bb051f] * src/lib/istream.c, src/lib/istream.h: Added i_stream_get_absolute_offset(). [0c82fe7ce578] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: eof_offset wasn't always set right, causing assert-crashes. [e7768ec9d3de] * src/plugins/zlib/istream-bzlib.c: zlib: Fixed istream-bzlib also with mark=TRUE seeking [138d848b1e22] * src/plugins/zlib/istream-zlib.c: zlib: Fixed istream-zlib when using seeking with mark=TRUE (i.e. mbox) [ab24859c3527] * doc/example-config/conf.d/20-pop3.conf, src/pop3/pop3-client.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: pop3: Added pop3_fast_size_lookups setting. [c172f2a384f5] * src/lib-storage/mail-storage.h: mail-storage.h comments updated. [d48456c46a49] * src/pop3/pop3-client.c: pop3: Code cleanup for mailbox opening code. [0da6f86c0ef5] * src/plugins/acl/acl-api.h, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c: acl: Fixed the logic of merging multiple ACLs. [90642b388d7e] * src/plugins/acl/acl-backend-vfile.c: acl: Reverted last change. It still allows reading the default ACL from .DEFAULT file. [ef94878e8573] * src/plugins/acl/acl-backend-vfile.c: acl: Avoid extra open() on a directory for default acl. [e12b7ee0a9dc] 2010-09-30 Timo Sirainen * src/plugins/acl/acl-lookup-dict.c: acl: Avoid opening two dict iterators at the same time. [ecc0bc80288c] * configure.in, src/lib-dict/Makefile.am: dict: Support file backend also with dict proxy. [e3fbe13c0eab] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Fixed fetching uid field. [d6582f3ee54d] * src/auth/auth-client-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h: auth: Don't assert-crash if a request still succeeds after its client connection is gone. [bc782780d0fe] * src/auth/auth-request-handler.c, src/auth/auth-request.h: auth: Avoid crashing when finishing failed requests that already timed out. [dfa2b49d8298] * src/plugins/virtual/virtual-storage.c: virtual: Allow opening virtual mailboxes that refer to non-existing mailboxes. It could be intentional that not everyone has the same set of mailboxes always. [32f68d621f1d] * src/lib-index/mail-index-sync.c: lib-index: If mail_index_sync_begin() fails, don't assert-crash [a7a953486a0b] * src/director/director-connection.c: director: Properly detect invalid command parameters in director<->director connections. Found by Paul E. Black. [a224997afefd] 2010-09-29 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Avoid recreating uidlist all the time when indexes are disabled. This code originally existed because old records weren't removed from uidlist->records and so this compression would never have been done, but 0818f0a49704 changed this behavior. [10544c9cd8e8] * src/lib-storage/index/maildir/maildir-mail.c: maildir: Avoid opening cache file when getting physical message size. [dd53d1a27358] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- mail.h, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h: Maildir: If mail's virtual size can be found from filename/uidlist, do it instead of using cache. This is especially useful with POP3 to avoid opening cache file. [906746b4f383] * src/lib-index/mail-transaction-log-file.c: lib-index: If transaction log file is small enough, just read all of it to memory immediately. [062da0b83c01] * src/lib-index/mail-index-sync.c, src/lib-storage/index/maildir /maildir-storage.h, src/lib-storage/index/maildir/maildir-sync.c: maildir: Avoid refreshing transaction log immediately on first sync. [49bd77c018bd] * src/lib-index/mail-index.c, src/lib-index/mail-transaction-log.c: lib-index: Avoid refreshing transaction log immediately after it was opened. [8af455e61dad] * src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- storage.c: virtual: Don't unnecessarily stat() the virtual directory. Its existence is checked automatically when trying to open dovecot- virtual file. [e140d7aab969] * src/pop3/Makefile.am: pop3: Fixed virtual plugin when compiling --without-shared-libs [5db6b49f31c4] * src/lib-index/mail-transaction-log-private.h, src/lib-index/mail- transaction-log.c: lib-index: Don't waste time on every mailbox open checking if .log.2 should be deleted. [e670e8a97a8f] * src/lib-storage/list/mailbox-list-maildir.c: Maildir++: When opening namespace prefix as mailbox, don't add extra '/' to path names. [c992b1942e08] 2010-09-28 Timo Sirainen * src/config/doveconf.c, src/lda/main.c, src/lib-master/master- service-settings.c, src/lib-master/master-service-settings.h, src /lib-storage/mail-storage-service.c, src/lib-storage/mail-storage- service.h: lda: If doveconf fails, make it exit with EX_TEMPFAIL. [002a702cf06a] * src/login-common/client-common.h, src/login-common/sasl-server.c: login: If master login fails, tell auth process to free the auth request. [9939f0565916] * src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-util.c: maildir: If we see unwanted non-empty directories in new/ or cur/, move them to ../extra-* [cf1e5238f747] * src/config/config-parser.c: config: Don't even try to open * src/lib-storage/index/dbox-single/sdbox-copy.c: sdbox: Fixed memory leak when copying messages with hard links. [d75a01131ddc] * src/config/config-parser.c: config: Verify settings plugins' versions are valid if they're specified. [81a3da7f6413] * src/config/config-parser.c: doveconf: Expand "key=$key" variable even without -x parameter. Without this expansion it hides what the settings actually contain. [1c3d9244f248] * src/lib-storage/list/subscription-file.c: lib-storage: Buffer writes to subscriptions file. [432208994270] * src/lib-storage/list/subscription-file.c: lib-storage: Avoid fsyncing subscriptions file when it doesn't change or if mail_fsync=never. [4959db811d29] * src/plugins/zlib/Makefile.am, src/plugins/zlib/zlib-plugin.c: zlib: Avoid using hardcoded storage name strings. [a3c8026d0305] * src/plugins/zlib/zlib-plugin.c: zlib: dbox storage is now called sdbox. [c359ee549df7] 2010-09-26 Timo Sirainen * .hgsigs: Added signature for changeset 7f5c5778c4b9 [3b2dada4ba64] * .hgtags: Added tag 2.0.4 for changeset 7f5c5778c4b9 [ceecb0f6a790] * NEWS, TODO, configure.in: Released v2.0.4. [7f5c5778c4b9] [2.0.4] * src/lib-storage/index/maildir/maildir-storage.c: Maildir: Fixed accessing INBOX whose tmp/ directory was lost. [5b0a1974fc6f] * src/imap/imap-commands-util.c: imap: Give better error message for "Unknown namespace" [45a62c8637e8] 2010-09-24 Timo Sirainen * src/lib/module-dir.c: module_dir_load(): Make it clearer that "Skipping module" debug message is normal. [bac6907a14a8] * src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: Removed unused code. [b2e9ecbc82fe] * src/lib-sql/driver-pgsql.c: pgsql: Avoid epoll_ctl() errors when closing connection. [68c44e8740a2] * src/lib-storage/index/maildir/maildir-save.c: maildir: Another assert for saving messages. [c7a5d25dceb6] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Use "sdbox" name in the internal storage structure. This fixes copying with hard links. [1070b54b9471] * src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c: maildir: Added extra asserts. [c2d50bd35dc4] * src/lib-storage/index/maildir/maildir-save.c: maildir: Don't waste time stat()ing if generated filename is in tmp/. [aa18316e271d] * src/lib-storage/list/subscription-file.c: lib-storage: Check valid subscriptions list entries with _is_valid_existing_name() [9e8e18e4072c] 2010-09-23 Timo Sirainen * src/plugins/quota/quota.c: quota: When logging about obsolete rule, log the full rule string. [a15b0d032c27] * src/plugins/quota/quota.c: quota: When logging about obsolete rule, log also the quota root name. [8e057c95e44e] * src/config/old-set-parser.c: config: Added conversion support for obsolete sieve/sieve_storage settings. [0569f9f5b754] * src/lib-storage/list/subscription-file.c: lib-storage: Log and hide invalid entries in subscriptions file. [5b83114df036] * src/anvil/anvil-settings.c, src/auth/auth-settings.c, src/director /director-settings.c, src/lib-master/service-settings.h, src/log /log-settings.c, src/master/master-settings.c: Fail at startup if process_limit>1 for services that don't support it. [ce75971127a2] * src/lib-master/master-login-auth.c: lib-master: If auth server is restarted, still log a warning about aborted auth request. [acd30d4601f9] * src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.h: maildir: Log a warning if mailbox synchronization takes longer than 1 min. [41b3ab0a3241] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Use correct enum for getting uidlist record GUID. [62d3c2dfee6d] * src/lib-storage/index/maildir/maildir-mail.c: maildir: Fixed a race condition in getting a new message's GUID. [9d9cb38f1b5d] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Code cleanup: Use MAILDIR_UIDLIST_HDR_EXT_* when building the header string. [24b84a62d8fe] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Don't add GUIDs to "external expunge" records. There's no point. [48567ea799ba] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: When uidlist file is recreated and reread, clear old records from memory. This should avoid wasting some memory and also fix "Duplicate file entry" errors. [0818f0a49704] * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h: maildir: Cleaned up filename/guid preserving code on save/copy. [77e71551fe55] * src/dsync/dsync-worker-local.c: dsync: Avoid assert-crashing when trying to create a reserved mailbox name (e.g. dbox-Mails) [4a753371ae73] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Fixed expunging messages with GUIDs in uidlist. [c24206d083e8] * src/lib-lda/duplicate.c: lib-lda: Fixed handling duplicate database when user has no home dir. Now it gives a clear error message and doesn't crash with some OSes. [75e466740c57] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-private.h: lib-index: Log a warning if transaction log lock is kept over 3 minutes. [6d6d9f49f61b] 2010-09-22 Timo Sirainen * configure.in, src/auth/passdb-vpopmail.c: Attempt to fix vpopmail support. [02a9cf90ad02] * src/lib-dict/dict-file.c: dict-file: Don't leak fd on deinit. [7cf2b8b8a720] 2010-09-21 Timo Sirainen * src/plugins/quota/quota-count.c, src/plugins/quota/quota-private.h: dict quota: Avoid crashing if quota recalculation tries to recurse. [ee91aee81d0d] * src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/quota/quota.h: quota: Avoid calling i_fatal() on initialization errors, plus some other fixes. [3780caa2a6f2] * src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: If user->error is set during initialization, fail user creation. [7dd6ff192718] * src/ssl-params/ssl-params-settings.c: ssl-params: Don't start it at startup if Dovecot is compiled without SSL support. [c758655c6270] * src/lib-storage/index/maildir/maildir-save.c: Maildir: If POP3 UIDL is specified for saved message, add it to uidlist. [3f04426b00fb] * src/lib-storage/mail-storage.c: lib-storage: Added assert against empty UIDL in mailbox_save_set_pop3_uidl(). [ad81284d43ff] * src/dsync/dsync-worker-local.c: dsync: Don't set POP3 UIDLs to empty values. [8b1ec21f50e6] * src/lib-auth/auth-client-request.c: lib-auth: Last change broke multi-step auth mechanisms. [0d101d089b5b] * src/lib-dict/dict-client.c: dict client: If connect to server socket fails with EACCES, give better error message. [c6783cbd0235] * src/plugins/expire/doveadm-expire.c: doveadm-expire: Improved debug logging. [0c22286d5fc7] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added iterate_single_user mail context field. [dc98970aef85] * src/lda/main.c: lda: If mail_debug=yes and no -d parameter is given, log where username is taken from. [942bb9258e49] 2010-09-20 Timo Sirainen * src/lib-auth/auth-client-request.c: lib-auth: Make sure auth request isn't tried to be double-freed on error conditions. This could have happened if auth server crashed. [af45e2f36059] * src/lib/network.c: Make sure no data is leaked across processes via struct ip_addr fields. [e403f4dc95ea] * src/lib-master/master-login-auth.c: lib-master: When finishing auth, don't send REQUEST if auth process has restarted. This avoids unnecessary "Master requested auth for nonexistent client" errors when auth process restarts (crashes). [16330c0c8ef4] * src/lib-lda/Makefile.am, src/lib-storage/Makefile.am: lda, storage .so libs: Added explicit linking against other .so libs they require Based on patch by Funda Wang [26e88084bbc0] * src/lib-storage/index/dbox-multi/mdbox-map-private.h, src/lib- storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/dbox- multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: If :INDEX=path is specified, keep storage indexes there also. [012a1773ebfd] 2010-09-17 Timo Sirainen * .hgsigs: Added signature for changeset a475e8d4eb21 [b44b8ba23c5c] * .hgtags: Added tag 2.0.3 for changeset a475e8d4eb21 [b153157e4e73] * NEWS, TODO, configure.in: Released v2.0.3. [a475e8d4eb21] [2.0.3] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: If subscriptions contains an invalid entry, don't crash with fs layout. [f7bd4059c6af] * src/lib/fdpass.c: fdpass: Use memcpy() to access data in CMSG_DATA(). This fixes at least AIX where the previous way was broken for some reason. [bdf922d26534] * src/lib/ioloop-poll.c: poll: Added a workaround for AIX to get it to notice IO_ERRORs [4a5e2be6e112] 2010-09-16 Timo Sirainen * src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h: maildir: uidlist can now override message's GUID [b93405cdd4e9] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Use array_bsearch() in uidlist instead of reimplementing it. [6a99212b636d] * src/lib-storage/list/mailbox-list-fs.c: lib-storage: Recent change broke creating mailboxes with fs layout. [0540815363b6] * src/doveadm/doveadm-mail.c: doveadm: Give binary name to plugin loading code so it can give better error messages. [7000a9833b19] 2010-09-15 Timo Sirainen * src/dsync/dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync.c: dsync: Don't crash/hang if syncing fails before ioloop is started. [eb5adb193064] * src/master/service-monitor.c: master: Fixed previous "client/process_limit reached" log change. [f026e809113d] * src/lib-storage/mail-namespace.c: lib-storage: Fail if list=yes namespace prefix starts with hierarchy separator. [c39dcf0504e6] * src/lib-mail/message-parser.c: lib-mail: Previous message parser optimization caused infinite looping with some mails. [14a6e526900d] 2010-09-14 Timo Sirainen * src/lib-index/mail-index-transaction-update.c: lib-index: day_first_uid[] array wasn't kept properly up to date. The result was that caching decisions could have been sometimes slightly wrong. Based on patch by Paul E. Black. [8b6b0412dc18] * src/master/service-monitor.c: master: If service with process_limit=1 reaches client_limit, log it better. [fac83abe8aaf] * src/lib/failures.c: When writing to logs, ignore write()=EINTR failures from non- terminal signals. The previous code failed after 3 successive EINTRs, which was possible if the process got a lot of signals (e.g. master process getting lots of SIGCHLD signals). [5626fee3b7b9] * src/lib/lib-signals.c, src/lib/lib-signals.h: Added signal_term_counter that keeps track of how many terminal signals have been received. [7f364dafc675] * src/dsync/dsync-worker-local.c: dsync: Fixed creating \noselect mailboxes. [02d78c4a0a51] * src/dsync/dsync-worker-local.c: dsync: Don't create \Noselect mailboxes as selectable mailboxes, rather just don't create them. This fixes creating extra empty mailboxes when mirroring mbox+fs layout and maildir++ layout. [7305a7787536] * src/lib-storage/index/shared/shared-list.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/list/mailbox-list-none.c, src/lib-storage/mail- storage.c, src/lib-storage/mailbox-list-private.h, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/acl /acl-mailbox-list.c: lib-storage: Added mailbox_list_create_dir() [ba924e3ee4ae] * src/lib/istream-crlf.c: istream-crlf: Fixed assert-crash. [2e1226259979] * src/lib-settings/settings-parser.c: lib-settings: Give a better error message for invalid boolean values [2d80fc07124a] * doc/example-config/conf.d/15-lda.conf, src/lda/main.c, src/lib-lda /lda-settings.c, src/lib-lda/lda-settings.h, src/lmtp/commands.c: Added lda_original_recipient_header setting. Removed non-standard use of Envelope-To: header. [8bd2bd410c73] * src/lda/main.c, src/lib-lda/mail-deliver.h, src/lmtp/commands.c: lda: Added -r parameter to specify final recipient address. (As opposed to -a which specifies original recipient address.) This is going to be used by Sieve checks. [d56a28e83f32] * src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: Added support for reverse quota warnings. Based on patch by Jeroen Koekkoek [d6dc68825427] 2010-09-13 Timo Sirainen * src/plugins/quota/doveadm-quota.c: doveadm quota: Removed unused search_args. This fixes a crash when used with doveadm_expire plugin. [4a67c3a3ec6f] * src/login-common/client-common-auth.c: *-login: Ignore ENOTCONN error for shutdown() It's probably just a duplicate of a previous read() failure. [babeebf041c4] * src/lib/iostream.c: iostream: Call destroy callback after the destroy() method is called. [18ab89f4d6a1] * src/lib-sql/driver-mysql.c: mysql: When sql_exec() fails, log an error. [90bdbeb132a7] * src/lib-sql/driver-mysql.c: mysql: When query fails because connection gets lost, use MySQL failure message instead of generic one. [bcb61478f04d] * src/plugins/acl/acl-mailbox-list.c: acl: Don't break if mailbox listing returns an empty name. [4fc447d1281e] * src/login-common/login-proxy-state.c: login proxy: If proxy-login pipe isn't found, don't log an error. The pipe exists only when director is enabled. [7b629b219be5] * src/lib-index/mail-index-fsck.c: lib-index: fsck shouldn't assert-crash when no .log file exists [f97b0b163e01] * src/lib-index/mail-index-map-read.c: lib-index: readonly status was checked wrong when deleting corrupted index files. [39fef730dec3] * src/lib-master/master-service-settings.c: lib-master: If config file can't be even stat()ed (e.g. permission error), give better error msg. [c98cdeb2c67a] * src/lda/main.c: lda: If destination user isn't found, exit with EX_NOUSER, not EX_TEMPFAIL. [69a3dfe6dba3] 2010-09-08 Timo Sirainen * .hgsigs: Added signature for changeset f4eb53065879 [0003c55ccb75] * .hgtags: Added tag 2.0.2 for changeset f4eb53065879 [643b2fb14b55] * NEWS, TODO, configure.in: Released v2.0.2. [f4eb53065879] [2.0.2] * src/plugins/acl/acl-backend-vfile.c: acl: Make sure acl-list and dict is rebuild when replacing/clearing ACLs [cbc30c72b3ce] * src/plugins/acl/acl-lookup-dict.c: acl: Fixed removing entries from shared dict when rebuilding [d377c610b19d] * configure.in, dovecot.m4: dovecot.m4: Added --with-moduledir and export dovecotdir [711b5f193f04] * src/lmtp/main.c: lmtp: Read initial settings with service=lmtp [7fef89fea00e] * src/auth/userdb-static.c: auth: If no passdb is specified, don't fail when userdb static tries to verify user existence. [e392f5f65cd8] * src/auth/auth-settings.c, src/config/old-set-parser.c: Don't fail with auth_cache_size=0 [52e197994a55] * src/config/old-set-parser.c: config: Automatically convert old-style auth_cache_size value. [77075d202fc1] * src/auth/auth-settings.c: auth: Fail if auth_cache_size value is too small. [27d235096cca] * src/auth/auth-cache.c: auth: Don't crash if auth_cache_size has a very small value. [9dc3c6de6e82] * src/login-common/client-common-auth.c: login: Crashfix when client disconnects before auth process has started. [af71d71e4b88] 2010-09-07 Timo Sirainen * src/lib-sql/driver-sqlpool.c: sql pool: Delay creating a transaction until commit is called. Otherwise sql connection is reserved for the duration of the transaction. [902f008f17cf] * src/lib-master/master-auth.c, src/lib-storage/index/index-mail.c, src/lib/fdpass.c, src/login-common/ssl-proxy-openssl.c: Compiler warning fixes. [d72b4a74a992] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Avoid unnecessary uidlist recreation during mail delivery. [c7e1c71c5ec5] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: If uidlist isn't read, don't mark its UIDs as being known when saving. [65b0e7b4eda9] 2010-09-06 Timo Sirainen * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Potential assert-crashfix. [0d5f21aeda68] * src/lib-storage/mailbox-list.c: lib-storage: Don't fail with "maildir_name not supported" when using empty DIRNAME= [b00d3a367d79] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Minor code cleanup. [ab72c0760133] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: If we see duplicate file with retry_rewind set, try rewinding first. [e2a267b64619] 2010-09-03 Timo Sirainen * src/config/config-parser.c: config: Give an error if "block {" continues with non-whitespace. [a05834588ffb] * src/lib/mempool-alloconly.c: alloconly mempool: Clear pool with memset(), not safe_memset(). [124dd0840ed8] * src/lib/Makefile.am, src/lib/mempool-alloconly.c, src/lib/mempool- system-clean.c, src/lib/mempool.h: liblib: Removed unused system-clean and alloconly-clean mempools. They're just making the code messier and slower. [0b1c1db31387] * src/lib-imap/test-imap-match.c: test-imap-match: Don't use "clean" alloconly mempool, there's no point. [fef504af51b1] 2010-09-02 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: If save fails due to lock failure, don't assert-crash [c24b0dd6e3ac] * src/lib-index/mail-index-lock.c, src/lib-index/mail-transaction-log- file.c, src/lib-index/mail-transaction-log-private.h, src/lib-index /mail-transaction-log.c: lib-index: Lock timeout setting wasn't actually used in all places. [2dca300aee5c] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Fail earlier if shared namespace prefix contains modifiers. [2c4bdec44065] * src/lib-storage/mail-namespace.c: lib-storage: Minor namespace error handling cleanup. [6812a4bf6566] * src/lib-storage/mail-namespace.c: lib-storage: Give an error about duplicate namespace prefixes. [a3f016b7b914] * src/config/config-parser.c, src/config/config-parser.h, src/config/doveconf.c: doveconf: Quote output values when necessary. [31387c9d5b88] * src/lib-storage/mail-namespace.c: lib-storage: If shared namespace uses %% in location, but not in prefix, fail with error. [4d8b54fc4ef5] * src/director/director-connection.c: director: If outgoing connection dies soon, mark the host as failed to avoid immediate reconnect. [ff5a47012287] * src/plugins/fts/fts-storage.c: fts: More percentage counter calculation fixes. Patch by William Blunn [d55d6a72a043] 2010-09-01 Timo Sirainen * src/plugins/fts/fts-storage.c: fts: Removed float calculations from "Indexed n% of the mailbox" message. [1012052e2e85] * src/doveadm/doveadm-mail-list-iter.c: doveadm: Support accessing mailboxes in non-private namespaces. The default is still the same as "*", and wildcards won't cross namespace boundaries so unless the namespace prefix is explicitly used non-private namespaces are still invisible. [267385a0ccd3] * src/imap/cmd-idle.c: imap: Don't hang if client sends IDLE + DONE pipelined. [c7b351d415d9] * src/imap/cmd-idle.c: imap: Make sure we don't crash when client disconnects during IDLE with lots of changes. [4d9768fd1a55] * src/imap/imap-commands-util.c: imap: Fixed a crash with tb-extra-mailbox-sep workaround and selecting "ns-prefix/" box. [75611e9088b6] * src/lib-storage/mail-storage.c: lib-storage: If mailbox deletion fails, mark the index back as undeleted. [eecc2fda78c1] * src/lib/istream.c: i_stream_next_line(): Fix for the previous optimization. [0c73829cd1f8] * src/master/master-settings.c: master: Make sure base_dir has at least 0755 permissions. [bc5c9bd4bc7e] * src/imap/cmd-select.c: imap: If selecting a mailbox fails, close the already selected mailbox. [a428dd6fe3e7] * src/lib/istream-crlf.c: istream-crlf optimization. Based on patch by Len7hir [5163d94d4272] * src/lib/istream.c: istream_next_line() optimization. Based on patch by Len7hir [e9358064c45e] * src/lib-mail/message-parser.c: lib-mail: Optimized message parser code. Based on patch by Len7hir [e275c4f02501] 2010-08-31 Timo Sirainen * src/auth/auth-worker-server.c: auth: Give better EACCES error if we can't connect to auth-worker. [1d895c7a753d] * src/lib/eacces-error.c: access_get_error(): Fixed to give better error messages with relative paths. [8db227a70bec] * configure.in: configure: vpopmail is broken, fail configure if --with-vpopmail is used. [f90590836165] * src/lib/restrict-access.c: Fixed setgid() failure error message. Based on patch by Clint Adams [1cb0325ff6df] 2010-08-26 Timo Sirainen * src/config/old-set-parser.c: doveconf: When logging an obsolete warning, log a note about using doveconf. [c5111fb65b0b] 2010-08-24 Timo Sirainen * .hgsigs: Added signature for changeset 8baa8ccb4021 [e7dd800e1e3c] * .hgtags: Added tag 2.0.1 for changeset 8baa8ccb4021 [4d9ab55954ad] * NEWS, configure.in: Released v2.0.1. [8baa8ccb4021] [2.0.1] * src/lib-storage/index/dbox-common/dbox-storage.h: dbox: Create dbox temp files with ".temp." prefix, not "temp." This makes it consistent with the rest of the created temp files and also gets any stale temp files deleted. [c562721dff2d] * src/lib-storage/mail-storage-service.c: lda: Don't fail with "mail_uid/mail_gid not set" error when running without -u. [14190cceb903] * src/plugins/quota/quota-storage.c: quota: Mark the mailbox deleted before starting to reduce quota. This fixes race conditions with another process modifying the same mailbox at the same time. [6933cfa5315a] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c: lib-storage: Allow mailbox_mark_index_deleted() to be called multiple times within same mailbox alloc. [72b5a0af6e4e] 2010-08-23 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Fixes to previous data encoding changes. Patch by Erik Hetzner [0f6e3c9037d5] * src/lib/base64.c, src/lib/base64.h: Added base64_is_valid_char() [f0d3d7eb0604] * src/lib/buffer.c: liblib: Don't segfault if write is attempted beyond non-dynamic buffer's bounds. [edb490f2ad6a] * src/dsync/dsync-proxy-client.c: dsync: Assert-crashfix with remote dsyncing. [f5e8fffacc92] * src/auth/auth-request-handler.c: auth: Crashfix when aborting auth request doing async passdb/userdb lookup. [d2b49c7d4046] * src/auth/db-sql.c: auth: Abort any pending SQL requests earler to avoid crashes. [8b85c3b89343] * src/lib-sql/driver-pgsql.c, src/lib-sql/driver-sqlpool.c, src/lib- sql/sql-api.h: lib-sql: sql_disconnect() now aborts all pending requests. [b88b207b79b2] * src/imap/cmd-select.c: imap: Fixed parsing SELECT QRESYNC parameters [17174c55008b] * src/imap/cmd-select.c: imap: Fail if QRESYNC seqset parameters use '*' [04fc57a7a425] * src/lib-imap/imap-seqset.c, src/lib-imap/imap-seqset.h: lib-imap: Added imap_seq_set_nostar_parse() [cd0e0e44d4eb] * doc/man/dsync.1.in: man: Updated dsync man page. [c0ea2ceae362] * src/dsync/dsync-brain.c: dsync: If worker fails, abort earlier. [6ef21adeb61d] * src/dsync/dsync.c: dsync: Execute remote dsync binary before dropping privileges. [83f98d61bea2] * configure.in: configure: --with-ssl=gnutls gives error now immediately [ab75eff633aa] 2010-08-20 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Replace characters not valid for XML with replacement char. [38674aff6956] * src/lib/unichar.c, src/lib/unichar.h: Added a global utf8_replacement_char variable. [6105706de7b6] * src/master/service-process.c: master: Fixed log_path=/dev/stderr [d7a3abc9e0e0] * src/lib-storage/mail-storage-service.c: lib-storage: Don't complain about missing UID/GID when running as root is allowed (standalone). [807bc9ea1411] * src/lib-storage/mail-storage-service.c: lib-storage: Give better error message if user is missing UID/GID [53e74e057506] * doc/example-config/conf.d/10-master.conf: example-config: Added example dict service [bb69d9d96b88] * src/imap/imap-settings.c, src/lmtp/lmtp-settings.c, src/master /master-settings.c, src/master/master-settings.h, src/pop3/pop3-settings.c: Reverted previous commit. It's a stupid feature: mail_access_groups already exists. [a8397390075d] * src/imap/imap-settings.c, src/lmtp/lmtp-settings.c, src/master /master-settings.c, src/master/master-settings.h, src/pop3/pop3-settings.c: Added default_mail_extra_groups setting. imap/pop3/lmtp services' extra_groups defaults to it. For now this default is empty to make sure existing installations don't break. [2735d9afd842] * src/lib-storage/mail-storage-service.c: lib-storage: Preserve permission settings in master's service blocks. Most importantly preserve extra_groups setting. [d6f387fe1275] * src/master/service-process.c: master: Set RESTRICT_* environment even when drop_priv_before_exec=yes Otherwise the executed process could still try to drop some of the privileges (groups). [77a043a1ddb5] * src/lib-storage/mail-namespace.c: lib-storage: Log namespace location with mail_debug=yes [892f0db489cd] 2010-08-19 Timo Sirainen * doc/example-config/dovecot-ldap.conf.ext: doc: Updated tls_cert/key_file comment in dovecot-ldap.conf.ext [539da76585cc] * src/imap/imap-fetch.c: imap: Don't crash with QRESYNC SELECT specifying sequences larger than mailbox's message count. [83c0e7687e5e] * src/pop3-login/client.c: pop3: Show APOP challenge only when APOP auth mechanism is enabled. [eed1426f55a9] * src/lib-master/master-service.c: lib-master: Fixed accepting FIFO connections with BSDI. [565f18727209] * src/lib/unichar.c, src/lib/unichar.h: UTF-8 string validity was still checked incorrectly. [a83963495e55] 2010-08-18 Timo Sirainen * src/lib-index/mail-index.c: lib-index: Give a clearer error message for syscall failing with EFBIG. [706f30fa4028] * src/lib-index/mail-index.c: lib-index: Put all syscall error logging through one function. [038f25c02bb7] * src/lib/unichar.c: UTF-8 string validity was checked incorrectly. [8c46bf2c5176] 2010-08-17 Timo Sirainen * src/auth/auth-request.c: auth: Pass requested_login_user to auth worker processes. [3ba227176cde] * src/auth/auth-request.c: auth: Added more master user login debugging. [7428338c8df2] 2010-08-16 Timo Sirainen * src/lib/eacces-error.c: eaccess_error_get(): If UID/GID doesn't have name, show it as [4f90b4114450] * src/lib-master/service-settings.h, src/master/master-settings.c, src/master/service.c: master: Give better error messages for unknown users/groups. [a2e60bd5d9a7] * configure.in: configure: v2.0.0 is no longer UNSTABLE development branch. [2156583b00e2] * .hgsigs: Added signature for changeset d0d3ba81d205 [30dee90dca5e] * .hgtags: Added tag 2.0.0 for changeset d0d3ba81d205 [aa40b9d5699c] * NEWS, configure.in: Released v2.0.0. [d0d3ba81d205] [2.0.0] 2010-08-13 Timo Sirainen * .hgsigs: Added signature for changeset c5de2eb14a97 [4cebeefc617c] * .hgtags: Added tag 2.0.rc6 for changeset c5de2eb14a97 [2a59fef6863d] * NEWS, configure.in: Released v2.0.rc6. [c5de2eb14a97] [2.0.rc6] * configure.in, src/login-common/ssl-proxy-openssl.c: Compile fix for some OpenSSL version. [53147e8bdaf9] 2010-08-12 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox: Use unlimited buffer size when copying metadata while purging. [a56e9deffa54] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-mail.c: dbox: Don't allow unlimited buffer size when reading message body. [ae4a82ced01e] * src/lib/istream.c, src/lib/istream.h: Added i_stream_get_max_buffer_size(). [136ce9b2e039] * src/lib-sql/sql-api.c: lib-sql: Fail if trying to register a duplicate sql driver. [11538925cbbb] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Fixed listing shared INBOX with FS layout [4d8ae218af73] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c: dbox: Reset cache files when rebuilding indexes. This is especially important if there are broken cached GUIDs for messages, which will cause GUID mismatches when trying to expunge messages. [ab8ca4ded5ac] * src/lib-index/mail-cache.c, src/lib-index/mail-cache.h: lib-index: Added mail_cache_reset(). [117053f20528] * src/lib-storage/index/maildir/maildir-mail.c: Maildir: If trying to open a directory as message, try to rmdir it. [651e51de34b7] * src/lib/istream-file.c: i_stream_create_fd(): If opening a directory, set stream_errno=EISDIR [faac0d16d141] * src/lib-storage/list/mailbox-list-delete.c: lib-storage: When trying to delete "trash" directory, ignore EBUSY errors. [25f401276f9b] * src/lib/unlink-directory.c: unlink_directory(): Don't log EBUSY error for unlink(.nfs*) directly. The caller can decide if it wants to log it. [2aec6c74902c] * src/lib-master/master-login.c: lib-master: Prefix log messages with username during auth/post-login lookups. [6f2c1fb1b7f1] * src/imap-login/imap-proxy.c, src/login-common/client-common-auth.c, src/login-common/client-common.h, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: login proxy: Show proxy state in "disconnected" error message. [c27bca966b54] * src/login-common/client-common-auth.c, src/login-common/login- proxy.c: login proxy: Error message improvements. [b9bdcfd6eaa7] * src/lib/module-dir.c: module_dir_load(): Support multiple binaries for checking dependency [4b59b19628b1] * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: Added mail_deliver_hook_set() [a75589746450] 2010-08-11 Timo Sirainen * src/plugins/quota/quota-storage.c: quota: Fixed updating quota when sync_notify() had been called outside regular syncing. [8c6912bc0db0] * src/lib/ioloop-notify-inotify.c: Improved "Inotify instance limit exceeded" error message. [6b22e2a8c534] 2010-08-10 Timo Sirainen * .hgsigs: Added signature for changeset 4a2d840a80bb [8ad06727a77f] * .hgtags: Added tag 2.0.rc5 for changeset 4a2d840a80bb [0585c67fd78a] * NEWS, TODO, configure.in: Released v2.0.rc5. [4a2d840a80bb] [2.0.rc5] * src/auth/db-ldap.h: ldap: Reduce max. queued request count to 8. OpenLDAP seems to default to 16 worker threads. [3cda9f2f48bd] * src/lib/strfuncs.c: p_strdup(): Small optimization. Patch by Len7hir [7f550a7bd9d7] 2010-08-09 Timo Sirainen * src/dsync/dsync-brain.c, src/dsync/dsync-proxy-server.c, src/dsync /dsync-worker.c: dsync: Error handling fixes. Mainly fixes quota of quota error while saving. [88309dcfdab5] * src/ssl-params/main.c: ssl-params: Comment update. [59b0e70c8f14] * src/ssl-params/main.c, src/ssl-params/ssl-params-settings.c: ssl-params: Generate missing SSL parameters immediately at Dovecot startup. (Instead of waiting until the first SSL client connection arrives.) [b8a09fa4acc4] * src/lib-master/service-settings.h, src/master/master-settings.c, src/master/service-monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h: master: Added service type=startup for starting one service process at startup. [351948b4dc6c] * src/plugins/listescape/listescape-plugin.c: listescape: Crashfix for some configurations. [ed61aee681b8] * src/lib/mountpoint.c: mountpoint_get(): Skip rootfs mounts with Linux. Fixes fs quota for such systems. Patch by Patrick McLean. [3f5c53f84d0a] * src/plugins/listescape/listescape-plugin.c: listescape: Fixed listing for namespaces whose prefixes had escapeable chars. Based on patch by Samuel Kvasnica [18d95a2d0aba] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: Initial SETACL box owner +rights should apply on top of default rights, not empty rights. So typically this should be a no- op when mailbox doesn't yet have explicit rights for owner. [bbfe3a00bc74] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: Don't allow ACL commands for mailboxes that don't exist. [8814ced6d012] 2010-08-06 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Make sure we don't try to append to a file we already closed. [874422af78b1] * src/plugins/acl/acl-mailbox-list.c: acl: Crashfix when using namespaces without ACLs. [1aa2ccceacb9] * src/plugins/listescape/listescape-plugin.c: listescape: Crashfix for listing subscriptions for subscriptions=no namespaces. [3fc1f263827c] * src/lib-mail/istream-header-filter.c: istream-header-filter: Another assert crashfix. [f7b5732820dd] * configure.in: configure: Recent change broke getting libcurl cflags/libs. [1f817738b093] * src/lib-mail/istream-header-filter.c: istream-header-filter: Fixed assert [dd3e70c85d43] * src/doveadm/doveadm-util.c: doveadm -D: Log module dlopen() failures as debug messages, not errors. [41e6ffa319b7] * src/lib/module-dir.c: module_dir_load(): If ignore_dlopen_errors and debug is set, still log a debug message about failure. [99996236fa51] * src/lib-storage/mail-storage-hooks.c: lib-storage: Another fix for handling hooks with multiple plugins. [e54df5af98ac] * src/plugins/quota/quota-count.c: dict quota: Don't fail quota recalculation if mailbox syncing fails with non-temp error. This could happen e.g. with mbox if a file isn't in a valid mbox. [a933f7db45f9] * src/lib-storage/index/index-mail.c: lib-storage: Fixed mbox/cydir crashing on cache parsing deinit. [4ef2280ee490] * src/lib-storage/index/cydir/cydir-save.c: cydir: Fixed crashing when saving was aborted early (e.g. by out of quota) [b38708f38e6c] * AUTHORS: AUTHORS: There's no more dovecotpw.c [a30a30d1e25a] 2010-08-05 Timo Sirainen * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Don't crash when using shared users. [641e86843234] * configure.in: configure: AC_CHECK_PROG() calls now allow specifying full path to prog via environment. For example MYSQL_CONFIG=/foo/mysql_config allows overriding mysql_config path. [ebb4362b6d0d] * src/plugins/listescape/listescape-plugin.c: listescape: Fixed to support multiple simultaneous mailbox list iterators. [e77310eedfbb] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Use mailbox_list_created hook to override list methods. [756752d91378] * src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-plugin.h, src/plugins/quota/quota-storage.c: quota: Use mailbox_list_created hook to override list methods. [c92414173290] * src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-plugin.h: acl: Override mailbox list functions in mailbox_list_created hook. [2311b5ca4d3f] * src/plugins/acl/acl-backend-vfile.c: acl: Crashfix for handling namespaces that don't have a paths. [ddf343de34a4] * src/imap/cmd-subscribe.c, src/imap/imap-commands-util.c, src/lib- storage/mail-namespace.c, src/lib-storage/mailbox-list.c, src/lib- storage/mailbox-list.h, src/plugins/acl/acl-backend-vfile.c: lib-storage: Removed mailbox_list_get_hierarchy_sep(). Its usage wasn't correct. Especially with listescape plugin loaded the function was returning the wrong separator. list->ns->real_sep should be used instead. [827ebadc5995] * src/plugins/listescape/listescape-plugin.c: listescape: Use mailbox_list_created hook for overriding its methods. [415151aaa6de] * src/doveadm/Makefile.am: doveadm: Fixed linking with --as-needed flag. Patch by Eray Aslan [335434b424b8] * configure.in: configure: Reverted last change, it doesn't work like that.. [6eb1311ac8e2] * configure.in: configure: Use the detected mysql_config location. Patch by Bradley Giesbrecht [d54444b8f539] 2010-08-04 Timo Sirainen * .hgsigs: Added signature for changeset 71b2cb9895d9 [9f00b538de1b] * .hgtags: Added tag 2.0.rc4 for changeset 71b2cb9895d9 [4d35c0fe08ca] * NEWS, configure.in: Released v2.0.rc4. [71b2cb9895d9] [2.0.rc4] * src/doveadm/doveadm-mail-server.c: doveadm: Removed unnecessary code. [f980dcbe3b51] * src/doveadm/client-connection.c: doveadm: Doveadm server may have messed up print output with extra username strings. [3e0fb1a07ff1] * src/plugins/acl/acl-backend-vfile.c: acl: Give a better error message when trying to update ACLs for object without local path. [ad0ef9c40381] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: Don't allow accessing "" as mailbox. [85bdc6f6ff30] * src/plugins/virtual/virtual-storage.c: virtual: Added support for IDLE notifications. [eb1f471a924d] * src/dsync/dsync-brain-msgs.c: dsync backup: Don't go to infinite loop when mailbox needs to be recreated. [e9cc262e4bbb] * src/lib-storage/index/maildir/maildir-save.c: maildir: When copying can't preserve filename, preserve S/W sizes anyway. [33ea7477c6a9] * src/plugins/quota/quota-maildir.c: quota-maildir: Avoid leaving maildirsize deleted when quota recalculation is wanted. [353d73775b69] * src/lib/network.c, src/lib/network.h: net_accept(), net_getsock/peername(): Return UNIX sockets with family=port=0. A lot of checks inside our code assumes that family is either AF_INET, AF_INET6 or 0. struct ip_addr doesn't support anything else either, so having AF_UNIX as family but without a way to get the socket name from the struct isn't very helpful either. [10c4c9d5fb5b] * src/doveadm/doveadm-director.c: doveadm director map/add/remove: Fixed handling IP address as parameter. Only host names were working correctly. [9cf0d33f3fe9] 2010-08-03 Timo Sirainen * dovecot-config.in.in: dovecot-config: Include SSL_LIBS as part of LIBDOVECOT_LOGIN. [7edfd661cbfa] * src/imap-login/Makefile.am, src/pop3-login/Makefile.am: Makefile: imap/pop3-login now links SSL_LIBS explicitly. This fixes compiling in some systems where they didn't get included automatically (or the automatic linking used wrong libraries). [b45e0637a5ef] * src/dsync/dsync-worker-local.c: dsync: Handle syncing subscriptions correctly for subscriptions=no namespaces. [62abbfe45cde] * src/lib-sql/driver-pgsql.c: pgsql: Changed the way IO handlers are added/removed. Remove IO handlers before calling any pgsql functions, so that if it closes the socket, we don't later try to remove IO for already closed socket. [e31570bccb92] * src/plugins/quota/quota-storage.c: quota: Fixed ns=prefix to work for private namespaces. [7c4b4f07d64e] 2010-08-02 Timo Sirainen * doc/example-config/conf.d/20-imap.conf, src/imap-login/client- authenticate.c, src/imap-login/client-authenticate.h, src/imap- login/client.c, src/imap/imap-client.c: imap: imap_capability = +foo only adds new capabilities instead of replacing everything. [ac31be20d279] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Added support for mailbox_create event [59af5fd42221] * src/plugins/notify/notify-plugin-private.h, src/plugins/notify /notify-plugin.c, src/plugins/notify/notify-plugin.h, src/plugins/notify/notify-storage.c: notify: Added support for mailbox_create [1d3de1178b93] * src/plugins/notify/Makefile.am, src/plugins/notify/notify-noop.c, src/plugins/notify/notify-plugin.h: notify: Removed noop functions, they're no longer needed. [de24228a6a5b] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Register only the notify callbacks we actually care about, leave rest NULL. [ca8ec8456cb1] * src/plugins/notify/notify-plugin.c: notify: Ignore notify callbacks that are NULL. [61de50936fcd] * src/auth/auth-request.c: auth: Support "username" and "domain" extra fields also for userdb. [63124518977a] 2010-07-31 Timo Sirainen * src/lib-storage/index/shared/shared-storage.c: lib-storage: Fixed setting refcount to autocreated shared namespace. [85f3420afb7c] * src/lib-storage/mail-namespace.c: lib-storage: Added assert. [65c26f530d3c] * src/lib-storage/index/index-status.c: lib-storage: Don't fail if messages are expunged during counting mailbox's virtual size. [662e0bce9de0] 2010-07-30 Timo Sirainen * src/lib-storage/index/mbox/mbox-save.c: mbox: Use HEADER_FILTER_END_BODY_WITH_LF flag with input stream filter. This fixes a bug where wrong message size was cached while saving messages that didn't end with LF. [e9f24817d472] * src/lib-mail/istream-header-filter.c, src/lib-mail/istream-header- filter.h, src/lib-mail/test-istream-header-filter.c: istream-header-filter: Added HEADER_FILTER_END_BODY_WITH_LF flag. If body doesn't end with LF character, it adds it automatically. [22e20ccc14bc] * src/lib-storage/index/mbox/mbox-save.c: mbox: Fields weren't being added to cache file during message saving. [b43c8d765d44] * src/lib-storage/mail-storage-service.c, src/lib/module-dir.c, src/lib/module-dir.h: If module can't be loaded due to missing dependency, suggest a setting how to do it. [02c9154efe81] 2010-07-28 Timo Sirainen * src/doveadm/Makefile.am: Makefile: Fixed compiling dsync with older automake versions. Patch by Naresh. [d5a923df60d4] 2010-07-26 Timo Sirainen * src/dsync/dsync.c: dsync: When using -u parameter, chdir() to user's home. [716b77e16d39] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed assert-crashing on failures with read-only mboxes [4d5158130e2c] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Keep internal namespaces referenced. Fixes crash with dsync. [bab22fff6d25] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h: lib-storage: Added refcounting support for namespaces [edb8f06c7346] * src/lib-storage/mail-storage.c: lib-storage: Don't crash in mailbox_transaction_commit() if plugin aborts transaction. [25a1c1739a63] 2010-07-23 Timo Sirainen * src/plugins/acl/acl-backend-vfile.c: acl: If ACL file exists in mail root directory, use it as namespace's default ACLs. [636d34f650c2] * src/director/main.c: director: Fixed director_doveadm_port setting to actually work. [3ef50adb7abf] * .hgignore, doc/example-config/dovecot.conf, src/doveadm/Makefile.am, src/doveadm/client-connection.c, src/doveadm/client-connection.h, src/doveadm/doveadm-mail-server.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm-print-server.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm-print.h, src/doveadm/doveadm-server.h, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm-util.c, src/doveadm/doveadm-util.h, src/doveadm/main.c, src/doveadm/server- connection.c, src/doveadm/server-connection.h, src/lib-master /master-service-private.h, src/lib-master/master-service.c, src/lib- master/master-service.h, src/plugins/expire/doveadm-expire.c: doveadm: Added client/server architecture support for running mail commands. This is done when doveadm_worker_count is non-zero. [b60e225386bf] * src/doveadm/doveadm.c: doveadm: Duplicate settings so they won't be corrupted by user settings lookup. [158be8d93ddc] * src/doveadm/doveadm-print.c: doveadm: Fixed printing sticky headers when stream printing was also used. [1cfbdcfc7676] * src/director/doveadm-connection.c: director: If doveadm connection disconnects before handshake, don't loop forever. [06a7435b6f53] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Make a couple of functions global for future use. [839469d13df3] * src/doveadm/doveadm-print.c, src/doveadm/doveadm-print.h, src/doveadm/doveadm.c: doveadm: Moved print formatters list to doveadm.c [00033e2470ec] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail.h, src/doveadm /doveadm-util.c, src/doveadm/doveadm-util.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Code cleanup: Moved some functions to doveadm-util.[ch] [19574f77a021] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mutf7.c: doveadm: Code cleanup: Moved "mailbox mutf7" command to separate file. It's not really a "mail command", so it shouldn't be in the same file as them. [43804bdf697e] * src/doveadm/doveadm-print-tab.c: doveadm: Tab formatter was printing extra spaces. [45473cd0e3e6] 2010-07-22 Timo Sirainen * src/doveadm/doveadm-mail-expunge.c: doveadm expunge: Check if search query is ok only once, not for each user. [4513949b26b3] * doc/example-config/conf.d/15-lda.conf, src/auth/auth-master- connection.c, src/auth/db-passwd-file.c, src/lib-dict/dict.h, src /lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/index-mail-headers.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-search.c, src/lib-storage/index /index-thread.c, src/lib-storage/index/maildir/maildir-keywords.h, src/lib-storage/index/maildir/maildir-util.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/list/mailbox- list-maildir.c, src/lib-storage/mail-storage.h, src/lib-storage /mailbox-list.c, src/plugins/fts-solr/fts-backend-solr.c, src/plugins/virtual/virtual-sync.c: Fixing my english: s/non-?existing/nonexistent/ [05031751cc21] * src/doveadm/doveadm-mail-mailbox-status.c: doveadm mailbox status: Show mailbox name in UTF8 in output. [93aee2609041] * src/doveadm/doveadm-mail-mailbox-status.c: doveadm mailbox status: Fixed listing non-ASCII mailbox names. [f4c8ca0bfd6d] * src/lib-storage/mailbox-list.c: lib-storage: Fixed mailbox_list_mailbox() for INBOX in under non- root mail dir. [459bd9621197] * doc/example-config/conf.d/10-director.conf, src/director/director- settings.c, src/director/director-settings.h, src/director/main.c: director: Added director_doveadm_port for accepting doveadm TCP connections. [ab85d17947db] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm.c: doveadm: When priting help to some command, exit with status 1. [ec35e240db6c] 2010-07-21 Timo Sirainen * src/auth/db-sql.c, src/auth/db-sql.h, src/auth/passdb-sql.c, src/auth/userdb-sql.c: auth: If built-in SQL query fails, log it clearly that it was using built-in one. [584957cba877] * src/dsync/dsync-worker-local.c: dsync: Queue local msg-get requests instead of assert-crashing. [e3519ec18f03] * src/lib/network.c: net_connect_ip*(): Fixed FreeBSD kludging. [4fb7e5327efc] 2010-07-20 Timo Sirainen * .hgsigs: Added signature for changeset a15b694f1d64 [4ffc063a5eff] * .hgtags: Added tag 2.0.rc3 for changeset a15b694f1d64 [4dc4ef1fcf38] * NEWS, configure.in: Released v2.0.rc3. [a15b694f1d64] [2.0.rc3] * src/config/doveconf.c: doveconf: Removed unnecessary code. [50b34366038d] * src/doveadm/doveadm-director.c: Make static analyzer happier. [1412056b5ab6] * src/doveadm/doveadm-director.c: doveadm director map: Print also records for unknown users. [25113ae51940] * src/lmtp/commands.c: lmtp: Don't write "+ext" part to Delivered-To: header. [19231e3585db] * configure.in: configure: Make sure mysql libs/cflags aren't used if they don't work. [45b835e6f59c] * src/lib-storage/mail-storage-hooks.c: lib-storage: Fixed hooks with plugins that didn't override any vfuncs [5b3202a069fa] * src/lib-auth/auth-master.c: lib-auth: Don't abort userdb iteration if it takes longer than 1 minute. [fd4cf27c179b] * src/auth/userdb-ldap.c: auth: Make sure ldap userdb iteration request isn't aborted too early. [d8af22b91beb] * src/auth/userdb-blocking.c: auth: Fixed a crash on cancelled userdb iteration. [8424d5efa6ad] * src/lib-storage/mail-storage-hooks.c: lib-storage: Fix to hooks with multiple plugins [5179e8f41cf4] * src/dsync/dsync-brain-msgs-new.c: dsync: Fixed potential crash with remote syncing. [a109e140bdf5] * src/lmtp/client.c: lmtp: Increased client idle timeout to 5 minutes. Some MTAs can spend a while doing DNS lookups during the LMTP session. [cfda26381f58] * autogen.sh: autogen.sh: If wiki docs can't be downloaded/uncompressed, fail early. [598b1334fbba] 2010-07-19 Timo Sirainen * src/master/service.c: master: Fixed dropping pending listener connections when throttling a service. [8da0bbb53e7d] * src/config/config-parser.c, src/config/old-set-parser.c: config: Handle obsolete imap_client_workarounds [d26cf5445598] * src/doveadm/doveadm-director.c: doveadm director: Give up waiting for handshake after 5 seconds. [be3663900ea8] * src/auth/userdb-blocking.c: auth: Make sure userdb iteration doesn't free memory too early if it's aborted. [f178792fb820] * src/dsync/dsync-proxy-client.c: dsync: Fixed potential assert crashes with remote dsyncing. [e6f376a1c755] * src/lib-index/mailbox-log.c: lib-index: Fixed reading mailbox logs larger than 128 records. [204eaf35e144] * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox: Fixed some race condition problems with purging. [e4d870bed095] * src/lib-storage/mail-storage-hooks.c: Increased initial memory pool size [6217bc3589b8] * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Handle better trying to copy an already purged message. It shouldn't log "refcount update lost map_uid" error. [39d3894dc2f9] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Copying wasn't locking map index early enough. [1e0916e4700c] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Small code cleanup. [bb2c6be5be5c] * src/doveadm/doveadm-dump-index.c: doveadm dump: Fixed dumping sdbox/mdbox fields. [39b33769614b] 2010-07-17 Timo Sirainen * src/auth/auth-worker-server.c: auth: Fixed a potential crash on deinit. [cfd15170dff7] 2010-07-16 Pascal Volk * src/doveadm/doveadm-auth.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-dump.c, src/doveadm/doveadm-kick.c, src/doveadm /doveadm-log.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm /doveadm-master.c, src/doveadm/doveadm-penalty.c, src/doveadm /doveadm-pw.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Removed long usage from doveadm commands. It's no longer needed since manual pages are displayed. [875598cd7e26] 2010-07-16 Timo Sirainen * src/lib-storage/mail-storage-hooks.c: lib-storage: Fixed handling hooks when more than 2 were used. [6b66aad2a997] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Add dummy events only for copy/save events, not others [f590e5a76d7d] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Fixed logging save/copy [222472f295f3] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Fixed to actually read plugin settings. [e827618654ec] * dovecot.m4: dovecot.m4: Don't use grep -e, it's not standard. [b8c4316a5d40] * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: mail_deliver_save_open() API changed to return also error code. [db22952d406a] * src/dsync/dsync-proxy-client.c: dsync: Fixed a potential assert-crash with remote dsyncing. (worker->msg_get_data.input == NULL) [ff034cc11785] * src/lib-settings/settings-parser.c: lib-settings: Do proper alignment for dynamically added structs. Fixes a crash with some CPUs. [ba76cf7467c4] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-worker-local.c: dsync: Added more asserts to dsync_worker_finish() handling [38fcf81cc9e0] * configure.in: configure: If fd passing check fails, abort [8cf47a359213] * src/lib/fdpass.c: configure wasn't compiling fd pass checking program correctly. [fd79394f7652] * src/doveadm/doveadm-director.c: doveadm director map: Fixed -f parameter crash [d0f032ea0aec] * src/lmtp/commands.c: lmtp: Removed FIXME comment [b3f88a516a49] * src/lmtp/client.h: lmtp: Reverted accidentally committed debug code [bbbb542f1e2d] 2010-07-16 Pascal Volk * doc/man/doveadm-director.1.in: man/doveadm-director.1: Added description of "director map"'s -f option. [26936bdd3801] 2010-07-16 Timo Sirainen * src/auth/auth-worker-server.c: auth worker: Reset lookup timeout each time a line is received for a multi-line lookup. [d13c1043096e] * src/doveadm/doveadm-director.c: doveadm director map: Added -f parameter to alternatively get a list of usernames. [2d6bac30ea75] 2010-07-15 Pascal Volk * doc/man/option-A.inc: man/option-A: Mention userdb/LDAP iterate_attrs and iterate_filter settings. [e58a270a6287] * doc/man/Makefile.am: man/Makefile: Made manpages depend on includes. [dc670a1914b7] 2010-07-15 Timo Sirainen * src/lib/istream-file.c, src/lib/istream.h: Added i_stream_create_file() for creating istream from lazily opened file. [b7d98c5db865] 2010-07-15 Pascal Volk * doc/man/doveadm-director.1.in: man/doveadm-director.1: Added description of command "director map" [6e0a2ce2910c] 2010-07-15 Timo Sirainen * src/doveadm/doveadm-director.c: doveadm director map: Support looking up a hostname. Also fixed director remove to work properly with multiple IPs. [cd1dbde147cd] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-common/dbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c: dbox: Split dbox_file_seek() from dbox_file_get_mail_stream() [7520b31ea95b] * doc/example-config/conf.d/10-mail.conf: example-config: Added mail_temp_dir. [b6693d570960] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: Removed flock() check. It's not used by sdbox. [8af3e40dd614] * src/director/doveadm-connection.c, src/doveadm/doveadm-director.c: doveadm: Added "director map" command to list user -> host mappings. [4138737f41e6] * src/lda/main.c, src/lib-storage/mail-storage-settings.c, src/lib- storage/mail-storage-settings.h, src/lib-storage/mail-user.c, src /lib-storage/mail-user.h, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h, src/plugins/quota/quota-fs.c: Added mail_temp_dir setting, used by deliver and lmtp for creating temp mail files. [7a6cf8dae9bf] 2010-07-14 Timo Sirainen * doc/man/doveadm-altmove.1.in, doc/man/doveadm-dump.1.in, doc/man /doveadm-force-resync.1.in, doc/man/doveadm-user.1.in: man: Also renamed "dbox" to "sdbox" [0d16970d9df3] * configure.in, src/lib-storage/index/dbox-single/sdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.h, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c: Renamed "dbox" to "sdbox". Keep also dbox as an alias for it. [76ee1fa16012] * src/director/notify-connection.c: director: Log an error if read() fails for notify fifo [8fed05799c00] * src/master/service-listen.c: master: Open FIFO listeners as RDWR, so if the last writer goes away we won't get EOFs. [510b627687f8] * src/login-common/login-proxy-state.c: login proxy: Set notify fd nonblocking. [65cda5124e99] * src/director/director-connection.c: director: Fixed handling HOST-FLUSH commands. [9e41df232dd6] * src/doveadm/doveadm-director.c: doveadm director flush: Fixed giving correct usage. [75441abd8d6f] * src/lib-lda/mail-deliver.c: lib-lda: If FROM envelope is known, tell about it to lib-storage when saving mail [8af852eb3277] * src/lib-storage/index/mbox/mbox-save.c: mbox: Write empty From_-line envelope as MAILER-DAEMON [14ac329dcba1] * src/lib-storage/index/mbox/mbox-save.c: mbox: When generating envelope to From_-line, don't append a second @owndomain if username already has one. [c34681558f46] 2010-07-13 Timo Sirainen * src/imap/cmd-list.c: imap: Fixed checking if list=children namespace has children. [3972e896865d] * src/util/rawlog.c: rawlog: Don't steal -options from the program that's going to be run. [14132e025946] * doc/solr-schema.xml: solr-schema: Removed all references to unused "any" field. [3e70abe7ee36] 2010-07-13 Pascal Volk * doc/man/option-A.inc: man: Use pkgsysconfdir instead of sysconfdir also in included files. [9ffa8d9a2ee3] 2010-07-12 Timo Sirainen * src/auth/auth-client-connection.c: auth: Changed "new auth connection" debug message [ba450b2dcffa] * src/imap/cmd-list.c, src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/mailbox-list.h: lib-storage: Show "foo/" style replies only for IMAP LIST command. Internally those replies just mess up things. [9ccfbed9c570] * src/lib-storage/index/dbox-common/dbox-file.c: dbox: Added a sanity check so that too small dbox files won't be appended to. [0a2dc81ed513] * src/dsync/dsync-brain.c, src/dsync/dsync-worker.c: dsync: Don't give errors when doing a remote sync and there are no changes. [5e285530914c] * src/dsync/dsync-proxy-client.c: dsync: Added assert [fa883e27a6de] * src/dsync/dsync-proxy-client.c: dsync: Log an error if dsync server sends invalid reply for FINISH. [95de0b0b6171] * src/doveadm/doveadm.c: doveadm: Give a better error message if we can guess that unknown command is due to unloaded plugin. [490500f0c09b] * src/lib-storage/list/mailbox-list-delete.c, src/lib-storage/list /mailbox-list-fs.c, src/lib/unlink-directory.c: Handle rmdir() failing with EEXIST the same as failing with ENOTEMPTY. This is allowed by POSIX, and at least Solaris does that. [6ebe8d8fd1fd] * src/dsync/dsync-worker-local.c: dsync: Added a comment. [30317b89b101] * doc/man/Makefile.am, doc/man/doveadm-altmove.1.in, doc/man/doveadm- auth.1.in, doc/man/doveadm-director.1.in, doc/man/doveadm-kick.1.in, doc/man/doveadm-log.1.in, doc/man/doveadm-penalty.1.in, doc/man /doveadm-quota.1.in, doc/man/doveadm-user.1.in, doc/man/doveadm- who.1.in, doc/man/doveadm.1.in, doc/man/doveconf.1.in, doc/man /dovecot-lda.1.in, doc/man/dovecot.1.in, doc/man/dsync.1.in, doc/man/sed.sh: man: Use pkgsysconfdir instead of explicit sysconfdir/dovecot [a2bbd6c3624a] * doc/example-config/Makefile.am: doc Makefile: Define and use pkgsysconfdir instead of dovecotconfdir [ca5cea0c614a] 2010-07-12 Pascal Volk * doc/man/doveadm-director.1.in, doc/man/doveadm-penalty.1.in, doc/man /doveadm-who.1.in: man/doveadm-{who,penalty,director}.1: Added -a host:port description. [e546af72d6bb] 2010-07-12 Timo Sirainen * src/doveadm/doveadm-director.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm director/penalty/who: Support also communicating via TCP sockets. [16db2af2b831] * src/lib/network.c, src/lib/network.h: liblib: Added net_connect_ip_blocking(). [5ea9394b5ced] * src/doveadm/doveadm-director.c: doveadm director status: "users" column header was wrong. [24e92489d7b7] 2010-07-11 Timo Sirainen * src/doveadm/doveadm-director.c: doveadm director status: Print output using the print API, not printf. [243e01c2d7ba] * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Fixed checking if pattern was valid with hierarchy separator wasn't the default '/' For example if separator was ';', which the code internally converted to '/', it would have been possible to try to list e.g. ";*", which could have been translated to "/*". Luckily this wasn't actually working, but it could have caused other broken replies and possibly some problems with ACL plugin. [fec7013c628b] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- mail-list-iter.c, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail- search.c, src/dsync/dsync-worker-local.c, src/imap/cmd-list.c, src /lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs-iter.c, src/lib-storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/acl /acl-backend-vfile-acllist.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-shared-storage.c, src/plugins/listescape /listescape-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-maildir.c, src/plugins/virtual/virtual- config.c: lib-storage: Removed code related to listing mailboxes with non- virtual names. The non-virtual listing code would have already crashed with assert. [b25a30644e68] * src/plugins/acl/acl-mailbox-list.c: acl: Fixed crashing on FS layout with non-default hierarchy separator. [54807112d1d6] * src/lib-storage/index/index-fetch.c: lib-storage: mailbox_get_expunges() didn't return any expunges if modseq was too low. This fixes problems with dsync creating back expunged messages. [486754f4f2ea] * src/dsync/test-dsync-brain.c: dsync: Fixed unit tests [cd4db940dcbf] * src/dsync/dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync.c, src/dsync/test-dsync-brain.c: dsync: Fixed brain unit test not to crash at deinit. [fd33ccbf235e] * Merge heads [d2b09976c704] 2010-07-10 Timo Sirainen * src/lib/process-title.c: process_title_init(): Don't assert-crash with empty environment. [77f244924009] * Branch merging.. Something weird's going on. [068c54732c96] * src/dsync/dsync-proxy-client.c: dsync: Fixed a potential hang with remote syncing. [67445c0f55c0] 2010-07-10 Pascal Volk * doc/man/Makefile.am: man/Makefile: Eliminated $< and $@. [96baed198b27] 2010-07-10 Timo Sirainen * src/dsync/dsync-brain-msgs-new.c: dsync: Fixed accidentally committed broken code (also in default branch now) [94c5bfb31951] * Another try at closing HEAD branch, which accidentally opened with last commit.. [7dd7adba1c9e] * src/dsync/dsync-brain-msgs-new.c: dsync: Fixed accidentally committed broken code. [3613b4d996ba] * Closing HEAD branch. [bac0353c53c4] * src/lib/process-title.c: Make static analyzer happier. [def45252ab48] * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c, src/dsync/dsync-worker-local.c: dsync: Fixed flushing asserts [d9d1272d99b7] * src/dsync/dsync.c: dsync: Fixed giving dsync command as a path to a binary without parameters. [1f9080e9a530] * src/lda/main.c: lda: Don't set mail_full_filesystem_access=yes internally. It's not necessary. Also it probably wasn't even working. [f93507788bc3] * src/dsync/dsync-worker-local.c: dsync: Added extra assert [06e4a422aa91] * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker-private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/test- dsync-worker.c: dsync: Fixed assert-crashing when messages couldn't be sent fast enough to remote [56cf4f6261dd] 2010-07-09 Timo Sirainen * .hgsigs: Added signature for changeset fd0497f5a496 [02447bd723e8] * .hgtags: Added tag 2.0.rc2 for changeset fd0497f5a496 [b6821e44bed8] * NEWS, configure.in: Released v2.0.rc2. [fd0497f5a496] [2.0.rc2] 2010-07-09 Pascal Volk * doc/man/Makefile.am: man/Makefile: Made targets more explicit to fix building with some versions make. [c1f72627d246] 2010-07-09 Timo Sirainen * doc/man/doveadm-search-query.7: man: Updated HEADER explanation in doveadm-search-query.7 [531ad5c449d1] * TODO: TODO updated. [23daee5d8496] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-single/sdbox- file.c, src/lib-storage/index/dbox-single/sdbox-file.h, src/lib- storage/index/dbox-single/sdbox-sync.c: dbox: dbox_file_move() was used by only single-dbox, so moved it there. [8ec35eb6d7b3] * src/dsync/dsync-brain.c, src/dsync/dsync-proxy.c: dsync: Fixed creating mailboxes with remote dsync. [0ece958ef45b] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.c: Increased some initial mempool sizes. [065ff4f1c504] 2010-07-08 Timo Sirainen * src/dsync/Makefile.am: dsync: Fixed loading virtual plugin when compiled --without-shared- libs [ba60cc0b58df] * src/plugins/virtual/virtual-storage.h, src/plugins/virtual/virtual- sync.c: virtual: If non-matching messages weren't expunged within same session, they never got expunged. [00a7d6624657] * src/director/mail-host.c: director: director_mail_servers setting can now contain host names. [065c414a5c07] * src/director/director-connection.c: director: Avoid "Received SYNC while already synced" error. [2060d3d08702] * src/director/director-connection.c, src/director/director- connection.h, src/director/director.c: director: Make sure all director connections are deinitialized at exit. [ea4701f11668] * src/lib/mountpoint.c: mountpoint_get()+Solaris: Reset mnttab before each lookup. Patch by Juergen Obermann [5113bada22b2] * src/plugins/quota/quota-fs.c: quota-fs: With mail_debug=yes, log also additional mount points that are added. Based on patch by Juergen Obermann. [4db139722e4f] 2010-07-07 Timo Sirainen * src/doveadm/doveadm.c: doveadm: With GLIBC allow subcommand -options to be anywhere in command line. [dcd740f453a4] * src/doveadm/doveadm-mail.c: doveadm: Changed "user doesn't exist" error message. [bff3789b8953] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/mailbox-list-private.h, src/lib-storage /mailbox-list.c: lib-storage: Make sure index directory is created early enough for mailbox.log For example if subscriptions were added before any mailbox was opened, the index dir may not have been created yet. [6571b3a9c44f] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Storage rebuild changes weren't actually being committed to disk. [668e810e6578] * src/lib-storage/mail-storage-service.c: mail-storage-service: Initialize logging with proper settings a bit earlier. [b0e0d4537496] * src/lib-storage/mail-storage-service.c, src/plugins/imap-acl/imap- acl-plugin.c, src/plugins/imap-acl/imap-acl-plugin.h, src/plugins /imap-quota/imap-quota-plugin.c, src/plugins/imap-quota/imap-quota- plugin.h, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins /imap-zlib/imap-zlib-plugin.h: imap plugins now give a nicer error if tried to be loaded for non- imap binary. [c53fb625b07e] * src/lib/module-dir.c, src/lib/module-dir.h: module_dir_load(): Added support for checking binary name dependency. [10ff5c7e7f40] * src/auth/auth-master-connection.c: auth: Add "user" field to all PASS lookup replies. [4db258f7ce91] * src/dsync/test-dsync-brain.c: dsync: Another unit test fix. [7ebbd6925c41] * src/dsync/test-dsync-brain.c: dsync: Fixed unit test to not access freed memory. [056c3240a912] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Compiling fix. Patch by nareshov. [912a11f476cc] 2010-07-06 Timo Sirainen * src/dsync/dsync.c: dsync: Refuse to run if we detect virtual hierarchy separators differ for mail locations. The real separators can differ, but to work properly there must be a default namespace with a separator defined. [cd0d3392366e] * src/plugins/zlib/istream-zlib.c: istream zlib: Change "unexpected EOF" errno from EINVAL to EPIPE. This should give at least a bit nicer logout reasons when imap-zlib is used and connection is closed. [ab2670833cb7] * src/lib-index/mail-index-transaction-finish.c: lib-index: Crashfix in some cases when flags unexpectedly weren't changed [962c9144a31d] * src/imap/cmd-list.c, src/lib-lda/mail-deliver.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/list/mailbox-list-delete.c, src /lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir- iter.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib-storage /mail-namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib- storage/mailbox-list.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/fts/fts-storage.c, src/plugins/listescape/listescape- plugin.c, src/plugins/quota/quota-maildir.c: Fixes to INBOX sharing. NAMESPACE_FLAG_INBOX was split to two flags: _FLAG_INBOX_USER (this namespace has the user's own INBOX) and _FLAG_INBOX_ANY (namespace has INBOX, either user's own or another user's). [07353259bb41] * src/lib-settings/settings-parser.c: lib-settings: settings_parse_unalias() crashed if given strlist key. [c52acd672735] * src/lib-index/mail-index-sync-update.c: lib-index: Minor code cleanup / commenting. [0ffb55c4d323] * src/lib-storage/mail-search-register-imap.c: lib-storage: Don't crash if invalid parameter is given to SEARCH OLDER. [b9a5ad0324c8] 2010-07-05 Timo Sirainen * src/dsync/dsync.c: dsync: Log "changes caused a desync" as a warning, not as verbose info. [2f290e28283a] * src/lib-master/master-service.c: lib-master: Removed -s parameter handler. It existed only for kind- of-compatibility between Postfix master. If someone actually wants such compatibility, a wrapper script would work too. [5738c65ad037] * src/dsync/dsync-brain.c, src/dsync/dsync-worker-local.c, src/dsync /dsync-worker-private.h, src/dsync/dsync-worker.c, src/dsync/dsync- worker.h, src/dsync/dsync.c: dsync: If verbosity is enabled, log why desyncing was caused. [ba9f33f9c6c3] * src/dsync/dsync-worker-local.c: dsync: Detect duplicate mailbox GUIDs and fail if it happens. [529e85c548a9] * src/config/old-set-parser.c: config: v1.x parser failed with some settings if pigeonhole wasn't installed. [8f6703ce6528] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox rebuild: Fixed looking up original mailbox name for mails. [d464e23e357c] * src/plugins/quota/quota-fs.c: quota-fs/rquota: If soft limit is zero, fallback to returning hard limits. [ec62342fa241] * src/plugins/quota/quota-fs.c: quota-fs: Added support for NFSv4 rquota. Based on patch by Martin Schanzenbach, which also borrowed comment from linuxquota. [4f4096096364] * src/plugins/quota/quota-fs.c: quota-fs: Removed rq_active check from rquota usage. Apparently it's not set by all implementations, and other tools also ignore it. If it actually is necessary in some systems, this could be added back and enabled optionally. [c187993c96f2] * src/dsync/dsync-brain.c: dsync backup: Fail if it looks like backup is running in wrong direction. [42dfcf9c896b] * src/dsync/dsync-brain-msgs.c: dsync: If msg iteration fails, don't crash. [18bebc4faa6b] * src/lib/module-dir.c: module_dir_load(): Don't crash with "" plugin list. Patch by Stephan Bosch. [bc35bf7f7502] 2010-07-03 Timo Sirainen * dovecot-config.in.in: dovecot-config: Don't include iconv in LIBDOVECOT_DEPS [4a4f7add34d9] * doc/man/Makefile.am: Makefile: Include dovecot-config.1 in distribution. [019aae896f03] 2010-07-02 Pascal Volk * doc/dovecot-initd.sh: doc/dovecot-initd.sh: Updated base_dir detection. [9b9d6a596688] 2010-07-02 Timo Sirainen * doc/man/Makefile.am, doc/man/doveadm-config.1, src/doveadm/Makefile.am, src/doveadm/doveadm.c: doveadm config is now alias for doveconf. [c1546ed8ddb6] * .hgsigs: Added signature for changeset d4d6ebad3d33 [44be8496bc19] * .hgtags: Added tag 2.0.rc1 for changeset d4d6ebad3d33 [e3e837b088ba] * NEWS, configure.in: Released v2.0.rc1. [d4d6ebad3d33] [2.0.rc1] * src/director/director-test.c: director-test: Make static analyzer happy. [11472e64ea7d] * autogen.sh: autogen.sh: Use wiki2-export for docs for now. [3d737e1ed65e] * src/lib/module-dir.c: module_dir_load(): Ignore duplicates in module names. [e586c030e430] * doc/example-config/conf.d/10-director.conf, src/director/login- connection.c, src/director/login-connection.h, src/director/main.c: director: Added support for LMTP proxying. [1683324ac632] 2010-07-02 Pascal Volk * doc/man/dsync.1.in: man: dsync.1: Added link to "dsync design". [eaa42f370481] 2010-07-02 Timo Sirainen * src/config/old-set-parser.c: config: Fixed converting some managesieve settings. [c83071fc50e6] * doc/man/doveadm.1.in: man: Updated doveadm exit status info. [79db41b9e1a0] * src/config/old-set-parser.c: config: Handle protocols=managesieve as protocols=sieve [4cec50afed94] * src/lib-storage/list/mailbox-list-fs.c: mbox: Support deleting a directory if it contains an empty .imap/ directory. [737ee10e8104] * src/lib/module-dir.c: openbsd: Hide errors written by dlopen() if we wanted to ignore them. doveadm loads all plugins at startup that it can. It shouldn't be printing unnecessary error messages to stderr. [d52e9033c3bf] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c: lib-storage: When mailbox_update() sets highest-modseq, make sure modseqs are enabled. [3f9435c616e4] * src/dsync/dsync-brain-msgs-new.c: dsync: Removed the new message counter. It wasn't working very well. Especiall with remote connections it went quickly through, even though it could still take minutes to actually transfer all the data. [8384ba48ecf6] 2010-07-02 Pascal Volk * doc/man/dovecot.1.in, doc/man/dsync.1.in: man: dovecot.1: Added AUTHOR section. dsync.1: Indented lists in EXAMPLE section. Added missing escape. [a34f5f7b17a2] 2010-07-02 Timo Sirainen * Makefile.am: Makefile: Stop generated ChangeLog at v1.2.rc1. If someone wants full history, they can get it from hg. [0ca72121aa46] 2010-07-01 Timo Sirainen * src/doveadm/doveadm.c: doveadm help: Fixed crash. [4dd679310f12] * doc/man/dsync.1.in: man: Fixed previous dsync man page commit [2162b9082283] 2010-07-01 Pascal Volk * doc/man/doveadm.1.in: man/doveadm.1: Typo fix. [3ae1c14a8c06] 2010-07-01 Timo Sirainen * doc/man/dsync.1.in: man: dsync man page updated. [2676d86d3286] * dovecot.m4: dovecot.m4: Added LIBDOVECOT_CONFIG_INCLUDE [211aa7bab239] * src/dsync/dsync-proxy.c: dsync: More fixes to parsing proxied mailbox deletion records. [2996ff9d2779] * .hgignore: Removed old binaries from .hgignore [9605c74b1f19] * src/dsync/test-dsync-proxy-server-cmd.c: dsync: Fixed unit test. [e0c52292b586] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c: dsync: Fixed proxying protocol to handle sending deleted mailboxes without failing. [54c3d17a4038] * src/dsync/dsync-proxy.c: dsync: Fixed assert-crashing on exporting a "deleted mailbox" record to proxy. [d701f254ca4e] * src/dsync/dsync-brain-msgs-new.c: dsync: Fixed assert-crash with remote syncing. [be38abc90df3] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox- save.c: mdbox: If one save fails, but others succeed, don't assert-crash at commit. [3bc1cef3ac4c] * doc/man/doveadm-dump.1.in, doc/man/doveadm-purge.1.in, doc/man /doveadm-pw.1.in, doc/man/dsync.1.in: man pages: Use wiki2.dovecot.org links until wiki2 becomes the default. [245cd41837ff] * src/dsync/dsync.c: dsync: Removed -r parameter. dsync backup should be used instead. [b8a74b3fb16d] * src/dsync/dsync-brain-msgs-new.c: dsync -v: Make sure the n/m message counter is flushed to stdout. [3c7d3258ac1d] * src/dsync/dsync-brain.c: dsync: Changed verbose "xx changed" messages to be clearer what they mean. [b94e6bf6b9c9] * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c: dsync: When -v parameter is given, show progress counter of saving new messages. [b37c85676f8e] * src/dsync/dsync-brain-msgs-new.c: dsync: Fixes to handling copying. [cfee7da47bf0] * src/plugins/quota/quota-fs.c: quota-fs: Compiler warning fix on some OSes. [c27e9a035b67] * src/dsync/dsync-brain.c: dsync: Potential crashfix, plus some compiler warning fixes. [9798d57644ba] * TODO: TODO updated [148fccbe9f32] * src/dsync/dsync.c: dsync backup: Added -R parameter to reverse backup direction. [c36dbec5cb9f] * src/dsync/dsync-brain.c, src/dsync/dsync-data.h, src/dsync/dsync- proxy.c, src/dsync/dsync-worker-local.c, src/dsync/test-dsync- brain.c, src/dsync/test-dsync-proxy-server-cmd.c: dsync: Find changed mailboxes also based on number of messages in them. [28639e01a479] * src/dsync/dsync-brain.c: dsync: Another try at not increasing mailbox uidnext/highestmodseq on failure [49b226835cd2] * src/lib-storage/list/mailbox-list-delete.c, src/lib-storage/list /mailbox-list-delete.h, src/lib-storage/list/mailbox-list-fs.c: lib-storage: When renaming a mailbox, make sure any unnecessary directories get deleted. [f4b809b83a13] * src/lib-storage/list/mailbox-list-fs.c: lib-storage: MAILBOX_LIST_PATH_TYPE_ALT_DIR path lookups weren't returning NULL with non-dbox. [636fb64394a5] * src/dsync/dsync-brain.c: dsync: If dsync fails in any way, don't increase mailboxes' next_uid/highestmodseq. [b4f029f7793a] * src/dsync/dsync-brain-msgs.c, src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync.c: dsync: Added backup command, which syncs source to destination, discarding any changes in dest. It doesn't work perfectly in all situations. Especially if destination had saved/expunged mails in INBOX, dsync can't resolve it. For non-INBOXes it deletes the mailbox and fails a bit later, so that the next dsync can do a full resync for the mailbox. [cf7f6912af02] * src/dsync/dsync-worker-local.c: dsync: Log an error if saving mail fails (e.g. because of quota) [f319af83ae36] * src/lib-storage/index/dbox-single/sdbox-save.c: single-dbox: Also some error handling fixing. [220e7b0f03c2] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: More error handling fixing. [7bd8464ef333] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-save.c: mdbox: Error handling fixes. [16e0992583e2] * src/master/service-process.c: master: Compile fix for non-Linux OSes [451852aa0200] * src/config/old-set-parser.c: config: Rename protocol managesieve {} to protocol sieve {} [7d418cc60853] * src/dsync/test-dsync-brain-msgs.c: dsync: Fixed unit test to work again. [6ef22459c39f] 2010-06-30 Timo Sirainen * src/dsync/dsync.c: dsync mirror: If arg has '/', assume it's a script. [26faf8ae5024] * src/dsync/dsync.c: dsync: Merged convert and mirror commands, parameter autodetection figures out what to do. [78b4cf49d3cd] * src/master/service-process.c: master: Improved core dump error messages. [e350532d8ce0] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-sync- update.c, src/lib-index/mail-index-transaction-export.c, src/lib- index/mail-index-transaction-finish.c, src/lib-index/mail-index- transaction-private.h, src/lib-index/mail-index-transaction- update.c, src/lib-index/mail-index.h, src/lib-index/mail- transaction-log-file.c, src/lib-index/mail-transaction-log.h, src /lib-index/test-mail-index-transaction-finish.c, src/lib-index/test- mail-index-transaction-update.c, src/lib-storage/index/cydir/cydir- mail.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib- storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/dbox- single/sdbox-mail.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/raw/raw-mail.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.h, src/lib- storage/mail.c, src/lib-storage/test-mail.c, src/plugins/virtual /virtual-mail.c: Removed mail_update_uid() / mail_index_update_uid(). It was working properly only with mdbox and there wasn't really a need for it. [b265dee142a6] * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-brain-msgs.c, src/dsync/dsync-brain-private.h, src/dsync/dsync-worker-local.c, src/dsync/test-dsync-brain.c: dsync: Rewrote copying and uid conflict resolution code. Added tons of comments. The uid conflict resolution is now done using copy+expunge, without needing a special "change uid" feature from lib-storage. [372af44dca85] * src/plugins/quota/quota.c: quota: With mail_debug=yes, show the non-default rule bytes/messages with "+" prefix. [b09638ebb87d] * src/doveadm/doveadm.c: doveadm help: Don't read settings (doveconf seems to mess up terminal) [8468998b98ab] 2010-06-30 Pascal Volk * src/imap/main.c, src/pop3/main.c: imap, pop3: Added an assert to client_connected(). [1799fbbd104b] 2010-06-30 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm.c: doveadm help: Show man pages instead of small usage strings. [b07bb05789cf] 2010-06-29 Timo Sirainen * src/lib-index/mail-index-sync-update.c: lib-index: Added a missing error logging. [3156315704ef] * src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/dbox-single/sdbox-sync.h: single-dbox: Fixed broken mailbox handling. [9d9be6aa3a55] * src/lib-storage/index/dbox-single/Makefile.am, src/lib-storage/index /dbox-single/sdbox-sync-file.c, src/lib-storage/index/dbox-single /sdbox-sync.c, src/lib-storage/index/dbox-single/sdbox-sync.h: single-dbox: Simplified syncing code. [4e5032891954] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-single/sdbox-sync-file.c: single-dbox: Fixed moving mails to alt storage. [a195689c4d38] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h: doveadm altmove: Sync all mailboxes after moving mails. [077fb09819e2] * src/lib-sql/driver-pgsql.c: pgsql: Fixes for errors handling with synchronous sql queries. [2167bea550e1] 2010-06-29 Pascal Volk * doc/example-config/dovecot.conf: example-config: Mention `doveconf -n` instead of `dovecot -n` [8c52ebde02a6] 2010-06-28 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-storage.h, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/list/mailbox-list-fs.c: [m]dbox: If alt-dir exists for a mailbox while trying to create it, rebuild mailbox indexes. This makes sure that if there are any mails in the alt-dir, they become visible rather than be overwritten. [ad122febbf26] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Don't fail storage rebuild just because storage/ directory doesn't exist. It may be an account for a new user that doesn't yet have any mails. [243166e7dd2d] * src/lib-storage/index/index-mail.c, src/lib-storage/index/maildir /maildir-mail.c, src/plugins/zlib/zlib-plugin.c: lib-storage: Use mail->saving, not mail->uid==0 to check if mail is being saved. The uid may be non-zero when saving with dsync. [267ad2b32276] * doc/example-config/Makefile.am: example-config: Don't include README file in distribution tarball. [6cce8b2a9121] 2010-06-28 Pascal Volk * doc/example-config/conf.d/Makefile.am: example-config: Added missing config files to the Makefile. [de800a774943] 2010-06-28 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map-private.h, src/lib- storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/dbox- multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox- multi/mdbox-storage-rebuild.h, src/lib-storage/index/dbox-multi /mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src /lib-storage/index/dbox-multi/mdbox-sync.h: mdbox: Modified map locking behavior to avoid deadlocks when rebuilding storage. If both mailbox and map index need to be locked, the map index must now be locked first. Mailbox syncing optimistically tries to first sync without map locking, but if it sees expunges, it restarts with the map lock. The map lock is held now slightly longer during sync than before, but it shouldn't be noticeable. [612df9b3df83] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h: lib-index: Added mail_index_sync_has_expunges() [b2aca3e50f44] * src/imap/imap-client.c, src/pop3/pop3-client.c: imap, pop3: Forced disconnection of client didn't always close connection immediately. [f4238836c566] 2010-06-28 Pascal Volk * .hgignore, Makefile.am, configure.in, doc/Makefile.am, doc/man/Makefile.am, doc/man/deliver.1, doc/man/doveadm- altmove.1.in, doc/man/doveadm-auth.1.in, doc/man/doveadm- director.1.in, doc/man/doveadm-dump.1.in, doc/man/doveadm- expunge.1.in, doc/man/doveadm-fetch.1.in, doc/man/doveadm-force- resync.1.in, doc/man/doveadm-help.1.in, doc/man/doveadm-kick.1.in, doc/man/doveadm-log.1.in, doc/man/doveadm-mailbox.1.in, doc/man /doveadm-penalty.1.in, doc/man/doveadm-purge.1.in, doc/man/doveadm- pw.1.in, doc/man/doveadm-quota.1.in, doc/man/doveadm-reload.1, doc/man/doveadm-search-query.7, doc/man/doveadm-search.1.in, doc/man /doveadm-stop.1, doc/man/doveadm-user.1.in, doc/man/doveadm- who.1.in, doc/man/doveadm.1.in, doc/man/doveconf.1.in, doc/man /dovecot-lda.1.in, doc/man/dovecot.1.in, doc/man/dsync.1.in, doc/man /global-options-formatter.inc, doc/man/global-options.inc, doc/man/option-A.inc, doc/man/option-u-user.inc, doc/man/reporting- bugs.inc, doc/man/sed.sh: doc: added manual pages [be2b7d2901a0] 2010-06-28 Timo Sirainen * dovecot-config.in.in: dovecot-config: Added LIBDOVECOT_CONFIG_INCLUDE [9be162cc2c52] * src/master/service-monitor.c: master: Most service processes were being idle-killed much too quickly. [59c952713e94] * src/plugins/quota/quota.c: quota: Fixed a potential crash with dict quota at deinit. [3de690764509] * src/dict/main.c: dict: Unregister modules after unregistering dict drivers. Fixes a crash at deinit when sql drivers were built as plugins. [a1daaaa5d1f5] 2010-06-27 Pascal Volk * doc/auth-protocol.txt: doc/auth-protocol.txt: fixed encoding failure. [c4194f5e3934] 2010-06-25 Timo Sirainen * doc/example-config/conf.d/10-auth.conf, doc/example- config/dovecot.conf: example-config: Moved disable_plaintext_auth to 10-auth.conf [5326d6b2f36e] * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: Added mail_deliver_save_open() for merging code with sieve. [c8b6dd6d86d1] * src/lib-sql/sql-db-cache.c: sql cache: Free all unused connections at deinit. [9086b081c339] * src/lib-index/mail-transaction-log.c: lib-index: fsync change broke .newlock dotlock for transaction log. [9127a9f4a020] * doc/example-config/conf.d/10-mail.conf, src/config/old-set-parser.c, src/config/settings-get.pl, src/lib-index/mail-cache-compress.c, src /lib-index/mail-cache-transaction.c, src/lib-index/mail-cache.c, src /lib-index/mail-index-private.h, src/lib-index/mail-index-write.c, src/lib-index/mail-index.c, src/lib-index/mail-index.h, src/lib- index/mail-transaction-log-append.c, src/lib-index/mail-transaction- log-file.c, src/lib-index/mail-transaction-log-private.h, src/lib- index/mail-transaction-log.c, src/lib-index/mailbox-list-index- sync.c, src/lib-index/mailbox-list-index.c, src/lib- storage/index/cydir/cydir-save.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib- storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/dbox- multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib/Makefile.am, src/lib/fsync-mode.h: Renamed fsync_disable to mail_fsync=optimized|always|never. [7f19062f58fd] * src/lib-storage/mail-user.c: lib-storage: Call settings_check() after duplicating settings struct. Fixes lock_method setting. lock_method was always ignored and the default fcntl was used. [0dc6f14c271d] * src/lib-settings/settings-parser.c: lib-settings: settings_check() now also checks dynamic parsers. [8d76b2cef0b5] * src/anvil/anvil-settings.c, src/auth/auth-settings.c, src/config /config-settings.c, src/dict/dict-settings.c, src/director/director- settings.c, src/dns/dns-client-settings.c, src/imap-login/imap- login-settings.c, src/imap/imap-settings.c, src/lib-master/service- settings.h, src/lmtp/lmtp-settings.c, src/log/log-settings.c, src/master/master-settings.c, src/master/master-settings.h, src/master/service-monitor.c, src/master/service.c, src/master/service.h, src/pop3-login/pop3-login-settings.c, src/pop3/pop3-settings.c, src/ssl-params/ssl-params-settings.c, src/util/tcpwrap-settings.c: Added support for per-service idle kill timeout. Director and anvil services are by default never killed. This also fixes the errors about idling director process not dying. [d41694c931d0] 2010-06-24 Timo Sirainen * src/lib-storage/index/shared/shared-storage.c: lib-storage: Shared namespaces shouldn't have NAMESPACE_FLAG_INBOX set. There is only one namespace with INBOX. [c9a62b0d9d36] * src/director/auth-connection.c, src/director/auth-connection.h, src/director/director-connection.c, src/director/director- connection.h, src/director/director-host.h, src/director/director- request.c, src/director/director-test.c, src/director/director- test.sh, src/director/director.c, src/director/director.h, src/director/doveadm-connection.c, src/director/main.c: director: Lots of fixes. It should be pretty stable now. [a07aa85f68c9] * src/config/config-parser-private.h, src/config/config-parser.c: config: Added hook_config_parser_begin so plugins can change default settings. [7885030184ab] * src/config/Makefile.am: config: Install all useful config*.h files. [661b2138cb7b] * src/lib-master/master-service.c: lib-master: MASTER_SERVICE_FLAG_NO_IDLE_DIE wasn't actually working. [c9e8144974f1] * src/director/main.c: director: Compiling fix for Solaris. [c5e78bd1d758] 2010-06-23 Timo Sirainen * src/lmtp/client.h, src/lmtp/commands.c: lmtp: BODY=* setting wasn't reset with RSET [c237fcea3f0c] * src/doveadm/doveadm-dump-index.c, src/lib-index/mail-cache.c, src /lib-index/mail-index-lock.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-strmap.c, src/lib-index/mail-index.c, src /lib-index/mail-index.h, src/lib-index/mail-transaction-log-file.c, src/lib-index/mail-transaction-log.c, src/lib-storage/index/dbox- common/dbox-sync-rebuild.c, src/lib-storage/index/dbox-multi/mdbox- map.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/mbox /mbox-lock.c, src/lib-storage/list/index-mailbox-list.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage- settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage /mail-storage.c: Added mail_max_lock_timeout setting. This could be useful inside lda/lmtp protocol sections to avoid them from spending too much time waiting for locks, since they can easily just return "try again later". [c3ee4421e86a] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Fixed assert-crash on storage rebuild if file got lost. [182d1834f643] * src/lib-storage/mail-search-build.c: lib-storage: Changed error message. [1cc5486f466b] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Storage rebuild handles now duplicate file ids (in primary+alt storage) correctly. If a duplicate file is found, it's given a new file id and the file is renamed. [b4c88ba95a6f] * src/lib-storage/index/index-mail-headers.c: lib-storage: When getting decoded headers, don't fail when MIME encoded-words expand to LFs. This fixes errors like: Corrupted index cache file dovecot.index.cache: Broken header Subject for mail UID 1 [f0e077c5c5f3] * src/plugins/quota/quota-storage.c: quota: Fixed a memory leak on deinit. Based on patch by Mike Abbott / Apple. [37df22ecd572] 2010-06-22 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Previous change wasn't complete. [29178cec0506] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Fixed handling indexing for multiple body parts. [776e2d96f6bb] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Removed broken optimization from storage rebuild, possibly causing broken results. [7ad62742116d] * src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-storage.c: fts: Give binary MIME part data only to FTS backends that support it. [6fca3a8622f8] * src/lib-storage/index/shared/shared-list.c: shared storage: Fixed handling LIST reference string. [86665b63c70b] * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox: Previous change was broken, fixed now properly to make purge fail early. [754edf799dac] * src/lib-storage/index/dbox-multi/mdbox-purge.c: mdbox: When purging finds that mailbox is corrupted, stop going through other files. [be6931536ee0] * src/doveadm/doveadm-dump-index.c: doveadm dump: Detect also if directory has dovecot.map.index [280fe153a7ba] 2010-06-21 Timo Sirainen * src/doveadm/doveadm-mail.c: doveadm: Mail commands assert-crashed when using -u wildcards. [407e7ff098ca] * src/doveadm/doveadm-print-pager.c: doveadm: Minor code cleanup to print formatter. [d78370005268] * src/doveadm/doveadm-print-pager.c: doveadm: Added LF after ^L in pager so that the output is nicer to look at with "less". [15a6c64df84a] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Removed some unnecessary code. [a3face3fd1d0] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Write output using formatter. Use pager as default. [bc03e6443ca7] * src/doveadm/Makefile.am, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-pager.c, src/doveadm/doveadm-print- private.h, src/doveadm/doveadm-print-tab.c, src/doveadm/doveadm- print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm- print.h: doveadm: Added "pager" formatter and a function to output streamed output values. [c4e906be2ca3] * src/lib-charset/charset-iconv.c: lib-charset: Don't assert-crash when iconv() skips lots of invalid input. [28cfb347296a] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch hdr.*: Show the hdr.name prefix even if the header doestn't exist. [172a0c7cebbb] * src/lib-storage/mail-search-register-human.c: lib-storage: Human search parser crashed if mailbox name was missing. [52e2f3a8054f] * src/doveadm/doveadm-print.c: doveadm: Don't crash with tab formatter at deinit. [c23ca08ca085] * src/director/user-directory.c: director: Minor code cleanup. [e5730fb45680] * src/director/director-connection.c: director: Don't send expired user records to remote servers. [d3dfe9c271bc] * src/director/main.c: director: Don't kill ourself when idling. [01c148824d52] * src/lib-master/master-service.c, src/lib-master/master-service.h: lib-master: Added MASTER_SERVICE_FLAG_NO_IDLE_DIE. [11cb0e93ff32] * src/auth/auth-master-connection.c: auth: Fixed sending "userdb iteration not supported" failure to client. [585318bf974d] * src/master/main.c: master: Don't try to parse -options if they're not the first parameters. [1d5cd1d835a1] * src/plugins/virtual/virtual-config.c: virtual: Fixed a crash when freeing an allocated, but unopened mailbox. Based on patch by e-frog. [7d05cef711bb] * src/doveadm/doveadm-mail-list-iter.c, src/doveadm/doveadm-mail-list- iter.h, src/doveadm/doveadm-mail-mailbox.c: doveadm: Ignore non-selectable mailboxes for most commands. [08b879b79236] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print-private.h, src/doveadm/doveadm-print- tab.c, src/doveadm/doveadm-print-table.c, src/doveadm/doveadm- print.c, src/doveadm/doveadm-print.h: doveadm: Output flushing fixes. [4e54843f11d0] * src/doveadm/doveadm-print-table.c: doveadm: Table formatter crashed with large output. [542d859f0223] 2010-06-19 Timo Sirainen * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-list- iter.c: doveadm: Fixed assert-crash with mailbox foo/* in all commands, not just fetch. [573cb66e9180] 2010-06-18 Timo Sirainen * src/doveadm/doveadm-mail-fetch.c: doveadm: Fixed assert-crash when listing mailbox foo/* [9a852084bbeb] * src/director/director.c: director: Debug logging crashfix. [47c1329e4e65] * src/director/director-connection.c: director: Send PINGs every 15 seconds for idling director connections. [e75dab14bb2f] * src/director/director-connection.c, src/director/director- connection.h, src/director/director-request.c, src/director/director.c, src/director/director.h, src/director /doveadm-connection.c, src/director/mail-host.c, src/director/main.c: director: A lot of fixes. [f0fb8151c6b4] * src/director/director-test.c: director-test: Some fixes [e6f15ba78007] * src/director/director-test.sh: director-test.sh: Removed absolute path from director-test executable [da7a307ab4f1] * src/director/director-test.sh: director-test: Added a script that generates test config files and other necessary info. [fb917e3a8f07] * src/director/director-connection.c: director: If same user gets redirected to two hosts, don't crash later. [ecf195115922] * src/director/director-test.c: director-test improvements. [6aa749b789ef] * src/director/director-connection.c: director: Debug message improvements. [61708c33154d] * src/lib/buffer.c: DEBUG: Removed buffer's tests against overflows. It slows down too much. [2e686a6403e3] * src/master/service.c: master: Fixed crash on deinit (maybe also on reload). [334d9b18f437] 2010-06-17 Timo Sirainen * src/imap/cmd-list.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/mailbox-list.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-shared- storage.c: mailbox list iter: Require MAILBOX_LIST_ITER_VIRTUAL_NAMES flag. The backend code will be simplified later by removing two code paths for virtual/non-virtual names. [99d56a37edd0] * src/plugins/quota/quota-count.c, src/plugins/quota/quota-maildir.c: quota: Consistently assume that mailbox names in quota rules are virtual names. The previous code mixed virtual/real name lookups. [6d0b4dfc0829] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-maildir-iter.c: lib-storage: Fixed listing mailbox flags for subscriptions=no namespaces. [7330bb240c75] * src/lib-storage/list/mailbox-list-fs-iter.c: lib-storage: Fixed getting flags for subscribed mailboxes with non- default namespace settings. [3128f592ef5c] * .hgignore, src/director/Makefile.am, src/director/director- connection.c, src/director/director-test.c, src/director/director.c, src/director/director.h, src/director/main.c: director: Added initial testing framework and some debugging output. [659bb1a26da4] * src/director/director-connection.c, src/director/director-host.c, src/director/director-host.h: director: Handle CONNECT commands (properly). [75d5e31ea8cc] * src/director/mail-host.c: director: director_mail_servers setting now allows ip1-ip2 ranges. [870cd20ada71] * src/director/director-connection.c: director: Outgoing director connections shouldn't be counted as master clients. [467ca06a7dbe] * src/doveadm/doveadm-print.c: doveadm: Another -A crashfix for mail commands that don't print anything. [81e496a5b412] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-print.c, src/doveadm /doveadm-print.h: doveadm: Don't crash when mail command that doesn't print anything uses -A. [c9b793187ca6] * src/doveadm/doveadm-director.c: doveadm director: Make sure write()s send everything. [744638eb4c1a] * src/imap/imap-client.c, src/lmtp/client.c, src/pop3/pop3-client.c: imap, pop3, lmtp: Close network sockets with net_disconnect(). [b2ffb6846973] * src/lib/network.c: net_disconnect(): Ignore ECONNRESET error. [c24ee1ebb159] * src/imap/cmd-uid.c: imap: UID commands could have written garbage to process title. Patch by Mike Abbott / Apple [c03424ecf8e5] 2010-06-16 Timo Sirainen * doc/example-config/conf.d/10-master.conf: example-config: Updated LMTP listeners. [9eee74e3c6c5] * doc/example-config/conf.d/10-logging.conf: example-config: Updated log_path comment to include syslog. [08523562c134] * doc/example-config/conf.d/10-master.conf: example-config: Show "user" field for service auth/auth-worker [a55da849216c] * src/doveadm/doveadm-log.c: doveadm log find: Avoid printing "syslog" as log path. [a05e3bbc4e46] * src/lib-storage/index/index-search.c: lib-storage: Fixed header searches to work correctly when there are multiple headers with same name. [3e50223d0014] * src/doveadm/doveadm-log.c, src/lib-master/master-service-settings.c, src/lib-master/master-service.c: Log paths now support "syslog" string. [3edf323da761] * src/doveadm/doveadm-log.c: doveadm log find: Find the log more reliably. [dd1f0a7127a9] * src/doveadm/doveadm-mail-mailbox-status.c: doveadm mailbox status: Added "all" field as an alias for showing everything. [33f9b211f213] * src/plugins/quota/doveadm-quota.c: doveadm quota get: Report quota percentage more accurately. The *100 can't overflow quota, since quota is reported in kilobytes. [dec8986d33ea] * src/plugins/quota/quota-dict.c: dict quota: Quota recalculation always doubled the quota with pgsql. [7a7bfdd708ff] 2010-06-15 Timo Sirainen * src/auth/main.c: auth: Fixed crash when a plugin was trying to register password scheme. [a74f743e2c56] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Flush dbox file's input buffer after writing to the file. [26594f6d784a] * src/plugins/expire/doveadm-expire.c: Compile fix. [d1f7b5e17252] 2010-06-14 Timo Sirainen * src/auth/userdb-nss.c: userdb nss: Default to blocking=yes. [7b497f801178] * src/auth/mech-plain.c: auth: Fixed code comment. [d15d5d828d6b] * src/lib-storage/mailbox-list.c: lib-storage: Use macros instead of magic '0' and '1' characters. [d24cd07babb6] * src/lib-storage/mailbox-list.c: mailbox_list_get_unexpanded_path(): Don't crash if namespace location is already expanded. [6e1247609440] * src/config/doveconf.c: doveconf: Support listing multiple specified keys. Support listing specified sections. [d110c46e6936] * src/config/doveconf.c: doveconf: Config file warning check should use base_dir, not PKG_RUNDIR. [1f006c9e5795] * src/lib-master/master-login.c: lib-master: Post-login scripts can now exit to prevent user from logging in, without logging error. [356afa6263d4] * src/login-common/sasl-server.c: login: Fixed crash with service_count=1 and when reaching max number of connections from user+ip. [05700fe85e22] * src/lib-storage/mail-storage-hooks.c: lib-storage: Fixed handling mail_allocated hook. [07a7d352af66] * src/lib-imap/imap-match.c: lib-imap: Compiler warning fix. [88b6665b48da] 2010-06-13 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Fixed crashing when marking mdbox corrupted and mdbox map had open transactions. [b6163de8dffa] * src/lib-index/mail-index-view.c, src/lib-index/mail-index.h: lib-index: Added mail_index_view_get_transaction_count(). [aa66db4073c5] 2010-06-12 Timo Sirainen * src/doveadm/doveadm-print-table.c: doveadm: Include termios.h, not sys/termios.h.. [7a02b84ad7f5] * src/doveadm/doveadm-print-table.c: doveadm: Compile fix for Solaris. [c50d42277cc3] * src/doveadm/doveadm-print-table.c: doveadm: Use struct winsize, not struct ttysize to get the terminal width. [c55de307d9f9] * src/doveadm/doveadm-print-table.c: doveadm: Use actual terminal width for table formatter if possible. [2f3ce92f53ff] * src/doveadm/doveadm-who.c: doveadm who: s/service/proto/ in header name. [f35949b56863] * .hgsigs: Added signature for changeset 0c23ff04394f [f972a82055c1] * .hgtags: Added tag 2.0.beta6 for changeset 0c23ff04394f [e2b5dcb6c5a1] * configure.in: Released v2.0.beta6. [0c23ff04394f] [2.0.beta6] * src/lib/module-context.h: MODULE_CONTEXT() now avoids directly returning NULL to make static analyzer happier. [aec2a41abe4a] * src/lmtp/commands.c: lmtp: Make static analyzer happier. [0565807f7ca1] * src/login-common/sasl-server.c: login: Removed dead code. [e3881b95a93d] * src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Marked help() with noreturn attribute. [8f0eef1c6f17] 2010-06-11 Timo Sirainen * TODO: TODO updated. [93c3d6a46446] * src/dsync/dsync-brain.c, src/dsync/dsync-data.c, src/dsync/dsync- data.h, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy- server-cmd.c, src/dsync/dsync-worker-local.c, src/dsync/dsync- worker-private.h, src/dsync/dsync-worker.c, src/dsync/dsync- worker.h, src/dsync/test-dsync-worker.c, src/dsync/test-dsync- worker.h: dsync: Fixed syncing \noselect mailboxes. [c955d4789553] * src/doveadm/doveadm.c: doveadm: Renamed -F to -f. [b135e13f42b2] * src/lib-storage/mailbox-list.c: mailbox_list_get_unexpanded_path(): Don't crash with -o mail_location=.. [ed156c989067] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail- search.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm-print-flow.c, src/doveadm/doveadm-print- private.h, src/doveadm/doveadm-print-tab.c, src/doveadm/doveadm- print-table.c, src/doveadm/doveadm-print.c, src/doveadm/doveadm- print.h, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/plugins/quota/doveadm-quota.c: doveadm: Output is now written via "formatter" interface. The default can be changed with -f parameter. Currently implemented 3 formatters: flow, tab and table. [c4fdccf298bf] * src/lib-storage/index/shared/shared-storage.c, src/lib- storage/index/shared/shared-storage.h: lib-storage: Fixed crashing on accessing shared mailboxes. [f37d19f1c0a3] * src/plugins/quota/quota-fs.c: quota-fs, Solaris: Don't try to open quotas file with NFS mounts. [e6185d7c9732] * src/lib/failures.c: Logging lines longer than PIPE_BUF caused an extra empty line to be logged. [5ede18fe35fa] 2010-06-09 Timo Sirainen * src/master/service-monitor.c, src/master/service-process.h: master: If an idling process seems stuck, log an error and disable it. [3fa10300c70c] * src/lib-master/master-service-private.h, src/lib-master/master- service.c: lib-master: Try to send master status more reliably. [67b8de25154c] * src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm- mail.c, src/doveadm/doveadm-mail.h: doveadm: Don't fail immediately if some mailbox can't be opened. [e3d2d9427d3d] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added mailbox status command. [9c4b07e13cd2] * src/imap/imap-status.c: imap: STATUS (X-GUID) added extra space to result. [425f635ebaa9] * src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail- search.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/plugins/quota/doveadm-quota.c: doveadm: Mail commands now prefix each line with username if -A parameter is given. [3dfe1690b568] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added "user" field. [9f9f9d9e4a79] * src/config/config-parser.c, src/config/config-parser.h, src/config/doveconf.c: doveconf: Renamed lip/rip filters to local/remote, which also support DNS lookups now. [c147a2653f9c] * src/config/config-parser.c: doveconf: Show local, remote name/bits {} blocks with the /bits part. [cc6ebfa394d3] * src/lib-storage/mail-storage-hooks.c: lib-storage: Fixes to recent plugin API change. [6d32cf98b5f3] * src/lib-master/master-auth.c: lib-master: Error logging fix for 64bit systems. [e85e6b1df82f] * src/lib-master/master-auth.c: lib-master: Added timeout to master login attempts and improved error logging. [7385d8090890] * src/login-common/client-common-auth.c: login: If master login fails, make sure the client gets disconnected. [a859ab0d760e] * src/login-common/client-common-auth.c, src/login-common/sasl- server.c, src/login-common/sasl-server.h: login: Master login internal failures weren't handled correctly. [279bf7435603] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-parser.c, src/config/doveconf.c, src/lib-master/master-service-settings- cache.c, src/lib-master/master-service-settings.c, src/lib-master /master-service-settings.h, src/lib/network.h, src/login-common /login-settings.c, src/login-common/login-settings.h: config: local_name foo {} is now for TLS SNI. local foo {} only resolves foo to its IP. [b7fadc4eac7a] 2010-06-08 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: stat() storage directory first before trying to mkdir it. [1aaa4b51cb14] * src/auth/auth-request-handler.c, src/auth/main.c: auth: Abort pending penalty lookups earlier in deinit. [149d57c1a9c0] * src/auth/auth-penalty.c: auth: Fixed a memory leak when looking up penalty value from anvil. [6f85840f8171] * src/lib-storage/mail-namespace.c: lib-storage: Set mail_namespace.unexpanded_set also when no namespaces are defined. [9f546fe13fc5] * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c, src/auth/auth-request-handler.c, src/auth/auth- request-handler.h, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth.c, src/auth/auth.h, src/auth/main.c, src/auth/passdb.c, src/auth/userdb.c: auth: Changed how auth deinitilization works. [190a5278e58b] * src/auth/auth-request-handler.c, src/auth/auth-request-handler.h, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/mech- cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech-gssapi.c, src/auth/mech-login.c, src/auth/mech-ntlm.c, src/auth/mech-otp.c, src/auth/mech-rpa.c, src/auth/mech-skey.c, src/auth/mech-winbind.c, src/auth/mech.c, src/auth/mech.h: auth: Removed unnecessary auth_request callback and context uses. [94f78f415811] 2010-06-07 Timo Sirainen * src/lmtp/lmtp-proxy.c: lmtp proxy: Fixed 30 second delay after finishing DATA. [2d6cf78982dc] * src/lmtp/commands.c: lmtp proxy: Fixed passdb username change. [d2037445feed] * src/auth/auth-request-handler.c: auth: More async auth request deinit fixing. [68287c257c0a] * src/master/main.c: master: Small code cleanup. [cf496a6d669e] * src/auth/auth-request-handler.c: auth: Another attempt in trying to fix crashed at deinit on pending async auth request lookups. [fd447208ccb9] * src/login-common/main.c: login: Deinit auth socket after destroying clients to avoid crash. [2f084e625f09] * src/auth/auth-request.c: auth: Fixed prefetch userdb interaction with passdb changing username. If userdb_* fields were set before user was changed, prefetch returned the unchanged username. [48ac56ad4768] * src/doveadm/doveadm.c: doveadm: stop and reload commands now run with minimal initialization code. This allows them to work even if there is something wrong with config file. [c73ddaa39ca4] * src/lib-storage/mail-storage-hooks.c, src/lib-storage/mail-storage- hooks.h, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-user.h, src/lib-storage/mail.c, src/lib-storage/mailbox-list- private.h, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl- mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl- plugin.h, src/plugins/acl/acl-storage.c, src/plugins/expire/expire- plugin.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts /fts-plugin.c, src/plugins/fts/fts-plugin.h, src/plugins/fts/fts- storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mbox-snarf /mbox-snarf-plugin.c, src/plugins/notify/notify-storage.c, src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-plugin.h, src/plugins/quota/quota-storage.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-storage.c, src/plugins/zlib/zlib- plugin.c: lib-storage: Plugin API changed to run plugin functions in correct order. Previously the hooks were run in correct order, but the functions they overrode were run in reverse order. This caused problems when multiple plugins were used. [4b20e692c606] * src/lib-storage/index/index-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/plugins/lazy-expunge /lazy-expunge-plugin.c: Mailbox deletion: Delay marking its index deleted until ACL has had a chance to abort the deletion. [3a0601cb9e67] 2010-06-05 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Removed unnecessary code line. [6f5d3e035652] 2010-06-04 Timo Sirainen * TODO: TODO updated. [e9fed6359699] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-storage.h, src/lib-storage/index /dbox-multi/mdbox-map-private.h, src/lib-storage/index/dbox-multi /mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox-map.h, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-single/sdbox- storage.c: dbox, mdbox: Fixed race conditions when creating mailboxes. [7fc5db26f6eb] * src/util/rawlog.c: rawlog: Rewrote timestamp handling. Now with -t parameter each line begins with timestamp. [6b35189988dc] * src/util/script-login.c, src/util/script.c: script, script-login: Tell GNU getopt() not to access -parameters after first non-parameter. [7567896556bd] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index /dbox-common/dbox-save.c, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib- storage/index/dbox-single/sdbox-copy.c, src/lib-storage/index/dbox- single/sdbox-mail.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/mail-storage.h: lib-storage: Fixed accessing uncommitted saved mails with dsync dsync preserves uids, so uid==0 check won't work for detecting such mails. [b5d8a7a8695e] * src/lmtp/commands.c: lmtp: Compile fix. [0602b39ff3ce] * src/dsync/Makefile.am: dsync: Fixed loading plugins when built --without-shared-libs [5d2715ae9068] * src/lib-dict/dict-client.c: dict client: Allow connecting to server multiple times in a second. [24caf08ae7af] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-map-private.h, src/lib-storage/index/dbox-multi /mdbox-map.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/mail- namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-list.c: When creating shared directories, preserve parent dir's permissions if it has setgid bit enabled. This works only if location path uses %variables. The directories up to last variable are created by preserving parent directory's modes, while the rest of the directories are created with 0700. For example with "/var/mail/%d/%2n/%n/Maildir", "/var/mail/domain/nn" preserves /var/mail's permissions, while the "username/Maildir" directories have 0700 mode. [0dfd28b930b3] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-storage.h, src/lib-storage/index/dbox- multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi /mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/index/raw/raw-storage.h, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/index/shared /shared-storage.h, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h: Avoid including mailbox-list-private.h everywhere. [3e51c846f293] * src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c: lib-storage: Added mailbox_list_get_root_path() to reduce code duplication. [e747257bc382] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c: lib-storage: Code cleanup. [e056d42c9711] * src/auth/main.c: auth: Deinit auth request handler before pass/userdbs [b578861bfa40] * src/plugins/mail-log/mail-log-plugin.c: mail-log: If saved uid isn't available, log an error instead of crashing. This shouldn't happen, except when saving to virtual mailbox. [e575fd47c3a5] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Code cleanup. [57723949babb] * src/plugins/mail-log/mail-log-plugin.c: mail-log: Show lda/lmtp deliveries as "save", not "copy from Dovecot Delivery Mail". [1c2d74e3e312] * src/auth/main.c: auth: When stopping, try to wait for auth clients to disconnect. This should avoid auth failures during config reloads. [5260724def1f] * src/util/script.c: script: Clear environment before running the script. [c7ab127fe8ae] 2010-06-02 Timo Sirainen * src/plugins/quota/doveadm-quota.c: doveadm quota get: Avoid integer overflows with really high quota usage. [3b25ca20f005] * src/auth/auth-request.c: auth: Added %{login_user}, %{login_username} and %{login_domain} variables that are set for master logins. [5ae4a5c14f5b] * src/plugins/quota/doveadm-quota.c: doveadm quota get: Print usage also in percentages. [49b3a9e170be] * doc/example-config/conf.d/90-acl.conf, doc/example- config/conf.d/90-plugin.conf: example-config: Moved ACL settings to a separate .conf file. [1f8251fc8db5] * doc/example-config/conf.d/90-plugin.conf, doc/example- config/conf.d/90-quota.conf: example-config: Moved quota configuration to a separate .conf file and improved the comments. [913e8d4d07b9] * src/plugins/quota/quota.c: quota: Use the new "script" service for executing quota warnings. This improves the performance, especially when the process is handling multiple users, because it no longer has to fork a process and wait for the script to finish. Example configuration: plugin { quota_warning = storage=90%% quota-warning 90 %u } service quota-warning { executable = script /usr/local/bin/quota- warning.sh user = vmail unix_listener quota-warning { } } The quota-warning.sh will be executed with parameters 90 and username. [a179fcbbf960] * .hgignore, src/util/Makefile.am, src/util/script.c: Added "script" service that can be used to easily execute programs via UNIX socket. [19c661891964] * src/lib-master/master-login.c, src/util/script-login.c: script-login: Added version check to the protocol. [3ac8c5dd9c30] * src/util/script-login.c: script-login: Error message fix. [c86b90148906] * src/anvil/anvil-connection.c, src/auth/auth-worker-client.c, src/config/config-connection.c, src/director/doveadm-connection.c, src/doveadm/doveadm-director.c, src/lib-master/master-service.c, src /lib-master/master-service.h: Added version_string_verify() and removed code duplication with it. [4274d1549fa0] * .hgignore, src/util/Makefile.am, src/util/script-login.c, src/util/script.c: Renamed "script" binary to "script-login". [addb2c6c1dfb] * src/auth/auth-master-connection.c, src/auth/auth-master- connection.h, src/auth/auth-request-handler.c, src/auth/auth- request-handler.h, src/auth/auth-request.c, src/auth/auth-request.h: auth: Fixes to destroying pending async userdb requests at deinit. [1e890076c4e9] * src/lib-dict/dict-client.c: lib-dict: Changed proxy client's idle timeout from 1 second to 0. [50a0c05fb4e7] * configure.in, doc/example-config/conf.d/10-auth.conf, doc/example- config/conf.d/auth-static.conf.ext, src/auth/Makefile.am, src/auth /passdb-static.c, src/auth/passdb.c: auth: Added passdb static. [df93f0c290ea] * configure.in, src/auth/userdb-static.c: auth: Removed USERDB_STATIC macro. It's always built anyway. [d8a801d2d3f1] * src/auth/auth-request.c: auth: Recent change caused userdb lookups to crash. The deinit bug that it tried to fix isn't fixed yet. [dc94f9240ec1] 2010-06-01 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: When rebuilding storage, don't use map records that have wrong size. [1b45f9641924] * doc/example-config/conf.d/10-mail.conf: example-config: Updated global mail_plugins comment. [1afb59ce219b] * src/config/old-set-parser.c: config: Fixed handling obsolete [ipv6addr]:port listen setting. [9952cbe2f839] * src/config/old-set-parser.c, src/lib/network.c, src/master/service.c: Added support for [] around ipv6 addresses everywhere. [bdb46ba87203] * src/plugins/acl/acl-backend-vfile.c: acl: Allow tabs between extended acl names. [484eb8f1f074] * configure.in: configure: Don't use spaces after -I and -L compiler flags. Apparently they break in some setups. Patch by Ben DJ. [044589aca7c6] * src/lib/lib-signals.c: Compile fix for OSX 10.3. [785f1507fed8] * src/plugins/virtual/virtual-config.c: virtual: Fixed looking up namespace for save-destination mailbox (!ns/box) [9bd63ce9db85] * src/imap/imap-settings.c: imap: Removed a no-op outlook-idle imap client workaround. [d4b29a288fa1] * doc/example-config/conf.d/20-imap.conf, src/imap/imap-fetch-body.c, src/imap/imap-settings.c, src/imap/imap-settings.h: imap: Removed netscape-eoh (Netscape 4.x) from imap client workarounds. This client should be long dead by now. Also the workaround causes Dovecot to violate IMAP RFC, so it's not really recommended anyway. [22699553569f] * src/auth/auth-client-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h, src/auth/auth-request.c: auth: Aborting pending async requests on deinit caused crashes. [3ef582c3fb72] * src/lib-mail/istream-header-filter.c: header filter istream: Avoid seeking backwards when caller just wants to reset the stream buffers. [941608f8b3fb] 2010-05-31 Timo Sirainen * src/lmtp/commands.c: lmtp: Fixes to seteuid calls. When delivering to multiple users, the first user's mail should be deinitialized with that user's effective uid. Also there's no point in setting uid to 0 between deliveries to multiple users. [55b8480849b0] * src/lib-index/mail-cache.c: lib-index: If index is read-only, always fail when trying to lock cache file. [7adc45a6da2e] * src/imap/cmd-idle.c: imap: Fixed previous idle change more correctly. The previous way could have crashed in some situations. [ba9d1b490bc3] * src/imap/cmd-idle.c: imap: If client was disconnected while IDLEing (e.g. storage error), it got stuck instead. [38ce28c0bca3] * src/lib-index/mail-transaction-log.c: lib-index: Try to handle index directory deletion more nicely. [3efe9dcbed3e] * src/lib-storage/mailbox-uidvalidity.c: lib-storage: Don't log rename() error if dovecot-uidvalidity didn't contain valid value. [2bb7ce1fb8a0] * src/lib-lda/mail-deliver.c: lib-lda: If two LDAs try to autocreate the same mailbox at the same time, don't fail the other one. [c4f56ed9dae0] * src/auth/db-passwd-file.c: auth: Improved passwd-file's EACCES error messages. [dcfabc2e2143] * src/doveadm/doveadm-mail-mailbox.c: doveadm: Removed an unnecessary code line. [eac68d311ce3] * src/director/login-connection.c: director: Update connection counts also on login connection deinit. [c82a7922fca9] * src/lib-storage/index/index-mail.c: lib-storage: mail_get_stream() no longer sets stream_r if it returns failure. This fixes e.g. FETCH RFC822.* commands when input couldn't be read. [4199565b9ce2] * src/imap/imap-fetch-body.c, src/lib-storage/index/index-mail.c: If read() from a mail stream fails, log the stream name (filename typically). [e5b491043b5e] 2010-05-28 Timo Sirainen * src/imap/cmd-list.c: imap: LIST now handles better if INBOX is in a different namespace than prefix="" [4faaf5b037d5] * src/doveadm/doveadm-log.c: doveadm log find: Wait 1 second after logging, to give syslog time to write to files. [f9d1059f81ce] * src/plugins/quota/quota.c: quota: Non-default quota rules should now have '+' before the limit value. This should make it clearer what it means. The obsolete way without '+' might be changed in future to actually mean an absolute quota limit. [e61c783ab241] * src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm mailbox convert renamed to doveadm mailbox mutf7. [4d3be20243c2] * src/plugins/quota/quota-fs.c: quota-fs: Log also mountpoint type with mail_debug=yes. [e502f52f160c] * src/doveadm/doveadm-auth.c, src/doveadm/doveadm-mail.c: doveadm: Detect '?' also as wildcard character in usernames. [e7b0366f9cfb] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm.c: doveadm: Group subcommands into a single line in usage output. [cfa4a9dcb832] * src/doveadm/doveadm.c: doveadm help now also outputs to stdout. [425823ba9fcb] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm.c: doveadm help and without parameters now writes output to stdout, otherwise stderr. [c3f1a15f50ca] * src/master/main.c: master: dovecot --log-error now internally calls doveadm log test. [8f63f17fdb0c] * src/master/main.c: master: Added reload and stop back to usage help string. [e420e196f80a] * src/doveadm/Makefile.am, src/doveadm/doveadm-log.c, src/doveadm /doveadm-master.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added log test|reopen|find commands. [86fd141577c3] * src/master/main.c: dovecot: Removed reload and stop handlers. "dovecot arg" now execs "doveadm arg". [257eb30cc529] * src/doveadm/Makefile.am, src/doveadm/doveadm-master.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added stop and reload commands. [c740a50ab676] * src/doveadm/doveadm-mail.c: doveadm: force-resync now fails if mailbox name isn't valid UTF-8 [b6c027d9631f] * src/lib-storage/mail-search-register-human.c: lib-storage: Human search parser now fails if given mailbox name isn't valid UTF8. [046948ccdbfb] * src/doveadm/doveadm-mail.c: doveadm force-resync: Get mailbox name as UTF-8. [6f4bfa83aabd] * src/doveadm/doveadm-mail-mailbox.c: doveadm mailbox *: Removed -7 and -8 parameters from most commands, UTF-8 is used always. [2127b6e9096d] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: mailbox field value is printed as UTF-8, not mUTF-7. [93eaae8617c8] * src/lib-storage/mail-search-register-human.c: lib-storage: human search arg parser now gets mailbox name using UTF-8. [15cda53f4e79] * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlite.c, src/lib-sql/driver-sqlpool.c, src/lib-sql/sql-api- private.h: lib-sql: Don't try to reconnect on deinit or intentional disconnect. Fixes a timeout leak. [f9e5c73a988b] * src/lib-sql/driver-mysql.c, src/lib-sql/driver-sqlite.c: mysql, sqlite: Update db state to disconnected on deinit. [8c521fd311c6] * src/master/service.c: master: Make sure throttle timeout isn't added for already destroyed services. [bd0088e294ec] 2010-05-27 Timo Sirainen * src/doveadm/doveadm-director.c: doveadm: Minor help text change. [515a8cbd3d1e] * src/master/service-monitor.c: master: Fixed crash on config reload. [9bb17fe5465f] * src/doveadm/doveadm-mail.c: doveadm: -u parameter now allows wildcards for usernames. [6ac0459a6f0e] * src/doveadm/doveadm-settings.c: doveadm: Added config dependency to mail_user settings. If doveadm gets the configuration by execing doveconf, it won't get these settings without the dependency. [d7b9712d1dfc] * src/doveadm/doveadm.c: doveadm: Preserve $HOME when execing doveconf. [34621611fb33] * src/doveadm/doveadm-auth.c: doveadm user: User listing is done now by using wildcards in usernames. [ca0503623ff2] * src/plugins/expire/Makefile.am, src/plugins/expire/doveadm-expire.c, src/plugins/expire/expire-env.c, src/plugins/expire/expire-env.h, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire-set.c, src/plugins/expire/expire-set.h, src/plugins/expire/expire-tool.c: expire: Rewrote expire-tool as a plugin for doveadm. Whenever using some doveadm mail command with -A parameter, the plugin checks if it can get the list of potentially matching users from the expire database. Currently only the list of users is filtered based on expire database, list of mailboxes could also be filtered but this isn't supported (yet). [da750dc62c14] * src/plugins/quota/doveadm-quota.c: doveadm quota: Fixed to work with new doveadm API [caecf9866909] * src/lib-storage/mail-search-register-human.c: lib-storage: Human search date parser now supports UNIX timestamps. [59322f74214b] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- mail-mailbox.c, src/doveadm/doveadm-mail-search.c, src/doveadm /doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm- settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: mail commands can now be extended more easily by plugins. Also plugins can now override the list of -A users. [07c9d1115029] * src/doveadm/doveadm-auth.c: doveadm user: If no user parameters are given, list all usernames. [85e22167529f] * src/lib-storage/index/dbox-single/sdbox-save.c: dbox: Copying messages crashed. [f2ece87f9fea] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Don't crash if lazy_expunge setting isn't enabled for user. [47f186130a4d] * src/util/tcpwrap.c: Compiler warning fix. [75b8bde60e65] * src/config/doveconf.c: doveconf now shows "key = " prefix, unless -h parameter is given. [19730f396800] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-single/sdbox- save.c, src/lib-storage/index/maildir/maildir-save.c: dbox, mdbox, maildir: If saving one mail fails in transaction, don't fail subsequent saves. [a0fccb6367f4] * src/anvil/main.c, src/auth/main.c, src/config/main.c, src/dict/main.c, src/director/main.c, src/dns/dns-client.c, src/dsync/dsync.c, src/imap/main.c, src/lib-master/master-service.c, src/lib-master/master-service.h, src/lmtp/main.c, src/log/main.c, src/login-common/main.c, src/pop3/main.c, src/ssl-params/main.c, src/util/script.c, src/util/tcpwrap.c: lib-master API changed to avoid accidentally leaking client connections. This change also fixes many such leaks. [b8d3c96e61a7] * TODO: TODO updated. [7b8bd33c96f9] 2010-05-26 Timo Sirainen * src/doveadm/doveadm-auth.c: doveadm auth: Fail if after password there is more parameters. [3d928798d278] * src/doveadm/doveadm-auth.c: doveadm auth: Return with exit code 0 if auth succeeded, 1 if failed, others if error. [5a875b6a5982] * src/doveadm/doveadm-auth.c: doveadm auth: Fix to previous change, it broke auth completely. [5e7ca577e23a] * src/lib-auth/auth-client.c, src/lib-auth/auth-client.h: lib-auth: Added auth_client_is_disconnected(). [4f21121408b3] * src/doveadm/doveadm-auth.c: doveadm auth: If we can't connect to auth socket, die instead of hanging. [bb17ad464528] * src/lib-storage/mail-copy.c: lib-storage: Don't assert-crash when copying a mail fails. [0918cb06c906] * doc/example-config/conf.d/10-mail.conf: example-config: Namespace indentation should have been 2 spaces, not 3. [7cbc5854fbeb] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Allow shared namespace prefix to use %variable modifiers. [b497a302e5cf] * src/lib-storage/mail-storage-private.h, src/plugins/zlib/zlib- plugin.c: lib-storage: Removed unnecessary struct mail_save_context.saved_physical_size [4eaebea097db] * src/lda/Makefile.am, src/lmtp/Makefile.am: lda, lmtp: Fixed library dependency tracking in Makefiles. [2fa46ba7ff2f] * src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index /dbox-common/dbox-save.h, src/lib-storage/index/dbox-multi/mdbox- save.c, src/lib-storage/index/dbox-single/sdbox-save.c: dbox: Figure out internally when message's "physical size" doesn't match "written size". [e84e72fb1af9] * src/lib-sql/driver-mysql.c: lib-sql: Fixed getting number of affected rows with MySQL. [0c15a760dab8] * doc/example-config/dovecot.conf: example-config: Fixed example dict config filenames. [c23fb6cc5bb5] 2010-05-25 Timo Sirainen * src/director/director-connection.c, src/director/doveadm- connection.c, src/director/notify-connection.c: director: Update connection count when client disconnects. [26cfc1c3a4b1] * src/plugins/quota/quota-fs.c: quota-fs: If FS quota is enabled, create (some of) users' temp files to /tmp. [bd8ed4b97fe3] * src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: mail_user.get_temp_prefix() method added. [e63dd7e7ea6e] * configure.in: configure: --without-shared-libs should use static liblda for lda/lmtp. [f0141862bdca] * src/lib-storage/index/mbox/mbox-storage.c: mbox: If write fails with EFBIG, give an error that mentions ulimit -f. [f7527971fed0] * src/lib-index/mail-transaction-log-view.c: lib-index: Fix to recent error handling change. [fb1cc2f5d681] * src/lmtp/client.h, src/lmtp/commands.c: lmtp: Add Return-Path: header. Also with only one RCPT TO, add Delivered-To: header. [61c3124bba93] * src/lib/hostpid.c: Die if system hostname contains '/' character. [4c28061ce7a6] * src/lib-storage/index/index-storage.c: lib-storage: If read-only mailbox uses private flags, don't return it as READ-ONLY. [2f7b7747867e] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-view.c, src/lib-storage/index/index-sync.c: Changed some index error handling conditions to log an error instead of assert-crash. [6d68b7b25ae7] * src/lib-index/mail-index-sync-update.c: lib-index: On errors, close sync view before fsck to avoid assert- crash. [b08abace44ed] * src/lib-master/master-service-settings-cache.c: Increased initial memory pool size. [d285a4ee07c4] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Expunging last messages may have assert-crashed if their filenames had changed. [487e58ebb764] * src/lib-index/mail-transaction-log-append.c: lib-index: Recent "save transaction commits to memory" may have assert-crashed sometimes. [8b67ccc4e2af] 2010-05-20 Timo Sirainen * src/lib-sql/driver-mysql.c: mysql: Fixed assert-crashing on transaction commits. [1e45b463b93a] * doc/example-config/conf.d/10-logging.conf, src/login-common/login- settings.c: Added mail process pid to default login_log_format_elements [b715f1e39f25] * src/doveadm/doveadm-auth.c, src/doveadm/doveadm-director.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm-who.c, src/doveadm/doveadm.h: doveadm: Look up sockets from base_dir rather than hardcoded PKG_RUNDIR. [43a5acc09eb8] * configure.in, src/lib/process-title.c: Added process title hack support for OS X. [348eb4754085] * src/director/director-connection.c, src/director/director.c, src/director/director.h, src/director/doveadm-connection.c, src/doveadm/doveadm-director.c: Added doveadm director flush command for dropping user associations from memory. This should probably mainly be used for testing. [ef1de95396d4] * src/auth/auth-client-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h, src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.h, src/login-common/sasl-server.c: login: Tell auth process to free aborted auth requests. [f70433791464] * src/director/director.c, src/director/director.h, src/director /doveadm-connection.c, src/director/mail-host.c, src/director/mail- host.h, src/director/main.c, src/doveadm/doveadm-director.c: doveadm director status user: Show more ways of what user's potential hosts are. [1bc3d5589c5a] * src/director/director-connection.c, src/director/director-request.c, src/director/director.c, src/director/director.h, src/director /doveadm-connection.c, src/director/mail-host.c, src/director/mail- host.h, src/director/main.c: director: Code cleanup - keep mail hosts in a struct rather than in static variables. [19336bddada2] * src/director/doveadm-connection.c, src/doveadm/doveadm-director.c: doveadm director status username now returns which server the user is assigned to. [c57c1ff9c5f1] * src/director/director-connection.c: director: Preserve old mail server state when a new director connects to ring. [5f77c91f3df0] * src/director/director-connection.c, src/director/director.c: director: Fixes to connecting to remote director. [350208d17fcd] * src/plugins/quota/quota-dict.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: quota: Added ignoreunlimited option to quota roots to disable tracking users with unlimited quota. [e688d58b0112] * src/plugins/imap-quota/imap-quota-plugin.c: imap-quota: If user has no quota roots, don't return QUOTAROOT reply. [295e12b91054] * src/master/service-process.c: master: If process running as root didn't dump core, don't suggest non-working workarounds. [8954b4d78dd2] * src/lib-imap/imap-parser.c: imap parser: Fail immediately if we see unexpected ')' while reading atom. [01f81b9e9586] * src/master/service-monitor.c, src/master/service.c: master: If throttling a service and there are no service processes, drop all queued connection attempts. [2b5af8843142] 2010-05-19 Timo Sirainen * src/director/director-connection.c, src/director/director.c, src/director/director.h: director: If we logged that we're delaying connections, also log when we continue. [d1012db03a1c] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added support for hdr. field. [b43d6d2ef2fb] * src/director/director.c: director: Use net_try_bind() to try to find our own IP. [7d3d6ee01bfc] * src/lib/network.c, src/lib/network.h: liblib: Added net_try_bind() [40964653930c] * src/director/director.c: director: Fixed finding the director's own IP in case system has multiple. [ed633bfb8c59] * src/director/director.c: director: Create outgoing connections from our own known IP. [098f517e902c] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Added support for imap.envelope, imap.body and imap.bodystructure fields. [4ec22f3bfd9f] * src/lib-storage/mailbox-list.c: lib-storage: mailbox_list_iter_init_namespaces() didn't match INBOX pattern correctly. [2587eb79a83d] * src/config/doveconf.c: doveconf : Don't output the "key =" prefix. [1c1db8a6cfc7] * src/director/director-connection.c, src/director/user-directory.c, src/login-common/login-proxy-state.c: Compiler warning fixes. [d6d59ff58511] * src/director/main.c: director: Crashfix at exit if proxy-notify fifo hadn't been used yet. [16fbdcbb6dcb] * src/plugins/quota/quota-maildir.c: maildir++ quota: Support "NOQUOTA" as valid backend string. [b42184927518] * src/director/main.c: director: Use auth-login socket, not login/login so it works as non- root. [c17e111b0d65] * src/auth/auth-settings.c, src/auth/main.c: auth: Create auth-login socket by default where internal user can connect to. [f15b3aac5443] * src/lib/strnum.c: str_to_gid(): Allow negative GIDs on OS X. [3ee6b83c1689] * src/login-common/login-proxy-state.c: login: Don't log an error at startup if proxy-notify fifo hasn't been enabled. [0877d6920960] * src/director/director-connection.c, src/director/director-host.h, src/director/director.c: director: If connecting to director fails, try connecting to next one. [9d886ae434c3] * src/director/login-connection.c: director: If we need to send a failure reply to login process, make it a temp failure. [fc94106ca7e9] * doc/example-config/conf.d/10-director.conf, src/director/Makefile.am, src/director/director-settings.c, src/director/login-connection.c, src/director/main.c, src/director /notify-connection.c, src/director/notify-connection.h: director: Tell login proxy to notify director of open connections every director_user_expire/2 secs. [2a5336ad86cd] * src/login-common/client-common-auth.c, src/login-common/client- common.c, src/login-common/client-common.h, src/login-common/login- proxy-state.c, src/login-common/login-proxy-state.h, src/login- common/login-proxy.c, src/login-common/login-proxy.h, src/login- common/main.c: login proxy: If passdb returns proxy_refresh=, send username to proxy-notify fifo every n secs. [c872378a8de6] * src/master/service-listen.c, src/master/service.c: master: Fixes to listening in fifos. [0fc0cc9e0952] * src/director/doveadm-connection.c: director: Memory leak fix. [12316378922e] * .hgignore, configure.in, doc/example-config/conf.d/10-director.conf, src/Makefile.am, src/director/Makefile.am, src/director/auth- connection.c, src/director/auth-connection.h, src/director/director- connection.c, src/director/director-connection.h, src/director /director-host.c, src/director/director-host.h, src/director /director-request.c, src/director/director-request.h, src/director /director-settings.c, src/director/director-settings.h, src/director/director.c, src/director/director.h, src/director /doveadm-connection.c, src/director/doveadm-connection.h, src/director/login-connection.c, src/director/login-connection.h, src/director/mail-host.c, src/director/mail-host.h, src/director/main.c, src/director/user-directory.c, src/director /user-directory.h, src/doveadm/Makefile.am, src/doveadm/doveadm- director.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: Added initial implementation of a director process (for NFS users). There are still some unimplemented features and bugs. Also changing mail server list doesn't yet make sure that other directors won't assign the same user to a different server at the same time. [5f350b5ff6d9] * src/lib-auth/auth-server-connection.c: lib-auth: Crashfix if server sent broken input. [1753fe048fee] * doc/example-config/conf.d/10-mail.conf: example-config: Example namespace's hidden value default was wrong. [fb6bc399f5c3] 2010-05-18 Timo Sirainen * src/master/service-monitor.c: master: Create the login <-> master notify file into base_dir instead of /tmp. [ae84eb604f84] * src/plugins/listescape/listescape-plugin.c: listescape: Fixed listing INBOX when namespace prefix was used. [4ba05c3702be] 2010-05-17 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts-squat/fts- backend-squat.c, src/plugins/fts/fts-api-private.h, src/plugins/fts /fts-api.c, src/plugins/fts/fts-api.h, src/plugins/fts/fts- storage.c: fts: Backends can now index non-text body parts if they support it. [757cb3148407] 2010-05-14 Timo Sirainen * src/lib-master/master-service-settings.c: lib-master: If config path isn't a socket, don't try to connect() to it. This avoids some SELinux errors. [7bb35ad5e80e] * src/lib-index/mail-transaction-log-append.c: lib-index, mmap_disable=yes: Save data also to memory after appending to transaction log. This seems to fix a bug at least with CentOS 4.8 kernel (2.6.9-89.0.25.ELsmp) where after a write() a read() didn't realize that data was written, so it returned EOF too early. Of course, this change also improves performance since it avoids re- reading the same data that was just written. [664d1b2f6b46] * src/lib-index/mail-transaction-log-file.c: lib-index: Give a better error message if transction log file shrinks unexpectedly. [361157623f2a] * src/lib-storage/index/maildir/maildir-copy.c: maildir: Fixed a memory leak when copying with hardlinks. [4c7b240eccdf] * src/master/main.c: dovecot --build-options shows IO_BLOCK_SIZE [4506efe5f238] * src/lib-index/mail-cache-lookup.c, src/lib-index/mail-index-map- read.c, src/lib-index/mail-transaction-log-file.c: lib-index: Use IO_BLOCK_SIZE [2937ca64faa9] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/mail-storage- private.h, src/lib/compat.h, src/lib/file-set-size.c, src/lib /istream-internal.h, src/lib/ostream-file.c, src/lib/ostream.c: Use IO_BLOCK_SIZE macro to specify how large read/write syscalls to use. [88d7a36c7fa5] * src/login-common/main.c: login: Allow command line to override login socket path. [df2599ab2cee] 2010-05-13 Timo Sirainen * src/master/master-settings.c: master: Don't include disabled unix/fifo_listeners in duplicate checks. [706e411a134d] * src/plugins/quota/doveadm-quota.c: doveadm quota get: Show current usage even if quota is unlimited. [de9259065123] * src/plugins/quota/Makefile.am, src/plugins/quota/doveadm-quota.c: quota: Fixed doveadm plugin to compile again with new API. [49252a5fcdde] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm.c: doveadm: Don't crash when giving only first word of multi-word command. [9f1fb4978a4a] * src/master/main.c: dovecot: Fixed handling --parameters with some OSes. [5b628ee2888d] * src/config/doveconf.c: doveconf: Don't crash if -c points to nonexisting file. [da5096512d54] * src/doveadm/doveadm.c: doveadm: Minor code cleanup. [b73e0f51dad1] * src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added subscribe/unsubscribe commands. [76d4b3ac7bfa] * src/doveadm/doveadm-mail-mailbox.c: doveadm mailbox *: Added -s flag for updating/listing subscriptions. [9a86c335c3ed] * src/util/Makefile.am, src/util/imap-utf7.c: Removed imap-utf7 binary. doveadm mailbox convert replaced it. [715b74280077] * src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added convert command to convert mailbox names between mUTF-7/UTF-8 [0741e7003efa] * src/doveadm/doveadm.c: doveadm: Added support for multi-word (non-mail) commands. [f491253bb457] * src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm mailbox *: Added -7 and -8 parameters to translate between mUTF7/UTF-8 mailbox names. [c9463679f71e] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- mail-mailbox.c, src/doveadm/doveadm-mail-search.c, src/doveadm /doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Changed mail command API to be more easily extensible. [0c9db163d538] * src/imap/imap-status.c: imap: Renamed X-VSIZE to X-SIZE in STATUS, since IMAP always uses virtual sizes. [13af90173e4f] * src/doveadm/doveadm-dump-index.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-storage.h: lib-storage: Expunging messages didn't update mailbox_status.virtual_size [f7ef21ab49ba] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox- mail.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-search.c, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /test-mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: Removed struct mail.get_index_mail(). get_real_mail() is basically the same. [66bb67e074e2] * src/lib-storage/test-mail.c: lib-storage: Unit test fix. [fc664579ee4f] 2010-05-12 Timo Sirainen * src/imap/imap-fetch.c: imap: Added FETCH X-REAL-UID for getting physical mail's UID in a virtual mailbox. [ed1a37587471] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-single/sdbox- mail.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/plugins/virtual /virtual-mail.c: lib-storage: Added mail_get_real_mail() that returns physical mail in a virtual mailbox. [a6150ca30304] * src/imap/imap-status.c: STATUS: Give an error with empty status list. [00771a8ab6fb] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm.c: doveadm help: Fixed to work with multi-word commands. [bc0b336efef7] * src/auth/auth-client-connection.c, src/auth/auth-client- connection.h, src/auth/auth-master-connection.c, src/auth/auth- request-handler.c, src/auth/auth-request-handler.h, src/auth/auth- settings.c, src/auth/main.c, src/login-common/main.c: auth: Separate auth and login connections. Non-login requests are freed immediately after auth finished. The login connections are used by Dovecot internally, while the auth connections are for SMTP AUTH etc. [1a3c9bd45b11] * src/lib/restrict-access.c, src/lib/restrict-access.h: Added restrict_access_get_env() [a8a8686e6979] * src/lib-sql/driver-mysql.c: mysql: Fixed crashing on invalid queries. [6599d3d52c76] * src/lmtp/main.c: lmtp: Set user/group at startup as specified in service block. [70cfc89a3936] * src/imap/imap-status.c: imap: Added STATUS (X-VSIZE) command for getting mailbox's virtual size. [119d8eebda38] * src/doveadm/doveadm-dump-index.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/mail-storage.h: lib-storage: Added support for quickly getting mailbox's virtual size. [51d0f5d8cc65] 2010-05-11 Timo Sirainen * src/lib/module-context.h: MODULE_CONTEXT() now returns NULL if the whole module hasn't been registered yet. This fixes a crash with thread handling. [521e36311440] 2010-05-09 Pascal Volk * src/auth/Makefile.am, src/auth/password-scheme-crypt.c, src/auth /password-scheme.c, src/auth/password-scheme.h, src/doveadm/doveadm- pw.c: auth: added new password scheme names {BLF,SHA256,SHA512}-CRYPT. Their availability depends on the used libc. doveadm pw: added '-r rounds' option for the password schemes mentioned above. [2ead7574bb08] 2010-05-09 Timo Sirainen * src/doveadm/doveadm-pw.c: doveadm pw: Call deinit functions. [1485d8bafb5e] * .hgsigs: Added signature for changeset 6b15f36d40c9 [db432a472f3c] * .hgtags: Added tag 2.0.beta5 for changeset 6b15f36d40c9 [c3583ec39f67] * configure.in: Released v2.0.beta5. [6b15f36d40c9] [2.0.beta5] * TODO: TODO updated. [5779cbc79020] * doc/example-config/conf.d/10-master.conf, src/master/master- settings.c: Changed default_internal_user to dovenull. [79a3aef47ddf] * src/lib-sql/driver-sqlpool.c: lib-sql: Code cleanup to make clang's static analyzer happy. [c7c6dbf542b3] * src/doveadm/doveadm-mail-search.c: doveadm search: Minor fix. [b90d0670dfd4] 2010-05-08 Timo Sirainen * src/lib-storage/mail-storage-settings.c: lib-storage: Removed accidentally committed debug code. [1fe8f8d4e92d] 2010-05-07 Timo Sirainen * src/doveadm/doveadm-mail.c, src/imap/imap-search-args.c, src/lib- storage/mail-search-register-human.c, src/lib-storage/mail-search- register-imap.c, src/lib-storage/mail-search-register.h, src/lib- storage/mail-storage-settings.c, src/lib-storage/mail-storage.c, src/plugins/virtual/virtual-config.c: Mail search register getting API change to fix a doveadm crash bug. [0a35407e6ff4] 2010-05-05 Timo Sirainen * src/lib-sql/Makefile.am: lib-sql: Fixed compiling --with-sql=plugin. Patch by Michal Hlavinka. [5d76f5b13883] * src/lib-sql/driver-sqlpool.c: lib-sql: Compiler warning fix. [4c71be924a00] * src/config/config-parser.c, src/config/config-parser.h, src/config/doveconf.c, src/config/main.c: config: Unload modules at exit. [3fc759d5e736] 2010-05-04 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-list.c, src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Renamed "list" to "mailbox list" and added mailbox create/rename/delete. [3afbdf732a75] * src/master/service.c: master: If inet listener uses DNS name, which returns multiple IPs, listen in all of them. [1ea46423cfd0] * src/lib-storage/mail-user.c, src/plugins/quota/quota.c: Increased initial memory pool sizes. [a4614f53d298] * doc/example-config/dovecot-sql.conf.ext, src/lib-sql/Makefile.am, src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlite.c, src/lib-sql/driver-sqlpool.c, src/lib-sql/sql-api- private.h, src/lib-sql/sql-api.c, src/lib-sql/sql-api.h: lib-sql: Use generic sql connection pooling code for mysql/pgsql. It's possible to give multiple host settings to do load balancing / HA. If one host is down, another one is tried. All queries are automatically retried in another host if they fail in first one. Since PostgreSQL support async queries, Dovecot can create multiple connections to the database as needed, so it can do lookups in parallel. The number of connections can be changed with maxconns=n in connect_query, the default is 5. [1c8cc349ef55] * src/lib-dict/dict-sql.c: lib-dict: Minor code cleanup. [669e8266927e] * src/lib-dict/dict-client.c: dict proxy client: Don't crash in commit if there is no connection to server. [7102daca9089] * src/auth/passdb-bsdauth.c: bsdauth: Crashfix [fa77ca53ad6c] * src/login-common/client-common.c: Compile fix [c5e5f18e7685] * src/auth/auth-request-handler.c, src/lib-auth/Makefile.am, src/lib- auth/auth-client-interface.h, src/lib-auth/auth-master.c, src/lib- master/master-interface.h, src/lib-master/master-login-auth.c, src /login-common/client-common.h: auth/login related timeouts are now in one place and they make more sense. Most importantly now auth client doesn't abort lookup before server does. [e08dd68309a9] * src/auth/auth-request.c, src/auth/auth-request.h: auth: Minor code fix/cleanup. [90410a8f3786] * src/auth/auth-request-handler.c: auth: Don't crash when auth requests timeout. [83b4020d1edf] 2010-05-03 Timo Sirainen * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlite.c: lib-sql: Make driver structs const. [da497a62cf44] * src/lib-dict/dict-sql.c, src/lib-sql/Makefile.am, src/lib-sql/sql- db-cache.c, src/lib-sql/sql-db-cache.h, src/lib-sql/sql-pool.c, src /lib-sql/sql-pool.h: lib-sql: Renamed "sql pool" to "sql db cache", since that's what it is. [e0d02ae9d50f] * src/auth/auth-common.h, src/auth/auth-master-connection.c, src/auth /auth-request-handler.c, src/auth/auth-request.c, src/auth/auth- request.h, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/main.c, src/auth/userdb-static.c: auth: If verbose_proctitle=yes, show auth request counts in ps. - wait: waiting for auth client to do something (either continue multistep auth mechanism or issue master request for a finished auth) - passdb: waiting for passdb lookup to finish - userdb: waiting for userdb lookup to finish [6243376eff60] * src/auth/auth-request-handler.c: auth: Give a better error message to client when auth request timeouts. [d8dd3149a98b] * src/auth/auth-request-handler.c: auth: Log a message when auth request is removed due to timeout. [2a132661c029] * src/lib-master/master-login-auth.c: lib-master: Don't crash after timeouting an auth-master request. [1fd45deee948] 2010-04-30 Timo Sirainen * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- expunge.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm- mail-list.c, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm- mail.c, src/doveadm/doveadm-mail.h, src/plugins/quota/doveadm- quota.c: doveadm: Changed mail command handler API. This should help add some new future features. [f05909834219] * src/doveadm/doveadm-auth.c: doveadm user: s/auth/userdb/ socket path in usage. [f195e11fd919] * src/doveadm/doveadm-mail.c, src/plugins/quota/doveadm-quota.c: doveadm: Fixed empty usage_args checks. [ff13bd98ed0d] * src/doveadm/doveadm-mail.c: doveadm: If command is known not to take any parameters, give error if any are given. [d651255481dc] * src/plugins/quota/doveadm-quota.c: doveadm: quota get/recalc are now two-word commands, so parameters come after them, not in the middle. [40da334e2513] * src/doveadm/doveadm-mail.c: doveadm: Added support for multi-word commands. [65e21dc80414] * src/imap/imap-fetch-body.c: imap: If FETCH notices cached message size is wrong, mark cache corrupted (second such check). [be74fa9bfcc9] * src/doveadm/doveadm-mail-search.c: doveadm search: Don't print "mailbox-guid" and "uid" texts in output. [529fee1603e5] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-list- iter.c: doveadm fetch/search/etc: Handle "NOT" correctly in search query. [b9efc1ca4c37] * src/lib-storage/index/index-search.c, src/lib-storage/mail-search.c, src/lib-storage/mail-search.h: lib-storage: Fixes/optimizations to SEARCH_MAILBOX*. [dedf835014a2] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Don't print field name if fetching only a single field. [6327433bccb9] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: Don't print mail separator if fetching only a specific mail. [47d49b7edb4b] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-search.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added search command. [0aa904c74f76] * src/lib-storage/index/index-search.c: lib-storage optimization: SEARCH_MAILBOX* should be checked before cache lookups. [957e907834e7] * src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail- fetch.c: doveadm fetch: Added support for mailbox-guid search key/fetch field. [5d0027f17bd8] * src/lib-storage/index/index-search.c, src/lib-storage/mail-search- register-human.c, src/lib-storage/mail-search.c, src/lib-storage /mail-search.h: lib-storage: Added support for searching with mailbox GUID. [389a251c9cfe] * src/auth/db-checkpassword.c, src/auth/db-checkpassword.h, src/auth /passdb-checkpassword.c, src/auth/userdb-checkpassword.c: auth: passdb/userdb checkpassword args now supports %variable expansion [5f3f0d5f9dd8] * doc/example-config/conf.d/10-auth.conf: example-config: auth-checkpassword include wasn't listed in 10-auth.conf [8a8d954b90ba] 2010-04-29 Timo Sirainen * src/login-common/client-common-auth.c: login proxy: "ssl" and "starttls" handlers make more sense now. - "starttls" no longer requires "ssl", and "starttls=anycert" is now possible. - "ssl=any-cert" updates the default port. - "ssl=anything" now also enables ssl instead of being ignored. [d693c4a97d41] * src/lib-storage/mail-search-parser-imap.c: lib-storage: Fixed () sublists in IMAP SEARCH parser. [888ac9037642] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: If we detect MH as the cause of unexpunging, log it in the error message. [80f77153d49c] * src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c: zlib: Fixed zlib/bzlib ostream flushing to report correctly when it's finished. This caused imap-zlib plugin to eat all CPU when stream compression was used. Patch by Apple. [c8f4cb187343] * src/lib-storage/mailbox-list.c: lib-storage: Create all files/dirs with u+rwX mode, even if source file/dir doesn't have it. This is mostly important when creating index files for read-only mailboxes. [ec84aad32983] * src/master/main.c: dovecot: Show the hg version also in "Dovecot starting up" log message. [22f69f7d16ab] * src/lib/buffer.c: DEBUG: Try to catch stale pointer dereferences to buffers after they've grown. In normal use some such bugs may not be noticed easily, because the buffer's memory allocation size is large enough that when adding another element the pointer doesn't change. [7037222941dc] * src/lib-index/test-mail-index-transaction-update.c: lib-index: Minor unit test fix. [1b52e859933a] * src/lib-index/Makefile.am, src/lib-index/mail-index-sync-ext.c, src /lib-index/mail-index-sync-private.h, src/lib-index/test-mail-index- sync-ext.c: lib-index: mail_index_sync_ext_atomic_inc() does now better error checking. [204bb387aeed] * src/lib-index/mail-index-sync-ext.c: lib-index: Another fix attempt for handling atomic inc with INT_MAX. [78742ad02c88] * src/lib-index/mail-index-sync-ext.c: lib-index: Minor fix to handling atomic inc with INT_MIN value. [a2d7c699abbb] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox-multi/mdbox- map-private.h, src/lib-storage/index/dbox-multi/mdbox-map.c, src /lib-storage/index/dbox-multi/mdbox-map.h, src/lib-storage/index /dbox-multi/mdbox-purge.c, src/lib-storage/index/dbox-multi/mdbox- save.c, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-multi/mdbox- sync.h: mdbox: Renamed dbox_map* to mdbox_map*. [ac62dbb6a355] * src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Changed error messages to contain "mdbox" prefix instead of "dbox". [6e1bbf87749f] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-storage.h, src/lib-storage/index/dbox-multi/mdbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-map.h, src/lib-storage/index/dbox- multi/mdbox-purge.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-single/sdbox- storage.c: mdbox: Avoid rebuilding storage if another process already did it. [de0ed7bea201] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Storage rebuild should ignore ACLs for mailboxes. [85d6fb746783] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Storage rebuild now silently ignores m.*.lock files if they exist. [1f5570ec0682] * src/lib/failures.c: Syslog messages now contain Warning:, Error: and Debug: prefixes also. So everything except Info: now has a prefix. [7493f94d544c] * src/imap/main.c, src/pop3/main.c: Compiler warning fix. [6d9265a3a620] * src/doveadm/doveadm.c: doveadm: Updated usage text. [541344dd60a7] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added expunge command. [8e3b8efa195e] 2010-04-28 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-iter.c, src/doveadm/doveadm-mail-iter.h: doveadm: Removed more code duplication from altmove/fetch commands. [c7cb58f1d2c6] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail- fetch.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Reduced code duplication. [f10ad708d748] * src/doveadm/doveadm-mail-fetch.c: doveadm fetch: If invalid fetch field is given, print list of available fields. [1ec4eb879f0e] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail.c: doveadm fetch: Added "fields to fetch" parameter. [c8981561c5f2] * src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail.c: doveadm fetch: Added support for fetching mails from multiple mailboxes. [dab4fb9f8140] * src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail-list- iter.c: doveadm altmove: Fixed assert-crashing [f986a5b1f500] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-list.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added list command for listing users' mailboxes. [f99720c01ba2] * src/doveadm/doveadm-mail-altmove.c: doveadm altmove: Use the new mailbox list iteration API. [63dbfb4c2f71] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-list-iter.c, src/doveadm/doveadm-mail-list-iter.h: doveadm: Added API for iterating through mailboxes more easily. [3d48ead930ba] * src/dsync/dsync-worker-local.c, src/lib-storage/mail-namespace.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/virtual/virtual-config.c: lib-storage: mailbox_list_iter_init_namespaces() has more filtering capabilities now. - namespace types - MAILBOX_LIST_ITER_STAR_WITHIN_NS flag so that "*" doesn't escape beyond the namespace it started in. [af59d2d02f33] * src/lib-storage/mail-search.c, src/lib-storage/mail-search.h: lib-storage: Added mail_search_args_match_mailbox() [71e40ea473cf] * src/lib-storage/mail-search-build.c, src/lib-storage/mail-search- build.h: lib-storage: Added mail_search_build_add() [d5ca3aebc4ee] * src/lib-storage/index/index-search.c, src/lib-storage/mail-search- register-human.c, src/lib-storage/mail-search-register-imap.c, src /lib-storage/mail-search.c, src/lib-storage/mail-search.h: lib-storage: Added MAILBOX_GLOB search arg. Query builders now use it instead of MAILBOX. [3c9770bae39e] * src/lib-storage/mail-search.c: lib-storage: mail_search_args_equal() wasn't comparing string arguments correctly. [6b38d832839f] * src/lib-imap/imap-match.c, src/lib-imap/imap-match.h, src/lib-imap /test-imap-match.c: lib-imap: Added imap_match_globs_equal(). [9d411eeb7998] * src/lib-imap/imap-match.c, src/lib-imap/imap-match.h, src/lib-imap /test-imap-match.c: lib-imap: Added imap_match_dup(). [bb8ccf1ae2ac] * src/lib-test/test-common.c: lib-test: Call lib_deinit(). [f0d13439baea] 2010-04-26 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-storage.h, src/lib-storage/index/dbox-multi/mdbox- map.c: mdbox: Automatically delete old temp.* files from storage/ directory. [abf262317b2c] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h: mdbox: Recent change enabled dotlocking always, instead of using flock. [4f6fa828d0c9] * src/lmtp/commands.c: lmtp: Removed duplicate checking, at least for now. If duplicate checking is done, DATA should also send proper reply for them. [b13146b6a91b] 2010-04-23 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: "Message has been copied too many times" error contains now refcounts. [6a3eaad2bae6] * configure.in: Link lmtp/lda with dovecot-lda shared library, not static library. [bd649ac7a741] * src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-lda/mail- deliver.h: lib-lda: Added mail_deliver_get_log_var_expand_table(). [82d5351b5d39] * Makefile.am, configure.in, dovecot-config.in.in, dovecot.m4, src/lda/Makefile.am, src/lib-lda/Makefile.am, src/lmtp/Makefile.am: lib-lda is now an installed shared library. [1319fa7a7266] * src/lib-lda/mail-deliver.c: deliver_log_format: Increased max. message-id length to 200 chars. [62256701a326] 2010-04-21 Timo Sirainen * src/lda/Makefile.am, src/lmtp/Makefile.am: lda, lmtp: Fixed using virtual plugin when not using shared libs. [8818db00d347] * doc/example-config/conf.d/10-mail.conf: example-config: mdbox_altmove setting no longer exists, removed it. [b3cfa3dfd5ba] * doc/example-config/conf.d/10-logging.conf, src/lib-lda/mail- deliver.c: deliver_log_format: Added support for size and vsize [6a27203d4439] 2010-04-20 Timo Sirainen * src/config/doveconf.c: doveconf now prints only the one setting's value. [b6b81af98381] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h: mdbox: If flock() isn't available, use dotlock files. This allows again using client_limit > 1 without corrupting dbox files. [0eff8ef104e6] * src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib- storage/index/dbox-multi/mdbox-storage.c: mdbox: Purge crashed if it purged all messages from a file. [944f4335845f] * src/lib-storage/mail-search-register-human.c: lib-storage: Fixed parsing human search parameter dates. [94ee28a11c47] * src/config/old-set-parser.c, src/doveadm/Makefile.am, src/doveadm /doveadm-mail-altmove.c, src/doveadm/doveadm-mail.c, src/doveadm /doveadm-mail.h, src/lib-storage/index/dbox-multi/Makefile.am, src /lib-storage/index/dbox-multi/mdbox-file-purge.c, src/lib- storage/index/dbox-multi/mdbox-file.h, src/lib-storage/index/dbox- multi/mdbox-mail.c, src/lib-storage/index/dbox-multi/mdbox-map- private.h, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-map.h, src/lib-storage/index/dbox- multi/mdbox-purge.c, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox-settings.c, src/lib- storage/index/dbox-multi/mdbox-settings.h, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- storage.h, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib- storage/index/dbox-multi/mdbox-sync.h: mdbox: Moving messages to alt storage is done done with doveadm altmove command. The command can take an arbitrary search query listing what messages should exist in alt storage. If the message has been copied to multiple mailboxes, the search query must match all the instances of the message. Since the search query can now be specified in command line, mdbox_altmove setting was also removed. [a92389387cb7] * src/lib-storage/index/dbox-common/dbox-storage.h, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-sync.c: dbox: Moved SDBOX_INDEX_FLAG_ALT macro to dbox-common. [129bc5eab66a] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-fetch.c, src/imap /imap-search-args.c, src/lib-storage/Makefile.am, src/lib-storage /mail-search-build.c, src/lib-storage/mail-search-build.h, src/lib- storage/mail-search-parser-cmdline.c, src/lib-storage/mail-search- parser-imap.c, src/lib-storage/mail-search-parser-private.h, src /lib-storage/mail-search-parser.c, src/lib-storage/mail-search- parser.h, src/lib-storage/mail-search-register-human.c, src/lib- storage/mail-search-register-imap.c, src/lib-storage/mail-search- register.h, src/plugins/virtual/virtual-config.c: Added support for mail search input parsers. doveadm now uses command line parser. [4a98f01eaaac] 2010-04-19 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: More comment updates to syncing. [422ab02950b7] * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Minor optimization for syncing expunges. [cf88ac9665f7] * src/lib/seq-range-array.c, src/lib/seq-range-array.h: seq_range_array_add() returns now TRUE if seq was already in array. [4ee1d2312d83] * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Added a comment about how expunging works. [8e6cb40f577f] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib- storage/index/dbox-multi/mdbox-sync.h: mdbox: Optimization: Don't update map UIDs' refcounts via array when it's not necessary. [c2c2c1dd252e] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Comment update [0eb423848dc1] 2010-04-16 Timo Sirainen * src/config/old-set-parser.c: config: Added support for parsing obsolete setting ssl_disable. [a6b050cc4a9a] * src/lib-storage/list/mailbox-list-delete.c: lib-storage: Mailbox deletion via trash directory works now better with NFS. [c2f00a85a177] * src/lib-storage/mail-namespace.c: lib-storage: Fixed autocreating namespaces for shared users in some situations. [960c6936ba6a] * src/lib-storage/index/shared/shared-storage.c: lib-storage: Shared namespace's prefix_len wasn't updated after prefix was truncated. [8d45d4884019] * src/lib-dict/dict-client.c: dict proxy client: Timeout lookups after 30 s, log warning if lookup takes >5 s. [ba3c809c18e5] * src/plugins/imap-quota/imap-quota-plugin.c: imap-quota: Iterate quota roots only once when replying to GETQUOTAROOT. This halves the required dict lookup count. [4b14271e04db] * src/lib-dict/dict-client.c: dict proxy: Disconnect from dict server after 1 second of idling. Reconnecting is pretty cheap and it's not good to have many idling dict server processes. [bf08bb1807cf] * src/dict/dict-settings.c: dict: Changed default client_limit to 1. [69894aaab23c] * src/dict/dict-connection.c: dict: Client count wasn't updated when client disconnected, causing problems later. [91ef3309968a] * src/imap/cmd-idle.c: idle: Do cork/uncork when sending "OK Still here" notification. [ffc28ea81538] * src/lib-dict/dict-file.c: dict file: Get file's initial permissions based on parent directory. [b3947e64546a] * src/auth/password-scheme.c: auth: Removed special case check for MD5-CRYPT from wrong password scheme checking. [af46998fdccf] 2010-04-14 Timo Sirainen * src/imap-login/client.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/login-common.h, src /login-common/login-settings.c, src/login-common/main.c, src/login- common/sasl-server.c, src/pop3-login/client.c: login: Keep binary-specific defaults in a struct. [57e53ecebbd3] * src/imap-login/client.c, src/login-common/client-common-auth.c, src /login-common/login-common.h, src/pop3-login/client.c: login: If proxy returns ssl=yes and no port, switch port to imaps/pop3s. [5f3edac6b3bf] * dovecot.m4: dovecot.m4: Added serial number. [9188fc60d615] * src/lib-storage/index/raw/raw-storage.c: raw: Fixed opening raw mailbox with filename. [eacb5fd16599] * doc/example-config/conf.d/20-pop3.conf, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c: pop3: Added %u=old/new UIDL hash to pop3_logout_format. It expands to "/ -> /" or if they're the same, simply "/". The idea is that if previous session's doesn't match next one's and prev.new_msg_count = next.old_msg_count, it could indicate that the UIDLs changed for some reason. But if they do match and client still redownloaded messages, it's most likely a client side problem. [e019febd7eb3] * src/auth/auth-request.c, src/auth/auth-stream.c, src/auth/auth- worker-client.c, src/auth/userdb-blocking.c: auth: Fixed userdb tempfail to work with blocking userdbs. [093591e1110b] * src/auth/auth-worker-client.c: auth: Removed userdb checking code from passdb code paths. [4f06636cd03f] * src/master/master-settings.c: master: Require protocols=none to not have any protocols. [ca663b6f63a4] * doc/example-config/conf.d/10-master.conf: example-config: Added auth-userdb socket with comments. [200a6532483b] 2010-04-13 Timo Sirainen * src/doveadm/Makefile.am, src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added initial code for fetch command. [51eea5bb3336] * src/imap/imap-search-args.c, src/lib-storage/Makefile.am, src/lib- storage/mail-search-build.c, src/lib-storage/mail-search-build.h, src/lib-storage/mail-search-register-human.c, src/lib-storage/mail- search-register-imap.c, src/lib-storage/mail-search-register.c, src /lib-storage/mail-search-register.h, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/plugins/virtual /virtual-config.c: lib-storage: Added search query building from human-friendly input. [3649ad8c9f9a] * src/lib-storage/mail-search-register.c: lib-storage: Minor optimization to search build initialization code. [8d1d1eb2c2a0] * src/lib-storage/Makefile.am, src/lib-storage/mail-search-build.c, src/lib-storage/mail-search-build.h, src/lib-storage/mail-search- register-imap.c, src/lib-storage/mail-search-register.c, src/lib- storage/mail-search-register.h, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c: lib-storage: Rewrote search query building code to be more modular. [c6db5769942f] * doc/example-config/dovecot.conf: example-config: Added a note about !include file ordering. [3e427a0c1790] * doc/example-config/conf.d/10-mail.conf: example-config: Removed some old comments that aren't really useful anymore. [1b634a3932d0] * src/lib-storage/index/index-search.c, src/lib-storage/mail-search- build.c, src/lib-storage/mail-search.c, src/lib-storage/mail- search.h: lib-storage: Added support for searching save date. [4ade4d8c66c5] * Makefile.am: make distcheck now runs code via clang static analyzer if it exists. [762a4216352f] * src/auth/mech-gssapi.c: Static analyzer warning fix. [caf8c5d39ab2] * run-test.sh: run-test: Fixed to work correctly with older Valgrind versions. [892d28020605] * Makefile.am: Makefile: Added run-test.sh to tarball. [b11f69e5078e] * src/lib-storage/mail-storage-service.c: mail storage service: Fixed chroot handling. [9d4a9abf3ec3] * src/lib-storage/mail-storage-settings.c: lib-storage: Check for mail_plugin_dir existence only in config binary. Other binaries may already have chrooted when the check is done. [7d541fcfcb5e] * src/lib/module-dir.c: module_dir_load_missing(): If all modules are already loaded, don't scan plugin directory. [88959ce9c8e4] * src/plugins/quota/quota-dict.c: quota: If dict quota update fails, log an error. [b24789f95476] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-multi/Makefile.am, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-single/Makefile.am, src/lib- storage/index/dbox-single/sdbox-storage.c: dbox: Use flock() for file locking if possible. If not, require client_limit=1. Maybe some day dbox code can be redesigned in a way that allows it to work with fcntl() locking too. [3d585e69aa95] 2010-04-12 Timo Sirainen * src/lmtp/commands.c: lmtp: Crashfix to multiple RCPT TOs when the first mail couldn't be used as a copy source. [6b7b2987c41f] * src/lib-lda/mail-deliver.c: lib-lda: Added assert. [a73f3da6d7a8] * doc/example-config/conf.d/Makefile.am: Makefile: Updated renamed *.conf filenames. [06bd06c2f523] 2010-04-10 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: If storage directory doesn't exist while trying to purge, ignore it. [5dac1012e47e] * src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox- map.h, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src /lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: Purging shouldn't give "unknown error" if mdbox storage doesn't exist. [2200450752bd] * doc/example-config/conf.d/10-auth.conf, doc/example- config/conf.d/10-logging.conf, doc/example- config/conf.d/10-mail.conf, doc/example- config/conf.d/10-master.conf, doc/example-config/conf.d/10-ssl.conf, doc/example-config/conf.d/15-lda.conf, doc/example- config/conf.d/20-imap.conf, doc/example-config/conf.d/20-lmtp.conf, doc/example-config/conf.d/20-pop3.conf, doc/example- config/conf.d/90-plugin.conf, doc/example-config/conf.d/auth.conf, doc/example-config/conf.d/imap.conf, doc/example- config/conf.d/lda.conf, doc/example-config/conf.d/lmtp.conf, doc /example-config/conf.d/logging.conf, doc/example- config/conf.d/mail.conf, doc/example-config/conf.d/master.conf, doc /example-config/conf.d/plugin.conf, doc/example- config/conf.d/pop3.conf, doc/example-config/conf.d/ssl.conf: example-config: Added nn- prefix to *.conf files so the sort ordering makes more sense. This is especially important to get mail_plugins = $mail_plugins example working in protocol sections. [4dd372d1e80a] * src/config/config-parser.c: config: !include * added files in reverse sort order. [e25b0ecfc758] * src/plugins/imap-zlib/imap-zlib-plugin.c: imap-zlib: Fixed crash if imap_zlib_compress_level setting wasn't set. [454ea8812d54] * src/lmtp/commands.c: lmtp: Fixed crash when multiple mails were saved and second one failed. [cc00fdf1943b] * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: If purging found corrupted files, it didn't auto-rebuild storage. [8f67eaebfc17] 2010-04-09 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Fixed assert-crashing in storage rebuild. [f15e96e46715] 2010-04-08 Timo Sirainen * configure.in: configure: Fix to older autoconfs [829cc91ed831] * src/auth/auth-request-handler.c: auth: Fixed SASL authentication broken by recent changes. [23e87e78c66e] * src/lib-master/master-service.c: lib-master: Fixed version mismatch error message. [a0d0ed6a2b63] * Makefile.am, configure.in, src/auth/Makefile.am, src/imap/Makefile.am, src/lib-auth/Makefile.am, src/lib- charset/Makefile.am, src/lib-dict/Makefile.am, src/lib- dns/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-lda/Makefile.am, src/lib- mail/Makefile.am, src/lib-master/Makefile.am, src/lib- settings/Makefile.am, src/lib-sql/Makefile.am, src/lib- storage/Makefile.am, src/lib-storage/index/Makefile.am, src/lib- storage/index/cydir/Makefile.am, src/lib-storage/index/dbox- common/Makefile.am, src/lib-storage/index/dbox-multi/Makefile.am, src/lib-storage/index/dbox-single/Makefile.am, src/lib- storage/index/maildir/Makefile.am, src/lib- storage/index/mbox/Makefile.am, src/lib- storage/index/raw/Makefile.am, src/lib- storage/index/shared/Makefile.am, src/lib-storage/list/Makefile.am, src/lib-test/Makefile.am, src/lib/Makefile.am, src/login- common/Makefile.am, src/plugins/notify/Makefile.am, src/pop3/Makefile.am: configure: Removed --enable-header-install. It's now always enabled. There didn't seem to be much point in keeping it optional anymore. They're now more useful than before because shared libraries are also installed. [eee1e2a1c25b] * src/plugins/virtual/virtual-storage.c: virtual: Added assert. [e47de5f3caae] * src/lib-imap/imap-arg.h: imap-arg: Added IMAP_ARG_IS_NSTRING(). [5ba59cc8b235] * dovecot.m4: dovecot.m4: Export DOVECOT_CFLAGS/LIBS/SSL_LIBS [0fa195674d1a] * src/plugins/virtual/virtual-config.c: virtual: Fixed showing error messages for mailbox open. [eca1b44a5d71] * src/plugins/virtual/virtual-storage.c: virtual: If backend mailbox isn't found, don't use NOTFOUND error code. [a1b18a7c829f] * src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- storage.c: virtual: Don't crash when trying to reopen a closed mailbox. [09ecf24a798b] 2010-04-07 Timo Sirainen * src/lib-master/master-login.c: lib-master: Fixed errors with post-login scripts. [af7beceda361] * src/lib-storage/index/index-transaction.c: lib-storage: Removed wrong asserts (causing crashes in quota plugin). [3823670df351] * src/lib-master/master-login.c: lib-master: Log an error if login client disconnects too early. [5074e30d72d4] * src/lib-master/master-login.c: lib-master: Client connection counting fix. [c0fe14f76760] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/lib-storage/mail-storage.h: lib-storage: Panic if deiniting storage before closing its mailboxes. [085253f549f8] * src/plugins/quota/doveadm-quota.c: Compiler warning fix. [5d888efd6d4e] * src/lib-master/master-login.c: lib-master: Fixed checking if login connection was already closed. [c2a1163e584f] * src/lib-settings/settings-parser.c: lib-settings: Fixed parsing octal numbers. [063a584858bf] * src/lib-master/master-login.c, src/lib-master/master-service- private.h, src/lib-master/master-service.c: lib-master: Changed post-login process's client counting to make sense again. This should also fix problems where a new process isn't created because an existing one is waiting for auth request reply. [64bead0067b0] * src/plugins/virtual/virtual-storage.c: Increased initial memory pool size. [7649c491b744] * src/lib-master/master-auth.c: lib-master: Aborting master auth request caused a crash. [2d8100dca18e] * src/lib-master/master-login.c: lib-master: Login client connection wasn't closed on some error conditions. [b93ae980b66b] * src/plugins/imap-zlib/imap-zlib-plugin.c: Compiler warning fix. [9efddc9abfce] * src/lib-master/master-login-auth.c, src/lib-master/master-login- auth.h: lib-master: Added timeout for auth master lookups. [0979e9e1e124] * src/lib-master/master-login.c: lib-master: Crashfix for handling auth master lookup failures. [6aaa6fcba131] * src/dsync/dsync.c: dsync: Added -D (debug) parameter. [f344426dab0a] * src/dsync/dsync.c: dsync: Changed -A parameter to -C. -A might in future mean "all users", similar to doveadm. [d9ec5fdb2d63] * src/doveadm/doveadm-kick.c, src/doveadm/doveadm-who.c: doveadm: Updated usage strings. [a3b211df3ae3] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Added more consts to code. [1ca491b04710] * src/doveadm/doveadm-mail.c: doveadm: Mail commands now take username as -u parameter and all with -A. If -u or -a isn't given, use the current user's settings (without userdb lookup). [e0fe42c6424b] * src/lib/strnum.c: str_to_*(): Fixed them to actually work. [6973977bf626] * src/dsync/dsync-worker-local.c: dsync: Don't crash if shared namespace exists. [ad6b245cf3b5] * src/plugins/expire/expire-tool.c: expire-tool: Improved -t output. [77e9d36b3f82] * src/lib/strfuncs.c, src/lib/strfuncs.h: Removed is_numeric(). It's now called str_is_numeric(). [01ab9b93f8bb] * src/anvil/anvil-connection.c, src/auth/auth-client-connection.c, src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth/auth-worker-client.c, src/auth /auth-worker-server.c, src/auth/mech-digest-md5.c, src/auth/passdb- pam.c, src/auth/userdb.c, src/config/config-connection.c, src/config /config-parser.c, src/dict/dict-commands.c, src/imap/cmd-fetch.c, src/imap/cmd-select.c, src/imap/cmd-store.c, src/lib-auth/auth- master.c, src/lib-auth/auth-server-connection.c, src/lib-dict/dict- client.c, src/lib-dict/dict-db.c, src/lib-master/master-login- auth.c, src/lib-master/master-service.c, src/lib-settings/settings- parser.c, src/lib-sql/sql-api.c, src/lib-storage/index/dbox-multi /mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/mail-search- build.c, src/lib-storage/mail-storage-service.c, src/lib/file- dotlock.c, src/lib/network.c, src/lib/restrict-access.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/expire/expire- env.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/imap- quota/imap-quota-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/zlib/zlib-plugin.c: Started using str_to_*() functions instead of libc's ones. [260e190306b0] * src/lib/Makefile.am, src/lib/lib.h, src/lib/strnum.c, src/lib/strnum.h: Added str_to_*() for converting strings to numbers, plus a few helper functions. The str_to_*() return failure also if integer is too large or too small to fit into destination. [b262aad23e59] * src/auth/auth-worker-client.c: auth: Code cleanup. [88a7e034ebc1] 2010-04-06 Timo Sirainen * src/pop3/pop3-client.c: pop3: Don't break client connection count if client init fails. [1735958db2f1] * src/master/service-listen.c: master: Added asserts. [4fc3aed0ef03] * src/lib-storage/mailbox-list.c: mailbox_list_mailbox(): Avoid crashing with shared namespace prefix. [0e7125f1e27e] * src/lib-storage/mailbox-list.c: mailbox_list_mailbox(): Don't show namespace prefix as selectable if it points to INBOX. [944591ed8ceb] 2010-04-05 Timo Sirainen * src/auth/db-passwd-file.c, src/auth/db-passwd-file.h, src/auth /passdb-passwd-file.c, src/auth/userdb-passwd-file.c: auth: Fixed using same passwd-file with different username_format settings. [2fbd31f90277] * src/lib-master/master-service-settings-cache.c, src/lib-master /master-service-settings-cache.h, src/lib-master/master-service- settings.h, src/lib-settings/settings-parser.c, src/lib-settings /settings-parser.h, src/lib-storage/mail-storage-service.c, src /login-common/login-settings.c: Fixed memory leak when parsing settings. [46d4f3264417] * src/plugins/fts-squat/squat-uidlist.c: Removed unnecessary variable. [8627be1f6de9] * src/config/config-request.c, src/lib-index/mail-cache-compress.c, src/lib-index/mailbox-list-index-sync.c, src/lib-index/test-mail- transaction-log-view.c, src/lib-mail/test-message-id.c, src/lib- storage/mail-storage-service.c, src/lib/test-istream-crlf.c: Small code changes to make static analyzer happier. [fa08ed2b7560] * src/util/gdbhelper.c: gdbhelper: Check wait() status result a bit more correctly. [3b8542d58181] * src/auth/mech-winbind.c, src/config/config-filter.c, src/doveadm/doveadm.h, src/lib-index/mail-index-sync-ext.c, src/lib- index/mail-transaction-log-view.c, src/lib-mail/message-decoder.c, src/lib-storage/index/index-sort-string.c, src/lib-storage/mail- search.c, src/lib/env-util.c, src/lib/test-istream-concat.c, src/lib /test-istream-seekable.c, src/plugins/expire/expire-plugin.c: Small code changes to make static analyzer happier. [c32f55615055] * src/lib/var-expand.c: var_has_key(): Small code cleanup. [462376c65e73] * src/lib-index/mail-index-map.c: lib-index: Small code cleanup. [7d76f4a9c5c8] * src/plugins/virtual/virtual-sync.c: virtual: Small code cleanup. [d61ffd81124c] * src/lib-storage/mailbox-list.c: lib-storage: Avoid crash with pointless configs. [bd2ac7e2fc40] * src/plugins/acl/acl-backend-vfile.c: acl: Updating empty ACL to empty triggered unnecessary disk write. [960a01833e4c] * src/lib-index/mail-transaction-log-view.c: lib-index: Small code cleanup. [a65dbdedb202] * src/lmtp/commands.c: lmtp: Crashfix for handling invalid MAIL/RCPT commands. [c435103ee0ff] * src/lib-index/mail-cache-transaction.c: lib-index: Minor code cleanup. [767eb5691fe2] * src/auth/mech-otp.c, src/auth/passdb-sql.c, src/lib- storage/index/mbox/mbox-storage.c: Removed dead code. [30815e260f47] * src/plugins/fts-solr/solr-connection.c: solr: Error handling fix when Solr didn't return 200. [1786d44bf90f] * src/imap-login/client-authenticate.c, src/imap-login/client.c, src/imap/cmd-append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd- enable.c, src/imap/cmd-expunge.c, src/imap/cmd-fetch.c, src/imap /cmd-list.c, src/imap/cmd-search.c, src/imap/cmd-select.c, src/imap /cmd-sort.c, src/imap/cmd-status.c, src/imap/cmd-store.c, src/imap /cmd-thread.c, src/imap/imap-client.c, src/imap/imap-commands- util.c, src/imap/imap-fetch-body.c, src/imap/imap-search-args.c, src/imap/imap-search.c, src/imap/imap-status.c, src/lib- imap/Makefile.am, src/lib-imap/imap-arg.c, src/lib-imap/imap-arg.h, src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-envelope.c, src /lib-imap/imap-id.c, src/lib-imap/imap-parser.c, src/lib-imap/imap- parser.h, src/lib-imap/imap-util.c, src/lib-storage/mail-search- build.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins /imap-zlib/imap-zlib-plugin.c: lib-imap: Changed imap_arg accessing APIs. The new one is easier for both coders and static analyzers. [dbc864c0cff7] * src/plugins/virtual/virtual-storage.c: virtual: Improved user-visible error messages. [314f230b3a00] * src/lda/main.c, src/lmtp/client.c: lda, lmtp: Use layout=none for the raw mail storage. This removes the need for hardcoded /tmp dir and avoids stat(/tmp/Dovecot Delivery Mail). [9c94f073d014] * src/lib-storage/index/index-storage.c, src/lib- storage/list/Makefile.am, src/lib-storage/list/mailbox-list-none.c, src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/lib-storage/register/Makefile.am: lib-storage: Added "none" mailbox list driver. Fixed the most obvious crashes when using the driver. [6b1f08814e59] * src/lib-index/mail-index-alloc-cache.c: lib-index: mail_index_alloc_cache_get() now allows mailbox_path=NULL. Also did a small code cleanup with this change. [6a65c0e043e2] * src/lib-auth/auth-master.c: lib-auth: Make sure auth_master_*_lookup() returns non-NULL fields. [5e3e00d11ca5] * src/lib-storage/mail-storage-service.c: mail storage service: -o parameter now overrides userdb settings too. [f9e6078ca95c] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Added master_service_set_has_config_override(). [cdef53978a77] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: Added settings_parse_unalias(). [49c0232047f0] * src/lib-storage/mail-storage.c: lib-storage: Don't crash if root mail directory isn't given. [373e2b3a050a] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-maildir-iter.c: lib-storage: MAILBOX_LIST_ITER_NO_AUTO_INBOX flag didn't work correctly. [87b7fc7f1e7d] * src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/list/mailbox-list-maildir-iter.c, src/lib-storage/mailbox- list.c: mailbox_list_mailbox(): Fixed INBOX and root dir lookups. [1930cc14cb11] * src/dsync/dsync.c: dsync: Set module/service for config lookup. [93c82d873408] * src/lib-storage/index/mbox/mbox-storage.c: mbox: Check at storage init that root dir isn't a file. Delaying this check will just cause all kinds of errors later on. [f8d9bf024e0f] * src/dsync/dsync-worker-local.c: dsync: Don't repeatedly try to keep opening the same failing mailbox. [ea5bb5676b3f] * src/imap/cmd-select.c: Recent changes broke compiling. [c0cbcb9ea3c1] * src/lib-lda/mail-send.c: lib-lda: Crashfix when sending rejection mail with Auto-Submitted: header. [24661838390f] * src/auth/passdb.c: auth: Don't pass uninitialized value to callback function. (Even though callback shouldn't use it then.) [53c6cbb2932b] * src/plugins/quota/quota-maildir.c: Maildir++ quota: Error handling fix. [d931e61516d0] * src/lib-storage/list/mailbox-list-maildir-iter.c: layout=maildir++: Minor code cleanup. [2a4a4140c999] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Potential crashfix if some plugin enabled sync_notify (e.g. quota). [49fa7e735b87] * src/master/service.c: master: Checking if fifo_listener was disabled was broken. [ac69462fc549] * src/login-common/sasl-server.c: login: Crashfix on error conditions. [321ec63de44f] * src/lib-index/mail-transaction-log.c: lib-index: Crashfix on error handling. [c88e1b2658a8] * src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/config/old-set-parser.c, src/dict/dict-commands.c, src/doveadm /doveadm-dump-log.c, src/imap/cmd-close.c, src/imap/cmd-list.c, src/imap/cmd-select.c, src/imap/cmd-sort.c, src/imap/cmd-unselect.c, src/lda/main.c, src/lib-imap/imap-match.c, src/lib-index/mail-cache- transaction.c, src/lib-index/mail-index-sync-ext.c, src/lib-index /mail-index-sync-update.c, src/lib-index/mail-index-view-sync.c, src /lib-index/mail-index-view.c, src/lib-index/mail-transaction-log- file.c, src/lib-lda/mail-send.c, src/lib-mail/message-header- decode.c, src/lib-mail/message-header-parser.c, src/lib-mail/test- istream-header-filter.c, src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib- storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-thread.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h, src/lib-storage/index/maildir/maildir-sync.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib- storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-sync-update.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/mail-storage- service.c, src/lib/askpass.c, src/lib/file-cache.c, src/lib/file- dotlock.c, src/lib/home-expand.c, src/lib/istream-tee.c, src/lib /seq-range-array.c, src/lib/strescape.c, src/lib/strfuncs.c, src /login-common/client-common-auth.c, src/login-common/ssl-proxy- openssl.c, src/master/main.c, src/plugins/fts-squat/squat-trie.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/pop3/pop3-client.c, src/util/maildirlock.c: Removed dead code. [0f98525e4567] * src/lib-index/mail-index-view-sync.c: lib-index: View syncing error handling fix. [f72884695084] * src/lib-storage/index/dbox-common/dbox-file-fix.c: dbox file fixing: If I/O error happens during read, don't finish the fix. [1f97d4217f73] * src/lib-mail/message-address.c: message address parser: Fixed potential problems with parsing invalid address groups. [ae8294182346] * src/lib-storage/list/mailbox-list-maildir.c: layout=maildir++: Fixed deleting mailboxes with mailbox=file storages (e.g. mbox) [59445c4055ab] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Sync write error handling fix. [4a8f0388e854] * src/lib-storage/index/dbox-common/dbox-file.c: dbox: Save error handling fix. [0bc933c35a17] * src/lib-storage/index/cydir/cydir-sync.c: cydir: Error handling fix. [be9be5111ce2] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.h, src/dsync/dsync-worker-local.c: dsync: Verify that msg-get and msg-copy reply has the correct UID. [ba75ab0c3e10] * src/plugins/quota/doveadm-quota.c: doveadm quota get: Fixed error handling. [4f23c349da0d] 2010-04-04 Timo Sirainen * src/doveadm/doveadm-dump-log.c: doveadm dump log: Write uid[s]= prefix before all UID numbers. [3504ce6159f3] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h: doveadm: Marked some functions ATTR_NORETURN. [d9e773db6920] * src/lib/ioloop-epoll.c: epoll: Improved error messages. [60a25bda7e02] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c: dbox: When rebuilding index, don't try to shrink next_uid. [cf302ede55bc] * src/lib-storage/index/dbox-single/sdbox-storage.h, src/lib- storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib- storage/index/dbox-single/sdbox-sync.c: sdbox: Removed unused code. [1e118fd825c7] * src/lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single /sdbox-sync.c: sdbox: Avoid logging multiple adjacent "Invalid dbox header size" errors. [d16bfa082e88] * src/lib-storage/index/dbox-single/sdbox-storage.c: sdbox: mailbox_update() could have changed UIDVALIDITY incorrectly. [46ede677961d] 2010-04-03 Timo Sirainen * src/auth/passdb-vpopmail.c: vpopmail: Load vpopmail modules at startup. Hopefully helps with crashing? [7835a672117f] 2010-03-31 Timo Sirainen * src/dsync/dsync.c: dsync: Changed -b parameter to -m to be more consistent with dovecot-lda. [4e527339da8b] * src/dsync/dsync.c: dsync: Usage had wrong -a parameter. [b261004b8492] * src/auth/auth-master-connection.c, src/auth/auth-request-handler.c, src/auth/auth-stream.c, src/auth/auth-stream.h, src/auth/auth- worker-client.c, src/auth/passdb-blocking.c, src/auth/userdb- blocking.c: auth: If userdb lookup returns tempfail, return reason field (if any). [b40ec803421e] * doc/auth-protocol.txt, src/doveadm/doveadm-auth.c, src/doveadm /doveadm-mail.c, src/dsync/dsync.c, src/imap/main.c, src/lib-auth /auth-master.c, src/lib-auth/auth-master.h, src/lib-master/master- auth.c, src/lib-master/master-auth.h, src/lib-master/master-login- auth.c, src/lib-master/master-login-auth.h, src/lib-master/master- login.c, src/lib-master/master-login.h, src/lib-storage/mail- storage-service.c, src/lib-storage/mail-storage-service.h, src/lmtp/commands.c, src/login-common/client-common-auth.c, src /login-common/sasl-server.c, src/login-common/sasl-server.h, src/pop3/main.c: Added support for userdb lookup to fail with a reason (many API changes). [2e08ce368bc0] * src/auth/auth-request.c: auth: If userdb lookup fails internally, don't cache the result. [ce7ed594d99e] 2010-03-29 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Fixed listing child mailboxes under INBOX. [dbb05e38295a] * src/lib-storage/mail-storage-service.c: Dynamic setting allocation was still a bit wrong. [b791ebb2c700] 2010-03-27 Timo Sirainen * src/master/service-listen.c: master: Changed listener backlog calculations. [aefa279e2c70] * src/master/service-listen.c: master: Increased listen backlog for services without many processes. [96496e1d3d12] 2010-03-27 Pascal Volk * is-tagged.py: is-tagged.py: Don't fail if Mercurial isn't available. [84ffb38839b9] 2010-03-27 Timo Sirainen * src/pop3/main.c: pop3: Don't crash if INBOX can't be opened. [110ef59372cd] * src/lib-storage/mail-storage.c: lib-storage: Fix to previous change: Don't access freed memory. [f4ff6c7cdafe] * src/lib-storage/mail-storage.c, src/lib-storage/mail-user.h: lib-storage: If INBOX can't be opened/synced, log an error once. [0f0b8e1a2c55] * configure.in: configure: Removed special casing from tcpwrap settings. ifdef check handles this now in the actual code. (And now I see that I could have avoided that change by just fixing this check to use "== yes" instead of "!= no", but what's done is done.) [6891d20929ca] * src/config/settings-get.pl: config: Fixed all-settings building script. [2178c4569f38] * configure.in: configure: Minor description fix to previous change. [864b17ec5fac] * configure.in: configure: Disabled tcp-wrappers by default. At least until someone figures out why it fails in Slackware with "undefined reference to yp_get_default_domain" error. [51150f2b3be8] * src/plugins/zlib/zlib-plugin.c: zlib: Fixed compiling if both zlib and bzlib weren't used. [89c602af7e09] * src/lib-sql/driver-pgsql.c: pgsql: Don't leak memory if query returns multiple results. Found by Rainer Weikusat. [5a6aaf88f15c] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-storage/mail-storage-service.c: Dynamic settings parser allocation logic was wrong. Default setting structures were being cleared after settings parser pool was freed. [fdb352eecdac] * src/lib-master/master-service-settings.c, src/lib/abspath.c, src/lib/abspath.h: Added t_binary_abspath(). [f483bbface26] * src/imap/imap-fetch-body.c, src/lib-mail/message-search.c, src/lib- mail/message-search.h, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/index-search.c, src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.h, src/lib-storage/mail.c, src/lib-storage/test-mail.c, src/plugins/virtual/virtual-mail.c: lib-storage: mail_get_parts() no longer returns const pointer. The struct message_part contained context-pointer and other APIs were using it, so the pointer really couldn't be const without casting it away sometimes. [679e99e430d7] 2010-03-27 Pascal Volk * .hgignore, Makefile.am, is-tagged.py, src/config/doveconf.c, src/master/main.c, update-version.sh: {master,doveconf}: Show the version with hg's node id, if unreleased. Affects output from `dovecot --version` and `doveconf`. [a2c6c91635b5] 2010-03-27 Timo Sirainen * src/lib-index/mail-index-modseq.c, src/lib-index/mail-index-sync.c, src/lib-otp/otp-parse.c, src/lib-settings/settings-parser.c, src/lib /execv-const.c, src/lib/fdpass.c: Avoid casting away const qualifiers wherever possible. [be5b93c18203] * src/lib/macros.h: Added CONST_STRUCT_MEMBER_P() and removed unused (broken) STRUCT_MEMBER(). [961ded33ca0a] * src/auth/mech-winbind.c, src/auth/passdb-checkpassword.c, src/auth /userdb-checkpassword.c, src/dsync/dsync.c, src/lib-lda/smtp- client.c, src/lib-master/master-service-settings.c, src/lib-settings /settings-parser.c, src/master/main.c, src/util/script.c: Replaced execv*() with execv*_const() wherever possible. [43f2452b7dd8] * src/lib/Makefile.am, src/lib/execv-const.c, src/lib/execv-const.h: Added execv_const() and execvp_const() helper functions. [ddbc6e8b2776] * configure.in, run-test.sh, src/anvil/Makefile.am, src/dsync/Makefile.am, src/lib-dict/Makefile.am, src/lib- imap/Makefile.am, src/lib-index/Makefile.am, src/lib- mail/Makefile.am, src/lib-storage/index/Makefile.am, src/lib/Makefile.am: If valgrind exists, run unit tests using it. If valgrind prints any errors, fail the test. [c78fe7920deb] * src/lib-mail/test-message-decoder.c: Unit test fix. [c892f3f4aae8] 2010-03-26 Timo Sirainen * src/lib-master/master-service-settings-cache.c: lib-master: Fixed local host {} specific settings. Based on fix by Julien Moutinho [ad135ced2732] * src/lib-storage/mail-namespace.c: lib-storage: Namespace debug logging now logs the namespace name also. [094c6a082caf] * src/auth/auth-worker-client.c: auth: Error handling fix. [407c131ab50f] * src/auth/auth-request.c: auth: Added "tempfail" userdb field. [53f4e8e0166a] 2010-03-25 Pascal Volk * doc/example-config/Makefile.am: example-config: Don't fail on the README file if builddir != srcdir. [a044c605fecf] 2010-03-25 Timo Sirainen * src/util/tcpwrap-settings.c: tcpwrap: If tcpwrap support isn't built, don't add its service to config. [8f5bc2a21f99] * src/config/settings-get.pl: config: Parser script now supports preserving #ifdefs around service_settings. [b218d4ec6996] * src/imap/main.c, src/pop3/main.c: imap, pop3: Added -u parameter to do userdb lookup. [93be85bb9db8] * src/lib-master/master-service-settings.c: lib-master: When getting settings via doveconf, tell it our module. [2d7b7fb99693] * src/master/main.c: master: Get settings without specifying module. [eecf62b49475] * src/config/doveconf.c: doveconf -e: Expands $variables and * src/config/config-connection.c, src/config/config-filter.c, src/config/config-parser-private.h, src/config/config-parser.c, src/config/config-parser.h, src/config/config-request.c, src/config/doveconf.c, src/config/main.c: doveconf: When module is given, ignore checks for non-required settings. [02e0d6f0e1d4] * configure.in: configure: Fixed libwrap checking in some systems. [5b0a88cb9a12] * src/config/old-set-parser.c, src/master/master-settings.c: config: Avoid problems with trailing '/' in base_dir. [2fde82ea7cd9] * src/auth/auth-settings.c: auth: Increased default client_limit to 4096. [7d7540af8446] * src/master/master-settings.c: config: Log a warning if auth service's client_limit is too low. [4191ba54c8aa] 2010-03-23 Timo Sirainen * src/dsync/dsync-brain.c: dsync: Added extra sanity check. [f6c2c0866aff] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.h: mdbox: Do delayed storage rebuild when closing mailbox. Doing it on storage destroy causes problems. [52d9b2d8c1e8] * src/util/script.c: script: Fixed using mail_uid/mail_gid settings as fallback. [841bfacb7ec3] 2010-03-22 Timo Sirainen * src/lib-sql/driver-mysql.c: mysql: Fixed compiling with older libraries that didn't support CLIENT_MULTI_RESULTS. [9aa107613324] * src/lib-storage/index/dbox-common/dbox-mail.c: dbox_mail_get_save_date(): Last change was broken. [9202254c8499] * src/lib-storage/index/maildir/maildir-mail.c: maildir: get_save_date() should return 0, not the timestamp. Patch by Rainer Weikusat [1b588519f00c] * .hgsigs: Added signature for changeset 38e98c234af5 [0f1b86898124] * .hgtags: Added tag 2.0.beta4 for changeset 38e98c234af5 [1f25490893d6] * TODO, configure.in: Released v2.0.beta4. [38e98c234af5] [2.0.beta4] * src/lib/macros.h: Asserts now use __FUNCTION__ instead of __PRETTY_FUNCTION__. With gcc these had the same output, but clang's __PRETTY_FUNCTION__ returns a larger output that's not useful. [56fd824b1d65] * src/lib/macros.h: Removed unused GNUC_FUNCTION* macros. [399f855035bc] 2010-03-21 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-save.h, src/lib-storage/index /dbox-single/Makefile.am, src/lib-storage/index/dbox-single/sdbox- copy.c, src/lib-storage/index/dbox-single/sdbox-file.c, src/lib- storage/index/dbox-single/sdbox-file.h, src/lib-storage/index/dbox- single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox- storage.h: sdbox: Copying is now done with hard links. [1bb98ad1af8b] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-common/dbox- mail.c, src/lib-storage/index/dbox-common/dbox-save.c, src/lib- storage/index/dbox-single/sdbox-save.c: dbox: Don't write save-date to metadata, use file's ctime as fallback. Copying must change the save-date, so it couldn't work well in metadata. [cc42255736ad] * src/lib-storage/index/dbox-single/sdbox-mail.c: sdbox: Don't break when trying to access mail that's just being expunged. [d87741f0e95a] 2010-03-19 Timo Sirainen * src/plugins/mail-log/mail-log-plugin.c: Increased initial memory pool size. [b7d7b44fcbc8] * src/auth/auth-request.c: auth: Previous change broke non-master logins.. [5050e2eb1bfe] * src/auth/auth-request.c, src/auth/auth.c: auth: Fixed master user logins. [b05793c609ac] * src/config/config-parser.c: config: Changed key=$key to expand to first parser that changed it. This allows adding chained settings, like: key=foo key=$key bar key=$key baz -> key=foo bar baz [9621bb06b15c] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: Added settings_parse_is_changed(). [48f6353e2226] * doc/example-config/conf.d/imap.conf, doc/example- config/conf.d/lda.conf, doc/example-config/conf.d/lmtp.conf, doc /example-config/conf.d/mail.conf, doc/example- config/conf.d/pop3.conf: example-config: Added global mail_plugins, set per-protocol mail_plugins=$mail_plugins. [5798fdd4ad70] * src/config/doveconf.c: doveconf: Added -x parameter to expand $variables and * src/config/config-parser.c: config: Added support for "key=$key stuff" [513c43179ca9] * src/auth/auth-request.c: auth: Do username checks/translations even when ssl_username_from_cert=yes [bcd43231f723] * src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/auth.c, src/auth/auth.h, src/auth/main.c: auth: Fixed support for per-service auth settings. [bdef690d41d5] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-parser.c, src/config /config-parser.h, src/config/config-request.c, src/lib-master /master-service-settings.c, src/lib-master/master-service- settings.h: config: Send client a services names that have more specific settings. [30e2d65eb67a] * src/lib-master/master-service.c: lib-master: If binary isn't standalone, enable core dumping at startup. Dropping privileges again should disable dumping, and later it's decided by the binary itself it wants to be dumpable. [edd11ffa467c] * src/lib-storage/mail-namespace.c: Check that namespace's alias_for points to a namespace with compatible storage. [566360ae12fc] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Storage rebuild panics now earlier if its namespace unexpectedly isn't found. [de26a4054910] * src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-single/sdbox- mail.c: dbox: Use mail's transaction view instead of mailbox's view whenever possible. This fixes crash when saving/copying fails. [ae9d00b1ffdd] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Don't crash when rebuilding index if there's no alt storage dir. [d133801d8e83] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-single/sdbox- save.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-search.c, src/lib-storage/index/index-sort-string.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/mail-storage-private.h, src/plugins/expire/expire-plugin.c: lib-storage: Moved index transaction/view from index_transaction to mailbox_transaction. [0cf62ad4c7bf] 2010-03-18 Pascal Volk * src/doveadm/Makefile.am, src/doveadm/doveadm-kick.c, src/doveadm /doveadm-who.c, src/doveadm/doveadm-who.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added doveadm kick command. Moved some parts from doveadm- who.c to doveadm-who.h, so they can be reused. [b13e01d82083] 2010-03-18 Timo Sirainen * src/lib-master/master-service.c: lib-master: Don't assert-crash if client_limit < service_count. [183b1b4f6386] * src/master/service.c: master: Service's client_limit wasn't set correctly when service_count was non-zero. [41ce0172dcc8] * src/doveadm/doveadm-who.c: doveadm who: Use wildcards for user matching. [819fbb179cbc] * src/lib/Makefile.am, src/lib/wildcard-match.c, src/lib/wildcard- match.h: Added wildcard_match*() for matching strings with '*' and '?' wildcards. [f7d14405de09] * src/lib-master/master-service-settings.c: lib-master: -k parameter now always applies settings from environment. Otherwise the result would be inconsistent when executing doveconf vs. using config socket. [480bf5fefcce] * src/imap/imap-settings.c, src/pop3/pop3-settings.c: imap, pop3: Changed default client_limit to 1. So even if service_count is disabled, by default no more than 1 connection is allowed for the process. [53dadf274cc7] 2010-03-17 Timo Sirainen * src/lib-storage/mail-storage-service.c: mail_storage_service_read_settings() avoided execing doveconf too aggressively. [7fa0cd9e3a89] 2010-03-16 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-multi/mdbox-save.c: mdbox: Don't crash when accessing a copied mail that hasn't been committed yet. [b7c66370b0f7] * src/plugins/acl/acl-backend-vfile.c: acl: Don't crash if opening dovecot-acl fails with EACCES. [6b03aee63752] * src/lib-master/master-service-settings.c, src/lib-master/master- service.h: lib-master: Environment variables no longer override settings. Also did some other cleanups to settings reading and removed unused features. [1de4b554c914] * src/doveadm/doveadm.c: doveadm: Disable all debug logging, unless -D parameter is given. [7df150529ce3] * src/doveadm/doveadm-mail.c: doveadm: Continue going through users if one user's init fails. [35cda1373e6f] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail_storage_service_lookup_next() returns -2 for if _next() fails. [2c0e9bea1bea] * src/lib-storage/mail-storage-service.c: mail_storage_service_next() didn't always set error string. [03b679cd8d1f] * src/doveadm/doveadm-mail.c, src/lib-storage/mail-storage-service.c, src/lib-storage/mail-storage-service.h, src/plugins/expire/expire- tool.c, src/util/script.c: mail_storage_service_lookup*() now separates userdb lookup and user setting errors. [15860795f158] * src/lib-storage/mail-storage-service.c: mail_storage_service_next() now only returns -1 if user's privileges are invalid. [a66d3650e3c3] * src/auth/auth-worker-server.c: auth: Compiler warning fixes. [f855ac569e2f] * src/lib-storage/mail-storage-service.c: mail storage service: Make sure we never exec doveconf when looking up config. [c6890ec714ec] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Added never_exec flag to master_service_settings_read(). [f4486ab0ebdb] * src/doveadm/doveadm.c: doveadm: Keep config socket permanently open. This fixes a problem when config lookup was attempted while privileges were dropped. [0a469d9f1ea4] * src/auth/auth-worker-client.c, src/auth/auth-worker-client.h, src/auth/auth-worker-server.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb.c, src/auth/userdb.h: auth worker: Verify that both client and server see the same passdb/userdb IDs. [91ae9577aca9] * src/auth/auth-worker-client.c: auth: Fixed blocking userdb lookups. [bf26a6ec3389] * src/auth/auth-worker-client.c: auth worker: Fixes to handling invalid input from auth server. [55e3817f09da] * src/auth/auth-settings.c: auth: Changed worker process to die after auth server closes its connection. [87c462c463cc] * src/util/tcpwrap.c: tcpwrap: Added allow/deny severity to fix compiling on some systems. Patch by Tomi Vainio [0d17bb09c358] * src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c: plugins: Changed to use the new client_find_namespace() API. [05e93cd2cb86] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-rename.c, src/imap/cmd-select.c, src/imap/cmd-status.c, src/imap/cmd-subscribe.c, src/imap/imap- commands-util.c, src/imap/imap-commands-util.h: imap: Some mailbox accessing commands failed with wrong error message. [7443f0b5218f] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Rebuilding storage ignored mails in alt storage. [cc0a8b0347f9] * src/config/old-set-parser.c: config: Fixed checking if listen setting contained an obsolete port value. [1630026e8803] * src/master/master-settings.c, src/master/service.c: master: login dir was created with wrong group. [7fd91455b66e] * src/master/master-settings.c: master: Create login dir even when we don't change its gid. [31184f3d868b] * src/lib/safe-mkdir.c: safe_mkdir(): uid/gid can now be -1 to mean "don't change it". [acc07775bab3] 2010-03-15 Timo Sirainen * src/lib-storage/mail-namespace.c: Namespace debug log message logged list value wrong. [56dda1de9b6f] 2010-03-14 Timo Sirainen * doc/example-config/conf.d/auth-system.conf.ext, src/auth/passdb- bsdauth.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c: auth: passdb bsdauth, passwd and shadow are now blocking by default. [5a20039e8a54] * src/auth/auth-settings.c: auth: Auth master process is now running as default_internal_user by default. Workers are still running as root, so PAM will continue to work as before. [858ad8aa7f8b] * src/master/service.c: master: Allow unix_listeners to also have user=$default_*_user [1e333d2918f1] * src/auth/auth.c, src/auth/main.c, src/auth/passdb-cache.h: auth: Fixed crash at deinit. [4ca5dfd58d47] * src/lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Fixed a race condition when expunging messages. [3f43b5c47a0e] * src/auth/mech-gssapi.c: auth: Compile fix for gssapi. [841af633f8d0] * src/auth/auth-settings.c: auth: Fixed compiling config binary. [cb26518a7e51] 2010-03-13 Timo Sirainen * src/lib-sql/driver-mysql.c: mysql: Enable CLIENT_MULTI_RESULTS Based on patch by Alain Williams [612db456c090] * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c, src/auth/auth-request-handler.c, src/auth/auth- request-handler.h, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/auth- worker-client.c, src/auth/auth.c, src/auth/auth.h, src/auth/db- ldap.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech- digest-md5.c, src/auth/mech-gssapi.c, src/auth/mech-rpa.c, src/auth /mech-winbind.c, src/auth/passdb-cache.c, src/auth/passdb-ldap.c, src/auth/passdb-pam.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb-ldap.c, src/auth/userdb-prefetch.c, src/auth/userdb.c, src/auth/userdb.h: auth: Initial support for per-protocol auth settings. Currently the list of services is hard-coded. This should be changed so that config lookup returns the service names. [6e639833c3fc] * src/auth/auth-client-connection.c, src/auth/auth.c, src/auth/auth.h, src/auth/main.c, src/auth/mech.c, src/auth/mech.h: auth: Moved mechanism list out of struct auth. It could have been good there, except mechanism list is sent before there's any knowledge of what type of client is on the other side. Maybe in future different mechanism list could be given based on the unix socket name. [2b56c8b1e5ad] * src/auth/auth.c, src/auth/passdb-ldap.c, src/auth/passdb-passwd- file.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c, src/auth /passdb-sql.c, src/auth/passdb.c, src/auth/passdb.h, src/auth /userdb-ldap.c, src/auth/userdb-passwd-file.c, src/auth/userdb- sql.c, src/auth/userdb.c, src/auth/userdb.h: auth: Store args in passdb/userdb_module, so init() doesn't need it as parameter. [ac58cc0c71aa] * src/auth/auth.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb.c, src/auth/userdb.h: auth: Completely removed struct auth_*db from *db.c [7909611180a8] * src/auth/auth.h, src/auth/passdb.c, src/auth/userdb.c: auth: Removed unused pool parameter from struct auth_passdb/auth_userdb. [cff28ea08c4a] * src/auth/auth-master-connection.c, src/auth/auth-worker-client.c, src/auth/auth.c, src/auth/passdb-bsdauth.c, src/auth/passdb- checkpassword.c, src/auth/passdb-ldap.c, src/auth/passdb-pam.c, src/auth/passdb-passwd-file.c, src/auth/passdb-sql.c, src/auth /passdb-vpopmail.c, src/auth/passdb.c, src/auth/passdb.h, src/auth /userdb-blocking.c, src/auth/userdb-blocking.h, src/auth/userdb- checkpassword.c, src/auth/userdb-ldap.c, src/auth/userdb-nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth /userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb-vpopmail.c, src/auth/userdb.c, src/auth/userdb.h: auth: passdb/userdb backends no longer know about struct auth_passdb/auth_userdb. [3d085b851db8] * src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth- worker-client.c, src/auth/auth.h, src/auth/passdb-blocking.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb-blocking.c, src/auth/userdb.c, src/auth/userdb.h: auth: Cleaned up struct auth_passdb/auth_userdb. [52eb8317514f] * src/auth/auth-settings.c: auth: Recent changes broke auth_username_chars checking. [f93195ae4bed] * src/auth/auth-common.h, src/auth/auth-request-handler.c, src/auth/auth.c, src/auth/auth.h, src/auth/main.c: auth: auth_penalty is now a global single instance. [56fc8bbe114c] * src/auth/auth-client-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h: auth: Auth request handler no longer keeps struct auth pointer. [5642902ae47b] * src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth- settings.h, src/auth/auth-worker-server.c, src/auth/auth-worker- server.h, src/auth/auth.h, src/auth/main.c, src/auth/passdb- blocking.c, src/auth/passdb-bsdauth.c, src/auth/passdb- checkpassword.c, src/auth/passdb-ldap.c, src/auth/passdb-pam.c, src/auth/passdb-passwd-file.c, src/auth/passdb-sql.c, src/auth /passdb-vpopmail.c, src/auth/passdb.c, src/auth/userdb-blocking.c, src/auth/userdb-checkpassword.c, src/auth/userdb-ldap.c, src/auth /userdb-nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb- passwd.c, src/auth/userdb-sql.c, src/auth/userdb-static.c, src/auth /userdb-vpopmail.c, src/auth/userdb.c: auth: auth_userdb and auth_passdb no longer has pointer to struct auth. [1a4c2e4bff75] * src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth- settings.h, src/auth/auth.c, src/auth/auth.h, src/auth/mech-digest- md5.c, src/auth/mech-rpa.c: auth: Moved some variables generated from settings to struct auth_settings. [9675d9a54ac9] * src/lib/ioloop-select.c: ioloop-select: IO_ERROR wasn't really working. [f2b9387ba047] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-request.c, src/config /config-request.h, src/config/doveconf.c: doveconf: Show protocol/remote/local sections. [6acd45009331] 2010-03-12 Timo Sirainen * src/auth/auth-settings.c: Create auth-client socket by default. [653ae02bf8cf] * src/lib-storage/list/mailbox-list-fs-iter.c: fs mailbox list: Don't show duplicate INBOXes [144858dc0820] 2010-03-11 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/mbox/istream-raw-mbox.c, src/lib-storage/index/mbox /mbox-sync-update.c, src/lib/test-istream-concat.c, src/lib/test- istream-seekable.c, src/master/service-anvil.c: Compiler warning fixes. [588892d877dc] 2010-03-10 Timo Sirainen * README: README: Updated RFC list. [f49bb060d83d] 2010-03-09 Timo Sirainen * src/imap-login/client.c: imap-login: Give a helpful error message if user tries to log in without giving command tag. [70a861ba3115] * src/config/old-set-parser.c: config: Fixed obsolete listen setting check to handle multiple addresses. Currently it doesn't handle obsolete settings having multiple addresses. [a38d597c5b59] * src/config/old-set-parser.c: config: Don't parse IPv6 address in listen setting as obsolete host:port. [bed9f7593c0e] * configure.in: configure: --with-lucene fails now with suggestion to use Solr instead. [3ebd6a4ad55a] * src/config/config-request.c: config: Keep unique section names in setting keys. [6abbea248921] * src/lib-storage/mail-storage-service.c: mail storage service: mail_debug=yes now logs what happens to userdb settings. [2d082200657d] * src/lib-storage/mail-storage-service.c: mail storage service: Only some userdb extra fields were used. [ce166f70ea71] * src/lib-index/mail-index-alloc-cache.c: lib-index: Index alloc cache fixes. It wasn't really working. [131436a6b8b3] * src/lib-storage/index/dbox-multi/mdbox-storage.c: Compiler warning fix. [f1a2a8097903] * src/config/config-parser-private.h: config: Forgot to add header file. [370ee9717a6c] * src/lib/istream-limit.c: Reverted recent istream-limit cleanup. It broke things. [1473de6ba383] * src/config/Makefile.am, src/config/config-parser.c, src/config/old- set-parser.c, src/config/old-set-parser.h: config: Added support for reading v1.2 config files. [3a575415ce1a] * src/master/master-settings.c, src/master/service.c: master: Don't complain about duplicate inet_listeners with port=0 (they're ignored). [7c2e38d7390c] * src/auth/auth.c: auth: Master passdbs weren't working. [3f9c7a8a92b9] * src/lib-storage/mailbox-list.c: Don't crash when trying to list shared namespace prefix. [83166197d2a5] * src/lib/failures.c, src/lib/mempool-alloconly.c: Reversing accidentally committed debug code. [6d260794f278] 2010-03-08 Timo Sirainen * src/doveadm/doveadm-who.c: doveadm: Minor code cleanup. [bf978f2de0fd] * src/lib-storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index /dbox-multi/mdbox-file.h, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-settings.h, src /lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.h: mdbox: Removed mdbox_max_open_files setting. It's now hard coded to 2, and the files are closed after 30 seconds of being unused. [863eafcf8428] * src/login-common/client-common.c, src/login-common/client-common.h: login: Always disconnect clients after 3 minutes if they haven't logged in. [c56358283605] * src/lib-index/mail-index-transaction.c: lib-index: When index is reset, make sure old dovecot.index gets deleted. [6a2f7843327c] * src/lib-storage/index/dbox-single/sdbox-mail.c: dbox: Don't assert-crash if trying to read a mail that's being saved. [42e5d937555e] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Fixed seeking in zlib/bzlib input stream. [d05561b0c257] * src/lib/failures.c, src/lib/mempool-alloconly.c, src/lib/restrict- access.c: Improved setgid/setuid failure's error message. [2795a5c52d92] * doc/example-config/conf.d/auth-ldap.conf.ext, doc/example- config/conf.d/auth-sql.conf.ext: example-config: Added userdb static to auth-ldap|sql.conf.ext. [97216501ba6b] * src/lib-storage/index/dbox-multi/mdbox-mail.c: mdbox: Minor error message improvement. [5be757538f8a] * src/plugins/quota/Makefile.am, src/plugins/quota/doveadm-quota.c, src/plugins/quota/quota-plugin.h: Added doveadm quota plugin. [6248d194f430] * src/doveadm/Makefile.am, src/doveadm/doveadm-mail.c, src/doveadm /doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm/doveadm.c: doveadm: Added support for plugins. [b06d874708d4] * src/lib/module-dir.c, src/lib/module-dir.h: module_dir_load*(): Added ignore_dlopen_errors flag. [c9dc5c447db5] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail storage service: Exported modules as mail_storage_service_modules. [02d4cc578d4b] * src/lib-storage/mail-storage-service.c: mail storage service: Fixed crashing when iterating through all users. [8f8d2f8e029c] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Several fixes to zlib/bzlib istreams. [681e1c702899] * src/lib/istream-limit.c: Simplified up istream-limit implementation. [d49913d2d75a] 2010-03-06 Timo Sirainen * doc/example-config/conf.d/Makefile.am, doc/example-config/conf.d /auth-checkpassword.conf.ext, doc/example-config/conf.d/auth- deny.conf.ext, doc/example-config/conf.d/auth-ldap.conf.ext, doc /example-config/conf.d/auth-master.conf.ext, doc/example- config/conf.d/auth-passwdfile.conf.ext, doc/example-config/conf.d /auth-sql.conf.ext, doc/example-config/conf.d/auth-system.conf.ext, doc/example-config/conf.d/auth-vpopmail.conf.ext, doc/example- config/conf.d/auth.conf: example-config: Moved passdbs and userdbs to separate auth-*.conf.ext files. [b1d5982ffd14] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox index rebuild: GUID wasn't kept for messages. [f7755658257d] * src/doveadm/doveadm-dump-log.c: doveadm: dump didn't autodetect log if the path didn't contain '/' [68042df10756] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Improved error message logging. Log input stream names. [257556760b62] * src/lda/main.c, src/lib-storage/index/cydir/cydir-mail.c, src/lib- storage/index/dbox-common/dbox-file.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src /lib-storage/index/mbox/istream-raw-mbox.h, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/raw/raw- storage.c, src/plugins/zlib/zlib-plugin.c: Set input stream names for mail file streams. [638c4ea4a9ce] * src/login-common/ssl-proxy-openssl.c: Increased initial memory pool size. [2375e84fd344] * src/lib/iostream-internal.h, src/lib/iostream.c, src/lib/istream- file.c, src/lib/istream-mmap.c, src/lib/istream-seekable.c, src/lib/istream.c, src/lib/istream.h, src/lib/ostream-file.c, src/lib/ostream.c, src/lib/ostream.h: i/ostreams can now have a name (e.g. file path). [5f16e488e7f6] * src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins/zlib/istream- bzlib.c, src/plugins/zlib/istream-zlib.c, src/plugins/zlib/istream- zlib.h, src/plugins/zlib/zlib-plugin.c, src/plugins/zlib/zlib- plugin.h: zlib: If reading corrupted compressed mail files, log an error. [def12863b620] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Fixed rebuilding map index that had duplicate records. [95f5ea024043] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c: dbox index rebuild: Fixed setting next-uid and highest-modseq. [3bfb1e9f556b] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c, src/lib- storage/mail-namespace.c, src/lib-storage/mail-storage.c: mdbox: Don't crash when trying to rebuild storage at deinit. [e3672e7c0f9f] * src/master/main.c: "dovecot stop" now waits for up to 3 seconds for master to actually die. [a81aceb9f55b] * src/lib-master/master-service-settings.c: lib-master: If config lookup from socket fails, fallback to execing doveconf. [1a76670bb50e] * src/imap/cmd-list.c: LIST-STATUS: When listing subscriptions, don't return STATUS for unsubscribed parents. [211df1a0646e] 2010-03-05 Timo Sirainen * README: README: Updated RFC list. [a342e91e8815] 2010-03-04 Timo Sirainen * src/anvil/penalty.c: anvil: Recent changes broke penalty timeout handling. [f48ce6049176] * src/lib-master/master-login.c: lib-master: Disconnect from auth service immediately after receiving reply. With the current code we can't reuse the connection anyway. [ada20715c470] * doc/example-config/conf.d/auth.conf, src/auth/auth-cache.c, src/auth /auth-cache.h, src/auth/auth-request.c, src/auth/passdb-cache.c: auth_cache_negative_ttl is now also used for password mismatches. [81e085f9bd75] * src/lib-master/anvil-client.c: lib-master: Call anvil callback in a separate data stack frame. [40eb5d5e6fbf] * src/lib/module-dir.c: Don't call module's deinit() if its init() hasn't been called. [65a91a112d7f] * src/lib-master/master-service-private.h, src/lib-master/master- service.c: lib-master: Avoid sending status updates to master too often. [df4d4fd0db00] * src/master/service-monitor.c: master: Try to read multiple status updates in a single read(). [43a278ca5354] * src/lib-storage/list/mailbox-list-fs-iter.c: LIST (SUBSCRIBED): Don't assert-crash if list contained a name ending with separator. [c691706eee06] 2010-03-03 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: uidlist wasn't compressed often enough. [fe302c2714a3] 2010-03-02 Timo Sirainen * src/anvil/penalty.c: Compiler warning fix. [60bc95bc10f2] * src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-storage-rebuild.c: [m]dbox: Fixes to rebuilding a broken index. [154f52b7a6fd] * src/lib-storage/index/dbox-multi/mdbox-map.c: mdbox: Don't assert-cras if refcount in map file is too low. [9930d93bbd11] * src/login-common/sasl-server.c: *-login: When showing mail_max_userip_connections error, show the limit also. [893abe2f65e0] * src/lib-lda/Makefile.am, src/lib-lda/lmtp-client.c, src/lib-lda /lmtp-client.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp /lmtp-proxy.h, src/lmtp/main.c, src/lmtp/main.h: lmtp proxy: Added support for DNS lookups. [cc3f6adc1e0b] * src/lmtp/lmtp-proxy.c: lmtp proxy: Crashfix. [bd28e6f29711] * src/anvil/test-penalty.c: Compiler warning fixes. [fb0666d3b067] * src/anvil/penalty.c, src/anvil/test-penalty.c: Compiler warning fixes. [b2156189c319] 2010-03-01 Timo Sirainen * src/lib-storage/index/index-thread.c: lib-storage: Don't loop infinitely on deinit when INBOX was auto- created. [f56c227a7fc9] * src/config/config-parser.c: config: Allow key=$var to contain other text after the $var. [4b744015a8ae] * src/lib/eacces-error.c: eacces_error_get*(): Mention if euid is parent directory's owner. [6a8ee83cbc8c] 2010-02-28 Timo Sirainen * src/plugins/acl/acl-mailbox-list.c: acl: Don't assert-crash if LIST returns mailbox name ending with separator. [64f6c458aaff] * src/lib-master/master-service-settings-cache.c: lib-master: Fixed crash on settings-cache deinit. [a5b4cbf46b9b] * src/lib-lda/lda-settings.c: lda: Default to /usr/sbin/sendmail, not to deprecated /usr/lib/sendmail. [7646f9783da0] * src/lib-lda/mail-deliver.c: lda: Enable "delivering to namespace prefix = INBOX" only for INBOX namespace. [1a888e13bf7f] * src/lib-master/master-service-settings-cache.c, src/lib-storage /mail-storage-service.c: Memory leak fixes. [dfca32cdab43] * src/lib-master/master-login.c: lib-master: Fixed crashing when using post-login scripts. [197d9beec207] * src/util/script.c: script: We want incoming fd to be blocking to avoid EAGAIN errors. [156f24de1081] * src/lib/unichar.c, src/lib/unicodemap.pl: unichar: Optimized 8bit character conversions. [23858ce6422e] * src/lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src/lib-mail/test-istream-header-filter.c, src/lib/istream- internal.h, src/lib/istream-tee.c, src/lib/istream.c, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: istreams: Reading sometimes returned wrong data, if parent istream had been modified. We'll now track changes to parent istream using access counters. If parent's access counter isn't the same as child's, the parent stream is seeked to expected position. [de2798fbbae6] * src/lib/istream-file.c: file istream: If trying to seek backwards in unseekable stream, panic. The previous way of just setting an error flag was getting ignored too easily and causing silent corruption in such situations. [6e32dbc4cd8f] 2010-02-25 Timo Sirainen * src/lib/istream.c: Removed istream test code that hasn't been tried for years. [0c3e147505f4] 2010-02-22 Timo Sirainen * src/lib-settings/settings-parser.c: Settings parser: Fixed overriding settings in strlist blocks. For example plugin {} settings couldn't be overridden by userdb. [ba19f3c077a8] * src/lib-storage/index/dbox-single/sdbox-storage.c: dbox: mailbox_update() ignored cache_fields. [c77e71e0c5bd] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h: mdbox: mailbox_update() ignored cache_fields. [58e9e66050e9] * src/login-common/login-settings.c: pop3-login: Don't crash at startup. [32d6dd7ce7cb] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Fixed header-md5/GUID lookup when it's done with mbox file unlocked. [d825d532db87] * src/lib-storage/index/dbox-common/dbox-save.c: dbox: Save POP3 UIDL if it's specified. [676ba1a630e1] * src/lib-master/master-service-settings-cache.c, src/lib-storage /mail-storage-service.c: config reading: Don't crash if caller specified module=NULL or service=NULL. [5e6f64050daa] 2010-02-20 Timo Sirainen * .hgsigs: Added signature for changeset 81e79df3fed8 [8aaf030ae510] * .hgtags: Added tag 2.0.beta3 for changeset 81e79df3fed8 [69d7fd0b175c] * NEWS, TODO, configure.in: Released v2.0.beta3. [81e79df3fed8] [2.0.beta3] * src/lib-master/Makefile.am: Makefile: Added missing master-service-settings.h [aaa6d5a58b2b] * src/lib-master/master-service.c: lib-master: Ignore SIGALRM and SIGPIPE as early as possible. For example alarm() is used while reading configuration, which is done before master_service_init_finish(). [aee98ecae688] * src/lib-master/master-service-settings.c: lib-master: Error handling fixes when reading config. [7394d1b828f7] * src/lib-master/master-login.c, src/lib-master/master-service- private.h, src/lib-master/master-service.c: lib-master: Make sure IO listeners aren't added back while doing auth lookup. [68169de12764] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-parser.c, src/config /config-request.c, src/config/config-request.h, src/config/doveconf.c, src/lib-master/Makefile.am, src/lib-master /master-service-settings-cache.c, src/lib-master/master-service- settings-cache.h, src/lib-master/master-service-settings.c, src/lib- master/master-service-settings.h, src/lib-storage/mail-storage- service.c, src/lib-storage/mail-storage-service.h, src/lib-storage /mail-storage-settings.c, src/lib-storage/mail-storage-settings.h, src/lmtp/client.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h, src/login-common/login-settings.c, src/login-common /login-settings.h, src/login-common/main.c, src/login-common/ssl- proxy-openssl.c, src/master/main.c: lib-master: Added support for caching config lookups. Currently caching won't work if config has any remote {} blocks. [bf4822f0846b] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: lib-settings: Added some consts to parameters. [19a5f933849c] * src/lmtp/commands.c: lmtp: Always use "lmtp" module when looking up configuration. [24467421976b] * src/imap/imap-client.c: Increased initial memory pool size. [6c24afbea40e] * src/lib/network.c, src/lib/network.h: liblib: Added net_ip_cmp(). [a4666cc8cb7b] * src/imap-login/client.c, src/pop3-login/client.c: *-login: Change login_set_roots earlier. [81537f59512a] * src/lib/mempool-alloconly.c, src/lib/mempool.h: liblib: Added pool_alloconly_get_total_used/alloc_size() functions. [d7108785c40a] * src/lib-settings/settings-parser.c: settings_parse_stream_read(): Try using existing data from stream first. [07059f9aead8] * src/lib-master/master-service-settings.c: lib-master: Minor config code cleanup. [eb3b89650eaf] * src/lib-index/mail-index-alloc-cache.c: lib-index: Keep indexes open while they are in alloc-cache. [e2c2ce0ce5fa] * src/lib-index/mail-index-alloc-cache.c: lib-index: When a closed index's refcount drops to 0, free it immediately. [3c0d86e79040] * src/lib-index/mailbox-log.c: mailbox log: Don't log an error if two processes rotate the log at the same time. [cdced48a276a] * src/lib-index/mail-index-strmap.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-thread-private.h, src/lib- storage/index/index-thread.c: lib-storage: Thread strmap must not be opened before index is opened. [0b139aae6276] * src/doveadm/Makefile.am, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added penalty command to dump auth penalty state. [f69f32ffa9c6] * src/anvil/anvil-connection.c, src/anvil/penalty.c, src/anvil/penalty.h: anvil: Added PENALTY-DUMP command to dump penalty state. [1282d027ce67] * src/anvil/penalty.c: anvil: Fixed penalty "last update" tracking. [3f2d9da0c6bc] * src/anvil/anvil-connection.c: anvil: Disconnect client if it sends invalid input. [e51089454ab0] * src/doveadm/doveadm-dump-index.c, src/doveadm/doveadm-dump- mailboxlog.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Removed duplication of unixdate2str(). [e71eb3faa075] * src/anvil/Makefile.am: Makefile: Fixed building anvil test. [5ee9e82f3b68] * src/auth/auth-penalty.c: auth: Track penalty for IPv6 addresses with their /48 mask. [77d990bee666] * src/anvil/Makefile.am, src/anvil/anvil-connection.c, src/anvil/penalty.c, src/anvil/penalty.h, src/anvil/test-penalty.c, src/auth/auth-penalty.c: auth/anvil: Penalty is no longer increased if the same user+pass combination was recently used. This should avoid penalty increasing for IPs where a user's misconfigured client tries to keep authenticating with wrong user/pass. This check works only for plaintext authentication. Currently the code that keeps track of what user/passwords have been tried is pretty simple, and hardcoded to remember max. 10 of them. [4cdb58bb0360] * src/lib-storage/list/mailbox-list-fs-iter.c: fs layout: Don't "File name too long" errors if giving too long path to LIST. [5380ee17392f] 2010-02-19 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-mail.c: mdbox: Fixed plugins accessing unsaved mail's stream. [d3e2444aa0ea] * src/plugins/zlib/zlib-plugin.c: zlib: Fixed the check to disallow saving messages that look compressed. [fce6ee7ab18f] * src/lib-storage/index/dbox-common/dbox-mail.c: dbox: Fixed looking up physical size when it wasn't in metadata. [97a4289d6d4b] * Makefile.am: Makefile: Added empty install-exec-hook to fix older automakes. [f11ffb8a65f8] * src/lib-auth/auth-client.c, src/lib-auth/auth-client.h, src/login- common/main.c: *-login: If we disconnect from auth server, make sure we reconnect back when necessary. [ce1dd7328b20] * src/plugins/zlib/zlib-plugin.c: zlib: Added support for dbox and mdbox. [300ac0c2cac3] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-file.h, src/lib-storage/index/dbox-common/dbox- mail.c, src/lib-storage/index/dbox-common/dbox-save.c, src/lib- storage/index/dbox-multi/mdbox-file-purge.c, src/lib-storage/index /dbox-multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox- single/sdbox-sync-rebuild.c, src/lib-storage/mail-storage-private.h: lib-storage: Added support for plugins to specify message's physical size when saving. Changed dbox to save this value to metadata, and use when present. [19df4309e389] * src/lib-storage/index/istream-mail-stats.c, src/lib/istream-limit.c: filter istreams: Let default seek implementation optimize away unnecessary seeks. [90f4663211ba] * src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index /dbox-common/dbox-save.h, src/lib-storage/index/dbox-multi/mdbox- save.c, src/lib-storage/index/dbox-single/sdbox-save.c: dbox: Allow plugins to change output stream while saving messages. [0723154256d9] * src/lib-auth/auth-server-connection.c: lib-auth: Make sure reconnection timeout if removed after getting connected. [082bd896e448] * src/log/Makefile.am, src/log/common.h, src/log/log-connection.c, src/log/main.c: log: Removed unnecessary common.h. [a16d3b54b9bb] * src/login-common/client-common.c, src/login-common/login-common.h, src/login-common/main.c: *-login: Disconnect from auth server after idling for a minute. [fc77d1cd1201] * src/lib-auth/auth-client.c, src/lib-auth/auth-client.h, src/lib-auth /auth-server-connection.c, src/lib-auth/auth-server-connection.h: lib-auth: Added auth_client_disconnect(). [7a7b2cbc6f91] * src/auth/auth-request-handler.c: auth: Don't leak memory if auth client sends a buggy request. [fa8a0f453774] * src/auth/auth-client-connection.c, src/auth/auth-request-handler.c, src/auth/auth-request-handler.h, src/auth/auth-request.c, src/auth /auth-request.h: auth: Don't loop through active requests every 5 seconds, looking for timeouts. [d3697efd18f3] 2010-02-18 Timo Sirainen * dovecot.m4: dovecot.m4: Don't use any AS_*() macros. Also removed version checking because it was done with AS_* macro. RHEL5 doesn't have new enough autoconf.. [ae23a1a94376] * dovecot.m4: dovecot.m4: Default dovecotdir to $prefix/lib/dovecot/ [912c132337ed] * configure.in: configure: Set ACLOCAL_AMFLAGS so make finds dovecot.m4. [c5cbc99f4627] * Makefile.am, autogen.sh, configure.in, dovecot.m4, src/plugins/fts- solr/Makefile.am, src/plugins/fts-squat/Makefile.am, src/plugins /imap-acl/Makefile.am, src/plugins/imap-quota/Makefile.am, src/plugins/imap-zlib/Makefile.am, src/plugins/mail-log/Makefile.am, src/plugins/trash/Makefile.am: Added dovecot.m4 file that external plugins can use. Based on patch by Dennis Schridde. [80a11f8650a4] * src/dict/dict-commands.c, src/lib-dict/dict-client.c, src/lib-dict /dict-file.c, src/lib-dict/dict-private.h, src/lib-dict/dict-sql.c, src/lib-dict/dict.c, src/lib-dict/dict.h: dict: Added dict_iterate_init_multiple(). [6aa76d89195d] * src/dsync/dsync-data.c, src/dsync/dsync-proxy.c, src/dsync/dsync- worker-local.c, src/dsync/test-dsync-common.c, src/imap/imap- status.c, src/lib-storage/mail-storage.h, src/lib-storage/mail.c: Added mail_guid_128_to_string(). Used it in several places. [5ec28d7a5d13] * src/auth/password-scheme.c: auth: Added SHA512 and SSHA512 password schemes. Based on patch by Mark Washenberger. [6936dbe28947] * src/lib/sha2.c, src/lib/sha2.h: Added sha512_*() functions. [9c188cfba679] * src/lib-storage/mail-copy.c: lib-storage: Fixed error handling in mailbox_copy(). [a792d411e73e] * src/lib-storage/list/mailbox-list-fs.c: mailbox_list_get_mailbox_name_status(): Fixed INBOX handling with FS layout. [c0c4898fc803] * src/lib-storage/index/mbox/Makefile.am, src/lib-storage/index/mbox /mbox-storage.c: mbox: Fail at startup if service doesn't have client_limit=1. [28c3486864f6] * src/lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox /mbox-sync-private.h, src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed getting header MD5 (GUID) if it wasn't already in index. [5284f3662431] * src/imap/imap-fetch.c: imap: FETCH X-GUID and X-MAILBOX didn't add a space after their value. [fdd652c73073] * src/lib-storage/mailbox-list.c: mail_full_filesystem_access=yes: Replace absolute path with mailbox name whenever possible. For example "foo", "~/mail/foo" and "~user/mail/foo" can all point to the same "foo" mailbox. When accessing it via "foo", it may have different index settings and such, so convert the other forms to it whenever possible. [2c994f2f1ce6] * doc/example-config/conf.d/mail.conf, src/lib-storage/index/maildir /maildir-copy.c, src/lib-storage/index/maildir/maildir-settings.c, src/lib-storage/index/maildir/maildir-settings.h: maildir: Always try to preserve message GUIDs when copying. Because of this, maildir_copy_preserve_filename setting is now removed. [1b38bf29ac40] * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h: maildir_copy_with_hardlinks=yes no longer has a race condition. [502d6048a281] * src/lib-storage/index/maildir/maildir-save.c: maildir save: Detect when trying to use duplicate GUIDs (filenames) and rename them. [386b13dfee04] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Make sure we message's UID isn't tried to be changed unexpectedly. [9fdeca77d421] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Message GUID wasn't correctly set to expunge-GUID transaction records. [843a9d68f2f5] 2010-02-15 Timo Sirainen * src/plugins/virtual/virtual-storage.c: virtual: Implement required new methods. [e4a8cc98fd15] * src/lib-storage/list/mailbox-list-maildir-iter.c: maildir++: Fixed listing INBOX [c5cbaca43811] * src/lib-storage/index/maildir/maildir-storage.c: maildir: Crashfix to mailbox_update() [6247eb25fd1a] * src/dsync/dsync-worker-local.c: dsync: Don't try to change INBOX's GUID. [8d5e2deb4ce0] * src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/mail- storage.c: mbox: Make sure we have valid mailbox GUID when returning it. [1afcc09c2c6c] * src/lib-storage/index/mbox/istream-raw-mbox.c: mbox: istream_raw_mbox_get_body_size() no longer crashes if header wasn't read. [8f251e0bc02d] * src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /index-storage.c: mailbox_update(): Updating uid_validity requires also reseting index. [a3ec94b25456] * src/lib-storage/index/mbox/mbox-storage.c: mbox: Don't allow INBOX creation succeed, if it already exists. [189197f30055] * src/dsync/dsync-worker-local.c: dsync: Skip alias namespaces when syncing subscriptions. [bc376612e590] * src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.c, src/lib- storage/index/index-transaction.c, src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c: Memory usage optimizations. [1d6e99a9703f] * src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.c: dsync: Error handling fixes. [6a8db6824157] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw /raw-storage.c: lib-storage: Increased initial mailbox pool sizes. [44759fb882aa] * src/lib-storage/index/mbox/mbox-storage.c: mbox: Don't return mailbox GUID if it's coming from in-memory index. [ead16c7d9291] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy_expunge: Fixes to handling mailbox deletion and renames. [4fd02780d09f] * src/lib-storage/mail-storage.c: Mailbox deletion: If mailbox deletion seems to have crashed, allow retrying the deletion. We'll assume that if deletion transaction was written over 5 minutes ago, the deletion crashed. [eae6e4a7ee55] * src/lib-index/mail-index.c, src/lib-index/mail-index.h, src/lib- index/mail-transaction-log.c, src/lib-index/mail-transaction-log.h: lib-index: Added mail_index_get_modification_time(). [31aca1df525b] * src/lib-storage/index/index-storage.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/mail-storage.c: lib-storage: Fixes to rename error handling. [ea8f213f0e19] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c: lib-storage: Removed INBOX auto-creating from backend code. Added bool box->inbox. [26b9138d561f] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/mail- storage.c: lib-storage: Use a default non-NULL mailbox.free() so plugins don't have to check for it. [debbf3f39e0c] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-thread-private.h, src/lib-storage/index/index- thread.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/test-mailbox.c, src/plugins/acl /acl-mailbox.c, src/plugins/fts/fts-storage.c, src/plugins/quota /quota-storage.c, src/plugins/virtual/virtual-storage.c: lib-storage: Added mailbox.free() method. Use it instead of close() where necessary. [e8fc01d03aea] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-single/sdbox- save.c, src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/mail-storage.c: lib-storage: Removed some code duplication. [0bcb415c7a71] * src/imap/cmd-rename.c, src/imap/imap-commands-util.c, src/imap/imap- commands-util.h, src/lib-storage/list/mailbox-list-fs.c: Fixed creating mailboxes over \noselect mailboxes. [14b287a3523e] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox- storage.h, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/maildir/maildir-settings.c, src/lib- storage/index/maildir/maildir-settings.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/list/Makefile.am, src/lib-storage/list/mailbox-list- delete.c, src/lib-storage/list/mailbox-list-fs-flags.c, src/lib- storage/list/mailbox-list-fs-iter.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-fs.h, src/lib- storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list- maildir.h, src/lib-storage/mail-storage-settings.c, src/lib-storage /mail-storage-settings.h, src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/virtual/virtual-storage.c: lib-storage: Changed mailbox_list.iter_is_mailbox() API. [be5590207f20] 2010-02-14 Timo Sirainen * src/plugins/listescape/listescape-plugin.c: listescape: Crashfix [709351cde842] * src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c: Compiler warning fix. [9b57e7f41c53] * src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/notify/notify-noop.c, src/plugins/notify/notify-plugin-private.h, src/plugins/notify /notify-plugin.c, src/plugins/notify/notify-plugin.h, src/plugins/notify/notify-storage.c: Fixed plugins to use the new mailbox rename API. [38897b223957] * src/dsync/dsync-worker-local.c, src/imap/cmd-rename.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox- storage.h, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/index/shared/shared-list.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox-list- maildir.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c, src/lib-storage/mail-storage.h, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib- storage/mailbox-list.h, src/lib-storage/test-mailbox.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c, src/plugins/virtual/virtual- storage.c: lib-storage: Mailbox renaming API changed. [292562f9b12c] * src/lib-storage/index/dbox-single/sdbox-file.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.h, src/lib-storage/index/dbox-single /sdbox-sync-rebuild.c: sdbox: Fixed accessing alt directories. [3d7fb69184b3] * src/plugins/zlib/ostream-zlib.c: zlib: If writing without being corked, flush the stream. [52e1f46fe0ba] * src/lib/ostream-file.c, src/lib/ostream-internal.h, src/lib/ostream.c: ostream: If cork method isn't implemented, keep track of corking state internally. [3b544841d5d7] 2010-02-13 Timo Sirainen * src/lib-storage/mail-storage.c: mailbox_open(): Don't crash if opening non-stream mailbox fails. [72a345621cd2] * doc/example-config/conf.d/master.conf: example-config: Updated default_*_user comments. [285465d71322] * doc/example-config/conf.d/master.conf, src/anvil/anvil-settings.c, src/dict/dict-settings.c, src/dns/dns-client-settings.c, src/imap- login/imap-login-settings.c, src/master/master-settings.c, src/master/master-settings.h, src/master/service.c, src/pop3-login/pop3-login-settings.c, src/util/tcpwrap-settings.c: Added default_internal_user and default_login_user settings, which services use as default users. [bf84cb98bd04] * src/config/config-parser.c, src/config/config-parser.h, src/config /config-request.c, src/config/config-request.h, src/lib-settings /settings-parser.c, src/lib-settings/settings-parser.h: config: $setting as value returns the setting's current value. [c26002b81f57] * src/master/service.c: master: Check for the existence of service executable after all. [951a90e95ebe] * configure.in: configure: If libwrap isn't used, don't add its service to doveconf. [dc6cf5f10602] * src/login-common/ssl-proxy-openssl.c: Compiler warning fix. [ec7a2fe4aab2] * configure.in: configure: libwrap detection cleared $LIBS [b14e694fc8b4] * configure.in, src/plugins/Makefile.am, src/plugins/imap- zlib/Makefile.am, src/plugins/imap-zlib/imap-zlib-plugin.c, src/plugins/imap-zlib/imap-zlib-plugin.h, src/plugins/zlib/zlib- plugin.c, src/plugins/zlib/zlib-plugin.h: Added imap-zlib plugin for enabling COMPRESS=DEFLATE extension. [29f5567e0a9a] * src/plugins/zlib/ostream-zlib.c: zlib: o_stream_create_deflate() shouldn't have enabled zlib header. [15feca627630] * src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h: lib-imap: Added imap_parser_set_streams(). [e0e6d941941c] * src/imap/imap-client.c, src/imap/imap-client.h: imap: Added module_contexts to struct client. [57814e99b451] * src/imap/imap-client.h, src/imap/main.c, src/lib-master/master- auth.h, src/login-common/sasl-server.c, src/login-common/ssl-proxy- openssl.c, src/login-common/ssl-proxy.c, src/login-common/ssl- proxy.h: imap: Remember if TLS compression is enabled. [fd5141e85076] * src/lib/ostream.c: o_stream_uncork(): Use flush() as default uncork operation. [9f0014f19bd3] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c, src/plugins/zlib/istream-zlib.h, src/plugins/zlib/zlib-plugin.c: zlib: Reimplemented gz/bz2 input streams by using the uncompression functions directly. [74d9dbee1399] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- mail.h: lib-storage: If plugin changes mail's input stream, don't assert- crash on close. [d73634c82feb] 2010-02-12 Timo Sirainen * src/lib/istream.c: i_stream_grow_buffer(): Never shrink the buffer. [fe70069debcb] * src/doveadm/doveadm-mail.c, src/dsync/dsync-worker-local.c, src/imap /cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap /cmd-delete.c, src/imap/cmd-select.c, src/imap/imap-status.c, src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-storage.h, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.h, src/lib-storage/index/index-storage.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h, src/lib-storage/test-mail-storage.h, src/lib-storage /test-mailbox.c, src/lmtp/commands.c, src/plugins/autocreate /autocreate-plugin.c, src/plugins/expire/expire-tool.c, src/plugins /imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap-quota- plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mbox-snarf /mbox-snarf-plugin.c, src/plugins/quota/quota-count.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- storage.c, src/plugins/zlib/zlib-plugin.c, src/pop3/pop3-client.c: lib-storage: Removed input parameter from mailbox_alloc(), added mailbox_open_stream() [b7c8221cea5b] * src/auth/auth-request.c: auth: When caching user-given passwords, cache their SHA1, not the plaintext. [46ae2e53d688] 2010-02-10 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-file-purge.c: Compiler warning fix. [134d59aece1a] * Makefile.am, dovecot-config.in.in: dovecot-config: Renamed DOVECOT_*DIR to dovecot_*dir after all. This makes using them easier in Makefile.ams as install destination paths. [4458ce041538] 2010-02-09 Timo Sirainen * src/lib-index/mail-cache.c, src/lib-index/mail-index.c: lib-index: Fixed logging file creation EACCES failures. [442c980d6221] * src/dsync/dsync-worker-local.c, src/imap/cmd-list.c, src/imap/cmd- status.c, src/imap/imap-status.c, src/imap/imap-status.h, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/dbox- multi/mdbox-storage.c, src/lib-storage/index/dbox-single/sdbox- storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h, src/lib-storage/test-mailbox.c, src/plugins/virtual/virtual-storage.c: lib-storage: STATUS_GUID moved to mailbox_get_guid() that can fail. [3609c8a35c36] * src/config/config-request.c, src/lib-storage/index/dbox-common/dbox- mail.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/mail-storage- service.c, src/login-common/main.c: Increased initial memory pool sizes. [e202b2b86702] * src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-multi/mdbox-file.c, src/lib-storage/index/dbox-multi/mdbox- map.c: mdbox: Saving now closes newly created files if they become full. Newly created files also aren't locked anymore, they're not visible to others anyway until map index is updated. [9c68c8d42ff2] * src/login-common/main.c: login: tcpwrappers change caused crashes at startup. [9f0c4800cb13] * src/lib-storage/index/dbox-multi/mdbox-file-purge.c: mdbox: If purge deleted a whole file, it didn't expunge map records immediately. [912ef25c2dcf] * src/doveadm/doveadm-dump-index.c: doveadm dump index: Another crashfix. [c7e827ab156e] * src/doveadm/doveadm-dump-index.c: doveadm dump index: Fixed assert-crash. [3712e2dcc856] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h, src /lib-storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox- multi/mdbox-sync.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/index- sync.c, src/lib-storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw/raw- sync.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.c: Mailbox deletion: Fixed race condition where a mailbox couldn't get deleted. [9740c4858a57] * src/lib-index/mail-index-private.h, src/lib-index/mail-index.c, src /lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib- storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index/index- storage.c: lib-index: Don't close index files if they're still being used by another mailbox. [93fe3aa23bdb] * src/dsync/dsync-worker-local.c, src/imap/cmd-delete.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/dbox- common/dbox-mail.h, src/lib-storage/index/dbox-common/dbox- storage.c, src/lib-storage/index/dbox-common/dbox-storage.h, src /lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-storage.c, src /lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/shared/shared-list.c, src/lib- storage/list/Makefile.am, src/lib-storage/list/mailbox-list- delete.c, src/lib-storage/list/mailbox-list-delete.h, src/lib- storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox-list- fs.h, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-maildir.h, src/lib-storage/mail-copy.h, src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/lib-storage/mail-storage.h, src/lib-storage/mailbox- list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage /mailbox-list.h, src/lib-storage/test-mailbox.c, src/plugins/acl /acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape /listescape-plugin.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/notify/notify-noop.c, src/plugins/notify/notify-plugin- private.h, src/plugins/notify/notify-plugin.c, src/plugins/notify /notify-plugin.h, src/plugins/notify/notify-storage.c, src/plugins/quota/quota-storage.c, src/plugins/virtual/virtual- storage.c: lib-storage: Mailbox deletion API changed. Mailbox deletion should now be free of race conditions. The actual file deletion code is now responsibility of mailbox_list backend. [1fd7833c16ca] * src/imap/imap-commands.c: imap: Mark DELETE command as potentially closing mailbox. That happens if DELETE is used on the selected mailbox. [9cefc944d82a] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-sync- update.c, src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index-transaction.c, src/lib-index/mail-index.c, src/lib- index/mail-index.h, src/lib-index/mail-transaction-log-file.c, src /lib-index/mail-transaction-log-private.h, src/lib-index/mail- transaction-log.h: lib-index: Added support for undeleting a deleted index. [22354f505277] * src/lib-index/mail-index-private.h, src/lib-index/mail-index-sync- update.c, src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction-update.c: lib-index: Index deletion is now a request that gets finalized by index sync. [6552652a9504] 2010-02-08 Timo Sirainen * src/imap/cmd-delete.c, src/imap/cmd-rename.c, src/imap/cmd- subscribe.c, src/imap/imap-commands-util.c, src/imap/imap-commands- util.h, src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/mailbox-list.h, src/plugins/acl/acl-mailbox-list.c: mailbox_list_get_mailbox_name_status() now separates between existing mailbox and dir. [a9922c28f5cb] * src/lib-storage/mailbox-list.c: mailbox_name_get_sha128() truncated the returned GUID too early. [cf6f3ce452d3] 2010-02-07 Timo Sirainen * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: lib-storage: Added mail_storage_get_user(). [64c8e5e792e9] * src/master/service.c: master: Don't check if service's executable exists if there are no listeners. [488530ada460] * src/master/service.c: master: service's have_inet_listeners wasn't tracked correctly. [8d931f94fdf6] * src/plugins/expire/Makefile.am: expire Makefile: Link with .lo, not .o. Helps at least with dependency tracking. [2b4e61bfb645] * Makefile.am, dovecot-config.in.in: dovecot-config: Renamed field names to be more consistent. [3e162b623291] * dovecot-config.in.in: dovecot-config: LIBDOVECOT_STORAGE_INCLUDE was missing lib-storage/ include. [23b91bb080a9] * dovecot-config.in.in: dovecot-config: Added LIBDOVECOT_IMAP_INCLUDE for imap-specific code. [8f81a3990c62] * dovecot-config.in.in: dovecot-config: Removed lib-storage from LIBDOVECOT_INCLUDE [c919c72033f8] * src/doveadm/doveadm-mail.c, src/dsync/dsync-worker-local.c, src/imap /cmd-append.c, src/imap/cmd-close.c, src/imap/cmd-copy.c, src/imap /cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-logout.c, src/imap/cmd-select.c, src/imap/cmd-unselect.c, src/imap/imap- client.c, src/imap/imap-status.c, src/lda/main.c, src/lib-index /mail-index-alloc-cache.c, src/lib-index/mail-index-alloc-cache.h, src/lib-lda/mail-deliver.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/lmtp/client.c, src/lmtp/commands.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/expire /expire-tool.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins /imap-quota/imap-quota-plugin.c, src/plugins/lazy-expunge/lazy- expunge-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-storage.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- storage.c, src/pop3/pop3-client.c: lib-storage: Split mailbox_close() and mailbox_free() functionality. [8b138b29dc01] * src/imap/imap-client.h: imap-client.h: Updated comments. [bd06d9b159fa] * src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/cydir /cydir-storage.h, src/lib-storage/index/cydir/cydir-sync.c, src/lib- storage/index/dbox-common/dbox-mail.c, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox-sync- rebuild.c, src/lib-storage/index/dbox-common/dbox-sync-rebuild.h, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- storage-rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-storage.h, src/lib- storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox- single/sdbox-file.c, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.h, src/lib-storage/index/dbox-single /sdbox-sync-file.c, src/lib-storage/index/dbox-single/sdbox-sync- rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src/lib- storage/index/index-mail-headers.c, src/lib-storage/index/index- mail.c, src/lib-storage/index/index-mail.h, src/lib-storage/index /index-mailbox-check.c, src/lib-storage/index/index-search.c, src /lib-storage/index/index-status.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-sync-changes.c, src/lib-storage/index/index- sync-changes.h, src/lib-storage/index/index-sync-private.h, src/lib- storage/index/index-sync-search.c, src/lib-storage/index/index- sync.c, src/lib-storage/index/index-thread-private.h, src/lib- storage/index/index-thread.c, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-copy.c, src /lib-storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib-storage/index/maildir/maildir-util.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-storage.h, src/lib- storage/index/mbox/mbox-sync-parse.c, src/lib-storage/index/mbox /mbox-sync-update.c, src/lib-storage/index/mbox/mbox-sync.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/index/raw/raw- storage.h, src/lib-storage/index/raw/raw-sync.c, src/lib- storage/index/test-index-fetch.c, src/lib-storage/mail-storage- private.h, src/plugins/virtual/virtual-config.c, src/plugins/virtual /virtual-mail.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h, src/plugins/virtual/virtual-sync.c: lib-storage: *_mailboxes don't descend from index_mailbox anymore, it's now a context. [56b1d4dd9c7d] * src/dict/dict-commands.c, src/dict/dict-connection.c, src/lib-dict /dict-client.c, src/lib-dict/dict-db.c, src/lib-dict/dict-file.c, src/lib-dict/dict-private.h, src/lib-dict/dict-sql.c, src/lib- dict/dict.c, src/lib-dict/dict.h, src/plugins/acl/acl-lookup-dict.c, src/plugins/expire/expire-tool.c: lib-dict: Changed dict_iterate API. [7309b5c84ca9] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h: lib-storage: mailbox can no longer be looked up from mail_index_view. It's not necessarily anymore and I'm not sure if they should be 1:1. [9780cd3cc48a] * src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/cydir /cydir-sync.c, src/lib-storage/index/dbox-common/dbox-sync- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src/lib- storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/dbox- multi/mdbox-storage-rebuild.c, src/lib-storage/index/dbox-multi /mdbox-storage.c, src/lib-storage/index/dbox-multi/mdbox-sync.c, src /lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index /dbox-single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox- storage.c, src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src/lib- storage/index/index-fetch.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-search-result.c, src/lib-storage/index/index-search.c, src /lib-storage/index/index-sort-string.c, src/lib-storage/index/index- status.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index-sync- search.c, src/lib-storage/index/index-sync.c, src/lib-storage/index /index-thread.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- sync-parse.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib- storage/index/raw/raw-storage.c, src/lib-storage/index/raw/raw- sync.c, src/lib-storage/index/test-index-fetch.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual- search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual /virtual-sync.c: lib-storage: Moved struct mail_index_* from index_mailbox to mailbox. We're relying more and more of all mailboxes being used via lib-index, and this change makes accessing the indexes easier. [e7f066508299] * src/lib-index/Makefile.am, src/lib-index/mail-index-alloc-cache.c, src/lib-index/mail-index-alloc-cache.h, src/lib-index/mail-index.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-multi/mdbox-storage.c, src/lib-storage/index/dbox-single /sdbox-storage.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/mail-storage.c, src/lib-storage /mailbox-list.c, src/plugins/virtual/virtual-storage.c: Moved mail_index lookup cache from lib-storage to lib-index. Removed some code duplication as a result. [9d3b5cbef222] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index-transaction.c, src/lib-index/mail-index.c, src/lib- index/mail-index.h, src/lib-index/mail-transaction-log-file.c, src /lib-index/mail-transaction-log-private.h, src/lib-index/mail- transaction-log.h, src/lib-storage/index/cydir/cydir-save.c, src /lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-single/sdbox-save.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/mbox/mbox-save.c: Added support for marking mailbox index deleted. Don't allow any changes after that. This is going to help with race conditions when deleting mailboxes. [fc0ac73f0b36] * src/lib-storage/list/mailbox-list-fs.c: fs layout: We didn't properly prevent maildir_name from being used in mailbox names. [302a4f807276] * src/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/shared /shared-list.c, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mailbox- list-private.h, src/lib-storage/mailbox-list.h, src/plugins/acl/acl- mailbox-list.c, src/plugins/acl/acl-mailbox.c: lib-storage: Moved mailbox directory creation code to mailbox_list backend. [5fe70b5da1b8] 2010-02-06 Timo Sirainen * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.c: dbox: Moved more mailbox creation code to dbox-common. [bdb1ea37ccee] * src/lib-storage/index/mbox/istream-raw-mbox.c: mbox: raw mbox stream's stat() now returns mail size as stream size if it's known. [b1597605c3ef] * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox saving: Fallback to using non-exact mail size if exact isn't available. The size is used only to check if it would make mdbox file become too large. [e9f4efacf692] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Make sure we don't append to uidlist that has already been recreated. [cfe7d639fa03] * src/lib-dict/Makefile.am, src/lib-sql/Makefile.am, src/lib- storage/register/Makefile.am, src/plugins/quota/Makefile.am: Makefiles: Use nodist_*_SOURCES to exclude generated .c files from dist. [518572a630a8] * .hgignore, configure.in, doc/example-config/dovecot.conf, src/login- common/Makefile.am, src/login-common/access-lookup.c, src/login- common/access-lookup.h, src/login-common/login-settings.c, src /login-common/login-settings.h, src/login-common/main.c, src/util/Makefile.am, src/util/tcpwrap-settings.c, src/util/tcpwrap.c: Added support for tcpwrappers and potentially other login access checks. [51a978045f47] * src/plugins/acl/acl-plugin.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/expire/expire-plugin.c, src/plugins/fts-lucene /fts-lucene-plugin.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-squat/fts-squat-plugin.c, src/plugins/fts/fts- plugin.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap- quota/imap-quota-plugin.c, src/plugins/lazy-expunge/lazy-expunge- plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins /mbox-snarf/mbox-snarf-plugin.c, src/plugins/notify/notify-plugin.c, src/plugins/quota/quota-plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-plugin.c, src/plugins/zlib/zlib- plugin.c: plugins: Use DOVECOT_VERSION instead of PACKAGE_VERSION. [d4fd28f07507] * configure.in: config.h: Added DOVECOT_* macros for PACKAGE_* macros. [928312d6017c] * src/lib/module-context.h: module-context.h: Include required array.h internally. [5e2075b5b25f] * src/lib-storage/index/index-search.c: lib-storage: Use mailbox_status() to get number of messages in search code. This doesn't really change anything, except makes it possible for plugins to hide some messages. [e0b6f739510d] * src/plugins/zlib/Makefile.am, src/plugins/zlib/ostream-bzlib.c, src/plugins/zlib/ostream-zlib.c, src/plugins/zlib/ostream-zlib.h, src/plugins/zlib/zlib-plugin.c: zlib plugin: Added support for compressing Maildir mails while saving. [9f0e01905171] * src/lib/ostream.c: ostream: Added default failure handling if write_at() isn't implemented. [174275bcb1a5] * src/lib-index/mail-index-strmap.c: lib-index: Changed strmap's crc32 field to be backwards compatible. [b87a15fc462a] * src/lib/Makefile.am, src/lib/crc32.c, src/lib/test-crc32.c, src/lib /test-lib.c, src/lib/test-lib.h: crc32*() didn't return a standard CRC32 value. [dcfcedb32ea2] 2010-02-05 Timo Sirainen * src/imap/imap-search-args.c: Compiler warning fix. [05ae3f2e079e] * src/lib-dict/Makefile.am, src/lib-dict/dict.c, src/lib-dict/dict.h, src/lib-dict/test-dict.c: lib-dict: Added dict_[un]escape_string(). [2cfe01556d6c] * src/imap/imap-search-args.c: imap search args: Allocate uidset from correct memory pool. Shouldn't have caused any bugs, but this is the intended way. [7ebf82401e7a] 2010-02-02 Timo Sirainen * doc/example-config/conf.d/mail.conf, src/lib-storage/index/dbox- common/dbox-file.c, src/lib-storage/index/dbox-common/dbox-file.h, src/lib-storage/index/dbox-multi/mdbox-file-purge.c, src/lib- storage/index/dbox-multi/mdbox-file.c, src/lib-storage/index/dbox- multi/mdbox-file.h, src/lib-storage/index/dbox-multi/mdbox-map- private.h, src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib- storage/index/dbox-multi/mdbox-map.h, src/lib-storage/index/dbox- multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-settings.h, src /lib-storage/index/dbox-multi/mdbox-sync.c: mdbox: Purging now also moves mails to alt storage (if it's used). mdbox_altmove setting specifies how old files should be moved. [c60910419861] * src/lib-storage/mailbox-list.c: Don't ignore :ALT=path in mail_location. [55cce06818b8] * doc/example-config/conf.d/mail.conf, src/lib-storage/index/dbox- multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-settings.h: mdbox: Removed quite pointless mdbox_purge_min_percentage setting. [8098d0fa929a] * doc/example-config/conf.d/mail.conf, src/lib-storage/index/dbox- multi/mdbox-settings.c, src/lib-storage/index/dbox-multi/mdbox- settings.h: mdbox: Removed unused mdbox_rotate_min_size setting. [253889fc317f] * src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-map.h, src/lib-storage/index/dbox-multi/mdbox- sync.c, src/lib-storage/index/dbox-multi/mdbox-sync.h: mdbox: Removed forced automatic purging for now. It was too ineffecient. [2917f019b179] * doc/example-config/conf.d/mail.conf, src/lib-storage/index/dbox- multi/mdbox-map.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-settings.h: mdbox_rotate_days changed to mdbox_rotate_interval, supporting one second resolution. [b0b63deab22a] * src/plugins/expire/expire-tool.c: expire-tool: Change config module so we'll actually read all necessary settings. [bbfa22045215] * src/plugins/expire/expire-tool.c: expire-tool: Check and log an error if dict iteration fails. [568c437ad951] * src/dict/dict-commands.c, src/lib-dict/dict-client.c: dict proxy: Iteration failure wasn't passed to dict client. [5e50d5597474] * src/login-common/ssl-proxy-openssl.c: login: Now properly disable SSLv2 support. [9a5f3e3b0197] * src/login-common/ssl-proxy-openssl.c: login: Use SSLv23_server_method() after all. It appears to be the only method that supports both SSLv3 and TLSv1 connections, without breaking the other one. [b0239838bdfe] 2010-02-01 Timo Sirainen * src/plugins/notify/notify-plugin.c: notify plugin: Require plugin to be same version as Dovecot. [a07a699b3831] * src/plugins/notify/Makefile.am: notify plugin: Install headers if --enable-header-install is used. Patch by Mark Washenberger. [c9e0ee292a08] * Makefile.am: dovecot-config: Avoid using $(pkglibexecdir), it doesn't work with old automakes. [de9d6dae7fe5] 2010-01-31 Timo Sirainen * .hgsigs: Added signature for changeset 357995a6c270 [a978089d090b] * .hgtags: Added tag 2.0.beta2 for changeset 357995a6c270 [40081c368a29] * TODO, configure.in: Released v2.0.beta2. [357995a6c270] [2.0.beta2] * src/lib-index/mail-index-transaction-update.c: mail_index_update_flags_range(): Fixed merging last update. [2893ca172707] * Makefile.am: dovecot-config: LIBDOVECOT_INCLUDE shouldn't have been dropped from installed file. [8dcfb629a060] * src/login-common/Makefile.am, src/login-common/client-common-auth.c, src/login-common/login-proxy.c, src/login-common/login-proxy.h: login: Proxying supports now doing DNS lookups for host names. [23956a9b915b] * configure.in, src/Makefile.am, src/dns/Makefile.am, src/dns/dns- client-settings.c, src/dns/dns-client.c, src/lib-dns/Makefile.am, src/lib-dns/dns-lookup.c, src/lib-dns/dns-lookup.h, src/lib- dovecot/Makefile.am: Added dns-client service and library for doing async dns lookups. [8f9fc7fa7c73] * src/lib/macros.h: Added CONTEXT_CALLBACK2() helper macro. [45709a87e4b3] * Makefile.am, dovecot-config.in.in: dovecot-config: Don't rely on installed .la files. [89928f671350] * src/login-common/client-common-auth.c, src/login-common/login- proxy.c, src/login-common/login-proxy.h: login: Proxy code API cleanup. [6b3dc91ae0c5] * src/master/main.c: master: Removed non-existing -cb parameter description from --help. [c06033a1f147] * Makefile.am, dovecot-config.in.in: Changed dovecot-config file to contain useful content. [5a10d0fb008d] * src/login-common/ssl-proxy-openssl.c: login: Completely drop support for SSLv2. [449fa953210b] 2010-01-29 Timo Sirainen * src/dsync/dsync-brain-msgs-new.c: dsync: Small optimization. [6799298bfa27] * src/dsync/dsync-brain-msgs-new.c: dsync: Message list wasn't sorted properly, which caused sync to be incomplete. [e9046fc7c6b4] * src/lib-master/master-service-settings.c: lib-master: When standalone binary reads config from config socket, ignore environment. [9a6015507c78] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed assert-crash after sometimes creating pseudo mail. [992bb0c85ee9] * src/lib-settings/settings-parser.c: lib-settings: Treat blocks with empty names as unique names, instead of merging them. [4c9c9111e361] 2010-01-28 Timo Sirainen * src/config/config-filter.c: config: Added support for protocol !name {} [25c1ed070b3c] * src/lmtp/commands.c: lmtp: Switch back to running as root after deliver a mail. [de1bf8a51556] * src/lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage-settings.h: Namespaces can now have names. This could make some types of configuration cleaner. [1a7c861bca43] * configure.in: configure: Another try at fixing Berkeley DB check to not give an error. [20963e8ec560] * src/master/service.c: master: inet_listener {port=0} and unix/fifo_listener {mode=0} now disables it. [476de3a45cf8] * configure.in: configure: Fixed Berkeley DB check to not give an error. [db89ece5a19d] * src/lib-master/master-login.c: lib-master: Fixed using post-login scripts. [873b2aff9196] * doc/example-config/conf.d/auth.conf: example-config: Fixed example auth.conf. [51452840b8b4] * doc/example-config/conf.d/master.conf, src/imap-login/imap-login- settings.c, src/lib-master/service-settings.h, src/master/master- settings.c, src/pop3-login/pop3-login-settings.c: Added default inet_listeners for imap/pop3-login. [9ab4539b736d] * src/config/doveconf.c: doveconf: Don't add extra space to "block {" for unique blocks. [11708783b5b3] 2010-01-27 Timo Sirainen * src/lib-storage/list/mailbox-list-maildir.c: Increased initial memory pool size. [2d118c4e6957] * src/lib-settings/settings-parser.c: lib-settings: Initialize block{}s, even if they don't have anything inside. For example if there's an empty userdb {}, it should give an error instead of being silently ignored. [477bd56cdb3e] * src/lib-master/Makefile.am, src/lib-master/master-service-private.h, src/lib-master/master-service-settings.c, src/lib-master/master- service.c: lib-master: When executing standalone, try first to read config from global socket. [379b993c5ca6] * src/lib-index/mail-cache-transaction.c: mail cache: Avoid infinite loops. [193fa6e7635c] * doc/auth-protocol.txt, src/auth/auth-master-connection.c, src/auth /auth-request-handler.c, src/lib-master/master-login-auth.c: auth master lookups: If request isn't found, return FAIL instead of NOTFOUND. [cab5f2e7b806] * src/lib-master/master-login.c: lib-master: Don't leak post-login connections. [f4e64cb17aea] * src/auth/auth-settings.c: auth: Fixed "userdb is missing driver" error. [bea4b2d1f27f] 2010-01-26 Timo Sirainen * src/lib-lda/lda-settings.c: hostname setting now defaults to fqdn. postmaster_address defaults to postmaster@. [e1d112ef2e4c] * doc/example-config/conf.d/logging.conf, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/auth-settings.c, src/auth/auth- settings.h, src/auth/passdb-bsdauth.c, src/auth/passdb-sia.c: Added auth_verbose_passwords = no|plain|sha1. [941511db13c3] 2010-01-25 Timo Sirainen * src/plugins/acl/acl-backend-vfile.c: acl: Don't give admin rights to all owner mailboxes. The SETACL IMAP command should already prevent this. If this situation is created by modifying dovecot-acl file manually, it's probably intentional. [667fea930ec3] * src/lib-dict/Makefile.am: Makefile: Updated dict-drivers-register.c to depend on config.h [0ff07b4ad306] * src/anvil/anvil-connection.c, src/anvil/anvil-settings.c, src/anvil /connect-limit.c, src/anvil/main.c, src/anvil/penalty.c, src/auth /auth-cache.c, src/auth/auth-client-connection.c, src/auth/auth- master-connection.c, src/auth/auth-penalty.c, src/auth/auth-request- handler.c, src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth-stream.c, src/auth/auth-worker-client.c, src/auth /auth-worker-server.c, src/auth/auth.c, src/auth/db-checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd-file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech-cram- md5.c, src/auth/mech-digest-md5.c, src/auth/mech-external.c, src/auth/mech-plain.c, src/auth/mech.c, src/auth/passdb-blocking.c, src/auth/passdb-bsdauth.c, src/auth/passdb-cache.c, src/auth/passdb- checkpassword.c, src/auth/passdb-ldap.c, src/auth/passdb-passwd- file.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c, src/auth /passdb-sql.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth/password-scheme.c, src/auth/userdb-blocking.c, src/auth /userdb-checkpassword.c, src/auth/userdb-ldap.c, src/auth/userdb- nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb- static.c, src/auth/userdb-vpopmail.c, src/auth/userdb.c, src/config /config-connection.c, src/config/config-filter.c, src/config/config- parser.c, src/config/config-request.c, src/config/config-settings.c, src/config/doveconf.c, src/config/main.c, src/config/sysinfo-get.c, src/dict/dict-commands.c, src/dict/dict-connection.c, src/dict/dict- settings.c, src/dict/main.c, src/doveadm/doveadm-auth.c, src/doveadm /doveadm-dump-index.c, src/doveadm/doveadm-dump-log.c, src/doveadm /doveadm-dump-mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/dsync/dsync-brain-msgs-new.c, src/dsync /dsync-brain-msgs.c, src/dsync/dsync-brain.c, src/dsync/dsync- data.c, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy- server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync- proxy.c, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.c, src/dsync/dsync.c, src/dsync/test-dsync-brain-msgs.c, src/dsync /test-dsync-brain.c, src/dsync/test-dsync-common.c, src/dsync/test- dsync-proxy-server-cmd.c, src/dsync/test-dsync-proxy.c, src/dsync /test-dsync-worker.c, src/imap-login/client-authenticate.c, src /imap-login/client.c, src/imap-login/imap-login-settings.c, src /imap-login/imap-proxy.c, src/imap/cmd-append.c, src/imap/cmd- cancelupdate.c, src/imap/cmd-capability.c, src/imap/cmd-check.c, src/imap/cmd-close.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-enable.c, src/imap/cmd- examine.c, src/imap/cmd-expunge.c, src/imap/cmd-fetch.c, src/imap /cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd-list.c, src/imap/cmd- logout.c, src/imap/cmd-lsub.c, src/imap/cmd-namespace.c, src/imap /cmd-noop.c, src/imap/cmd-rename.c, src/imap/cmd-search.c, src/imap /cmd-select.c, src/imap/cmd-sort.c, src/imap/cmd-status.c, src/imap /cmd-store.c, src/imap/cmd-subscribe.c, src/imap/cmd-thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd- unsubscribe.c, src/imap/cmd-x-cancel.c, src/imap/imap-client.c, src/imap/imap-commands-util.c, src/imap/imap-commands.c, src/imap /imap-expunge.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap-search-args.c, src/imap/imap-search.c, src/imap/imap- settings.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/imap /mail-storage-callbacks.c, src/imap/main.c, src/lda/main.c, src/lib- auth/auth-client-request.c, src/lib-auth/auth-client.c, src/lib-auth /auth-master.c, src/lib-auth/auth-server-connection.c, src/lib- charset/charset-iconv.c, src/lib-charset/charset-utf8.c, src/lib- dict/dict-client.c, src/lib-dict/dict-db.c, src/lib-dict/dict- file.c, src/lib-dict/dict-sql-settings.c, src/lib-dict/dict-sql.c, src/lib-dict/dict.c, src/lib-imap/imap-base-subject.c, src/lib-imap /imap-bodystructure.c, src/lib-imap/imap-date.c, src/lib-imap/imap- envelope.c, src/lib-imap/imap-id.c, src/lib-imap/imap-match.c, src /lib-imap/imap-parser.c, src/lib-imap/imap-quote.c, src/lib-imap /imap-seqset.c, src/lib-imap/imap-utf7.c, src/lib-imap/imap-util.c, src/lib-imap/test-imap-match.c, src/lib-imap/test-imap-parser.c, src /lib-imap/test-imap-utf7.c, src/lib-imap/test-imap-util.c, src/lib- index/mail-cache-compress.c, src/lib-index/mail-cache-decisions.c, src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache- lookup.c, src/lib-index/mail-cache-sync-update.c, src/lib-index /mail-cache-transaction.c, src/lib-index/mail-cache.c, src/lib-index /mail-index-dummy-view.c, src/lib-index/mail-index-fsck.c, src/lib- index/mail-index-lock.c, src/lib-index/mail-index-map-hdr.c, src /lib-index/mail-index-map-read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index- strmap.c, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail- index-sync-keywords.c, src/lib-index/mail-index-sync-update.c, src /lib-index/mail-index-sync.c, src/lib-index/mail-index-transaction- export.c, src/lib-index/mail-index-transaction-finish.c, src/lib- index/mail-index-transaction-sort-appends.c, src/lib-index/mail- index-transaction-update.c, src/lib-index/mail-index-transaction- view.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail- index-util.c, src/lib-index/mail-index-view-sync.c, src/lib-index /mail-index-view.c, src/lib-index/mail-index-write.c, src/lib-index /mail-index.c, src/lib-index/mail-transaction-log-append.c, src/lib- index/mail-transaction-log-file.c, src/lib-index/mail-transaction- log-view.c, src/lib-index/mail-transaction-log.c, src/lib-index /mailbox-list-index-sync.c, src/lib-index/mailbox-list-index.c, src /lib-index/mailbox-log.c, src/lib-index/test-mail-index-transaction- finish.c, src/lib-index/test-mail-index-transaction-update.c, src /lib-index/test-mail-transaction-log-append.c, src/lib-index/test- mail-transaction-log-view.c, src/lib-lda/duplicate.c, src/lib-lda /lda-settings.c, src/lib-lda/lmtp-client.c, src/lib-lda/mail- deliver.c, src/lib-lda/mail-send.c, src/lib-lda/smtp-client.c, src /lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src /lib-mail/mbox-from.c, src/lib-mail/message-address.c, src/lib-mail /message-date.c, src/lib-mail/message-decoder.c, src/lib-mail /message-header-decode.c, src/lib-mail/message-header-encode.c, src /lib-mail/message-header-parser.c, src/lib-mail/message-id.c, src /lib-mail/message-parser.c, src/lib-mail/message-part-serialize.c, src/lib-mail/message-search.c, src/lib-mail/message-send.c, src/lib- mail/message-size.c, src/lib-mail/quoted-printable.c, src/lib- mail/rfc2231-parser.c, src/lib-mail/rfc822-parser.c, src/lib-mail /test-istream-dot.c, src/lib-mail/test-istream-header-filter.c, src /lib-mail/test-mbox-from.c, src/lib-mail/test-message-address.c, src /lib-mail/test-message-date.c, src/lib-mail/test-message-decoder.c, src/lib-mail/test-message-header-decode.c, src/lib-mail/test- message-header-encode.c, src/lib-mail/test-message-header-parser.c, src/lib-mail/test-message-id.c, src/lib-mail/test-message-parser.c, src/lib-mail/test-quoted-printable.c, src/lib-mail/test- rfc2231-parser.c, src/lib-master/anvil-client.c, src/lib-master /master-auth.c, src/lib-master/master-login-auth.c, src/lib-master /master-login.c, src/lib-master/master-service-settings.c, src/lib- master/master-service.c, src/lib-master/syslog-util.c, src/lib- settings/settings-parser.c, src/lib-settings/settings.c, src/lib-sql /driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql/sql-api.c, src/lib-sql/sql-pool.c, src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/cydir /cydir-sync.c, src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib-storage/index/dbox-common/dbox-file.c, src/lib-storage/index /dbox-common/dbox-mail.c, src/lib-storage/index/dbox-common/dbox- save.c, src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/dbox-common/dbox-sync-rebuild.c, src/lib-storage/index /dbox-multi/mdbox-file-purge.c, src/lib-storage/index/dbox-multi /mdbox-file.c, src/lib-storage/index/dbox-multi/mdbox-mail.c, src /lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index /dbox-multi/mdbox-save.c, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src /lib-storage/index/dbox-multi/mdbox-sync.c, src/lib-storage/index /dbox-single/sdbox-file.c, src/lib-storage/index/dbox-single/sdbox- mail.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-sync-file.c, src/lib-storage/index/dbox-single /sdbox-sync-rebuild.c, src/lib-storage/index/dbox-single/sdbox- sync.c, src/lib-storage/index/index-fetch.c, src/lib-storage/index /index-mail-headers.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mailbox-check.c, src/lib-storage/index/index- search-result.c, src/lib-storage/index/index-search.c, src/lib- storage/index/index-sort-string.c, src/lib-storage/index/index- sort.c, src/lib-storage/index/index-status.c, src/lib-storage/index /index-storage.c, src/lib-storage/index/index-sync-changes.c, src /lib-storage/index/index-sync-search.c, src/lib-storage/index/index- sync.c, src/lib-storage/index/index-thread-finish.c, src/lib- storage/index/index-thread-links.c, src/lib-storage/index/index- thread.c, src/lib-storage/index/index-transaction.c, src/lib- storage/index/istream-mail-stats.c, src/lib-storage/index/maildir /maildir-copy.c, src/lib-storage/index/maildir/maildir-filename.c, src/lib-storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-settings.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-md5.c, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-settings.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- sync-parse.c, src/lib-storage/index/mbox/mbox-sync-rewrite.c, src /lib-storage/index/mbox/mbox-sync-update.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/raw/raw-sync.c, src/lib-storage/index/shared/shared- list.c, src/lib-storage/index/shared/shared-storage.c, src/lib- storage/index/test-index-fetch.c, src/lib-storage/list/index- mailbox-list-sync.c, src/lib-storage/list/index-mailbox-list.c, src /lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir- iter.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/list/mailbox-list-subscriptions.c, src/lib-storage/list /subscription-file.c, src/lib-storage/mail-copy.c, src/lib-storage /mail-error.c, src/lib-storage/mail-namespace.c, src/lib-storage /mail-search-build.c, src/lib-storage/mail-search.c, src/lib-storage /mail-storage-hooks.c, src/lib-storage/mail-storage-service.c, src /lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage.c, src/lib-storage/mail-thread.c, src/lib-storage/mail- user.c, src/lib-storage/mail.c, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-search-result.c, src/lib-storage/mailbox- tree.c, src/lib-storage/mailbox-uidvalidity.c, src/lib-storage/test- mail-storage.c, src/lib-storage/test-mail.c, src/lib-storage/test- mailbox.c, src/lib-test/test-common.c, src/lib/abspath.c, src/lib/aqueue.c, src/lib/array.c, src/lib/askpass.c, src/lib /backtrace-string.c, src/lib/base64.c, src/lib/bsearch-insert-pos.c, src/lib/buffer.c, src/lib/child-wait.c, src/lib/close-keep-errno.c, src/lib/compat.c, src/lib/crc32.c, src/lib/data-stack.c, src/lib /eacces-error.c, src/lib/env-util.c, src/lib/failures.c, src/lib/fd- close-on-exec.c, src/lib/fd-set-nonblock.c, src/lib/fdatasync- path.c, src/lib/fdpass.c, src/lib/file-cache.c, src/lib/file-copy.c, src/lib/file-dotlock.c, src/lib/file-lock.c, src/lib/file-set- size.c, src/lib/hash.c, src/lib/hash2.c, src/lib/hex-binary.c, src/lib/hex-dec.c, src/lib/home-expand.c, src/lib/hostpid.c, src/lib/imem.c, src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify- fd.c, src/lib/ioloop-notify-inotify.c, src/lib/ioloop-notify-none.c, src/lib/ioloop-poll.c, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib/iostream.c, src/lib/istream-concat.c, src/lib/istream- crlf.c, src/lib/istream-data.c, src/lib/istream-file.c, src/lib /istream-limit.c, src/lib/istream-mmap.c, src/lib/istream- seekable.c, src/lib/istream-tee.c, src/lib/istream.c, src/lib/lib- signals.c, src/lib/lib.c, src/lib/mempool-alloconly.c, src/lib /mempool-datastack.c, src/lib/mempool-system-clean.c, src/lib /mempool-system.c, src/lib/mempool-unsafe-datastack.c, src/lib/mempool.c, src/lib/mkdir-parents.c, src/lib/mmap-anon.c, src/lib/mmap-util.c, src/lib/module-dir.c, src/lib/mountpoint.c, src/lib/network.c, src/lib/nfs-workarounds.c, src/lib/ostream- buffer.c, src/lib/ostream-file.c, src/lib/ostream.c, src/lib/printf- format-fix.c, src/lib/priorityq.c, src/lib/process-title.c, src/lib/randgen.c, src/lib/read-full.c, src/lib/restrict-access.c, src/lib/restrict-process-size.c, src/lib/safe-memset.c, src/lib /safe-mkdir.c, src/lib/safe-mkstemp.c, src/lib/sendfile-util.c, src/lib/seq-range-array.c, src/lib/str-find.c, src/lib/str- sanitize.c, src/lib/str.c, src/lib/strescape.c, src/lib/strfuncs.c, src/lib/test-aqueue.c, src/lib/test-array.c, src/lib/test-base64.c, src/lib/test-bsearch-insert-pos.c, src/lib/test-buffer.c, src/lib /test-hex-binary.c, src/lib/test-istream-concat.c, src/lib/test- istream-crlf.c, src/lib/test-istream-seekable.c, src/lib/test- istream-tee.c, src/lib/test-lib.c, src/lib/test-llist.c, src/lib /test-mempool-alloconly.c, src/lib/test-network.c, src/lib/test- primes.c, src/lib/test-priorityq.c, src/lib/test-seq-range-array.c, src/lib/test-str-find.c, src/lib/test-str-sanitize.c, src/lib/test- strescape.c, src/lib/test-strfuncs.c, src/lib/test-time-util.c, src/lib/test-utc-mktime.c, src/lib/test-var-expand.c, src/lib/time- util.c, src/lib/unichar.c, src/lib/unix-socket-create.c, src/lib /unlink-directory.c, src/lib/unlink-old-files.c, src/lib/utc- mktime.c, src/lib/utc-offset.c, src/lib/var-expand.c, src/lib/write- full.c, src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/lmtp- proxy.c, src/lmtp/lmtp-settings.c, src/lmtp/main.c, src/log/log- connection.c, src/log/log-settings.c, src/log/main.c, src/login- common/client-common-auth.c, src/login-common/client-common.c, src /login-common/login-proxy-state.c, src/login-common/login-proxy.c, src/login-common/login-settings.c, src/login-common/main.c, src /login-common/sasl-server.c, src/login-common/ssl-proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src/login-common/ssl-proxy.c, src/master/dup2-array.c, src/master/main.c, src/master/master- settings.c, src/master/service-anvil.c, src/master/service-listen.c, src/master/service-log.c, src/master/service-monitor.c, src/master /service-process-notify.c, src/master/service-process.c, src/master/service.c, src/plugins/acl/acl-api.c, src/plugins/acl /acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-cache.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl-mailbox- list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/expire /expire-env.c, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire-tool.c, src/plugins/fts-lucene/fts- backend-lucene.c, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene/lucene-wrapper.cc, src/plugins/fts-solr/fts- backend-solr.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins /fts-solr/solr-connection.c, src/plugins/fts-squat/fts-backend- squat.c, src/plugins/fts-squat/fts-squat-plugin.c, src/plugins/fts- squat/squat-test.c, src/plugins/fts-squat/squat-trie.c, src/plugins /fts-squat/squat-uidlist.c, src/plugins/fts/fts-api.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-search.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap-acl- plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape /listescape-plugin.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/quota/quota- count.c, src/plugins/quota/quota-dict.c, src/plugins/quota/quota- dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota- maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota /quota-storage.c, src/plugins/quota/quota.c, src/plugins/trash /trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual- plugin.c, src/plugins/virtual/virtual-save.c, src/plugins/virtual /virtual-search.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-sync.c, src/plugins/virtual/virtual- transaction.c, src/plugins/zlib/istream-bzlib.c, src/plugins/zlib /istream-zlib.c, src/plugins/zlib/zlib-plugin.c, src/pop3-login /client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3 -login-settings.c, src/pop3-login/pop3-proxy.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/ssl-params/main.c, src/ssl-params/ssl- params-openssl.c, src/ssl-params/ssl-params-settings.c, src/ssl- params/ssl-params.c, src/util/gdbhelper.c, src/util/imap-utf7.c, src/util/listview.c, src/util/maildirlock.c, src/util/rawlog.c, src/util/script.c: Updated copyright notices to include year 2010. [615eef3139c2] * configure.in, src/lib-dict/dict-db.c: Disabled Berkeley DB support until someone fixes it. [6ecb1b7528c9] * src/plugins/Makefile.am: --with-lucene was actually enabling solr. [2af2a6afb3e5] * src/lib/compat.c, src/lib/compat.h: Removed my_strptime(). It was just causing problems and wasn't used anywhere after all. [28f35797059a] * doc/example-config/conf.d/auth.conf, src/auth/auth-settings.c: auth: Don't use section names for passdb/userdb driver names. When using section names, it wasn't possible to use the same driver more than once without an error. [a2ed5c020cfa] * src/config/config-parser.c: doveconf: If config parsing fails, don't crash. [3117e9f35e45] * src/auth/auth-settings.c: auth: passdb { pass and master } settings weren't working. [9c80cc65def8] * doc/example-config/conf.d/master.conf: example-config: s/process_count/process_limit/ [f8ab17253dff] 2010-01-24 Timo Sirainen * src/auth/passdb-passwd-file.c, src/auth/userdb-passwd-file.c: passwd-file: Give a better error message if args (path) is empty. [354d3b1eee03] 2010-01-23 Timo Sirainen * src/lib-master/master-auth.c: lib-master: Try for 0.5 secs to connect to master-auth socket. [823356f533c5] * src/config/doveconf.c, src/master/main.c: doveconf: Log a warning if Dovecot was last started using a different config file. [26b5209dc4f4] * src/lib/abspath.c, src/lib/abspath.h: Added t_readlink(). [749e7f1df078] 2010-01-22 Timo Sirainen * src/config/config-parser.c: doveconf: Fix to previous change. [cd29a6801e75] * src/config/config-parser.c, src/config/config-request.c, src/config /config-request.h, src/config/doveconf.c: doveconf: Dump config to stdout even when there are errors, just show them afterwards. [b01b9eff1f15] * src/master/master-settings.c: master: Fail if service's executable is empty. [f1a0f9a66164] * configure.in: Added LIST-STATUS to CAPABILITY list. [7fe775a404b1] 2010-01-20 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: dropping expunged uidlist records didn't update hash table. [e48e81c2b874] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir + pop3_lock_session: Don't crash when opening mailbox causes uidlist rewrite. [32d6a4112147] 2010-01-19 Timo Sirainen * doc/example-config/conf.d/lda.conf, src/lib-lda/lda-settings.c: recipient_delimiter defaults to "+" now. Also added to example- config. [69c793c7f185] * src/plugins/virtual/virtual-mail.c: virtual: wanted_headers needs to be kept referenced. [45f360c1c9eb] * src/lib-index/mail-index-transaction-update.c: mail_index_update_flags_range(): Fixed out-of-bounds read. [57eb71a78375] * src/plugins/virtual/virtual-mail.c: virtual MAILBOX_FETCH_MAILBOX_NAME: Return mail's physical mailbox name. When using a virtual mailbox of other virtual mailboxes, this changes the behavior from returning a virtual mailbox's name to returning the underlying physical mailbox's name. [b6ea12ec49c8] * src/plugins/virtual/virtual-mail.c: virtual: mail_set_uid() crashed. [bbcefa2a3976] * src/lib-storage/index/index-mail.c: lib-storage: Return mail's mailbox name with namespace prefix. [e1de7e7ae4f9] * src/lib-storage/index/index-storage.c: lib-storage: Mailbox virtual name was set wrong with multiple namespaces. [26583093cb54] * src/lib-storage/mail-namespace.c: namespace list=children: Fail if namespace prefix doesn't end with separator. [907dc8769491] * src/config/config-request.c: doveconf: Show time settings with "s" suffix to make it clear they're seconds. [e7f3a0e6e2a4] * src/master/master-settings.c: master: Changed unix_listener mode setting to octal type. [4d703a15d6b8] * src/config/config-request.c, src/lib-settings/settings-parser.c, src /lib-settings/settings-parser.h: config: Added support for "octal integer", which is just printed as octal. [443927a546e2] 2010-01-18 Timo Sirainen * src/lib/eacces-error.c: eacces_error_get*(): Check and warn if multiple uids/gids have same name. [b8966b8133f2] 2010-01-06 Timo Sirainen * src/plugins/expire/expire-tool.c: expire-tool: Don't crash at startup. [40abbeaa7a12] 2010-01-02 Timo Sirainen * configure.in: configure: Use -llber for ldap only if necessary. [2882650531e0] * src/login-common/Makefile.am: login-common: Install headers. [127fb230e269] * src/imap-login/client-authenticate.c, src/imap-login/client.c, src /imap-login/imap-proxy.c, src/login-common/Makefile.am, src/login- common/client-common-auth.c, src/login-common/client-common.c, src /login-common/common.h, src/login-common/login-common.h, src/login- common/login-proxy.c, src/login-common/login-settings.c, src/login- common/main.c, src/login-common/sasl-server.c, src/login-common/ssl- proxy-gnutls.c, src/login-common/ssl-proxy-openssl.c, src/pop3-login /client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c: login-common: Renamed common.h to login-common.h [9ae939146ff7] * src/lib-master/Makefile.am: lib-master: Install headers. [19695965c40e] 2009-12-31 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-save.c: mdbox: Removed broken assert. [16acdd049281] * TODO: TODO updated. [dfca2414c0a0] * src/dsync/Makefile.am, src/dsync/dsync-brain.c, src/dsync/dsync- data.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy.c, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.c, src/dsync /test-dsync-brain-msgs.c, src/dsync/test-dsync-brain.c, src/dsync /test-dsync-common.c, src/dsync/test-dsync-proxy-server-cmd.c, src/dsync/test-dsync-proxy.c, src/dsync/test-dsync-worker.c: dsync: Initial code to sync mailbox list without dir GUID support. Not complete yet. [96db209efe22] * src/lib-storage/index/shared/shared-list.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: lib-storage: Added mailbox_list_delete_dir() to (try to) delete a \noselect mailbox. [3c12d0376cef] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-storage.h, src/lib-storage/index/dbox- common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox- storage.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/mbox/mbox-storage.h, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h: lib-storage: Removed mailbox_list_get_guid(). Directory GUIDs are pretty pointless. [f20bced53213] * src/auth/auth-request.c, src/auth/password-scheme.c, src/auth /password-scheme.h: auth_debug_passwords: If password is correct but scheme is wrong, try to detect and log it. [de75c45e6765] 2009-12-29 Timo Sirainen * doc/example-config/conf.d/lda.conf: example-config: Updated postmaster_address. [99dbadd0492b] 2009-12-30 Pascal Volk * src/lib-lda/lda-settings.c: lda-settings: Try to set the the postmaster_address if it wasn't configured. [d6d1df7ea4e0] 2009-12-29 Timo Sirainen * doc/example-config/conf.d/pop3.conf, src/lib-storage/mail-storage- settings.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c, src/pop3/pop3-common.h: pop3: Added %g = GUID to pop3_uidl_format. [0462fcfb809a] 2009-12-23 Timo Sirainen * src/master/master-settings.c: master: Log warning if unix_listener begins with base_dir's path. [6f67d3ce4ac4] * doc/example-config/conf.d/pop3.conf: example-config: Added missing pop3_save_uidl setting. [263068802498] * src/lda/Makefile.am: Install deliver -> dovecot-lda symlink. [7a0a89d81699] * src/master/master-settings.c: master: Give error message with unknown names in protocols setting. [e4e31fa845a5] * src/lib-storage/index/index-storage.c: mailbox_update() wasn't updating cache fields correctly. [8f2c4d0f7247] * src/lib-storage/index/maildir/maildir-storage.c: maildir storage: Don't keep memory pointing to mailbox list. Storage is no longer directly related to mailbox list, and the list may be freed. [f4b3e4366e3e] * src/dsync/dsync-worker-local.c: dsync convert: Skip namespaces that have non-empty location setting. [c3423cfc5244] * doc/example-config/conf.d/master.conf: example-config: Comment fix. [9eb28fc864db] * src/imap/cmd-list.c: imap: LIST "" inbox shouldn't crash when using namespace with "INBOX." prefix. [35dbb3595beb] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Fixed potential assert-crashes with "Duplicate file entry" handling. [c8322124d615] * doc/example-config/conf.d/mail.conf: example-config: Fixed shared namespace example. [f011d7801572] 2009-12-22 Timo Sirainen * src/login-common/login-settings.c: *-login: Removed redundant %{hostname} variable. [07e688afe81b] * src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib /test-var-expand.c, src/lib/var-expand.c: var_expand(): Added support for built-in host, pid and env:* variables. [e1b725d02c30] * src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c: mdbox: Fixed rebuilding mdbox storage. [c3d85a07888c] * src/lib-storage/index/dbox-common/dbox-file.c: dbox: Added assert. [824b7072c6d9] * src/lib/istream-seekable.c, src/lib/test-istream-seekable.c: istream-seekable: If we're immediately at EOF after copying buffer to file, don't corrupt the buffer. [5d7ee047667f] * src/lib/mempool-system.c: DEBUG: i_free() now clears the memory before freeing it. [19787c343ef1] * src/master/main.c: master: When writing startup errors to stderr, use the correct type prefix. [76af32fae1e2] 2009-12-21 Timo Sirainen * src/dsync/dsync-worker-local.c: dsync: If mailbox exists in both sides, create it as name_guid in other side. [e3db0a5889b7] * src/dsync/dsync-brain.c, src/dsync/dsync-data.h, src/dsync/dsync- proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync- proxy.c, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker- private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/test-dsync-brain.c, src/dsync/test-dsync-proxy-server- cmd.c, src/dsync/test-dsync-worker.c, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c, src/lib-storage/mailbox- list.h: dsync: Write mailbox changelog records using original timestamps. [eba3e50fef36] 2009-12-18 Timo Sirainen * src/dsync/dsync.c: dsync: Updated usage. [cf20258a44ed] * src/dsync/dsync.c: dsync: Updated -a parameter description. [1f2bef73d052] 2009-12-17 Timo Sirainen * src/imap/imap-fetch.c: imap: Refresh index before starting a FETCH, so it sees updated flags immediately. [bb04510465d3] * src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-plugin.h, src/plugins/acl/acl-storage.c, src/plugins/notify/notify-storage.c, src/plugins/quota/quota- plugin.c, src/plugins/quota/quota-plugin.h, src/plugins/quota/quota- storage.c: plugins: Simplified code by using mailbox_allocated hook. [8e9e67a94e16] 2009-12-16 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: verbose_ssl: Don't log SSL info messages with "BIO failed" prefix. [55baae8ed874] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- thread-private.h, src/lib-storage/index/index-thread.c, src/lib- storage/mail-storage-hooks.c, src/lib-storage/mail-storage-hooks.h: lib-storage: mailbox_index_opened hook renamed to mailbox_opened. [43239594b65b] * src/lib-storage/mail-storage.h: mail-storage.h: Another comment update. [c339b0f7d087] * src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c: lib-storage: Don't clear errors unnecessarily (and inconsistently). [1cb0e7cf3750] * src/lib-storage/mail-storage.h: mail-storage.h: Updated comments, moved around functions. [6ee8264b0284] * src/doveadm/doveadm-mail.c, src/dsync/dsync-worker-local.c, src/imap /cmd-close.c, src/imap/cmd-select.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/index- sync.c, src/lib-storage/list/index-mailbox-list-sync.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h, src/lib-storage/test-mailbox.c, src/lmtp/commands.c, src/plugins/expire/expire-tool.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c, src/plugins/mbox-snarf/mbox- snarf-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota /quota-storage.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-sync.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c: lib-storage: Changed mailbox_sync() and mailbox_sync_deinit() APIs. Although we're already in beta stage, this is simple enough of a change that it shouldn't matter much. Having syncing also return status information made the API ugly and the status information wasn't even wanted all that often. [50364f04cf13] * src/imap/imap-sync.c, src/lib-storage/mail-storage.h: Removed MAILBOX_SYNC_AUTO_STOP sync flag. It wasn't used anywhere. [c17386a4e594] * src/lib-lda/lmtp-client.c: lmtp client: data_output_callback may have been called unnecessarily. [c96b02a477a0] * src/lib-storage/mail-storage-service.c: mail storage service: When duping settings, they need to be also checked. The checking part may also parse some settings and store data to the structures. [2f554f19adb5] * src/lib/abspath.c: t_get_current_dir(): Don't overflow buffer with >128 length directories. [482d43792090] * src/lib/lib-signals.c: lib-signals: Compile fix for Hurd (SA_SIGINFO not available). Based on patch by Marco Nenciarini. [9c2fe6d0b684] * src/lib-storage/index/shared/shared-list.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-fs.h, src/lib- storage/list/mailbox-list-maildir-iter.c, src/lib-storage/list /mailbox-list-maildir.c, src/lib-storage/list/mailbox-list- maildir.h, src/lib-storage/mailbox-list.h: Avoid using PATH_MAX. [e7cd1b10f18b] * src/lib/abspath.c, src/lib/abspath.h, src/lib/eacces-error.c, src/lib/nfs-workarounds.c: Added t_get_current_dir() and use it instead of getcwd(). [13be6ac759ee] * src/lda/main.c, src/master/main.c: Use t_abspath() instead of duplicating code. [28a14e2fe5d6] * src/lib/failures.c: Don't use static sized buffers for writing log open failure errors. [28ff2944d4e9] * src/lib-master/master-service-settings.c: lib-master: Use t_abspath() to resolve relative path, not realpath(). [876990dc41c2] 2009-12-15 Timo Sirainen * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h, src/lmtp/main.c, src/util/script.c: mail storage service: Some flag enums were missing FLAG_ in the middle. [569206178c09] * src/doveadm/doveadm-auth.c, src/lib-auth/auth-master.c, src/lib-auth /auth-master.h, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-storage-service.h, src/lmtp/main.c: Idle-disconnecting auth master connections is now optional. LMTP no longer does it. [3907cc4ecc4b] * doc/example-config/conf.d/master.conf, src/imap/imap-settings.c, src/pop3/pop3-settings.c: imap, pop3: Set default process limit to 1024, like it was in v1.x. [eb5795c49550] * src/master/master-settings.c: config: Don't fail if process_min_avail is set and process_limit is the default. [72a0ec4b7e26] * src/lmtp/client.c: lmtp: Increased initial client pool size. [caee83356d7b] * src/lib/lib-signals.c: lib-signals: Set signal pipe fds non-blocking to make sure read/write doesn't hang. [2d7e2e76a100] * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h, src/plugins/quota/quota-storage.c: maildir: Always add S=size to filenames. It's necessary for using zlib plugin and doesn't hurt much anyway. [eabe311c8649] * configure.in, src/lib/env-util.c: Compile fix for systems where unsetenv() returns void. FreeBSD 6.4, for example. [617fa0739538] * src/lmtp/commands.c: lmtp: Don't lose first 128k of data with >128k mails. [1aea146d39e1] 2009-12-14 Timo Sirainen * configure.in, src/plugins/fts-solr/Makefile.am, src/plugins/fts- squat/Makefile.am, src/plugins/imap-acl/Makefile.am, src/plugins /imap-quota/Makefile.am, src/plugins/mail-log/Makefile.am, src/plugins/trash/Makefile.am: OSX: Don't try add plugin dependencies. It just breaks plugin loading. [5df19422d561] * src/dsync/Makefile.am: Makefile: Compile fix for systems requiring libiconv. [394a63985b33] * src/imap/imap-settings.c: imap_client_workarounds defaults to empty now, not deprecated outlook-idle. [c86764388c69] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Fixed deleting mailboxes that didn't have expunged messages. [bef8da2e6b0c] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Support a single-namespace configuration. If a mailbox is deleted, its contents are merged with the existing expunged messages. [b2f31df5f5da] * src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-plugin.h, src/plugins/lazy-expunge/lazy-expunge- plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/notify/notify-storage.c, src/plugins/quota/quota- plugin.c, src/plugins/quota/quota-plugin.h, src/plugins/quota/quota- storage.c: plugins: Use mail_namespace_storage_added hook instead of mailbox_list_created. In mailbox_list_created the storage hasn't yet overridden the list functions. [43895027cab9] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-storage- hooks.c, src/lib-storage/mail-storage-hooks.h: lib-storage: Added mail_namespace_storage_added hook. [bc9dbd257811] * src/imap/cmd-copy.c: imap COPY: Don't give "fetch stream header+body" hint to lib- storage. Usually copying is done by hard linking, not reading the whole message body. [64a01185564b] 2009-12-13 Timo Sirainen * .hgsigs: Added signature for changeset 594a349067f6 [52672e49c428] * .hgtags: Added tag 2.0.beta1 for changeset 594a349067f6 [6baa8073eaf3] * TODO, configure.in: Released v2.0.beta1. [594a349067f6] [2.0.beta1] * doc/example-config/Makefile.am: Makefile: Delete example-config/README in distclean. [8610b6e687e5] * src/lib-index/test-mail-index-transaction-update.c: mail-index-transaction-update unit test fix. [240739b27688] * doc/example-config/Makefile.am: Makefile: Add example-config/README.in to tarballs. [1c2e553809b2] * src/lib-storage/index/dbox-common/dbox-storage.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/mailbox- uidvalidity.c, src/lib-storage/mailbox-uidvalidity.h: dovecot-uidvalidity*: Create files with correct permission. [7f2e9c793af8] * src/lib-storage/mailbox-list.c: mailbox log: Create file with correct permission. [d4c645713656] * src/lib-master/master-login-auth.c, src/lib-master/master-login- auth.h, src/lib-master/master-login.c, src/lib-master/master- login.h, src/lib-master/master-service-private.h, src/lib-master /master-service.c: imap, pop3: Close auth/config connections when we stop accepting more connections. [a0d99b374aa4] * src/lib-master/master-service.c: lib-master: Close listener fds when we stop accepting more connections. [32949365f28d] * src/util/script.c: script: Close extra fds before executing post-login script. [484be10242a7] * src/config/config-request.c: config: Compiler warning fix. [20d54d23785a] * .hgignore, configure.in, src/plugins/Makefile.am, src/plugins/convert/Makefile.am, src/plugins/convert/convert- plugin.c, src/plugins/convert/convert-plugin.h, src/plugins/convert /convert-storage.c, src/plugins/convert/convert-storage.h, src/plugins/convert/convert-tool.c: Deleted convert plugin and convert-tool. dsync replaces them. [2c9b01cb6e08] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-settings.c: Added setting aliases: mail for mail_location, both of them for namespace location. Removed special case handling for changing mail to mail_location in userdb. [da03d0ecd3e7] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: settings parser: Added support for setting name aliases. [17596238d8ea] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: lib-settings: settings_get_time/size() are now public. [3bcd4697a7cc] * src/plugins/expire/expire-env.c, src/plugins/expire/expire-env.h, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire- tool.c: expire plugin: Changed configuration. Instead of: expire = box1 7 box2 14 expire_altmove = box3 4 use now: expire = box1 7d expire2 = box2 14d expire3 = box3 4d altmove Instead of 7d and 14d it's also possible to use 1w and 2w. All the regular "time" setting values work actually, minimum expire time is 1sec. [46691becc45e] * src/imap/main.c, src/pop3/main.c: imap, pop3: Don't crash if post-login socket path wasn't given. [06bddee57586] * src/util/script.c: script: Don't load mail plugins. [093865257852] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: Added mail_storage_service_restrict_setenv(). [2a74d458339d] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: Mail storage service: Added MAIL_STORAGE_SERVICE_NO_PLUGINS flag. [21c0676961e8] 2009-12-11 Timo Sirainen * src/util/Makefile.am, src/util/script.c: script: Added enough features to get rawlog working again. Also added -d parameter to drop privileges before executing script. [b07f913040b1] * src/imap/main.c, src/lib-master/master-login.c, src/lib-master /master-login.h, src/pop3/main.c, src/util/Makefile.am, src/util/script.c: imap, pop3: Added back ability to run post-login scripts. [e9cbc461c525] * src/lib/Makefile.am, src/lib/abspath.c, src/lib/abspath.h: Added t_abspath*(). [395b53cebaac] * src/lib/Makefile.am, src/lib/strfuncs.c, src/lib/strfuncs.h, src/lib /test-lib.c, src/lib/test-lib.h, src/lib/test-strfuncs.c: Added p_strarray_dup(). [c2386c4594d5] * src/imap/main.c, src/pop3/main.c: imap, pop3: If client creation fails, update lib-master connection count. [f0fd3bd7c122] * src/imap/main.c, src/lib-master/master-login.c, src/pop3/main.c: *-login: Check for missing username in lib-master code. [6c9d97878efe] * src/anvil/main.c, src/lib-master/master-interface.h, src/master /service-anvil.c, src/master/service-anvil.h, src/master/service- log.c, src/master/service-process.c, src/master/service.c, src/master/service.h: anvil: After master gets a SIGHUP, start logging via new log process. [802b9ebe79e6] * src/lib-master/master-login.c: lib-master: Minor error message fixes. [32ad99f146d1] 2009-12-10 Timo Sirainen * src/dsync/Makefile.am: dsync tests: Link also with libcharset. [8196200d4fb9] * src/dsync/Makefile.am: dsync tests: Link with iconv libraries to avoid compiler errors in some systems. [868c0d6462f4] * src/lib/bsearch-insert-pos.h: Compile fix for non-gcc. [b6e4cb26c3cb] 2009-12-09 Timo Sirainen * src/login-common/main.c: *-login: If we've a pending shutdown and auth connection gets lost, kill clients. If master and auth processes had died, we would never get another connection. [a164075ea33a] * src/lib-auth/auth-client-request.c, src/lib-auth/auth-client.c, src /lib-auth/auth-client.h, src/login-common/sasl-server.c: *-login: Get auth connection cookie earlier so its lookup can't fail. [32e77c570529] * src/lib-auth/auth-client.c: auth client: Added asserts. [3ac17da0d723] * src/lib-storage/index/mbox/mbox-sync.c: mbox: If mbox parsing notices unexpected corruption, don't assert- crash. [b15a3277d7d4] * src/lib-storage/index/mbox/istream-raw-mbox.c: mbox: Log an error if From_-line gets lost/corrupted unexpectedly. [576abd71121c] * src/plugins/expire/expire-env.c: expire: Settings now support spaces in mailbox names by using quoted strings. [ba7a62453316] * src/plugins/virtual/virtual-sync.c: virtual optimization: If saved highest-modseq matches current one, don't try to find higher ones. [b7ce62749fd7] * src/plugins/virtual/virtual-sync.c: virtual: Fixed updating virtual mailbox based on flag changes. [aa97e059ca32] * src/doveadm/doveadm-dump-index.c: doveadm dump index: Decode virtual storage's index header. [8df262408a10] * src/lib-master/master-service.c: lib-master: Die on SIGINT only if we're running standalone or not handling clients. [e6362e056ef2] * src/dsync/dsync.c: dsync: Removed MASTER_SERVICE_FLAG_STD_CLIENT flag, since it's not really one. [bbdfe2ef328b] * .hgignore, doc/example-config/Makefile.am, doc/example- config/README.in: Install README file to config directory, which points to example- config. [b1e0c10143fa] * configure.in: configure: Added -llber to ldap libs. Fixes linking in some systems. Patch by Marco Nenciarini. [7456f5768184] * src/lib/process-title.c: Compile fix for non-Linux. [3d13ea0c687f] 2009-11-27 Pascal Volk * doc/dovecot-initd.sh: doc/dovecot-initd.sh extended LSB run-time dependencies [73679e39f072] 2009-12-08 Timo Sirainen * src/plugins/quota/quota.c: quota: Minor code cleanup. [b166d2cc49a6] * src/plugins/quota/quota-maildir.c, src/plugins/quota/quota- private.h, src/plugins/quota/quota.c: Maildir++ quota: % limits weren't updated when limits were read from maildirsize. [4002e686d38d] * src/lib/compat.c: Fixed my_strptime() wrapper. [2f294ba2168a] * src/lib/lib.c, src/lib/process-title.c, src/lib/process-title.h: process title hack: Free allocated memory at deinit. [32aba99c2e4f] * src/login-common/ssl-proxy-openssl.c: *-login: Fixed a minor memory leak. [328e42919f2f] * doc/example-config/conf.d/ssl.conf: example-config: Updated ssl_key_password comments. [3badaa16d524] * doc/example-config/conf.d/ssl.conf, src/login-common/login- settings.c, src/login-common/login-settings.h, src/login-common/ssl- proxy-openssl.c: *-login: ssl_ca_file setting changed to ssl_ca. [0da209ff80d5] * src/imap/cmd-list.c: imap: Fixed listing namespaces with multiple hierarchy separators. [3a1f6c1a8485] * src/config/config-parser.c, src/lib-settings/settings.c: config parser: If line ends with '\' continuation, remove extra whitespace before it. [05cfc267aa3d] 2009-12-07 Timo Sirainen * src/plugins/expire/expire-env.c: expire plugin: Log debug messages with i_debug(), not i_info(). [93b3a6e63531] * src/plugins/expire/expire-env.c: expire plugin: Fixed debug logging to use mail_debug setting. [84e400f3fc1f] * src/lib/module-dir.c: Fixed compiling without module support. [7bfb37044928] * src/auth/main.c, src/config/config-parser.c, src/dict/main.c, src /lib-storage/mail-storage-service.c, src/lib/module-dir.c, src/lib /module-dir.h: module_dir_load*() API changed to take settings struct, with debug field. Fixed debug logging to also go from info log to debug log. [55c42d2f7002] * src/lmtp/lmtp-proxy.c: lmtp proxy: Fixed output timeout handling. [abe02cf3bd47] * src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c: imap-* plugins: Advertise capability only if user actually has plugin loaded. [7330a21e7d03] * src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: lib-storage: Added mail_user_is_plugin_loaded(). [1062e6ca6310] * src/lib-storage/mail-storage-service.c: lib-storage: Added support for per-user plugins. [932afc022ea1] * src/lib-storage/mail-storage-hooks.c: lib-storage: Use module_get_plugin_name() instead of doing it ourself. [784d2920761f] * src/lib/module-dir.c, src/lib/module-dir.h: Added module_dir_load_missing() and module_get_plugin_name(). [f0a6461b86ee] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp- proxy.c: lmtp proxy fixes. [3662241f75f2] * src/lib-storage/mail-storage-hooks.c, src/lib-storage/mail-storage- hooks.h: lib-storage: Forgot to add new files for plugin API change. [ea17056d2df9] 2009-12-04 Timo Sirainen * src/lib/env-util.c: Check return value if unsetenv(). [927cc04cd5e8] * src/lib-storage/Makefile.am, src/lib-storage/list/index-mailbox- list-sync.c, src/lib-storage/list/index-mailbox-list.c, src/lib- storage/mail-namespace.c, src/lib-storage/mail-namespace.h, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib/module-dir.c, src/lib/module-dir.h, src/lib/strfuncs.c, src/lib/strfuncs.h, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-plugin.h, src/plugins/acl/acl-storage.c, src/plugins/autocreate/autocreate- plugin.c, src/plugins/autocreate/autocreate-plugin.h, src/plugins/convert/convert-plugin.c, src/plugins/convert/convert- plugin.h, src/plugins/expire/expire-plugin.c, src/plugins/expire /expire-plugin.h, src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-lucene/fts-lucene-plugin.h, src/plugins/fts-solr /fts-solr-plugin.c, src/plugins/fts-solr/fts-solr-plugin.h, src/plugins/fts-squat/fts-squat-plugin.c, src/plugins/fts-squat/fts- squat-plugin.h, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts- plugin.h, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap- acl-plugin.c, src/plugins/imap-acl/imap-acl-plugin.h, src/plugins /imap-quota/imap-quota-plugin.c, src/plugins/imap-quota/imap-quota- plugin.h, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.h, src/plugins/listescape/listescape-plugin.c, src/plugins/listescape /listescape-plugin.h, src/plugins/mail-log/mail-log-plugin.c, src/plugins/mail-log/mail-log-plugin.h, src/plugins/mbox-snarf/mbox- snarf-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.h, src/plugins/notify/notify-plugin-private.h, src/plugins/notify /notify-plugin.c, src/plugins/notify/notify-plugin.h, src/plugins/notify/notify-storage.c, src/plugins/quota/quota- plugin.c, src/plugins/quota/quota-plugin.h, src/plugins/quota/quota- storage.c, src/plugins/trash/trash-plugin.c, src/plugins/trash /trash-plugin.h, src/plugins/virtual/virtual-plugin.c, src/plugins/virtual/virtual-plugin.h, src/plugins/zlib/zlib- plugin.c, src/plugins/zlib/zlib-plugin.h: lib-storage: Plugin hook API changed to support per-user plugins within a process. [a9eda7672869] * src/config/settings-get.pl: Changed settings-get.pl to understand the MEMBER() macro removal. [3448f1bc6966] * src/anvil/anvil-settings.c, src/auth/auth-settings.c, src/auth/auth.c, src/auth/db-ldap.c, src/auth/db-sql.c, src/auth /mech-anonymous.c, src/auth/mech-apop.c, src/auth/mech-cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech-external.c, src/auth/mech- gssapi.c, src/auth/mech-login.c, src/auth/mech-ntlm.c, src/auth /mech-otp.c, src/auth/mech-plain.c, src/auth/mech-rpa.c, src/auth /mech-skey.c, src/auth/mech-winbind.c, src/auth/passdb-bsdauth.c, src/auth/passdb-checkpassword.c, src/auth/passdb-ldap.c, src/auth /passdb-pam.c, src/auth/passdb-passwd-file.c, src/auth/passdb- passwd.c, src/auth/passdb-shadow.c, src/auth/passdb-sia.c, src/auth /passdb-sql.c, src/auth/passdb-vpopmail.c, src/auth/userdb- checkpassword.c, src/auth/userdb-ldap.c, src/auth/userdb-nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth /userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb-vpopmail.c, src/config/config-settings.c, src/dict /dict-settings.c, src/imap-login/imap-login-settings.c, src/imap /imap-settings.c, src/lib-dict/dict-client.c, src/lib-dict/dict- db.c, src/lib-dict/dict-file.c, src/lib-dict/dict-sql.c, src/lib- index/mail-index-strmap.c, src/lib-index/mailbox-list-index.c, src /lib-lda/duplicate.c, src/lib-lda/lda-settings.c, src/lib-master /master-service-settings.c, src/lib-settings/settings-parser.c, src /lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlite.c, src/lib-sql/sql-api.c, src/lib-storage/index/cydir /cydir-storage.c, src/lib-storage/index/dbox-multi/mdbox-settings.c, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib- storage/index/maildir/maildir-settings.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-settings.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/index/shared /shared-list.c, src/lib-storage/index/shared/shared-storage.c, src /lib-storage/list/mailbox-list-fs.c, src/lib-storage/list/mailbox- list-maildir.c, src/lib-storage/mail-storage-settings.c, src/lib- storage/test-mail-storage.c, src/lib-storage/test-mailbox.c, src/lib/macros.h, src/lib/mempool-alloconly.c, src/lib/mempool- datastack.c, src/lib/mempool-system-clean.c, src/lib/mempool- system.c, src/lib/mempool-unsafe-datastack.c, src/lmtp/lmtp- settings.c, src/log/log-settings.c, src/login-common/login- settings.c, src/master/master-settings.c, src/plugins/acl/acl- backend-vfile.c, src/plugins/convert/convert-storage.c, src/plugins /fts-lucene/fts-backend-lucene.c, src/plugins/fts-solr/fts-backend- solr.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/quota /quota-maildir.c, src/plugins/virtual/virtual-storage.c, src/pop3-login/pop3-login-settings.c, src/pop3/pop3-settings.c, src /ssl-params/ssl-params-settings.c, src/util/maildirlock.c: Removed MEMBER() macro. Require C99 style struct initializer. [b757dab45756] 2009-12-03 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Removed logging extraneous errors, again. [48b8752c793d] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Removed logging extraneous errors. [68309cd6548d] * src/lib-storage/index/maildir/maildir-copy.c: maildir_copy_preserve_filename=yes could have caused crashes. [2277467334fb] 2009-12-02 Timo Sirainen * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c, src/auth/auth-worker-server.c, src/auth/passdb.c, src/auth/password-scheme.c, src/auth/userdb.c, src/config/config- parser.c, src/imap/cmd-list.c, src/imap/imap-commands-util.c, src/imap/imap-search.c, src/imap/imap-sync.c, src/lib-dict/dict- file.c, src/lib-dict/dict.c, src/lib-index/mail-index-map.c, src/lmtp/lmtp-proxy.c, src/master/master-settings.c, src/master /service-listen.c, src/master/service-log.c, src/master/service- monitor.c, src/master/service.c, src/ssl-params/main.c: Use array_foreach() more. [ad3fb3f929fc] * src/lib/array.h, src/lib/test-array.c: Added array_foreach_idx() [cc4e9d1fef7e] 2009-11-25 Timo Sirainen * src/auth/mech-digest-md5.c, src/auth/password-scheme.c, src/lib- index/mail-index-sync-keywords.c, src/lib-index/mail-transaction- log-append.c, src/lib/buffer.c, src/lib/buffer.h, src/pop3-login/client.c: Removed buffer_create_static_hard(). buffer_create_data() handles most of the situations where it was wanted. [f8151445662e] * src/lib-storage/mail-storage-service.c: mail_privileged_group was parsed as user, not group. Patch by Apple. [a1018630276b] 2009-11-24 Timo Sirainen * src/lmtp/lmtp-proxy.c: lmtp proxy: Crashfix on hanging connections. [04b0ee571f47] * src/lmtp/lmtp-proxy.c: lmtp proxy: Assert-crashfix to handling DATA input timeout. [99e069c98709] * src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: lmtp proxy: More error handling fixes. [96152031f5d9] * src/lmtp/lmtp-proxy.c: lmtp proxy: Don't crash if all RCPT TOs fail to a remote. [8f6995923fbd] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp- proxy.c: LMTP client API changes. Should be easier to use now. [a144e918938c] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp- proxy.c: lmtp proxy: Error handling fix. [9500cfbe5dbf] 2009-11-23 Timo Sirainen * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp- proxy.c: lmtp: Error handling fixes. [6ab1e2f4ca55] * src/pop3-login/client.c: pop3-login: Don't crash in QUIT command. [aba3cb15f082] * src/lmtp/lmtp-proxy.c: lmtp proxy: Fix to handling "no new input" reads. [c5c360a88067] * src/lmtp/lmtp-proxy.c: lmtp proxy: Stalling remote servers weren't detected correctly. [4eadbf965d1f] * src/lib/istream-tee.c, src/lib/istream-tee.h, src/lib/test-istream- tee.c: Added tee_i_stream_child_is_waiting(). [9d878b1dc028] * src/imap/cmd-list.c, src/imap/cmd-status.c, src/imap/imap-commands- util.c, src/imap/imap-commands-util.h, src/imap/imap-commands.c, src/imap/imap-commands.h, src/imap/imap-status.c, src/imap/imap- status.h: imap: Don't send NONEXISTENT resp code to non-delete operations. [b79bc02aec6d] * src/lib-storage/mail-storage-service.c: mail storage service: And added missing #include for previous change. [ce0ff560cd80] * src/lib-storage/mail-storage-service.c: mail storage service: If chdir() fails with EACCES, give a better error message. [05b50522442f] * src/lib-lda/lmtp-client.c: lmtp client: Don't crash if lmtp_client_send_more() is called after failure. [c9f5b2734710] * src/plugins/fts-squat/squat-trie.c: fts-squat: Fixed searching multi-byte characters. [f34528b52196] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Changed index/uidlist mismatch from assert-crashing to logging an error. [aa8a12288c93] * src/lib-index/mail-index-sync-ext.c: lib-index: Replaced ext-header update assert with "index corrupted" error handling. [711fbedaad9d] * src/lib/Makefile.am: Makefile: Added UnicodeData.txt to distribution. [247f137f17d8] 2009-11-20 Timo Sirainen * src/lib/compat.h: OS X: Fixed compiler warning about missing fdatasync() prototypes. [940212bda6ea] * src/lib-index/mail-transaction-log.h: lib-index: MAIL_TRANSACTION_TYPE_MASK didn't contain the new _EXT_HDR_UPDATE32. [5ed426229f20] 2009-11-19 Timo Sirainen * src/lib-index/mail-transaction-log.h: lib-index: Updated MAIL_TRANSACTION_EXT_MASK to include thew new _EXT_HDR_UPDATE32. [b12f7da461e3] * src/doveadm/doveadm-dump-log.c, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index-sync-private.h, src/lib-index/mail-index- sync-update.c, src/lib-index/mail-index-transaction-export.c, src /lib-index/mail-transaction-log.h: mail_index_update_header_ext(): Couldn't handle >=64k headers. [8b3c802556a9] 2009-11-19 Pascal Volk * doc/dovecot-initd.sh: doc/dovecot-initd.sh added LSB-compliant info block. Updated base_dir detection. [7ad38188c36b] 2009-11-19 Timo Sirainen * src/lib-master/service-settings.h: Define inet_listener_settings array type. [8503b074bec0] * src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox- list.c, src/lib-storage/mailbox-list.h: Added mailbox_list_set_changelog_writable(). [d29bb46a1929] * src/lib-settings/settings-parser.c: Compiler warning fixes. [2789f87b6828] * src/master/master-settings.c: master: Give a nicer error message if duplicate listeners exist. [b21b3b373c74] * src/master/master-settings.c: master: Create base_dir with 0755 permissions, not 0777. [17eac5a18ce4] * src/dsync/dsync-brain.c, src/dsync/dsync-proxy-client.c, src/dsync /dsync-proxy-server-cmd.c, src/dsync/dsync-worker-local.c, src/dsync /dsync-worker-private.h, src/dsync/dsync-worker.c, src/dsync/dsync- worker.h, src/dsync/dsync.c, src/dsync/test-dsync-proxy-server- cmd.c, src/dsync/test-dsync-worker.c: dsync: Fixed problems with syncing mailbox names that are invalid on other side. [036db604f86c] * src/lib/compat.c, src/lib/compat.h: Added a wrapper for strptime() to work around issues with glibc. [0b101a864534] * src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c: dsync: Sync mailbox renames. [b99a19d5a93c] 2009-11-18 Timo Sirainen * src/master/service-listen.c: master: unix_listener's user/group wasn't being used. [ce18bbd3e964] * src/lmtp/client.c: lmtp: Use hostname setting. [6aa11c638f54] * src/dsync/dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync- proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync- worker-local.c, src/dsync/dsync-worker-private.h, src/dsync/dsync- worker.c, src/dsync/dsync-worker.h, src/dsync/dsync.c: dsync: If some uid/modseq changes couldn't be done, exit with different value. [9f2e8d230bd5] * src/lib-index/mail-cache-transaction.c, src/lib-index/mail-index- modseq.c, src/lib-index/mail-index-private.h, src/lib-index/mail- index-sync-update.c, src/lib-index/mail-index-sync.c, src/lib-index /mail-index-transaction-private.h, src/lib-index/mail-index- transaction.c, src/lib-index/mail-index.h, src/lib- storage/index/cydir/cydir-save.c, src/lib-storage/index/cydir/cydir- storage.h, src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib- storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index /dbox-single/sdbox-save.c, src/lib-storage/index/dbox-single/sdbox- storage.h, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-transaction.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/maildir/maildir-storage.h, src/lib-storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox /mbox-storage.h, src/lib-storage/list/index-mailbox-list-sync.c, src /lib-storage/mail-storage.h: Transaction commits can now track how many uid/modseq updates were ignored. [75d3d4374dda] * src/lmtp/client.c: lmtp: Don't leak a client timeout and crash later. [cc5d8a5deab2] * src/lib-storage/mail-storage-service.c: MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS: Also chdir() to home dir. [7664afedc7bb] * src/lmtp/main.c: lmtp: If -D parameter is given, enable core dumps. [4183f16e6f60] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail-storage-service: Added MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS flag. [dffe7da9ca2e] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: Added mail_storage_service_user_get_settings_parser(). [28cdf09c062b] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy-server.h, src/dsync/dsync-proxy.h: dsync: Added handshaking to proxy protocol. [a339eeca23fb] * src/dsync/Makefile.am, src/dsync/dsync.c: dsync: Fixed -u convert. [def159693f9a] * src/lib-auth/auth-master.c: lib-auth: Fixed "auth input" debug messages. [27c2692dbe42] 2009-11-17 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: layout=fs: Fixed listing mailboxes under INBOX with non-mbox storages. [0729e84246e9] * src/dsync/test-dsync-common.c: dsync: Minor unit test update. [e94d43687351] * src/dsync/dsync-brain.c, src/dsync/dsync-data.h, src/dsync/dsync- proxy.c, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.h, src/dsync/dsync.c, src/dsync/test-dsync-brain.c, src/dsync/test- dsync-proxy-server-cmd.c, src/dsync/test-dsync-proxy.c: dsync: Added support for different source/dest hierarchy separators. [ff403fe262e5] * src/dsync/dsync.c: dsync: Write usage directly to stderr instead of via logging. [a7be031eb51d] * src/dsync/dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync.c: dsync convert converts mailbox without proxying. Renamed -e parameter to "mirror". [22ffa2eb68c0] * src/dsync/dsync.c: dsync: Changed local/remote log prefixes. [415a87bdeacd] * src/dsync/dsync.c: dsync: Require "server" parameter to start in server mode. [7a206ede2e7e] * src/lib-storage/mail-user.c: mail_user_*home_expand(): Use home_expand_tilde() instead of duplicating the code. [ffac955d80ef] * src/lib-storage/index/dbox-multi/mdbox-storage.c: mdbox: mailbox_update() was updating uidvalidity to random values. [d1d810348e65] * src/dsync/dsync-worker-local.c: dsync: Try creating INBOX before fallbacking to just updating it. [9670b1268a9a] * src/auth/main.c: auth: Unload modules earlier to avoid crashes. [3f0752af52db] * src/dsync/dsync-worker-local.c, src/imap/cmd-copy.c, src/imap/cmd- store.c, src/imap/imap-expunge.c, src/imap/imap-fetch.c, src/imap /imap-search.c, src/lib-storage/index/index-search-result.c, src /lib-storage/index/index-search.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-thread.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h, src/lib-storage/test-mailbox.c, src/plugins/convert/convert-storage.c, src/plugins/expire/expire- tool.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts /fts-storage.c, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-storage.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- search.c, src/plugins/virtual/virtual-storage.h, src/plugins/virtual /virtual-sync.c, src/pop3/pop3-client.c, src/pop3/pop3-commands.c: mailbox_search_next*() API changed to return bool. If search fails, it'll be noticed anyway by mailbox_search_deinit(). [0156d98bc822] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Minor error message improvement. [f8e03cda78d9] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added global -v (verbose) and -D (debug) options. Removed "doveadm -v". [93c87044469f] * src/lib-lda/lmtp-client.c: lmtp client: Fix to handling multiple recipients (and errors). [3836c67fa5f1] * src/dsync/dsync-data.c: dsync: dsync_mailbox_dup() wasn't duping cache fields. [062fe605cd19] * src/lmtp/client.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h: lmtp: memdup default settings so RCPT TO settings lookups won't overwrite them. [6431c35a9670] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp- proxy.c: lmtp proxy: Fixes to error handling. [d784be144b4d] * src/lmtp/lmtp-proxy.c: lmtp proxy: If remote hangs without replying to end-of-DATA dot, don't crash. [26eb1b52a23f] 2009-11-16 Timo Sirainen * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-brain-msgs.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy-client.c, src/dsync /dsync-proxy-server-cmd.c, src/dsync/dsync-proxy.c, src/dsync/dsync- proxy.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker- private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/test-dsync-brain.c, src/dsync/test-dsync-common.c, src/dsync/test-dsync-proxy.c, src/dsync/test-dsync-worker.c, src/dsync/test-dsync-worker.h: dsync: Sync mailboxes' cache fields. [278d4da53141] * src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache.h: mail_cache_register_fields(): Update caching decisions from input fields. [d7e946e3c0c4] * src/lib-storage/index/index-status.c, src/lib-storage/index/index- storage.c, src/lib-storage/mail-storage.h: lib-storage: Added support for listing/adding cache fields. [69c2aa08cf2c] * configure.in, src/config/all-settings.h, src/config/config-parser.c, src/config/settings-get.pl, src/lib-master/service-settings.h, src/master/master-settings.h: config: Allow settings plugins to specify also new default services. [e18645b47984] * src/lib/module-dir.c, src/lib/module-dir.h: Added module_get_symbol_quiet(). [12434655f2e5] * src/lmtp/lmtp-proxy.c: lmtp proxy: After killing a hanging server connection, try reading more input. [5ecda3558f2a] * src/lmtp/lmtp-proxy.c: lmtp proxy: When client fails, don't stop reading DATA input until "." is seen. [c48703f5ce25] * src/lib-lda/lmtp-client.c: lmtp client: Fail immediately if server disconnects. [fed94dd1991b] * src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c, src/dsync /dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync /dsync-worker-local.c, src/dsync/dsync-worker-private.h, src/dsync /dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/test-dsync- proxy-server-cmd.c, src/dsync/test-dsync-worker.c, src/dsync/test- dsync-worker.h: dsync: Fixed subscription syncing to work with namespace prefixes. [b5b253d35612] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy-server.h, src/dsync/dsync-proxy.h: dsync: Added 15 min connection timeout. [2e4fc44c6160] * src/dsync/dsync-worker-local.c: dsync: Compiler warning fix. [32a754b2d79b] 2009-11-13 Timo Sirainen * src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c, src/dsync /dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy- client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy- server.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker- private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/test-dsync-brain.c, src/dsync/test-dsync-proxy-server- cmd.c, src/dsync/test-dsync-worker.c, src/dsync/test-dsync-worker.h: dsync: Added support for subscription syncing. [b63fd6156663] * src/lib-storage/mailbox-list.c: Delay initializing mailbox changelog index, so mbox has time to override its path. [4267c30ded97] * src/lib/array.h: array_bsearch(): Cast return value to proper type. [38941d54ec5d] * src/dsync/dsync-worker-local.c: dsync: Fixed getting mailbox list GUID when using non-default hierarchy separator. [d1ace3dbc94a] * src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/test-dsync-proxy-server-cmd.c: dsync: Avoid hanging. [05893dd71338] * src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c: dsync: Wait for all saves to finish before updating mailboxes' metadata. The mailbox updating could try closing the same mailbox that still has an unfinished save. [513cff2a7008] * src/dsync/dsync-worker-local.c: dsync: Delay enabling modseqs until modseq>1 is seen. [00aba806af0b] * src/lib-index/mail-index-transaction-update.c: lib-index: Ignore modseq->1 updates, they can never happen. [2a2261f5a0be] 2009-11-12 Timo Sirainen * src/anvil/main.c, src/config/main.c, src/log/main.c, src/ssl- params/main.c: anvil, config, log, ssl-params: Drop privileges as configured. [4933856b86d7] * src/anvil/main.c, src/master/service-process.c: anvil: Stay alive until it has no more clients. [506fba223006] * src/auth/auth-worker-client.c, src/auth/auth-worker-client.h, src/auth/main.c: auth worker: Don't start breaking if connection to auth master dies. [1c29c69248e0] * src/auth/main.c: auth: Unload plugins after everything else is deinitialized. Fixes a crash at deinit when SQL drivers were plugins. [8d47c9dbe9cb] * src/lib-storage/index/maildir/maildir-save.c: maildir: Recent flags weren't set correctly. [aeac8a0cd60a] * src/lib-sql/driver-mysql.c: Increased initial mysql driver memory pool size. [675e1e198dce] * src/lib-auth/auth-server-connection.c: auth client: Don't crash after aborting auth requests. [49f6fc5b60a8] * src/lib-mail/rfc2231-parser.c, src/lib-mail/test-rfc2231-parser.c: rfc2231 parser: Fixed parsing "key*". [037299bb2199] 2009-11-11 Timo Sirainen * src/master/main.c: Removed duplicate master_service variable. Patch by Apple. [3baf1cb9fdda] * src/auth/auth.c: auth: Another try at connecting to anvil-auth-penalty while still root. [75b48fa3aec4] * src/auth/auth-request-handler.c, src/auth/auth.c, src/auth/auth.h: auth: Connect to anvil-auth-penalty before dropping root privileges. [9bec70f26637] * src/master/capabilities-posix.c: master: Give master also CAP_KILL capability. [49d92c3fa17a] * src/lda/main.c, src/lib-lda/mail-deliver.c: mail_deliver_save() now takes mailbox name as UTF-8 and internally converts to mUTF-7. [05d94015d0ef] 2009-11-10 Timo Sirainen * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: Forgot to commit mail_storage_service_user_get_input(). [c21543e87190] * src/plugins/acl/acl-backend-vfile.c: acl: Merge group rights if user belongs to more than one. [b55069127635] * src/plugins/acl/acl-mailbox-list.c: acl: mailbox_name_status() shouldn't hide its existence if user has any rights to it. [9cf3caefec2c] * src/lib-lda/lda-settings.c, src/lmtp/commands.c: recipient_delimiter: Allow multi-character delimiters. [0d659ac4656d] * src/lib-lda/lda-settings.c, src/lib-lda/lda-settings.h, src/lmtp/client.h, src/lmtp/commands.c: Added recipient_delimiter setting that LMTP server now uses. [51160ecbacaf] * src/imap-login/client-authenticate.c, src/login-common/client- common-auth.c, src/login-common/client-common.c, src/login-common /client-common.h, src/pop3-login/client-authenticate.c: *-login: Removed per-connection auth failure penalties. Trust auth server to do it. [7d9cd9b7da08] * src/auth/Makefile.am, src/auth/auth-penalty.c, src/auth/auth- penalty.h, src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth/auth-request.h, src/auth/mech.h, src/auth/passdb.h, src/auth/userdb.h: auth: Added auth failure penalty tracking based on remote IP address. [fbff8ca77d2e] * src/lib-master/anvil-client.c, src/lib-master/anvil-client.h, src /login-common/main.c: anvil client: Added more features. [13da60f934da] * src/lib-auth/auth-server-connection.c: lib-auth: Don't crash if callback destroys the auth client. [9702da6d3b6a] * src/anvil/Makefile.am, src/anvil/anvil-connection.c, src/anvil /anvil-settings.c, src/anvil/common.h, src/anvil/main.c, src/anvil/penalty.c, src/anvil/penalty.h: anvil: Added support for penalty tracking. [ea209b33ef96] 2009-11-09 Timo Sirainen * .hgsigs: Added signature for changeset d52d842e8f81 [e6840e39ebc7] * .hgtags: Added tag 2.0.alpha3 for changeset d52d842e8f81 [87622c521233] * configure.in: Released v2.0.alpha3. [d52d842e8f81] [2.0.alpha3] * src/lib/unichar.c, src/lib/unichar.h: Added uni_utf8_str_is_valid(). [64df978b2926] * src/lib-lda/Makefile.am, src/lib-lda/mail-deliver.c: lib-lda: Log mailbox name using UTF-8, not mUTF-7. [d57dcba5dd24] * src/master/service-process.c: master: Don't suggest adding -D parameter to non-login processes. [5e92e1ed4e91] * src/auth/userdb-vpopmail.c: vpopmail: Removed vauth_open() call. Apparently it's not the right way. [d62c2361c3b6] * src/master/common.h, src/master/main.c: Removed all traces of auth-success file checking. The file no longer got written after pre/post-login process redesign and maybe it's too much trouble to get it back. [d861e380a059] * src/lib-index/mail-transaction-log-file.c: index: If we see duplicate transaction log files, avoid corrupting the newer one. [38d3e668dc1f] * src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: lmtp proxy: Add Received: header. [c11324abe1a8] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h: lmtp client: Added support for writing given string as headers. [147627c8433a] * src/lib-lda/lmtp-client.c: lmtp client: More fixes to handling RCPT TO failures. [353a30947b91] * src/lib-lda/lmtp-client.c, src/lmtp/lmtp-proxy.c: lmtp, lmtp client: More fixes to handling failures. [aa8729e340ba] * src/lmtp/lmtp-proxy.c: lmtp proxy: Added data input timeout. [2ad1ad1e1083] * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: lmtp: Disable idle timeout while proxying. [cb7b2901f1f8] * doc/example-config/conf.d/auth.conf, doc/example- config/conf.d/imap.conf, doc/example-config/conf.d/mail.conf, src/auth/auth-settings.c, src/config/config-request.c, src/imap /imap-settings.c, src/lib-settings/settings-parser.c, src/lib- settings/settings-parser.h, src/lib-storage/index/mbox/mbox- settings.c, src/lib-storage/mail-storage-settings.c: Added "time" (interval) setting type, which supports s/m/h/d/w suffixes. [7215f4142901] * doc/example-config/conf.d/auth.conf, doc/example- config/conf.d/imap.conf, doc/example-config/conf.d/mail.conf, doc /example-config/conf.d/master.conf, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/passdb-cache.c, src/config /config-request.c, src/imap/imap-settings.c, src/imap/imap- settings.h, src/lib-master/service-settings.h, src/lib-settings /settings-parser.c, src/lib-settings/settings-parser.h, src/lib- storage/index/dbox-multi/mdbox-settings.c, src/lib-storage/index /dbox-multi/mdbox-settings.h, src/lib-storage/index/mbox/mbox- settings.c, src/lib-storage/index/mbox/mbox-settings.h, src/lib- storage/index/mbox/mbox-storage.c, src/master/master-settings.c, src/master/master-settings.h, src/master/service-process.c, src/master/service.c, src/master/service.h: Added "size" setting type, which supports B/k/M/G/T suffixes. [4b663b9e63af] * src/lib-storage/index/index-mailbox-check.c: IDLE: After seeing a change, don't check for more changes every 0,5 seconds. [cd1ce06a0ee5] * src/lib-lda/lda-settings.c: lib-lda: If hostname setting is empty, default to system's hostname. [b93d2e668eba] * src/lmtp/lmtp-proxy.c: lmtp proxy: After all DATA input is read, stop trying to read more of it. [84a1776dd1c3] * src/lib-lda/lmtp-client.c: lmtp client: Handle failures better. [09dd23dd6ee0] * src/lib-master/master-service.c: lib-master: Don't try to close config fd early after all. Login processes can do another config lookup when TLS hostname is given. [e556ff1dbab1] * src/lmtp/commands.c: lmtp: Fixed accessing uninitialized memory. [2526861b8417] * src/lmtp/commands.c: lmtp: Read protocol=lmtp settings. [409c782237d2] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: Added mail_storage_service_init_settings(). [4109e7f29735] * src/lmtp/Makefile.am: lmtp: Link smtp-client.o explicitly so Sieve can use it. [26e6636aa82e] * src/config/config-request.c: config: Handle chained dependencies. [0785c83ce8c4] 2009-11-08 Jørgen P. Tjernø * src/lib/unicodemap.pl: Make unicodemap.pl give correct return code when it fails to complete, so that make will stop processing. [8984dc0e7c72] 2009-11-06 Timo Sirainen * doc/example-config/Makefile.am: Makefile: Updated *.conf files to be *.conf.ext [cd4b7135cf3c] 2009-11-06 Pascal Volk * doc/example-config/dovecot.conf, doc/example- config/dovecot.conf.ext: example-config: Dropped ".ext" extension from dovecot.conf [c1d8e1b02f89] 2009-11-06 Timo Sirainen * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Having a lot of keywords assert-crashed with "stack frame changed". [2e00f9da27ad] * src/login-common/common.h, src/login-common/main.c, src/login-common /sasl-server.c: *-login: Use new anvil library to do async anvil lookups. [e99c02873d8c] * src/lib-master/Makefile.am, src/lib-master/anvil-client.c, src/lib- master/anvil-client.h: lib-master: Added anvil client code. [8ebf82849077] * src/lib-master/master-service-private.h, src/lib-master/master- service.c, src/lib-master/master-service.h: lib-master: Added master_service_stop_new_connections(). [7bdb5816f797] 2009-11-05 Timo Sirainen * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail storage service: Added MAIL_STORAGE_SERVICE_NO_LOG_INIT flag. [18f5fdeed659] * src/lib/Makefile.am, src/lib/llist.h, src/lib/test-lib.c, src/lib /test-lib.h, src/lib/test-llist.c: Added DLLIST2_*() functions for doubly linked list with head and tail. [07e0e2b4abe1] * src/lib/llist.h: DLLIST_REMOVE(): Set removed item's prev/next pointers to NULL. [16d40abb75b8] * doc/example-config/conf.d/auth.conf, doc/example-config/dovecot- db.conf, doc/example-config/dovecot-db.conf.ext, doc/example-config /dovecot-dict-sql.conf, doc/example-config/dovecot-dict- sql.conf.ext, doc/example-config/dovecot-ldap.conf, doc/example- config/dovecot-ldap.conf.ext, doc/example-config/dovecot-sql.conf, doc/example-config/dovecot-sql.conf.ext, doc/example- config/dovecot.conf, doc/example-config/dovecot.conf.ext: example-config: Added ".ext" extension for ldap/sql/dict-sql/db config files. This separates them from the rest of the config files that can be directly included from conf.d/. [32d007b5f41d] * src/lmtp/main.c: lmtp: Keep connection to config process open. [e0db66c8b9a9] * src/lmtp/client.c: lmtp: Don't crash if LHLO isn't given. [584e848fc957] * src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/main.c: lmtp: Improved logging. [597f969a9870] * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c: lmtp: Add Received: header, with a session ID. Log the session ID also. [ba3574ed9f74] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.h: lib-storage: Moved mail_generate_*() to be public functions. [b2925a5d9cf7] * src/lib-storage/index/dbox-common/dbox-storage.c: dbox notify: Look for dbox index files from index dir, not mail root dir. [ea4a80ee0283] * src/auth/auth-worker-server.c: auth: Drop idling worker processes after 5 minutes, not 30 minutes. [96838accb6af] * src/lib-storage/mail-storage-service.c: mail storage service: Create auth master connection if necessary when returning it. [5866ea3cfa71] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Don't close input stream when syncing. This breaks copying. [77b704cda90b] * doc/example-config/conf.d/Makefile.am: Makefile: Added missing lmtp.conf. [f69c5c25f176] * src/master/dup2-array.c, src/master/service-monitor.c, src/master /service-process.c: master: Make sure processes aren't created if its service is stopped. [8ee2bb8f23a0] * src/lib/array.h: array_foreach_modifiable() was broken in non-C99 compilers. Patch by Apple. [1c089f4f3e48] 2009-11-04 Timo Sirainen * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-brain-msgs.c, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy-server.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.c: dsync: Several fixes [df908e821744] 2009-11-02 Timo Sirainen * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed mailbox_update() to update next-uid properly. [5a4318e65ba7] * src/lib-storage/index/mbox/mbox-save.c: mbox: Added support for saving messages with wanted UIDs. [4acd259d2b9c] * src/lib-index/mail-index-transaction.c: lib-index: Don't refresh index after transaction commit if nothing was changed. [a5e545002bf5] * src/imap-login/imap-proxy.c: imap proxy: Always send post-login capability to client. The original code did it only when client had used CAPABILITY command. Now it's also sent in tagged reply to login/authenticate command if the remote server didn't already add it. [9c4740670030] 2009-10-30 Timo Sirainen * src/dsync/Makefile.am: dsync: Put the binary into bin/, not libexec/. [2a00f1d762b0] * src/lib-storage/list/mailbox-list-fs-iter.c: mbox: Fixed listing INBOX when NO_AUTO_INBOX flag was set. [3e85df7dc65a] * src/lib-settings/settings-parser.c: settings parser: Allow multiple strlist blocks with same name. They just get merged. [dfbdb1e8deb6] * src/util/rawlog.c: rawlog: Make also created socketpair fds nonblocking. [83464a815f46] * src/util/rawlog.c: rawlog: Make sure to set fds nonblocking to avoid hangs. [4ba2db4794ab] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed setting initial explicit uidvalidity/uidnext on mailbox creation. [b0cdefe35909] * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-proxy-client.c: dsync: Message bodies were saved only partially. [51618f48242b] 2009-10-29 Timo Sirainen * src/lib-storage/index/mbox/mbox-mail.c: mbox: Return header MD5 allocated from mail's data pool, not data stack. [635fda7ed49c] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/index/shared /shared-list.c, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/mailbox-list- private.h, src/lib-storage/mailbox-list.c: mbox: Added support for mailbox directory GUIDs. [db1a9e0853f5] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Use header MD5 as message's GUID. [ded4cbe648fc] * src/lib-storage/index/mbox/mbox-mail.c: mbox: Fixed looking up header MD5 values when they didn't exist yet. [1484bfe9bb2a] * src/lmtp/Makefile.am: lmtp: Link with all the same unused .o files as lda. [410b72cf8567] * src/lda/Makefile.am: lda: Link with message-header-encode.o so Sieve plugin can use it. [704b1fd3c92f] * src/lib-settings/settings-parser.c: settings: Allow referencing strlists without section key (e.g. plugin/foo vs. plugin/0/foo) [9ecf2adadc4f] * src/lib-settings/settings-parser.c: settings parser: Don't crash if trying to expand a setting under strlist. [988ea1049fa5] * src/dsync/dsync-proxy-client.c: dsync proxy client: Improved error handling. [89d924850fb1] * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-worker-private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/dsync.c: dsync: Added -r option to make that sync side read-only. [e5bd42b8c2f0] 2009-10-28 Timo Sirainen * src/login-common/login-settings.c, src/login-common/login- settings.h, src/login-common/main.c, src/login-common/ssl-proxy- openssl.c: *-login: Added support for TLS SNI. [67b88d1a12f2] * src/login-common/client-common.c, src/login-common/login-proxy.c, src/login-common/main.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/login-common/ssl-proxy.h: ssl: Don't start handshake until client has been set. [3f1c47797dee] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h: lib-master: Support local_host and remote_host in config lookups. [7b774a0c3493] * src/login-common/ssl-proxy-openssl.c: *-login: Create SSL context for each different SSL config, instead of changing each connection. [168f2e6ef6d6] * src/login-common/ssl-proxy-openssl.c: ssl: Improved error message logging. [09fe6d98cf98] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-parser.c, src/config/doveconf.c: config: Renamed remote/local_ip to just remote/local and added support for hostnames. [a90d9bb6fec3] * src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h: dsync: Check for errors when saving messages. [55b60c79c54c] * src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-worker.c, src/lib-storage/index/index-storage.c: Memory allocation tweaks. [eb9a262fde74] * src/dsync/dsync-brain.c, src/dsync/dsync-proxy-client.c: dsync: Memory usage tweaks. [a553595ce5a9] * src/lib-storage/index/maildir/maildir-storage.c: maildir: mailbox_update() crashed if mailbox wasn't yet open. [e3d0385ce703] * src/lib/data-stack.c: data stack: Fixes to handling out-of-memory situations. [728a029f56f9] * src/lib/failures.c, src/lib/str.c: Minor memory allocation tweaks. [c84c4f705e69] * src/lib-mail/message-header-encode.c: message_header_encode(): Line lengths weren't calculated properly with some characters. [6c32cc350164] * src/lib/str-sanitize.c, src/lib/test-str-sanitize.c: str_sanitize(): Don't break UTF-8 input. [f68c2cc1b32b] 2009-10-27 Timo Sirainen * src/lib-mail/Makefile.am, src/lib-mail/message-header-encode.c, src /lib-mail/message-header-encode.h, src/lib-mail/test-message-header- encode.c: Added message header (RFC 2047) encoder. [104edcb89a70] * src/lib/eacces-error.c: eaccess_error*(): Error message updated. [66eaf7b1e36b] * src/lda/main.c: lda: Removed accidentally committed debug change. [b470c03b7164] * src/lib-mail/message-header-parser.c, src/lib-mail/test-message- header-parser.c: message header parser: Require input buffer to be larger than 1 byte to avoid hangs. [233cda69b00a] * src/lib-mail/message-header-parser.c, src/lib-mail/test-message- header-parser.c: message header parser: Fixed parsing lines larger than input buffer. [ee3f9bc4f5b7] * src/lib/test-istream-concat.c: test-istream-concat: Don't use uninitialized variable. [86110f830311] * src/lda/main.c: lda: Fixed binary setuid-checking. [13b3a3ce892c] * src/lib-index/mail-transaction-log-file.c: Test WORDS_BIGENDIAN with #if, not #ifdef. Patch by Apple. [b55afe3e957c] * src/lib/array.h: array.h: Compile fix for non-C99 compilers. [1e0c572f1937] * src/lib-storage/index/index-mailbox-check.c, src/lib-storage/index /index-storage.h: mailbox_notify_changes(): Delay sending notifications for 500 msecs. If the notification is done immediately, IDLE may not notice the change because it's not finished yet. [e9c8a21e95e4] 2009-10-26 Timo Sirainen * src/anvil/anvil-settings.c: anvil: Keep always one process running by default. [b0017c5dd411] * src/master/main.c, src/master/service-anvil.c, src/master/service- anvil.h, src/master/service-listen.c, src/master/service-monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h: master: anvil process now stays alive across SIGHUPs. [01676e67cf38] * src/lib-master/master-login-auth.c, src/lib-master/master-login- auth.h, src/lib-master/master-login.c, src/lib-master/master- service-private.h, src/lib-master/master-service.c: lib-master: Fixes to handling master-login services. [9d13e9f78d52] * src/login-common/client-common.c, src/login-common/common.h, src /login-common/main.c: *-login: Show better state with verbose_proctitle=yes. [3e7e08af2991] * src/config/config-connection.c, src/config/config-request.c, src/config/config-request.h, src/config/doveconf.c: Previous config change broke master's startup. [46d08ae1314f] * src/config/config-connection.c, src/config/config-request.c, src/config/config-request.h, src/config/doveconf.c: doveconf -n/-a: Don't dump default service settings. This code is just getting uglier and uglier.. [d647b795da6d] * src/config/config-request.c, src/config/doveconf.c: doveconf -n: Don't show unchanged service settings. [c94ca1acd623] * src/imap/main.c, src/lib-master/master-login.c, src/lib-master /master-login.h, src/lib-master/master-service-private.h, src/lib- master/master-service.c, src/pop3/main.c: imap, pop3: Connection counting fixes. Multiple real connections can come from "login connections". For now don't even try to count login connections. [40d8df2b4111] * src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-common.h, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: pop3: Added support for verbose_proctitle=yes [02e852b2c2c3] * src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap- common.h, src/imap/imap-settings.c, src/imap/imap-settings.h, src/imap/main.c: imap: Added support for verbose_proctitle=yes [585bceaf98bb] * src/lib-mail/message-parser.c: message_parser_init_from_parts(): Removed wrong assert. [b57588b298aa] * src/master/master-settings.c, src/master/master-settings.h: master: Removed unused verbose_proctitle setting. [e758ed7c2cb4] * src/lib-master/master-service-settings.c: If connect() fails to UNIX config socket, don't try to exec doveconf. [582659cebfdf] * configure.in, src/lib-master/master-service.c, src/lib/process- title.c, src/lib/process-title.h, src/util/rawlog.c: Fixed Linux proctitle hack and enabled it by default now. [affb52c62add] * src/lib/test-istream-seekable.c: test-istream-seekable: Minor improvements. [34aa0445aa14] * src/lib/Makefile.am, src/lib/test-istream-concat.c, src/lib/test- istream-seekable.c, src/lib/test-lib.c, src/lib/test-lib.h: Added unit tests for istream-seekable istream-concat. [49599bbfc900] * src/lib-test/test-common.c, src/lib-test/test-common.h: lib-test: Added test_istream_create(). [7c3605774b93] * src/lib/istream-concat.c: istream-concat: Fixed a lot of bugs. [891d8650f3f8] * src/lib/istream-seekable.c: istream-seekable: Don't assert-crash when input buffer becomes full. [65c6568515ce] * src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm.c: doveadm: Fixed printing help for purge and force-resync commands. [2b9eb115fbd7] * src/config/all-settings.h, src/config/config-parser.c, src/config /config-parser.h, src/config/doveconf.c, src/config/main.c, src/config/settings-get.pl: config: Added support for dynamically loaded settings. [4dc080520769] 2009-10-23 Timo Sirainen * doc/example-config/conf.d/master.conf: example-config: Comment out default defaults from master.conf. [2571cbc88302] * doc/example-config/conf.d/master.conf, src/anvil/Makefile.am, src/anvil/anvil-settings.c, src/auth/auth-settings.c, src/config/Makefile.am, src/config/config-parser.c, src/config /config-settings.c, src/config/settings-get.pl, src/dict/dict- settings.c, src/imap-login/imap-login-settings.c, src/imap/imap- settings.c, src/lib-master/Makefile.am, src/lib-master/service- settings.h, src/lib-settings/settings-parser.c, src/lib-settings /settings-parser.h, src/lmtp/lmtp-settings.c, src/log/Makefile.am, src/log/log-settings.c, src/master/master-settings.c, src/master /master-settings.h, src/pop3-login/pop3-login-settings.c, src/pop3/pop3-settings.c, src/ssl-params/ssl-params-settings.c: Moved default service settings from master.conf to source code. [afe52d60989c] * src/master/master-settings.c, src/master/service.c: master: service's vsz_limit=0 should disable the limit, not make it use the default. [272bec780e26] * src/auth/auth-settings.c, src/config/config-request.c, src/config /settings-get.pl, src/dict/dict-settings.c, src/dict/dict- settings.h, src/imap-login/imap-login-settings.c, src/imap/imap- settings.c, src/imap/imap-settings.h, src/lib-dict/dict-sql- settings.c, src/lib-lda/lda-settings.c, src/lib-lda/lda-settings.h, src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-settings/settings-parser.c, src/lib- settings/settings-parser.h, src/lib-settings/settings.c, src/lib- settings/settings.h, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/maildir/maildir-settings.c, src /lib-storage/index/mbox/mbox-settings.c, src/lib-storage/mail- storage-service.c, src/lib-storage/mail-storage-settings.c, src/lib- storage/mail-storage-settings.h, src/lmtp/lmtp-settings.c, src/lmtp /lmtp-settings.h, src/login-common/login-settings.c, src/login- common/login-settings.h, src/master/master-settings.c, src/master /master-settings.h, src/pop3-login/pop3-login-settings.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h, src/ssl-params /ssl-params-settings.c: Changed all settings related structs to const and changed APIs to make it work. [d589d568a19d] * src/lib-storage/mail-storage-settings.c, src/master/master- settings.c: services, unix/fifo_listeners and namespaces are now sections with unique name. [9e0123366fc5] * src/config/config-parser.c, src/config/config-request.c, src/lib- settings/settings-parser.c, src/lib-settings/settings-parser.h: config: Added SET_DEFLIST_UNIQUE type. Settings in unique sections can be overridden. [eaac22ecc168] * doc/example-config/conf.d/mail.conf, src/lib-storage/mail-storage- settings.c: namespace section name now points to prefix, not type. [429641734346] * doc/example-config/conf.d/master.conf, src/master/master-settings.c: master: unix_listener settings can now have the path in the block name. [f7943875e069] * doc/example-config/conf.d/mail.conf, doc/example- config/dovecot.conf: example-config: Moved shutdown_clients to main dovecot.conf. [a768005d1549] * src/dict/main.c, src/imap/imap-settings.c, src/imap/imap-settings.h, src/imap/main.c, src/lib-master/master-service-private.h, src/lib- master/master-service-settings.c, src/lib-master/master-service- settings.h, src/lib-master/master-service.c, src/lib-master/master- service.h, src/log/main.c, src/login-common/login-proxy.c, src /login-common/login-proxy.h, src/login-common/main.c, src/master/service.c, src/pop3-login/client.c, src/pop3/main.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Handle shutdown_clients globally for all services. Delay shutting down processes until it's convenient for them, but if they're not gone in 30 seconds forcibly stop. And if that doesn't help, master will start killing them in 60 seconds. [7f0ccd367351] * src/imap-login/client.c, src/login-common/sasl-server.c, src/pop3-login/client.c: *-login: Make sure input isn't being handled while not connected to auth process. [47fdfd49af13] * src/lib-auth/auth-server-connection.c: lib-auth: When connection dies, reset structure variables properly. [ae639ce8cea6] * src/doveadm/doveadm-dump-index.c: doveadm dump: Fixed printing unaligned cache data with CPUs that require alignment. [79f1c3ae4a98] * src/doveadm/doveadm.c: doveadm: Fixed resetting getopt() for non-glibc. [56274bd4693c] 2009-10-23 Pascal Volk * src/doveadm/doveadm-who.c: doveadm who: reformatted command output [c316e7198ae3] 2009-10-22 Timo Sirainen * .hgsigs: Added signature for changeset 6b75cb16d427 [2800d96a37c6] * .hgtags: Added tag 2.0.alpha2 for changeset 6b75cb16d427 [1097194c5b1b] * NEWS, TODO, configure.in: Released v2.0.alpha2. [6b75cb16d427] [2.0.alpha2] * src/ssl-params/ssl-params.c: ssl_parameters_regenerate=0 wasn't disabling it. [6e8abac7a439] * src/imap/imap-settings.c, src/pop3/pop3-settings.c: shutdown_clients default should have been "yes". [46fb78ac0c46] * src/auth/auth-worker-client.c, src/auth/main.c: auth worker client deinit fixes. [e519b53b3f87] * src/auth/auth-worker-server.c, src/lib-auth/auth-master.c, src/lib- auth/auth-server-connection.c, src/lib-master/master-login-auth.c, src/lib-master/master-service-settings.c, src/login-common/main.c: Use net_connect_unix_with_retries() instead of duplicating the code everywhere. [e027503ddb6b] * src/lib/network.c, src/lib/network.h: Added net_connect_unix_with_retries(). [1bc88aa1373f] * src/auth/auth-worker-client.c, src/auth/main.c: auth: Cleaned up auth worker client deinit code. [faf2339212b8] * src/lda/main.c, src/lib-lda/duplicate.c, src/lib-lda/duplicate.h, src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: lib-lda: Fixed duplicate database to work with multiple users per process. [85f3282cfe4f] * configure.in: configure: Removed --with-sql-drivers parameter. I'm not sure what it tried to do. [3a32306aa473] * src/login-common/login-settings.c: login_greeting setting now supports %variables. [ae2d8b121f91] * doc/example-config/conf.d/master.conf: example-config: Set process_limit=1 to auth service. We'd currently break if there were more. [23cdea955eb3] * src/doveadm/doveadm.c: doveadm: Reset getopt() after handling lib-master parameters. [383da67215d9] * src/doveadm/doveadm-who.c: doveadm who -1: Fixed filtering. [508f5536a0a7] * src/doveadm/doveadm-who.c: doveadm who: Added -1 parameter. Added connection's protocol. [257bb6f74138] * src/doveadm/doveadm-mail.c: doveadm: When iterating through all users, don't drop privileges permanently. [6fcc5a684b83] * src/lib-storage/mail-storage-service.c: mail storage service: Fixed iterating through all users. [9df00624855b] * src/lib-master/master-service.c: lib-master: Fixed getopt_string containing "+" GNU extension. [ef1ca7e1a9f9] * src/doveadm/Makefile.am, src/doveadm/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h: doveadm: Added "who" command to list connected users based on anvil information. [b8df77326978] * src/anvil/anvil-connection.c, src/anvil/connect-limit.c, src/anvil /connect-limit.h: anvil: Added CONNECT-DUMP command to dump connect-limit state. [1110edddec36] * src/imap/imap-client.c, src/login-common/sasl-server.c, src/pop3/pop3-client.c: Changed anvil ident string to have the protocol first, so username can contain '/' chars. [19e67ad17398] * doc/example-config/conf.d/lda.conf: example-config: Added lda_mailbox_autocreate/_autosubscribe settings. [a173fa193324] * doc/example-config/conf.d/lmtp.conf: example-config: Added lmtp.conf. [c15659a9a3a6] * doc/example-config/conf.d/imap.conf, doc/example- config/conf.d/lda.conf, doc/example-config/conf.d/mail.conf, doc /example-config/conf.d/pop3.conf: example-config: Plugin setting updates. [7ddd6d3315a0] * src/ssl-params/ssl-params.c: ssl-params: When generating parameters, run the process with priority +15. [0893112306d1] * src/imap/main.c: imap: Compiling fix. [38c307c7af2a] * src/lib-storage/mail-storage-service.c: mail storage service: Returning "nice" from userdb again changes process priority. [8e3fd502d54e] * .hgignore: .hgignore updated. [dfbbbde95e5f] * src/imap/main.c, src/pop3/main.c: imap/pop3: Cleaned up initialization code. [ff200b8e4929] * src/imap/main.c, src/pop3/main.c: imap/pop3 now supports multiple connections/process, removed the restriction. [cb6dc691fa5a] * src/lda/main.c, src/lib-storage/index/shared/shared-storage.c, src /lib-storage/mail-namespace.c, src/lib-storage/mail-storage- service.c, src/lib-storage/mail-storage-service.h, src/lib-storage /mail-storage-settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp /lmtp-settings.c, src/lmtp/main.c: lib-storage: Changed APIs to fix reading settings for multiple users. [545bdb7670d2] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: settings_find_dynamic() now takes const pointer. [1eedcee69ce7] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Expunging last messages from mailbox caused crashing. [47e1756f6047] * src/lib/file-dotlock.c: file_dotlock_create(): If nfs_flush is enabled, fdatasync after writing PID. This makes sure that the write() doesn't fail later in close() and cause problems. [9ef0821a2ce7] 2009-10-21 Timo Sirainen * src/doveadm/doveadm-mail.c, src/dsync/dsync.c, src/imap/imap- client.c, src/imap/imap-client.h, src/imap/main.c, src/lda/main.c, src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h, src/lib-storage/mail-user.c, src/lib-storage /mail-user.h, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/main.c, src/lmtp/main.h, src/plugins/convert/convert-tool.c, src/plugins/expire/expire- tool.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: Merged single and multi mail_storage_service_*() functions. [d1384c2b08e5] * src/plugins/notify/Makefile.am: Makefile: Don't symlink notify plugin to subdirs. It's not necessary anymore. [3c87c0b18090] * src/lib-storage/mail-storage-service.c: mail_storage_service_multi*() didn't use userdb lookup results. [545a9694dcb8] * src/lmtp/main.c: lmtp: Fixed crashing caused by recent API changes. [9c640a1eb8b6] 2009-10-20 Timo Sirainen * doc/example-config/conf.d/master.conf, src/auth/Makefile.am: dovecot-auth binary renamed to auth. [915cd421895f] * src/lda/main.c: lda: Cleaned up parameter handling. [e248c1e53e00] * src/lib/ioloop-epoll.c: ioloop-epool: Panic on epoll_ctl() failures so it's easier to find the bug. [0598391a86e8] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-settings.c: mail_chroot can now contain %variables. [f6257036f7ef] * src/lib-storage/mail-user.c: Allow mail_users_init() without giving socket path. [92f2dac233b0] * src/lib-storage/mail-storage-service.c: Don't allow relative home directory paths. [cb2882c142e1] * src/anvil/main.c, src/auth/main.c, src/config/doveconf.c, src/config/main.c, src/dict/main.c, src/doveadm/doveadm.c, src/dsync/dsync.c, src/imap-login/client.c, src/imap/main.c, src/lda/main.c, src/lib-master/master-service.c, src/lib-master /master-service.h, src/lib/process-title.c, src/lib/process-title.h, src/lmtp/main.c, src/log/main.c, src/login-common/main.c, src/master/main.c, src/plugins/convert/convert-tool.c, src/plugins/expire/expire-tool.c, src/pop3/main.c, src/ssl- params/main.c, src/util/rawlog.c: Moved process title init to lib-master. With Linux-hack enabled it now preserves command args. [b584904d3bc7] * src/anvil/main.c, src/auth/main.c, src/config/doveconf.c, src/config/main.c, src/dict/main.c, src/doveadm/doveadm.c, src/dsync/dsync.c, src/imap/main.c, src/lda/main.c, src/lib-master /master-service-private.h, src/lib-master/master-service.c, src/lib- master/master-service.h, src/lmtp/main.c, src/log/main.c, src/login- common/main.c, src/master/main.c, src/plugins/convert/convert- tool.c, src/plugins/expire/expire-tool.c, src/pop3/main.c, src/ssl- params/main.c: Moved most of getopt() handling to lib-master. [1e63221f5c83] * src/master/master-settings.c: master: Don't remove auth-worker.* sockets at startup. They're no longer used. [1ae1d47aaef8] * src/imap/main.c: imap: Removed all dump-capability handling. We don't use it anymore. [1c166f7d673e] * src/login-common/main.c, src/master/master-settings.c, src/master /master-settings.h, src/master/service-process.c: Fixed login processes' core dump handling. [50db5e7bddd9] * src/lib-auth/auth-server-connection.c: lib-auth: Crashfix. [7df7b68ad503] * doc/example-config/conf.d/master.conf: example-config: Added '/' to "chroot=empty/" to make it clearer it's a dir. [f08cf2a07907] * src/master/service-process.c: master: Drop trailing '/' from services' chroot directory. [64bbf4296220] * doc/example-config/conf.d/ssl.conf, src/login-common/login- settings.c: ssl_ciphers_list: Disable anonymous and export ciphers by default. [c80eb856a742] * src/imap-login/Makefile.am, src/imap-login/client.c, src/imap- login/client.h, src/imap-login/imap-login-settings.c, src/imap-login /imap-login-settings.h, src/login-common/client-common.c, src/login- common/client-common.h, src/login-common/common.h, src/login-common /login-settings.c, src/login-common/login-settings.h, src/login- common/main.c, src/pop3-login/Makefile.am, src/pop3-login/client.c, src/pop3-login/pop3-login-settings.c, src/pop3-login/pop3-login- settings.h: imap-login: If imap_capability is set, use it. [9a71228ea41c] * src/lib-settings/settings-parser.c: lib-settings: Allow settings parsers with zero byte setting structures. [ac674fc9de57] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: lib-settings: Added settings_check() to check specific setting structure. [a16c9fbfe22c] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: settings_parser_get_list() returns now NULL-terminated list. [9cd71f3a6f96] * src/auth/auth-settings.c, src/config/all-settings.h, src/config /config-filter.c, src/config/config-parser.c, src/config/config- parser.h, src/config/config-request.c, src/config/doveconf.c, src/config/settings-get.pl, src/dict/dict-settings.c, src/imap/imap- settings.c, src/lib-lda/lda-settings.c, src/lib-master/master- service-settings.c, src/lib-settings/settings-parser.c, src/lib- settings/settings-parser.h, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/maildir/maildir-settings.c, src /lib-storage/index/mbox/mbox-settings.c, src/lib-storage/mail- storage-settings.c, src/lmtp/lmtp-settings.c, src/login-common /login-settings.c, src/master/master-settings.c, src/pop3/pop3-settings.c, src/ssl-params/ssl-params-settings.c: struct setting_parser_info now specifies the module name. [dcda7c495eb6] * src/auth/auth-settings.c, src/dict/dict-settings.c, src/imap/imap- settings.c, src/lib-lda/lda-settings.c, src/lib-master/master- service-settings.c, src/lib-settings/settings-parser.c, src/lib- settings/settings-parser.h, src/lib-storage/index/dbox-multi/mdbox- settings.c, src/lib-storage/index/maildir/maildir-settings.c, src /lib-storage/index/mbox/mbox-settings.c, src/lib-storage/mail- storage-settings.c, src/lmtp/lmtp-settings.c, src/login-common /login-settings.c, src/master/master-settings.c, src/pop3/pop3-settings.c, src/ssl-params/ssl-params-settings.c: Reordered struct setting_parser_info fields to make using them easier. [5a25b4ec5694] * src/imap/imap-fetch.c: QRESYNC: Fixed fallback handling to fetching expunged UIDs (again). [183373d83021] * src/config/config-parser.c, src/lib-settings/settings.c: settings parser: Warn if a line has '#' character not preceded by whitespace. This should help with people trying to give '#' character in e.g. a password and wondering why it's not working. [5bdae566e0dc] * src/imap/cmd-append.c: imap: If client disconnects while appending, don't treat the rest of the message as commands. [f3cdf16a31a5] 2009-10-19 Timo Sirainen * src/master/service-process.c: master: Removed some unnecessary code. [57134fd23d4c] * doc/example-config/conf.d/master.conf, src/auth/Makefile.am, src/auth/auth-client-connection.c, src/auth/auth-client- connection.h, src/auth/auth-master-connection.c, src/auth/auth- master-interface.h, src/auth/main.c, src/doveadm/doveadm.c, src/dsync/dsync.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/main.c, src/lda/main.c, src/lib-master/Makefile.am, src /lib-master/master-auth.c, src/lib-master/master-auth.h, src/lib- master/master-interface.h, src/lib-master/master-login-auth.c, src /lib-master/master-login-auth.h, src/lib-master/master-login.c, src /lib-master/master-login.h, src/lib-master/master-service-private.h, src/lib-master/master-service.c, src/lib-master/master-service.h, src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h, src/login-common/client-common.c, src/login- common/common.h, src/login-common/main.c, src/login-common/sasl- server.c, src/master/Makefile.am, src/master/main.c, src/master /master-settings.c, src/master/master-settings.h, src/master /service-auth-server.c, src/master/service-auth-server.h, src/master /service-auth-source.c, src/master/service-auth-source.h, src/master /service-monitor.c, src/master/service-process.c, src/master /service-process.h, src/master/service.c, src/master/service.h, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: Redesigned how login process passes connections to mail processes and changed related APIs. Master process is no longer in the middle. [4fe8c4382712] * src/master/service.c: master: service_signal() reimplemented using the service process linked list. [33c448ce13f9] * src/master/service-process.c, src/master/service-process.h, src/master/service.h: master: Keep service's processes in an easily accessible linked list. [fea8122e1deb] * src/doveadm/doveadm-auth.c, src/lib-auth/auth-master.c, src/lib-auth /auth-master.h, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-user.c: lib-auth: Changed auth_master_user_lookup() API. [15a71c18a0f8] * src/auth/userdb-passwd-file.c: passdb-file: When iterating through users, skip empty lines and comments. [d3f59a7a8e03] 2009-10-17 Pascal Volk * src/doveadm/doveadm-pw.c: doveadm pw: Use t_askpass() instead of getpass() [596a8ab6820e] 2009-10-18 Timo Sirainen * configure.in, src/imap/cmd-sort.c, src/lib-storage/index/index-sort- string.c, src/lib-storage/index/index-sort.c, src/lib-storage/mail- storage.h: imap: Implemented SORT=DISPLAY extension (draft-ietf-morg- sortdisplay-02). [61619cad4d0e] * configure.in: configure: FLEXIBLE_ARRAY_MEMBER value was reversed. [634588d51ae6] 2009-10-16 Timo Sirainen * src/imap/cmd-subscribe.c, src/imap/imap-client.h, src/imap/imap- commands-util.c, src/imap/imap-common.h, src/imap/imap-fetch-body.c, src/imap/imap-settings.c, src/imap/imap-settings.h, src/imap/imap- sync.c, src/imap/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c, src/pop3/pop3-common.h, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: imap, pop3: Moved imap/pop3_client_workarounds setting parsing to config checking. [fdfe0236d50a] 2009-10-18 Timo Sirainen * src/lib-master/master-service-private.h, src/lib-master/master- service-settings.c, src/lib-master/master-service.c, src/lib-master /master-service.h: lib-master: Added _NO_CONFIG_SETTIGS and _NO_ENV_SETTINGS flags. [4d21bb0fff3a] * configure.in, src/anvil/Makefile.am, src/auth/Makefile.am, src/config/Makefile.am, src/dict/Makefile.am, src/doveadm/Makefile.am, src/dsync/Makefile.am, src/imap- login/Makefile.am, src/imap/Makefile.am, src/lda/Makefile.am, src/lmtp/Makefile.am, src/log/Makefile.am, src/master/Makefile.am, src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am, src/plugins/fts-squat/Makefile.am, src/pop3-login/Makefile.am, src/pop3/Makefile.am, src/ssl-params/Makefile.am, src/util/Makefile.am: Makefiles: Separated LIBDOVECOT and LIBDOVECOT_DEPS. [6a1c96577476] * src/lib-storage/mail-copy.c: mail_storage_copy(): Don't unreference keywords too many times. [755e6208d8ce] 2009-10-16 Timo Sirainen * src/lib-master/master-auth.c, src/lib-master/master-service.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/listescape /listescape-plugin.c: Updated copyright comments. [fc9d62ac86d1] * src/lib-storage/index/mbox/mbox-save.c: mbox: Write the last LF before fdatasync(). [003a21d9e826] * src/login-common/login-proxy-state.c, src/login-common/login-proxy- state.h, src/login-common/login-proxy.c: imap/pop3 proxy: Track "destination down" state separately for IP+ports, not just IPs. In some systems different ports could get redirected to different servers. [b3c3675ba466] * doc/wiki/Makefile.am.in: doc/wiki/Makefile.am fix. [9110c752e32e] * src/lib-storage/index/mbox/mbox-save.c: mbox: Make sure failed saves get rolled back with NFS. [b0a871a899dd] * src/lib/ostream.c, src/lib/ostream.h: Added o_stream_get_buffer_avail_size(). [ede6701cfe7a] * src/lib/ostream-buffer.c, src/lib/ostream-file.c, src/lib/ostream- internal.h, src/lib/ostream.c: ostream: Simplified implementing ostreams. Some functions are no longer necessary to implement. Moved some code to be common among all ostreams. [bad043de6a7a] 2009-10-16 Pascal Volk * src/auth/auth-client-connection.c, src/auth/auth-master- connection.c, src/auth/auth-request.c, src/auth/db-passwd-file.c, src/auth/passdb.c, src/auth/userdb-ldap.c, src/auth/userdb- prefetch.c, src/lib-auth/auth-master.c, src/lib-auth/auth-server- connection.c, src/lib-lda/mail-send.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/mail-namespace.c, src/lib-storage/mail-storage- service.c, src/lib-storage/mailbox-list.c, src/login-common/client- common-auth.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl /acl-backend.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl /acl-storage.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/convert/convert-plugin.c, src/plugins/expire/expire- plugin.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins /fts-squat/fts-backend-squat.c, src/plugins/fts/fts-storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota /quota-dict.c, src/plugins/quota/quota-fs.c, src/plugins/quota /quota-storage.c, src/plugins/quota/quota.c, src/plugins/trash /trash-plugin.c: Log debug-level messages with i_debug(). [62b37dcf173e] 2009-10-15 Timo Sirainen * src/lib-index/mail-transaction-log-file.c: lib-index: looking up offset for transaction log's initial modseq failed. [1120a013da33] * src/plugins/expire/expire-plugin.c: expire: Mailbox names should be written to dict using their virtual name. [73ad4e348343] * doc/wiki/Makefile.am.in: --without-docs: make install no longer mkdirs wiki directory. [c38d2169eb5b] * doc/Makefile.am, doc/wiki/Makefile.am.in: --without-docs: make install no longer installs any docs. [f89bb026843f] * src/login-common/ssl-proxy-openssl.c: Potential crashfix for OpenSSL < 0.9.8. [04f8e91fe0ec] * src/plugins/quota/quota-maildir.c: quota-maildir: Don't crash at startup. [646a7173ad3d] * src/imap/cmd-idle.c: imap: IDLE now sends "Still here" notifications to same user's connections at the same time. Perhaps this will save some battery power with mobile clients that open multiple connections. [7f77bc5a866c] * doc/example-config/dovecot.conf: example-config: Updated listen setting's comment. [1d2d55d9779e] * doc/example-config/dovecot.conf: example-config: Updated listen setting's comments. [593433307e0a] * src/master/master-settings.c: master: inet_listener.address's default wasn't using "listen" setting. [8e531edac6e9] * src/lib-index/mail-index-view-sync.c: lib-index: Give nicer error if index's log position suddenly goes backwards. [359a4e4f0892] * src/plugins/fts/fts-plugin.c: fts: Fixed loading the plugin. [5cb810c55b4a] * src/master/service-anvil.c, src/master/service-anvil.h, src/master /service-monitor.c: master: Add IO listeners to anvil after forking. Fixes kqueue. [5147503f4123] * src/plugins/quota/quota-fs.c: quota-fs: If mount=path isn't specified, don't fail with multiple quota roots. [14eeed133d57] * src/lib/ioloop-kqueue.c: ioloop-kqueue: Improved error messages. [ebebf0b447c7] * src/lib/istream-seekable.c: istream-seekable: If we can't write temp file, fallback to using memory without limits. [713e66a4cd07] 2009-10-14 Timo Sirainen * src/lib-lda/lmtp-client.c: Compiler warning fix. [e8e508c44d6e] * src/lib-mail/test-mbox-from.c: mbox_from_parse() unit test fix. [0ae1bf609141] * src/lib-mail/mbox-from.c, src/lib-mail/test-mbox-from.c: mbox_from_parse(): When timezone is missing, use the given time's tz, not the current tz. [d9576cda2f33] * doc/auth-protocol.txt: auth-protocol.txt: Updated version to 1.1. [17fefd7fe7b9] * src/auth/auth-master-interface.h, src/lib-auth/auth-client- interface.h: Increased auth protocol's minor version to 1. [9bf8e8fce7f7] * doc/auth-protocol.txt: auth-protocol.txt: Updated with the new cookie changes. [957dd8eb1e5a] * src/auth/auth-client-connection.c, src/auth/auth-client- connection.h, src/auth/auth-master-connection.c, src/lib-auth/auth- client.c, src/lib-auth/auth-client.h, src/lib-auth/auth-server- connection.c, src/lib-auth/auth-server-connection.h, src/lib-master /master-interface.h, src/login-common/sasl-server.c, src/master /service-auth-source.c: auth: Identify clients using a 128bit random cookie on top of the existing PID. When master is finishing the login, it must give this cookie to REQUEST command and it must match what auth process knows. This change makes it safe to do client/master login without a dedicated master process. [aa30fc7d771a] * src/lda/main.c: lda: Escape local-part if it begins/ends with '.'. [b81f4a4076de] * src/lmtp/commands.c: lmtp: Drop quotes around local-part in RCPT TO command if possible. [21a09d9105b2] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir_very_dirty_syncs=yes: Make sure uidlist shrinks eventually. [4996ca56a1ee] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Saving a mail after fast syncing caused slow sync the next time. [e7aa137f3a11] 2009-10-12 Timo Sirainen * .hgsigs: Added signature for changeset 7dc28f9b899d [5cb162da8708] * .hgtags: Added tag 2.0.alpha1 for changeset 7dc28f9b899d [defd46cae8ad] * NEWS, TODO, configure.in: Released v2.0.alpha1. [7dc28f9b899d] [2.0.alpha1] * src/dsync/Makefile.am: Makefile.am: Some of test-dsync*.c files weren't included in tarball. [794604d4dd1a] * src/plugins/notify/Makefile.am: Makefile.am: notify-plugin-private.h wasn't listed correctly. [154f1b1fa5d6] * src/doveadm/Makefile.am: Makefile.am: Added missing doveadm.h [6aeb7528265b] * src/lib-storage/Makefile.am: Makefile.am: Added missing test-mail-storage.h [a1a6d91ec250] * src/lmtp/commands.c: lmtp: Changed QUIT message: "Logged out" -> "Client quit". [4074f1bed39a] * src/config/config-parser.c: doveconf: When not expanding * src/config/doveconf.c: doveconf: -N doesn't require parameter. [6595049c53b2] * src/auth/passdb-bsdauth.c: bsdauth: And compile fix to previous change.. [7440353dc617] * src/auth/passdb-bsdauth.c: bsdauth: Use PLAIN as default_pass_scheme instead of CRYPT. [f5c2bc161baa] * src/config/doveconf.c: doveconf: Improved "config not found" error. [92e1273cf55a] * doc/example-config/Makefile.am: "make install" now creates sysconfdir/dovecot/ directory. [762acf3cce32] * src/auth/passdb-bsdauth.c: bsdauth: Set default pass scheme to CRYPT. [21636cae54e6] * src/lmtp/Makefile.am, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp- settings.h, src/lmtp/main.c: lmtp: Added lmtp_proxy setting (it's no longer hardcoded to yes). [ddcc3391adf9] * src/lib-index/mail-index-transaction-update.c, src/login- common/main.c: Removed some unused FIXME code. [499f5575d503] * src/imap-login/client.c, src/login-common/common.h, src/login-common /login-settings.c, src/login-common/login-settings.h, src/login- common/main.c, src/pop3-login/client.c: *-login: Login binaries can now set up their own private settings. [45cdc5539c93] * src/lda/main.c: deliver: Don't escape addresses with "." in local-part. [e8fc7ee87410] 2009-10-10 Timo Sirainen * src/login-common/login-settings.c, src/login-common/login- settings.h: Removed unused login_chroot setting. [d7b3ed9814cb] 2009-10-09 Timo Sirainen * src/login-common/client-common.c: *-login: Close auth client connection after (proxying) process no longer needs it. [cf376fcbd6ff] * src/lib-master/master-service.c: lib-master: If config fd is kept open, close it after last connection has been created. [40a71105529b] * src/lib-master/master-service-settings.c: lib-master: Timeout reading configuration after 10 seconds. [ebe9b1e7a46b] * src/master/main.c: master: If config process doesn't exist when reloading config, create one to avoid hanging. [fa9d2204b453] * src/master/service-monitor.c: master: Delay starting up config process until it's actually needed. [364dc7ae87e4] * src/imap/imap-fetch.c: QRESYNC: Fixed fallback handling to fetching expunged UIDs. [60e8f45d71a7] * src/imap/imap-fetch.c: QRESYNC: Minor code cleanup by renaming variables to be more understandable. [6e109ea7b506] * src/master/main.c, src/master/service-log.c: master: Fixed reloading configuration. [940d11bc5039] * src/config/config-parser.c: config: key=" * src/lib-settings/settings-parser.h: Comment update. [6556754b6c24] * src/config/config-filter.c, src/config/config-parser.c: config: Conflict handling fix. [85e532d170cc] * doc/example-config/conf.d/master.conf, doc/example- config/dovecot.conf, src/master/master-settings.c, src/master /master-settings.h, src/master/service-listen.c, src/master/service.c, src/master/service.h: master: Added back "listen" setting, which is the default address for inet_listeners. [f69fda5d7af5] * src/master/service-monitor.c: master: Allow idle-killing the last service process, except anvil. [f14b6c68ddce] * src/master/service-anvil.c: master: Removed accidentally committed debug code. [20b8f66d9f4e] * src/master/main.c: master: If service user isn't specified, keep original gid instead of using 0. [e5fccc9d4831] * src/master/service-listen.c: master: Cleaned up chown() error logging: don't show -1 as 2^64-1. [59b985cd3aca] * src/master/service-monitor.c: Compiler warning fix. [4a2fa8ec5c8c] * src/master/main.c: dovecot --build-options: Added "Mail storages" list back. [7c091e3e0266] * src/master/main.c: dovecot --build-options: List nss if it's enabled. [90622fad99a0] * src/imap/imap-fetch.c: imap: Don't crash on SELECT .. QRESYNC if it didn't give seq-uid map. [0e27ce1b0c37] * configure.in: configure: Use cache for more checks. [e7f8f15f1c4c] * src/plugins/Makefile.am: plugins: mail_log links notify plugin now, so build notify first. [22fe48dbed89] * src/auth/mech-gssapi.c: auth: Fixed compiling with --with-gssapi=plugin [e62d4a8c6035] * doc/example-config/conf.d/mail.conf: example-config: dbox_* settings were renamed to mdbox_*. [80a99cd5148f] 2009-10-08 Timo Sirainen * src/plugins/fts-solr/Makefile.am, src/plugins/fts-solr/fts-solr- plugin.c, src/plugins/fts-solr/fts-solr-plugin.h, src/plugins/fts- squat/Makefile.am, src/plugins/fts-squat/fts-squat-plugin.c, src/plugins/fts-squat/fts-squat-plugin.h, src/plugins/imap- acl/Makefile.am, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins /imap-acl/imap-acl-plugin.h, src/plugins/imap-quota/Makefile.am, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/imap-quota /imap-quota-plugin.h, src/plugins/mail-log/Makefile.am, src/plugins /mail-log/mail-log-plugin.c, src/plugins/mail-log/mail-log-plugin.h, src/plugins/trash/Makefile.am, src/plugins/trash/trash-plugin.c, src/plugins/trash/trash-plugin.h: plugins: Added dependencies. The dependencies can only be checked if the dlopen() can successfully open the module, so use (apparently) non-portable ltlibrary linking to force the libraries we depend on to load with us. [399d769e593c] * src/lib/module-dir.c: module_dir_load(): Support _dependencies array listing required modules. [bdd87f9ccccf] * doc/example-config/conf.d/master.conf, src/master/master-settings.c, src/master/master-settings.h, src/master/service-process.c, src/master/service.c, src/master/service.h: master: Added default_vsz_limit setting, which defaults to 256 MB. [a15182f41f30] * .hgignore, src/doveadm/Makefile.am, src/doveadm/doveadm-dump- index.c, src/doveadm/doveadm-dump-log.c, src/doveadm/doveadm-dump- mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/doveadm /doveadm-dump.c, src/doveadm/doveadm-dump.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/util/Makefile.am, src/util/idxview.c, src/util/logview.c, src/util/mailboxlogview.c, src/util/threadview.c: util/*view binaries are now accessed via "doveadm dump". listview binary stays for now, since mailbox list indexes won't work anyway and they might get a complete redesign. [c862648185b8] * src/lib-index/mail-cache.c, src/lib-index/mail-index-map-read.c, src /lib-index/mail-index-write.c, src/lib-index/mail-index.c, src/lib- index/mail-transaction-log-file.c, src/lib-index/mail-transaction- log.c, src/lib-index/mailbox-list-index.c: lib-index: Take MAIL_INDEX_OPEN_FLAG_READONLY more seriously. Don't do any filesystem changes to the index when it's set, even if corrupted index files are detected. [a425ba46a64c] * src/lib/compat.c, src/lib/compat.h: compat: Renamed all my_*() fallback functions to i_my_*(). This fixes at least my_pread() conflict with libmysqlclient. [910059d94bbc] * .hgignore, src/doveadm/Makefile.am, src/doveadm/doveadm-auth.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/util/Makefile.am, src/util/authtest.c: authtest binary is now accessed via "doveadm auth" and "doveadm user". [4c532d8222f3] * src/lib/Makefile.am, src/lib/askpass.c, src/lib/askpass.h, src/master/Makefile.am, src/master/askpass.c, src/master/askpass.h: Moved askpass() from master/ to lib/. Added t_askpass(). [3721ae3917fc] * .hgignore, src/doveadm/Makefile.am, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-pw.c, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/util/Makefile.am, src/util/dovecotpw.c: dovecotpw binary is now accessed via "doveadm pw". [d9cb9d03e50e] * .hgignore, configure.in, src/Makefile.am, src/doveadm/Makefile.am, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h, src/util/Makefile.am, src/util/doveadm.c: Moved doveadm to a separate directory and made it a bit more easily extensible. [a02c1d9df1bf] * src/dict/dict-commands.c, src/dict/dict-connection.c, src/dsync /dsync-brain-msgs.c, src/dsync/dsync-brain.c, src/imap/imap- client.c, src/imap/imap-fetch.c, src/lib-auth/auth-client.c, src /lib-index/mail-index-fsck.c, src/lib-index/mail-index-map-read.c, src/lib-index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index-sync- update.c, src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction-finish.c, src/lib-index/mail-index-transaction-sort- appends.c, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index-view-sync.c, src/lib-sql/driver-mysql.c, src/lib- sql/driver-pgsql.c, src/lib-storage/index/index-search-result.c, src /lib-storage/index/index-sort-string.c, src/lib-storage/index/index- sync-search.c, src/lib/seq-range-array.c, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/fts-squat/squat-trie.c, src/plugins/quota/quota- storage.c, src/plugins/quota/quota.c: Use array_foreach*() in some useful places. [c610321584ca] * src/lib-lda/lmtp-client.c: smtp client: Failure wasn't sent properly for more than one recipient. [2c703e55d247] * src/lib-index/mail-index-sync-ext.c: lib-index: With >1 expunge handlers deinit was called with wrong sync_context. Currently there was only one expunge handler so this wasn't a real problem. [687c30b1539a] * src/lib-index/mail-index-modseq.c: Expunging messages caused in-memory modseqs to be wrong. [68869bf8aa31] * src/lib/array.h: Added array_foreach() and array_foreach_modifiable(). [ada435a92e93] * src/ssl-params/Makefile.am: ssl-params: Don't put SSL_LIBS to dependencies. [c20d6f518451] 2009-10-07 Timo Sirainen * src/ssl-params/ssl-params: Removed accidentally committed ssl-params binary. [0980d64f5bae] * src/ssl-params/main.c: ssl-params: Track client connection count correctly. [33532261ce0c] * src/master/service-anvil.c: master: Fixes to handling anvil service. [fb16190aa088] * src/lib-settings/settings-parser.c: settings parser: copying boolean values also copied some unintended memory. [e19832d735aa] 2009-10-07 Pascal Volk * .hgignore: ssl-params: dropped ssl-params binary / added to .hgignore [0d3bb7c55af1] 2009-10-07 Timo Sirainen * src/ssl-params/main.c, src/ssl-params/ssl-params, src/ssl-params /ssl-params.c: ssl-params: Several bugfixes. [96d87de9eba9] * src/ssl-params/main.c, src/ssl-params/ssl-params: ssl-params: Name the program correctly. [d44e5ff84614] * src/login-common/client-common.c: *-login: Don't set connection fd to non-blocking twice. [bab48f48d64d] * src/login-common/ssl-proxy-openssl.c: *-login: Read SSL parameters using the new ssl-params service. [79917d163689] * configure.in, doc/example-config/conf.d/master.conf, src/Makefile.am, src/ssl-params/Makefile.am, src/ssl-params/main.c, src/ssl-params/ssl-params, src/ssl-params/ssl-params-openssl.c, src /ssl-params/ssl-params-settings.c, src/ssl-params/ssl-params- settings.h, src/ssl-params/ssl-params.c, src/ssl-params/ssl- params.h: Added ssl-params binary that login process uses to read SSL parameters. [ea36bad4d9da] * doc/example-config/conf.d/master.conf, src/lib-auth/Makefile.am, src /lib-auth/auth-client-private.h, src/lib-auth/auth-client-request.c, src/lib-auth/auth-client-request.h, src/lib-auth/auth-client.c, src /lib-auth/auth-client.h, src/lib-auth/auth-server-connection.c, src /lib-auth/auth-server-connection.h, src/lib-auth/auth-server- request.c, src/lib-auth/auth-server-request.h, src/login-common /client-common.h, src/login-common/main.c, src/login-common/sasl- server.c, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/client.h, src/util/authtest.c: lib-auth: Changed API to connect to only a single specified auth socket. Login processes now always connect to socket called "auth". [097588a7903c] * src/master/Makefile.am, src/master/ssl-init-gnutls.c, src/master /ssl-init-main.c, src/master/ssl-init-openssl.c, src/master/ssl- init.c, src/master/ssl-init.h: master: Removed all SSL related code. It doesn't belong there. [9716b5a4b14a] * src/auth/auth-client-connection.c: auth: VERSION should have been sent before MECH, not after. [9e28fcdc74ab] * src/log/log-connection.c: log: Don't use 100% CPU when log connection closes. [1aff70cee4d9] 2009-10-07 Pascal Volk * src/master/main.c: master: Added --help option [22276a4717ca] 2009-10-07 Timo Sirainen * src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index /dbox-single/sdbox-save.c: dbox: Getting dbox file for non-first unsaved mail crashed. [26588f1b0870] * src/master/main.c: master: Updated --help. Patch by Pascal Volk [9a09b4d6dbd2] 2009-10-06 Timo Sirainen * configure.in, src/lib-storage/index/Makefile.am, src/lib- storage/index/dbox-common/Makefile.am, src/lib-storage/index/dbox- common/dbox-file-fix.c, src/lib-storage/index/dbox-common/dbox- file.c, src/lib-storage/index/dbox-common/dbox-file.h, src/lib- storage/index/dbox-common/dbox-mail.c, src/lib-storage/index/dbox- common/dbox-mail.h, src/lib-storage/index/dbox-common/dbox-save.c, src/lib-storage/index/dbox-common/dbox-save.h, src/lib-storage/index /dbox-common/dbox-storage.c, src/lib-storage/index/dbox-common/dbox- storage.h, src/lib-storage/index/dbox-common/dbox-sync-rebuild.c, src/lib-storage/index/dbox-common/dbox-sync-rebuild.h, src/lib- storage/index/dbox-multi/Makefile.am, src/lib-storage/index/dbox- multi/mdbox-file-purge.c, src/lib-storage/index/dbox-multi/mdbox- file.c, src/lib-storage/index/dbox-multi/mdbox-file.h, src/lib- storage/index/dbox-multi/mdbox-mail.c, src/lib-storage/index/dbox- multi/mdbox-map-private.h, src/lib-storage/index/dbox-multi/mdbox- map.c, src/lib-storage/index/dbox-multi/mdbox-map.h, src/lib- storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index/dbox- multi/mdbox-settings.c, src/lib-storage/index/dbox-multi/mdbox- settings.h, src/lib-storage/index/dbox-multi/mdbox-storage- rebuild.c, src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.h, src/lib-storage/index/dbox-multi/mdbox-storage.c, src/lib- storage/index/dbox-multi/mdbox-storage.h, src/lib-storage/index /dbox-multi/mdbox-sync.c, src/lib-storage/index/dbox-multi/mdbox- sync.h, src/lib-storage/index/dbox-single/Makefile.am, src/lib- storage/index/dbox-single/sdbox-file.c, src/lib-storage/index/dbox- single/sdbox-file.h, src/lib-storage/index/dbox-single/sdbox-mail.c, src/lib-storage/index/dbox-single/sdbox-save.c, src/lib- storage/index/dbox-single/sdbox-storage.c, src/lib-storage/index /dbox-single/sdbox-storage.h, src/lib-storage/index/dbox-single /sdbox-sync-file.c, src/lib-storage/index/dbox-single/sdbox-sync- rebuild.c, src/lib-storage/index/dbox-single/sdbox-sync.c, src/lib- storage/index/dbox-single/sdbox-sync.h, src/lib- storage/index/dbox/Makefile.am, src/lib-storage/index/dbox/dbox- file-fix.c, src/lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/dbox/dbox-file-maildir.h, src/lib-storage/index/dbox /dbox-file.c, src/lib-storage/index/dbox/dbox-file.h, src/lib- storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox/dbox-map- private.h, src/lib-storage/index/dbox/dbox-map.c, src/lib- storage/index/dbox/dbox-map.h, src/lib-storage/index/dbox/dbox- save.c, src/lib-storage/index/dbox/dbox-settings.c, src/lib- storage/index/dbox/dbox-settings.h, src/lib-storage/index/dbox/dbox- storage-rebuild.c, src/lib-storage/index/dbox/dbox-storage- rebuild.h, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox/dbox- sync-file.c, src/lib-storage/index/dbox/dbox-sync-rebuild.c, src /lib-storage/index/dbox/dbox-sync.c, src/lib-storage/index/dbox /dbox-sync.h: Split dbox (single-dbox) and mdbox (multi-dbox) into separate storage backends. This cleans up the code, makes it faster and also fixes some bugs. Super-fast maildir migration code was also dropped, at least for now. [0bb321c347ae] * src/log/log-connection.c: log: Log input wasn't read correctly. [ff4c83871f4d] * src/lib-master/master-interface.h: struct log_service_handshake: Removed unused max_lines_per_sec. [173435e81938] * src/lib-index/mail-cache-transaction.c, src/lib-index/mail-index- transaction.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-transaction.c: Don't assert-crash after noticing cache file corruption. [2d160210b306] * configure.in, src/login-common/ssl-proxy-openssl.c: Compiling fix for OpenSSL 0.9.7 and older. [ba12a404d3b3] 2009-10-05 Timo Sirainen * .hgignore, src/util/Makefile.am, src/util/authtest.c: Added authtest utility for doing passdb and userdb lookups. [87c40d1d2b6c] * src/lib-index/mail-index-view-sync.c: lib-index: Fixed v2.0 forwards compatibility support. Expunges were handled wrong. [309ef3136fa0] * src/imap/main.c, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-storage-service.h, src/pop3/main.c: imap, pop3: Process permissions weren't properly dropped. [4b28edba5ff9] * src/imap/main.c, src/pop3/main.c: imap, pop3: Root mail access wasn't properly disallowed. [a249daa4d960] * src/lib/Makefile.am: unicodemap.c now gets recreated if unicodemap.pl changes. [4d7c7f4b8ab6] * src/lib/failures.c: If info/debug log can't be opened, log about it to error log. [0af777d3e34a] * src/imap/cmd-list.c: LSUB "" %: List namespace prefix if namespace has separate subscriptions. [f68b322167d7] * src/login-common/client-common.c, src/login-common/client-common.h, src/login-common/sasl-server.c: *-login: Log more precise reasons for some auth failures. [c492325acdcf] * src/lib-auth/auth-master.c: auth-master lookup: Give better error message on connect() EACCES errors. [8a1eef211ad6] 2009-10-01 Timo Sirainen * src/lib-storage/mail-storage-service.c: Crashfix. [6a3667ea47d7] * src/lib/unichar.c, src/lib/unicodemap.pl: New UnicodeMap.txt has >16bit multi-decomposition keys, support them. [c89df0c0e313] * src/login-common/client-common.c: imap-login: "Disconnected for inactivity" should be sent as BYE. [22f1076b3d03] 2009-09-30 Timo Sirainen * src/imap-login/imap-proxy.c: imap proxy: Don't fail if LOGIN parameters were sent using literals. [aaf93388d061] * doc/example-config/conf.d/logging.conf, src/lib-master/master- service-settings.c, src/lib-master/master-service-settings.h, src /lib-master/master-service.c, src/lib/failures.c, src/lib/failures.h, src/master/main.c, src/master/service-process.c: Added debug_log_path setting and i_debug() call. Patch by Pascal Volk. [80472a77d765] * src/master/main.c: master: Build help and --log-error message to stderr, not stdout. [e139e62cfa22] * src/lib/process-title.c: process_title_set(): Don't include executable name in setproctitle(), it's done internally. [4b18863b7213] * src/imap/imap-client.c: imap: Reduce command pool's initial size. [3441e6613ab4] * src/master/service-anvil.c: master: Fix to previous change, don't crash at service deinit. [907e781f7999] * src/master/service-anvil.c, src/master/service-anvil.h, src/master /service-process.c, src/master/service.h: master: If anvil isn't used, read and discard all anvil input coming from mail processes. [c998a51b7be4] * src/master/service-listen.c: master: Use a hard coded backlog=128 when listen()ing. [65eb3d129bc9] * src/imap-login/imap-proxy.c: imap proxy: Don't log "unexpected input" errors about tagged CAPABILITY replies. [b381d3852d70] * src/login-common/main.c: *-login: fd limit wasn't set correctly. [0d5d10a3273c] * src/lib-index/mail-index.c: Avoid assert-crashing when two processes try to create index at the same time. [7aea0156986a] * src/config/config-parser.c, src/lib-settings/settings.c: Allow config file line lengths to be unlimited. [ab80ebdc6557] * src/lda/main.c: deliver: Changed all EX_CONFIGs to EX_TEMPFAILs to avoid bounces. [8342893350b2] * src/lib/fd-close-on-exec.c: fd_debug_verify_leaks() didn't check the last_fd. [4169c35b6285] 2009-09-29 Timo Sirainen * src/lib/data-stack.h, src/lib/failures.h, src/lib/macros.h: Added ATTR_HOT and ATTR_COLD macros. Use them in a couple of places. [12089b6343bf] * src/login-common/ssl-proxy-openssl.c: ssl: If given ssl key is for a different cert, give a nicer error message. [53b2a88ee6d0] 2009-09-28 Timo Sirainen * src/lib-storage/index/index-search-result.c: Assert-crashfix when updating saved search results. [dac192bbd97f] * src/lib-storage/mail-search.c: mail_search_args_init(): Added an assert. [92463a3c3af4] * configure.in: configure: Use mysql_config to find where mysql exists. [a22c9e8a01ae] * src/lib-storage/mailbox-list.c: mail_location: If it ends with ":", ignore it instead of adding ":" character. If ":" is really wanted, it should be done with "::". [413f5cf35694] * src/plugins/quota/quota.c: quota: Don't crash with non-Maildir++ quota backend. Patch by Brandon Davidson. [739d8d99bafe] * src/login-common/ssl-proxy-openssl.c: login: ssl_security string now also shows the used compression. [9b4bb1a7d789] 2009-09-23 Timo Sirainen * src/imap-login/client.h, src/imap-login/imap-proxy.c: imap proxy: Detect and log invalid remote input. [aedf642c8bc8] 2009-09-13 Timo Sirainen * src/lib-auth/auth-client-interface.h: auth: Increased AUTH_CLIENT_MAX_LINE_LENGTH. [49cd8e736a8a] * src/plugins/acl/acl-backend-vfile.c: acl: Use namespace prefix when looking up global ACLs. [6fac2ade5dd6] * src/plugins/acl/acl-mailbox.c: acl: Don't crash when creating children under a mailboxes with global ACL. [364ee96c6195] * src/lib-mail/Makefile.am, src/lib-mail/message-header-decode.c, src /lib-mail/test-message-header-decode.c: message_header_decode*() should ignore LWSP between two encoded- words. [9444d7964766] * src/plugins/quota/quota-dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: maildir quota: Limits weren't read early enough from maildirsize file. [27904121ae72] 2009-09-11 Timo Sirainen * src/master/main.c: master: Use "master: " prefix in log messages. [accb1c02e03c] * TODO: TODO updated. [97d5c31dcc9e] * doc/example-config/conf.d/mail.conf, doc/example- config/dovecot.conf, src/imap/imap-settings.c, src/imap/imap- settings.h, src/master/master-settings.c, src/master/master- settings.h, src/master/service-process.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: verbose_proctitle setting works again. [307a5f65f74d] * src/imap-login/client.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/client-common.h, src /login-common/login-proxy.c, src/login-common/login-proxy.h, src /login-common/main.c, src/login-common/ssl-proxy-openssl.c, src /login-common/ssl-proxy.c, src/login-common/ssl-proxy.h, src/pop3-login/client.c: *-login: Fixes to SSL/login proxy connection counting. [d60fa42fbaac] * src/master/main.c, src/master/master-settings.c, src/master/master- settings.h: master: auth setting blocks don't exist anymore, removed them. [4dd2430a7c62] * src/master/main.c: master: Startup warnings written to stderr should end with LF. [cb3760f21777] * src/master/main.c: master: "auth trouble" message should have been written only to stderr. [2f2e1a3ae633] 2009-09-10 Timo Sirainen * src/config/doveconf.c: doveconf: Crashfix [9287d59dbf69] * src/lib-mail/quoted-printable.c, src/lib-mail/test-quoted- printable.c: quoted-printable decoding didn't handle QP after soft line breaks correctly. Patch by Yamazaki Hideto. [281ea23515ce] * src/lib-master/master-auth.c, src/lib-master/master-interface.h, src /lib-master/master-service-private.h, src/lib-master/master- service.c, src/lib-master/master-service.h, src/login-common/client- common.c, src/login-common/login-settings.c, src/login-common/login- settings.h, src/login-common/main.c, src/master/service-auth- source.c, src/master/service-auth-source.h, src/master/service- monitor.c, src/master/service-process.c, src/master/service- process.h, src/master/service.h: *-login: Fixed dropping oldest connection when reaching all limits. [77228b5431e1] * src/config/config-request.c: config: Increased initial memory pool size. [2e94a44c34ff] * src/login-common/client-common.c: *-login: Don't leak client when it's aborted while waiting for reply from master. [5bcb78c2eabb] * src/lib-dict/dict-sql.c: Compiler warning fixes. [b1857ba4347a] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Save cur/ mtime to index after moving saved messages there, not before. [d39dbfad7f69] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: Removed some unnecessary code. [317cb0a6744b] * src/lib/unlink-directory.c: unlink_directory(): Log if unlink()ing some file fails. [81011be1092f] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Don't force a resync when saving. [d20df975253a] 2009-09-09 Timo Sirainen * src/plugins/zlib/zlib-plugin.c: zlib: Don't allow clients to save compressed data directly. This way clients can't try to exploit uncompression bugs in zlib/bzlib. [aecf6e5be9e2] 2009-09-08 Timo Sirainen * src/lib-master/master-interface.h, src/login-common/ssl-proxy- openssl.c, src/master/main.c, src/master/service-process.c: dovecot -p: And fixed it to really work this time. [3e4f64af6c9a] * src/login-common/ssl-proxy-openssl.c, src/master/Makefile.am, src/master/common.h, src/master/main.c, src/master/service- process.c, src/master/service.c, src/master/service.h: dovecot -p (ask ssl key password from command line) works again. [e819f6dfe5f4] * doc/example-config/conf.d/logging.conf, src/anvil/main.c, src/auth/main.c, src/config/main.c, src/dict/main.c, src/lib-master /master-service.c, src/lib-master/master-service.h, src/lib-storage /mail-storage-service.c, src/lib-storage/mail-storage-settings.c, src/lib-storage/mail-storage-settings.h, src/log/main.c, src/login- common/main.c, src/master/main.c, src/plugins/convert/convert- tool.c: Removed mail_log_max_lines_per_sec setting and related code. It's pretty unnecessary and there's really no good way to implement it with shared log pipes. [37bc3a3d4464] * src/lib/failures.c, src/log/log-connection.c: Logging via log service: Added support for changing process's log prefix. [d7bbe0964b0d] * src/config/config-parser.c, src/config/config-request.c, src/lib- settings/settings-parser.c, src/lib-settings/settings-parser.h: config: When reporting errors in variable-strings, skip over the "0" prefix. [5f61efdc9f35] * src/master/service-process.c: master: Require auth source and destination processes to use different UIDs. [6d3732cf8b3c] * src/master/service-monitor.c: master: When killing idle processes, don't kill the service's last one. [e5edd68453fe] * src/master/service-process.c, src/master/service.h: master: Minor cleanups. [3265d6e98c46] * src/master/service-monitor.c, src/master/service-process.c, src/master/service-process.h: master: Kill extra idling processes. [29ebf1c9ff26] * src/lib/lib-signals.c: lib-signals: Don't assert-crash with nested signal handler calls. [54c0c2c24f2c] * src/master/main.c: master: Write "last died with error" only to stderr, not to log. [88801acf025a] * src/master/main.c: master: SIGHUP now logs that config was reread. [329b1f01052a] * src/log/main.c, src/master/main.c: master: SIGUSR1 now reopens logs. [45e87a15cf48] * src/auth/auth-master-connection.c: auth: Allow PASS lookups also in userdb sockets, not just master sockets. [987d244a7a3e] * src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h: lmtp client, proxy: Several bugfixes. [22d27318bb18] 2009-09-07 Timo Sirainen * src/plugins/notify/notify-storage.c: Removed unused code. [6e5cc5d4cec4] * src/login-common/login-proxy-state.h: Compiling fix. [7afe868ee86f] * src/lib/time-util.c, src/lib/time-util.h: Compiling fix. [21612b2b7b85] * src/master/main.c: master: Fixes to logging startup errors. [7675eb23bba8] 2009-09-06 Timo Sirainen * src/auth/userdb-vpopmail.c: vpopmail: Call vauth_open(), which is required by vpopmail 5.5.0. [7681ae18ed03] * src/master/main.c: master: Log startup errors as well as writing them to stderr. [3d362066d0e8] * src/lib-storage/list/mailbox-list-subscriptions.c: Don't assert-crash when listing subscriptions with a >256 chars long mailbox name. [906dbaba14a9] * src/lib-dict/dict-client.h: lib-dict: Changed default dict socket name. [33855e50b4c7] * src/plugins/quota/quota-dict.c: dict quota: When updating quota, recalculate it when necessary. [a521d09c3ab9] * src/dict/dict-server.c, src/dict/dict-server.h: dict: Removed unused files. [54813ca63b26] * src/dict/dict-commands.c, src/dict/dict-connection.h, src/lib-dict /dict-client.c, src/lib-dict/dict-client.h, src/lib-dict/dict-db.c, src/lib-dict/dict-file.c, src/lib-dict/dict-private.h, src/lib-dict /dict-sql.c, src/lib-dict/dict.c, src/lib-dict/dict.h: dict: Added support for async commits. Changed dict_atomic_inc() behavior. [0f7b25f3e2ce] * src/lib-sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql /driver-sqlite.c, src/lib-sql/sql-api-private.h, src/lib-sql/sql- api.c, src/lib-sql/sql-api.h: lib-sql: Added sql_update_get_rows(). [551c273f4844] * src/lib-index/mail-transaction-log-file.c: lib-index: Minor code cleanup. [69152c0d40a1] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h: dbox: Don't set +x bit for created files. [ba690c9aea70] * src/lib-storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/dbox/dbox-storage.h: dbox: Allow getting streams to messages being saved. [af8424c95825] * src/imap/cmd-select.c, src/imap/imap-client.c, src/imap/imap-sync.c: imap: Some text is required after resp-text-codes (HIGHESTMODSEQ/CLOSED). [38fbf201824c] * src/anvil/anvil-connection.c: anvil: Recovered from my insanity and reverted changes to fifo reading code. [87fed6f0bbfe] * src/anvil/anvil-connection.c: anvil: Fixed reading from FIFOs. [52027b59beb5] 2009-09-04 Timo Sirainen * src/config/config-filter.c, src/config/config-filter.h, src/config /config-parser.c, src/config/config-request.c, src/config/doveconf.c, src/config/main.c, src/lib-master/master- service.c, src/lib-settings/settings-parser.c: Memory leak fixes. [8ad868df4649] * src/anvil/main.c, src/lib-master/master-service.c, src/login-common /sasl-server.c: anvil: Stop immediately when master asks, instead of waiting for clients to finish. [cce684dfe3e7] * src/imap/main.c, src/pop3/main.c: imap, pop3: shutdown_clients setting wasn't working. [e11bd2547bb2] * src/lib-master/master-service-private.h, src/lib-master/master- service.c, src/lib-master/master-service.h: lib-master: Added master_service_set_die_with_master. [c58c40a83bbd] * src/lib-master/master-service-settings.c: lib-master: Don't assert-crash if process gets a signal while reading config. [3de6af0eb499] * src/master/common.h, src/master/main.c, src/master/service-auth- server.c, src/master/service-listen.c, src/master/service-monitor.c, src/master/service.c, src/master/service.h: master: Several fixes to handling SIGHUPs. [31a283729295] * src/login-common/main.c: *-login: If connecting to anvil fails with EAGAIN, try again a few times. [199857627883] * src/config/config-parser.c, src/config/config-request.c: config: Increased initial pool sizes. [831adf94c39f] * src/master/main.c: master: Changed the WhyDoesItNotWork info message. [6880916a8eef] * src/master/master-settings.c, src/master/master-settings.h, src/master/service-monitor.c, src/master/service-process.c: master: Added process_min_avail setting for services. [af7f0be02d3b] * src/master/service-monitor.c, src/master/service-process.c: master: Check process_limit for auth dest processes. Log when reaching limit. [8a38b5b82a1d] * src/master/service-auth-server.c, src/master/service-auth-source.c: master: Fixed reporting auth failure reporting to client. [1cdee825e414] * src/lmtp/commands.c, src/plugins/expire/expire-tool.c, src/util/doveadm.c: lmtp, expire-tool, doveadm: Set service for config lookups. [464c01ae9f0c] * src/lib-master/master-service.c: lib-master: Make sure master_status.available_count is updated correctly. [63d2755c9211] * src/auth/auth-master-connection.c: auth: Don't notify lib-master when primary master connection was destroyed, since it wasn't created through it. [6168a479c54b] * src/anvil/anvil-connection.c, src/config/config-connection.c, src /lib-master/master-service-settings.c, src/login-common/main.c, src/master/service-anvil.c: anvil, config: Use the name in initial VERSION handshake. [1d2d0aa8e313] * src/anvil/anvil-connection.c, src/anvil/anvil-connection.h, src/anvil/main.c: anvil: Read from FIFOs in packets instead of using streams. [c90ba3f3fa51] * src/lib-master/master-service.c, src/lib-master/master-service.h: lib-master: Fixes to handling FIFO connections. Also expose the FIFOness to caller. [5b36fa967538] * src/lib-master/master-service-settings.c: lib-master: Execute doveconf with -f service=, not -p parameter. [3e20e23154e0] 2009-09-03 Timo Sirainen * src/config/config-filter.c, src/config/config-filter.h, src/config /config-parser.c: config: When we detect a conflict, log where in config it came from. [864693ced870] * src/config/doveconf.c: doveconf: -f protocol is now an alias for -f service. [717688db5e82] * src/config/config-parser.c: config: Added some nesting requirements to remote_ip, local_ip and protocol. [d3d8ba13faa6] * src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config/config-parser.c, src/config /config-request.c, src/config/config-request.h, src/config/doveconf.c: config: Several fixes. Now per-ip settings work properly. doveconf parameters were also changed. Now it's possible to ask configuration for a specified filter. [f9ca1a1ebcf8] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: Added settings_parser_apply_changes() for copying changed settings. [2e502c0e23e7] 2009-09-02 Timo Sirainen * src/lib-storage/mail-storage-settings.c, src/master/master- settings.c: settings: Don't crash if no namespaces or services have been created. [0830fbbdfecd] * src/config/config-filter.c, src/config/config-filter.h, src/config /config-parser.c, src/config/config-parser.h, src/config/config- request.c, src/config/doveconf.c: config: Code cleanups. [6103d925e018] * src/config/config-request.c, src/config/config-request.h, src/config/doveconf.c: doveconf -N dumps only settings that have been explicitly set. [5ae02fad67da] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: Settings parser: Support keeping track of what settings were explicitly set. [649245b1552e] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: settings parser: Removed unused settings_parse_save_input(). [2765e7fb2202] 2009-09-01 Timo Sirainen * src/lib-lda/mail-send.c: lda: Don't send rejects to any messages that have Auto-Submitted header. [1bb29c3fad82] * src/auth/mech-digest-md5.c, src/auth/mech-rpa.c: auth: digest-md5, rpa mechanisms no longer require the realm to be listed in auth_realms. [27fc3665b4dd] 2009-08-31 Timo Sirainen * src/master/service-process.c: master: If process uid/gid is too high, refer to last_valid_* settings instead of first_valid_*. Based on patch by Pascal Volk. [070e5e24df41] * src/plugins/virtual/virtual-sync.c: virtual: Don't crash if trying to change a message that was already expunged in backend mailbox. [faa19e000b57] * src/lib-storage/mailbox-list.c: lib-storage: Allow selecting namespace prefix even when list=no. [39561fccb623] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox /dbox-mail.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/lib-storage/test- mail.c, src/plugins/virtual/virtual-mail.c, src/pop3/pop3-commands.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Added pop3_save_uidl setting. When UIDLs are sent to client, save them to dovecot-uidlist. This allows changing pop3_uidl_format without messages getting re-downloaded. It's also useful with virtual POP3 INBOX when UIDLs are based on IMAP UIDs that may not be as stable as in non-virtual INBOX. [ecb05365f520] * doc/example-config/conf.d/auth.conf, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/main.c, src/config/config- parser.c: config: Removed auth sections completely for now. They might come back in some other more generic form. [cf27080f3fcf] * doc/example-config/conf.d/auth.conf, doc/example- config/conf.d/mail.conf: example-config: Moved auth_socket_path to mail.conf. [f5dcc960ab7a] * src/auth/main.c: auth: Use net_getunixname() instead of implementing it ourself. [4efd13c0f778] * src/lib/network.c, src/lib/network.h: Added net_getunixname(). [95fba8612a87] * Makefile.am, configure.in, doc/Makefile.am, doc/dovecot-db- example.conf, doc/dovecot-dict-sql-example.conf, doc/dovecot-ldap- example.conf, doc/dovecot-sql-example.conf, doc/example- config/Makefile.am, doc/example-config/conf.d/Makefile.am, doc /example-config/conf.d/auth.conf, doc/example- config/conf.d/imap.conf, doc/example-config/conf.d/lda.conf, doc /example-config/conf.d/logging.conf, doc/example- config/conf.d/mail.conf, doc/example-config/conf.d/master.conf, doc /example-config/conf.d/plugin.conf, doc/example- config/conf.d/pop3.conf, doc/example-config/conf.d/ssl.conf, doc /example-config/dovecot-db.conf, doc/example-config/dovecot-dict- sql.conf, doc/example-config/dovecot-ldap.conf, doc/example-config /dovecot-sql.conf, doc/example-config/dovecot.conf, dovecot- example.conf, dovecot-master-example.conf, src/config/Makefile.am, src/config/config-connection.c, src/config/config-parser.c, src/config/doveconf.c, src/config/main.c, src/lib- master/Makefile.am: Split dovecot-example.conf to multiple files. Also it's now installed under docdir. [e95135898a3c] * src/master/master-settings.c, src/master/master-settings.h, src/master/service.c: master: If ssl=no, skip inet_listeners with ssl=yes. [331cf0bd593e] * src/master/service-monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h: master: Fixes to checks using service's client_limit. [2dc1e03cad11] * src/lib-master/master-interface.h, src/lib-master/master-service.c, src/master/master-settings.c, src/master/master-settings.h, src/master/service-process.c: Added service_count setting to limit how many requests a service can handle before dying. [d76916a6df44] * src/login-common/client-common.c, src/login-common/login-settings.c, src/login-common/login-settings.h: Removed last traces of login_process_per_connection setting. [777d8121356d] * dovecot-example.conf, dovecot-master-example.conf, src/master /master-settings.c, src/master/master-settings.h, src/master/service.c: protocols setting works again. Services can now specify which protocol they implement and they can quickly enabled/disabled by modifying protocols setting. imaps and pop3s are no longer separate protocols. [2fa181d56c20] * dovecot-example.conf: dovecot-example.conf: Removed (most) settings that are no longer used. [3e9f77da6a6f] * dovecot-master-example.conf: dovecot-master-example.conf: Added some comments. [4bd18ca73175] * dovecot-example.conf, src/auth/auth-settings.c, src/config/config- parser.c: config: Auth settings now require the "auth_" prefix also inside auth blocks. [3f4d796db5fd] * src/config/config-parser.c: config: Code cleanups. [a0ec16185806] * src/lmtp/Makefile.am, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h, src/lmtp/main.c: lmtp: Added initial support for proxying mails to other LMTP/SMTP servers. [3a16bec9c961] * src/lib-lda/Makefile.am, src/lib-lda/lmtp-client.c, src/lib-lda /lmtp-client.h: lib-lda: Added LMTP client code. [c3da5347b1c5] * src/lib-auth/auth-master.c, src/lib-auth/auth-master.h, src/lib- storage/mail-storage-service.c, src/lib-storage/mail-storage- service.h, src/lib-storage/mail-user.c: Added auth_master_pass_lookup() and changed auth_master_used_lookup() API. User lookup can now send local/remote IPs and ports to auth process. [0919ab922086] * src/lib-storage/index/index-fetch.c: Minor code cleanup. [46adc15b33d9] 2009-08-28 Timo Sirainen * src/lib-imap/imap-quote.c: imap_quote*(): If fix_text=FALSE and input contains CRs or LFs, use literals. [0b8492a4f219] * src/lib-imap/imap-bodystructure.c, src/lib-imap/imap-envelope.c, src /lib-imap/imap-quote.c, src/lib-imap/imap-quote.h: imap_quote*() now have fix_text parameter. If it's not set, input isn't modified at all. [dad7264633a9] * src/plugins/acl/acl-mailbox.c, src/plugins/notify/notify-storage.c, src/plugins/quota/quota-storage.c: Plugins now use mail_save_context.copying instead of their own save_hacks. [63b7223cce4b] * src/lib-storage/mail-copy.c, src/lib-storage/mail-storage-private.h: mailbox_copy() now sets mail_save_context.copying=TRUE. [9f5bbc4780a1] * src/auth/mech-gssapi.c: gssapi: Apparently all usernames end with NUL. Allow it. [7f05f59d4205] * src/imap/imap-fetch.c: qresync: Fixed off-by-one modseq comparison when figuring out what VANISHED replies to send. [9996521d883a] * src/imap/imap-fetch.c: imap: Don't crash if SELECT .. QRESYNC doesn't specify list of UIDs. [8f92498a6c88] * src/config/config-parser.c: config: Read auth_* settings correctly that don't exist inside auth {} [88246989a806] * src/auth/main.c: auth: More fixes to figuring out what type the auth socket is. [c9a111a50579] * doc/dovecot-ldap-example.conf: dovecot-ldap-example.conf: Changed the example "base" setting. [3d69f2392d5e] * src/lib/file-set-size.c: file_set_size() was broken with OSes that didn't support posix_fallocate(). [865ad92d0eb3] * src/plugins/acl/acl-mailbox-list.c: acl: Don't use dovecot-acl-list with public namespaces. All mailboxes in a public namespace are typically in dovecot-acl-list anyway. [9d55ed4fbd26] * src/lib/lib-signals.c: Solaris: Don't crash when signal handler is called with siginfo_t=NULL. [11e3058af06c] 2009-08-25 Timo Sirainen * src/auth/db-ldap.c: ldap: Don't log an error when server disconnects us because of idling. [fb555af36c0f] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Fixed maildir_sync_get_changes() to work as it should have. [830958d044ec] 2009-08-24 Timo Sirainen * src/plugins/mail-log/Makefile.am, src/plugins/mail-log/mail-log- plugin.c: Reimplemented mail-log plugin using notify plugin framework. Patch by Mark Washenberger / Rackspace. [d1cdc927ea3c] * configure.in, src/plugins/Makefile.am, src/plugins/notify/Makefile.am, src/plugins/notify/notify-noop.c, src/plugins/notify/notify-plugin-private.h, src/plugins/notify /notify-plugin.c, src/plugins/notify/notify-plugin.h, src/plugins/notify/notify-storage.c: Added a notify plugin that can be used as a generic event catching framework by other plugins. Patch by Mark Washenberger / Rackspace. [f751c23561f9] * src/login-common/client-common-auth.c: *-login: If proxying is enabled but no host is given, don't crash. [211853d48eaf] * src/auth/main.c: auth: Don't crash at startup if auth socket name doesn't contain "-". [07e966c5e5d3] * src/auth/auth-worker-server.c: auth worker server: Don't assert-crash if the whole reply doesn't come in one packet. [fa76c740ee41] * src/master/main.c: master: If execv() fails with ENOMEM, mention the vsz_limit setting. [aad3157d52a1] * src/lib-master/master-service.c: lib-master: If accept() fails and there are no clients, die instead of waiting forever. [41188b7db88a] 2009-08-17 Timo Sirainen * src/lib-storage/index/maildir/maildir-mail.c: maildir: If opening a mail fails with EACCES, log a better error message. [3c33f864b4ae] * src/lib-lda/mail-send.c, src/lib-lda/smtp-client.c, src/lib-lda /smtp-client.h: smtp_client_open() API changed to take lda_settings instead of mail_deliver_context. [882a0a6cc92e] * src/auth/auth-master-connection.c: auth: Added PASS command for auth-master socket to do passdb lookups. [620183ce36f9] * src/auth/auth-master-connection.c, src/auth/auth-master- connection.h, src/auth/main.c: auth: Added auth-master socket that's allowed to do REQUEST commands. [7f9fcd00a819] * dovecot-example.conf, dovecot-master-example.conf, src/auth/main.c, src/lib-storage/mail-storage-settings.c: Renamed auth-master socket to auth-userdb socket. [fc0022950bad] * src/plugins/mbox-snarf/mbox-snarf-plugin.c: mbox-snarf: Keep the mailbox locked while snarfing to avoid duplicates. [825fd2b3f48e] 2009-08-15 Timo Sirainen * src/plugins/acl/acl-api.c: acl: When looking up ACL defaults, use global/local default files if they exist. [f906b5dbc5fb] * .hgignore: .hgignore: Added mailboxlogview [529b02c56ebe] 2009-08-14 Timo Sirainen * src/plugins/listescape/listescape-plugin.c: listescape: Fixed to work with dynamically created shared namespaces. [051f2fd43558] * src/lib-storage/mail-namespace.c: namespace initialization: Allow plugins to override namespace.real_sep. [4acd3444ca43] * src/plugins/listescape/listescape-plugin.c: listescape: Handle properly subscriptions to namespaces with subscriptions=no. [f61dd34e3c35] * src/lib-settings/settings-parser.c: settings parser: If first line begins with "ERROR ", return it as the error message. [4011a41cf404] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/master/main.c, src/master/master-settings.h, src/master/service-auth-source.c, src/master/service-monitor.c, src/master/service-monitor.h, src/master/service-process.c, src/master/service.c, src/master/service.h: master: Support reloading configuration. [da330a07e45c] * src/config/all-settings.h, src/config/config-connection.c, src/config/config-filter.c, src/config/config-filter.h, src/config /config-parser.c, src/config/config-parser.h, src/config/doveconf.c, src/config/main.c, src/config/settings-get.pl: config: If master module requests configuration, reread it before replying. If new configuration is invalid, send an ERROR reply back. [d7ccdbb58a03] * src/lib-test/test-common.c, src/lib-test/test-common.h: lib-test: Added test_istream_set_max_buffer_size(). [0287c38ba6bf] * src/lib-settings/settings-parser.c: setting_parse_environ(): Don't crash if environ=NULL. [26a351f8ed07] * src/lib/istream-crlf.c, src/lib/test-istream-crlf.c: lf-istream: Don't assert-crash if last character in buffer is CR, not followed by LF. [a13837027b29] * src/auth/mech-cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech- gssapi.c: auth: Check for potentially dangerous NULs in usernames. [99f5dd282f48] 2009-08-13 Timo Sirainen * src/imap/cmd-subscribe.c: tb-extra-mailbox-sep workaround works better now. Mailbox is subscribed without trailing separator. Unsubscribe tries to remove both with and without separator. [f0a45d8a7984] * src/plugins/listescape/listescape-plugin.c: listescape: Don't escape characters in namespace prefixes. [544a4627c81a] * src/lib/Makefile.am, src/lib/test-istream-tee.c, src/lib/test-lib.c, src/lib/test-lib.h: Added unit test for istream-tee. [57ae66e0fd38] * src/lib/Makefile.am, src/lib/test-istream-crlf.c, src/lib/test- istream.c, src/lib/test-lib.c, src/lib/test-lib.h: Renamed test-istream.c to test-istream-crlf.c [bba7c46359ac] * src/lib-index/mail-index-transaction-view.c: Transaction view: Don't assert-crash if record size grows during transaction. [3296870a8510] * dovecot-master-example.conf, src/master/service.c: master: Allow inet_listener address to specify multiple addresses. [252bb3d23fb9] * src/lib-master/master-interface.h, src/login-common/client-common- auth.c, src/login-common/client-common.c, src/login-common/client- common.h: *-login: Allow auth input to be larger than the rest of the input. [e4235adb3044] * src/imap-login/client.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/client-common.h, src/pop3-login/client.c: *-login: Allow backend to parse SASL responses from client (for managesieve). [19912e4a2fb3] * src/lmtp/commands.c: lmtp: Use new mail block sizes. [8a6d1d2db78c] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox /dbox-file.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/maildir/maildir- mail.c, src/lib-storage/index/mbox/mbox-file.c, src/lib- storage/index/raw/raw-storage.c, src/lib-storage/mail-storage- private.h: Use separate read block sizes when reading only message header vs. full message. [72b79f58ce1b] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox /dbox-file.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/mbox/mbox-file.c, src/lib-storage/index/raw/raw- storage.c: lib-storage: Actually use MAIL_READ_BLOCK_SIZE sized blocks when reading mails. [3bbad277bef0] * src/lib/istream-internal.h, src/lib/istream.c, src/lib/istream.h: Added i_stream_set_init_buffer_size(). [85abd99007c3] 2009-08-12 Timo Sirainen * src/login-common/login-proxy-state.c, src/login-common/login-proxy- state.h: login proxy: And added new files missing from previous commit. [e27785694615] * src/login-common/client-common-auth.c: login proxy: Changed "unavailable" error message. [a260d5ac01bf] * src/login-common/Makefile.am, src/login-common/login-proxy.c, src /login-common/login-proxy.h, src/login-common/main.c: login-proxy: If proxy destination is known to be down, fail immediately. We'll use simple rules: 1. If connection to destination server failed more recently than it succeeded AND there is currently at least one client trying to connect to it, fail immediately without even trying to connect. 2. Whenever a connection to destination server fails because of timeout or some connect failure AND last successful connection to server was before our connect() started, update the "last failed" timestamp. With these rules there are no unnecessary connect() attempts or waits to servers that are down. When the server does come back up, it's noticed immediately. [da0a48b243a2] * src/login-common/client-common-auth.c, src/login-common/client- common.h, src/login-common/login-proxy.c, src/login-common/login- proxy.h: login proxy: Added client_proxy passdb extra field to specify proxy's connect timeout. [8e099a00f8a9] * src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib /test-time-util.c: Added unit tests for timeval_*(). [1bcd692d6312] * src/lib/time-util.c: timeval_diff_*() fixes. [6ff08c7c9f03] * src/plugins/fts-squat/squat-test.c, src/plugins/fts/fts-storage.c: Use timeval_diff_*() more. [306e450a3515] * src/imap/imap-search.c, src/lib-storage/index/index-search.c, src /lib-storage/index/maildir/maildir-filename.c, src/lib/Makefile.am, src/lib/ioloop.c, src/lib/time-util.c, src/lib/time-util.h, src/plugins/fts-squat/squat-test.c: Moved all struct timeval comparing/calculation code to lib/time- util. [8716936443db] * src/login-common/ssl-proxy-openssl.c: Fixed openssl malloc() failure check. [78a47e564e90] * src/imap-login/client.c, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/client-common.h, src/pop3-login/client.c: *-login: Abstract out SASL continue reply sending (for managesieve). [50df3e60ab85] 2009-08-11 Timo Sirainen * src/lib/ostream-buffer.c: ostream-buffer: Don't grow buffer above max_buffer_size. [7c0b29275651] * src/imap-login/client.c, src/login-common/client-common.c, src/pop3-login/client.c: *-login: Call client_vfuncs.destroy() on client_destroy(), not on unref. [935b9cfc1905] * src/lib-storage/index/dbox/dbox-map.c, src/lib/ostream-internal.h: Compiler warning fixes. [e5e74a4f07e9] * src/lib-mail/test-message-header-parser.c: test-message-header-parser: Removed accidentally committed debug code. [4168fd6a6a33] 2009-08-09 Timo Sirainen * README, src/lib-imap/imap-resp-code.h: draft-gulbrandsen-imap-response-codes became RFC 5530. [70dab9dedda0] 2009-08-10 Timo Sirainen * src/lib-storage/index/maildir/maildir-save.c: maildir: Another fix to handling saves/UID changes. [299b55312e1c] * src/lib-storage/index/istream-mail-stats.c: istream-mail-stats: Don't double-reference parent stream. [815a76964e87] * src/dsync/dsync-brain.c: dsync: Minor verbose logging improvements. [ab4e247d326d] * src/lib-storage/index/maildir/maildir-save.c: maildir: Don't assert-crash if we're changing UIDs without saving mails. [f36fbaeddbf8] 2009-08-09 Timo Sirainen * src/imap-login/client-authenticate.c, src/login-common/client- common-auth.c, src/pop3-login/client-authenticate.c: *-login: Moved ssl=required checking to login-common. [1c01e6bf1090] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/client.c, src/imap-login/client.h, src/imap-login/imap-proxy.c, src/imap-login/imap-proxy.h, src/login- common/Makefile.am, src/login-common/client-common-auth.c, src /login-common/client-common.c, src/login-common/client-common.h, src /login-common/common.h, src/login-common/login-proxy.c, src/login- common/login-proxy.h, src/login-common/main.c, src/login-common /sasl-server.c, src/login-common/ssl-proxy-openssl.c, src/login- common/ssl-proxy.c, src/login-common/ssl-proxy.h, src/pop3-login /client-authenticate.c, src/pop3-login/client-authenticate.h, src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c, src/pop3-login/pop3-proxy.h: *-login: Moved most of the common code to login-common. [e30495ae11de] * src/lib-storage/mail-storage.c: lib-storage: Don't crash if trying to use unknown storage class. [c2037505a66b] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/client.c, src/imap-login/client.h, src/imap-login/imap-proxy.c, src/login-common/client-common.h, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c: *-login: Use a common client_send_line() API. [b9ad5b841f7e] * src/imap-login/client-authenticate.c, src/login-common/sasl- server.c, src/login-common/sasl-server.h, src/pop3-login/client- authenticate.c: *-login: Moved common code to sasl_server_get_advertised_mechs(). [fc025d93b274] * src/lib-storage/mailbox-list.c: Don't crash when listing shared namespace prefix. [e616c3d00c2c] * src/plugins/autocreate/autocreate-plugin.c: autocreate: Fixed autosubscribing to mailboxes in subscriptions=no namespaces. Also log autosubscribe failures if mail_debug=yes. [e90fd94136d0] 2009-08-07 Timo Sirainen * src/lib-storage/index/index-thread.c: IMAP: Fixed THREAD .. INTHREAD crashing. Also cleaned up the code a bit. [9ae6f4e875ca] * configure.in, src/plugins/quota/quota-fs.c: configure: Removed --with-linux-quota parameter. It was useful only in some broken setups and even there it can be specified with CPPFLAGS instead. [ea5d2bd9deb9] * src/lib-storage/index/maildir/maildir-uidlist.c: dbox: Don't crash when trying to update migrated maildir's uidlist. Normally this shouldn't happen though. [c06b7c5f2c8c] * src/plugins/quota/Makefile.am: quota: Don't link rpcsvc library. It shouldn't be necessary since we generate our own rquota_xdr.c [de0bd8eeaad9] * configure.in: configure: Allow --with-linux-quota=n to be only 1 or 2. [48324f717aca] * src/lib-storage/index/index-sort-string.c: sort: Don't assert-crash if sort indexes are broken. [b7c589751c5b] * src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts-api- private.h, src/plugins/fts/fts-storage.c: fts: Fixed crashing with Squat. A better solution would be for Squat to use existing mailboxes' Squat indexes, but for now this isn't done. [c16ee25ec37b] * src/plugins/virtual/virtual-storage.c: virtual: If opening backend mailbox fails, show the maibox name. [2d2911c23232] * src/auth/db-ldap.c: ldap: Fixed hang when >128 requests were sent at once. Based on patch by Marek Miska. [c5cdc49d5138] * src/lib-storage/mailbox-list.c: lib-storage: Disallow control characters in mailbox names when creating them. [60b76a35bb2c] * src/login-common/ssl-proxy-openssl.c: *-login: If OpenSSL fails with malloc failure, log an error. [2e725e1aaac6] * src/lib-storage/index/maildir/maildir-save.c: maildir+deliver: Add all existing messages to uidlist if it doesn't exist yet. [f108a865dbca] * src/master/ssl-init.c: Compiler warning fix when building without SSL. [95ea01bb65f5] 2009-08-06 Timo Sirainen * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.h: index-mail: Expose tee_stream so plugins can read the stream too while mail is being read. [80c0e8bd1e47] 2009-08-05 Timo Sirainen * src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-brain-msgs.c, src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c, src/dsync /dsync-brain.h, src/dsync/dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync/dsync-proxy-server.h, src/dsync/dsync-proxy.c, src/dsync/dsync-proxy.h, src/dsync/dsync- worker-local.c, src/dsync/dsync-worker-private.h, src/dsync/dsync- worker.c, src/dsync/dsync-worker.h, src/dsync/dsync.c, src/dsync /test-dsync-brain-msgs.c, src/dsync/test-dsync-brain.c, src/dsync /test-dsync-common.c, src/dsync/test-dsync-proxy-server-cmd.c, src/dsync/test-dsync-proxy.c, src/dsync/test-dsync-worker.c, src/dsync/test-dsync-worker.h: dsync: Lots of updates and fixes. [d9a96da46d4a] * src/util/Makefile.am, src/util/mailboxlogview.c: Added mailboxlogview utility for viewing mailbox logs. [d354dc450c63] * src/util/logview.c: logview: UID updates increase modseq. [1c0132ccb0be] * src/lib-storage/index/maildir/maildir-storage.c, src/lib-storage /mailbox-list-private.h, src/lib-storage/mailbox-list.c, src/lib- storage/mailbox-list.h: lib-storage: Fill mailbox log with mailbox delete/rename/(un)subscribes. [fd534ee2c08e] * src/lib-index/Makefile.am, src/lib-index/mailbox-log.c, src/lib- index/mailbox-log.h: lib-index: Added mailbox transaction log. It's a much simplified version of mail transaction log. [d21f2f0b1e11] * src/lib/ioloop-poll.c: ioloop poll: Added assert to catch double-io_add()s. [111812403bea] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-storage.h, src/lib-storage/index/dbox /dbox-storage.c, src/lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib-storage/mailbox- list.c, src/lib-storage/mailbox-list.h: Added mailbox_list_get_guid() to get/create directory GUID. Directory GUIDs are mainly useful for dsync to identify \Noselect mailboxes. [73daab8251eb] * src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h: maildir: mail_update_uid() now updates uidlist also. [7315aa70dfcf] * src/lib-storage/index/maildir/maildir-save.c: Maildir: Allow specifying recent flags for saved messages. [64ab55223d69] * src/lib-storage/index/index-mail.c: mail_update_flags(): Allow removing recent flag from message. [b7af600f0c62] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/maildir/maildir-storage.c: mailbox_update(): Update index also. [dd4c5e43c55a] * src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- transaction-finish.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index.h, src/lib-index/test-mail-index-transaction- finish.c: lib-index: Added mail_index_update_highest_modseq(). [1411f157ffdd] * src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction-update.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail- transaction-log-file.c: lib-index: Fixes to handling UID changes. [773b91d3ed13] 2009-08-04 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: ssl_username_from_cert=yes: Don't truncate username, don't allow NULs in it. [89a3b2d09a26] * src/imap/cmd-delete.c, src/imap/imap-commands-util.c: imap: Fixed tb-extra-mailbox-sep workeround. [497b2f2bd175] 2009-08-03 Timo Sirainen * src/lib-storage/index/index-mail.h, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/mail-storage.c: lib-storage: Use less memory from data stack. [51d280d34bfa] * src/lib-storage/index/maildir/maildir-save.c: maildir: If saving fails, revert also changes to indexes. Fixes a crash in that situation. [5f2bcf817c94] * src/lib-index/mail-index-transaction-update.c: mail_index_expunge: Drop also modseq updates when expunging a newly appended record. [810a70b696fc] * src/dsync/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-mail/Makefile.am, src/lib- storage/index/Makefile.am, src/lib/Makefile.am: Makefiles: Changed check-test to depend on all-am to fix build dependency problems. [1d3fbe678158] * src/Makefile.am: Removed unused "make test" handling. [bfa65235e772] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Don't recreate dovecot-uidlist all the time. [d7e915fc741c] * src/plugins/listescape/listescape-plugin.c: listescape: Fixed problems with handling mailbox listing. [ddc3593a2091] * src/lib-storage/list/mailbox-list-maildir.c: maildir++: When renaming child mailboxes, don't check for ACLs. If we had access to rename the root, we must rename the children as well since that's what IMAP expects. [3876c3818628] 2009-08-02 Timo Sirainen * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-list.c, src/imap/cmd-rename.c, src/imap/cmd-select.c, src/imap/cmd-status.c, src/imap/cmd- subscribe.c, src/imap/imap-commands-util.c, src/imap/imap-commands- util.h, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/list/mailbox-list-maildir.c, src/lib-storage/mail- namespace.c, src/lib-storage/mailbox-list.c, src/lib-storage /mailbox-list.h, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins /imap-quota/imap-quota-plugin.c: Allow namespace prefix to be opened as mailbox, if it already exists. [1ba2a0637719] * src/lib/env-util.c, src/lib/env-util.h, src/lib/lib.c: lib_deinit() now frees memory used by env_put(). [d48c8c0c1d29] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Don't access uninitialized variables. [140558f1987a] 2009-07-31 Timo Sirainen * src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-sync-rebuild.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-sync.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c: Removed mailbox_guid_is_empty(), use mail_guid_128_is_empty() directly instead. [8da945eb4176] * dovecot-example.conf: dovecot-example.conf: Fixed !include examples. [ad2852741fce] 2009-07-30 Timo Sirainen * src/lib-storage/index/cydir/Makefile.am, src/lib-storage/index/cydir /cydir-save.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-storage.h, src/lib-storage/index/cydir /cydir-transaction.c, src/lib-storage/index/dbox/Makefile.am, src /lib-storage/index/dbox/dbox-save.c, src/lib-storage/index/dbox /dbox-storage.c, src/lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/dbox/dbox-transaction.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/Makefile.am, src/lib-storage/index/maildir /maildir-copy.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-transaction.c, src/lib- storage/index/mbox/Makefile.am, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/index/mbox/mbox- transaction.c, src/lib-storage/index/raw/Makefile.am, src/lib- storage/index/raw/raw-storage.c, src/lib-storage/index/raw/raw- storage.h, src/lib-storage/index/raw/raw-transaction.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/test- mail-storage.c, src/plugins/virtual/virtual-save.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h, src/plugins/virtual/virtual-transaction.c, src/plugins/virtual/virtual-transaction.h: index-storage: Simplified the way transactions are are created/finished. Removed also mail_storage.class_init/deinit since they're no longer used for anything. [ef135231b675] * src/plugins/virtual/virtual-storage.c: virtual: Fixed to work again without crashing after several API changes. [20934905ccdc] * src/imap/cmd-append.c, src/imap/cmd-copy.c: imap: Support UID-less saves/copies after all. Virtual backend can't return them. [fb8f0a3d51dc] * src/lib-index/mail-transaction-log.c: index: Fix to previous cleanups. [497b17e8bb91] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-search.c, src/lib-storage/index/index-storage.h, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-save.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-transaction.c: index-storage: Code cleanups. [f704410ce580] * src/lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/mbox/mbox-sync-private.h, src/lib-storage/index/mbox /mbox-sync.c: mbox: Removed unused MBOX_SYNC_LAST_COMMIT and related code. [1b537cceb640] * src/lib-storage/index/index-mail.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-storage.h, src/lib-storage/index/mbox/mbox- sync-parse.c, src/lib-storage/index/mbox/mbox-sync.c: index-storage: Moved mail MD5 calculation code to mbox-specific code. Nothing else used it. [9f1616eeffb8] * src/lib-storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/index-sync.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/mbox /mbox-file.c, src/lib-storage/index/mbox/mbox-sync-private.h, src /lib-storage/index/mbox/mbox-sync-update.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw/raw- sync.c, src/plugins/virtual/virtual-sync.c: index-storage: Code cleanup. [fa5e27725f6b] * src/lib-storage/index/dbox/dbox-storage.c, src/lib-storage/index /index-storage.c, src/lib-storage/index/index-storage.h: index-storage: Code cleanup. [ac98c24da6ee] * src/lib-storage/index/cydir/cydir-save.c, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-transaction.c, src/lib-storage/index/maildir /maildir-copy.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/mbox/mbox-save.c: Removed duplicated flags from struct index_transaction_context. [f123bb8afd1c] * src/lib-index/mail-index.c: mail_index_chown(): Check for fchown() failing with EPERM, not EACCES. [37bdd5ce828f] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-private.h, src/lib-index/mail-transaction-log.c: index: Code cleanups. [6e4b79ca75cc] * src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache-sync- update.c, src/lib-index/mail-cache-transaction.c, src/lib-index /mail-cache.c, src/lib-index/mail-index-lock.c, src/lib-index/mail- index-map-read.c, src/lib-index/mail-index-private.h, src/lib-index /mail-index-strmap.c, src/lib-index/mail-index-sync-update.c, src /lib-index/mail-index-write.c, src/lib-index/mail-index.c, src/lib- index/mail-transaction-log-append.c, src/lib-index/mail-transaction- log-file.c, src/lib-index/mail-transaction-log-private.h, src/lib- index/mail-transaction-log.c, src/lib-index/mailbox-list-index- sync.c, src/lib-index/mailbox-list-index.c: index: Removed duplication of mail_index_open_flags from struct mail_index. [126132cb1c19] * src/lib/file-set-size.c: Handle posix_fallocate() failures correctly. Check also for AIX's "not supported" failure. Based on patch by Ralf Becker. [cff3cb25a3e9] 2009-07-29 Timo Sirainen * src/dsync/dsync-data.h, src/dsync/test-dsync-common.c, src/dsync /test-dsync-common.h, src/dsync/test-dsync-proxy-server-cmd.c, src /lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h, src/lib-storage/index/mbox /mbox-storage.h, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib- storage/mail.c: Removed MAILBOX_GUID_SIZE macro, use MAIL_GUID_128_SIZE everywhere. They were required to be the same size anyway. [9e3e3166a5c9] * src/lib/file-dotlock.c: Fixed file_dotlock_open*() logging errors in some OSes. Patch by Ralf Becker. [03b52be4da81] 2009-07-28 Timo Sirainen * src/dsync/dsync-worker-local.c: dsync: Sync messages' modseqs. [535797d56631] * src/lib-index/mail-index-modseq.c, src/lib-index/mail-index- modseq.h, src/lib-index/mail-index-sync-update.c, src/lib-index /mail-index-transaction-export.c, src/lib-index/mail-index- transaction-finish.c, src/lib-index/mail-index-transaction- private.h, src/lib-index/mail-index-transaction-update.c, src/lib- index/mail-index.h, src/lib-index/mail-transaction-log-append.c, src /lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-private.h, src/lib-index/mail-transaction-log- view.c, src/lib-index/mail-transaction-log.h, src/lib-index/test- mail-index-transaction-finish.c, src/lib-index/test-mail-index- transaction-update.c, src/lib-index/test-mail-transaction-log- append.c, src/lib-index/test-mail-transaction-log-view.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- save.c, src/lib-storage/index/dbox/dbox-mail.c, src/lib- storage/index/dbox/dbox-save.c, src/lib-storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-save.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/index/raw/raw-mail.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h, src/lib-storage/mail.c, src/lib-storage /test-mail.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual-save.c, src/util/logview.c: Added ability to specify message's minimum modseq value. [b09d9350a2d9] * src/lib-storage/index/mbox/mbox-save.c: mbox: Allow setting \Recent flag when also specifying message's UID. [d303e3319720] * src/lib-storage/index/maildir/maildir-save.c: mbox, maildir: Allow setting \Recent flag when also specifying message's UID. [ceb55c870ed3] * src/dsync/dsync-proxy-client.c, src/dsync/dsync-proxy.c, src/dsync /test-dsync-proxy-server-cmd.c, src/dsync/test-dsync-proxy.c: dsync: Sync also \Recent flags. [4d12ca03c4c0] 2009-07-27 Timo Sirainen * src/plugins/virtual/virtual-sync.c: virtual: Fixed to work with new mail_index_append_finish_uids() API. [ce253d167757] * src/dsync/Makefile.am, src/dsync/dsync-brain-msgs-new.c, src/dsync /dsync-brain-msgs.c, src/dsync/dsync-brain-private.h, src/dsync /dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy-client.c, src/dsync /dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync /dsync-proxy-server.h, src/dsync/dsync-proxy.c, src/dsync/dsync- proxy.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker- private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/dsync.c, src/dsync/test-dsync-brain-msgs.c, src/dsync /test-dsync-brain.c, src/dsync/test-dsync-common.c, src/dsync/test- dsync-common.h, src/dsync/test-dsync-proxy-server-cmd.c, src/dsync /test-dsync-worker.c, src/dsync/test-dsync-worker.h: dsync: Lots of improvements and fixes. Appears to be somewhat working now. [4d5cc6ce68aa] * src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h: maildir: Support saving messages with specified UIDs. [be433e394f69] * src/lib-index/mail-index-transaction-update.c, src/lib-index/mail- index.h, src/lib-index/test-mail-index-transaction-update.c, src /lib-storage/index/cydir/cydir-save.c, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-save.c, src/lib-storage/index/maildir /maildir-save.c: Changed mail_index_append_assign_uids() to mail_index_append_finish_uids() with API changes. It's now possible to call mail_index_append() with UIDs before locking mailbox and have the _finish_uids() change them if another session had already used those UIDs. [fb8bc26d7194] * src/lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-maildir-iter.c, src/lib-storage/mailbox-list.h: Added MAILBOX_LIST_ITER_NO_AUTO_INBOX for listing INBOX only when it already exists. [b56b06cdd1d7] * src/lib-storage/index/maildir/maildir-storage.c: maildir_list_iter_is_mailbox() should return 0 for non-existing maildirs. [80cf689acdb4] * src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- transaction-export.c, src/lib-index/mail-index-transaction-finish.c, src/lib-index/mail-index-transaction-private.h, src/lib-index/mail- index-transaction-update.c, src/lib-index/mail-index.h, src/lib- index/mail-transaction-log.h, src/lib-index/test-mail-index- transaction-finish.c, src/lib-index/test-mail-index-transaction- update.c, src/lib-storage/index/cydir/cydir-mail.c, src/lib- storage/index/dbox/dbox-mail.c, src/lib-storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-mail.c, src /lib-storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/lib-storage/test- mail.c, src/plugins/virtual/virtual-mail.c: Added ability to change existing messages' UIDs with mail_[index_]update_uid(). [cf187692fcfe] * src/plugins/expire/expire-tool.c: expire-tool: Compiler warning fixes. [77e629913bfc] * src/auth/mech-gssapi.c: gssapi: Error handling fix. [30652466135d] * src/auth/mech-gssapi.c: gssapi: Fixed compiling for non-MIT/Heimdal GSSAPI implementations (Solaris). [e4df9322a094] * configure.in: configure: clock_gettime()'s -lrt adding dropped everything else from $LIBS. [00399010c88a] * src/config/config-parser.c, src/lib-settings/settings.c: Compiling fix for systems without GLOB_BRACE. [3771a638cadb] 2009-07-26 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir uidlist: Added better next_uid error tracking. [ef1e18f24173] * src/lib-storage/index/maildir/maildir-sync-index.c: maildir: When UIDVALIDITY changes, don't reset uid_next to 1 in uidlist. [05f2da3576a4] * src/plugins/quota/quota-maildir.c: maildir++ quota: Quota was sometimes updated wrong when it was being recalculated. [3d3d090db66f] * src/lib-index/mail-cache-lookup.c: cache file: If offset isn't 32bit aligned, assume it's corrupted. [436d2bead41b] * src/auth/mech-gssapi.c: gssapi: Fail authentication if mechanism type isn't Kerberos 5. Also check GSS_KRB5_NT_PRINCIPAL_NAME more correctly. [a5d87492c083] * src/auth/mech-gssapi.c: gssapi: Don't do krb5_kuserok() to authz_name. It shouldn't be necessary. [c163bc483c9e] * configure.in, dovecot-example.conf, src/config/config-parser.c, src /lib-settings/settings.c: dovecot.conf: Added support for !include globs. Based on patch by Thomas Guthmann. [6cc6913fee1c] * src/lib/mempool-system-clean.c, src/lib/mempool-system.c: Don't include malloc.h if it doesn't have malloc_usable_size(). [462dcad58a92] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge: Drop \Deleted flag when moving message. [4fdc1fadb529] * src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h, src/plugins/virtual/virtual-sync.c: virtual: If another session adds a new mailbox to index, handle it without crashing. For now we'll just disconnect the session. [1858d2fe330b] * src/plugins/virtual/virtual-storage.c: virtual: Minor code cleanup. [3816c5011c53] * src/lib-mail/Makefile.am, src/lib-mail/message-decoder.c, src/lib- mail/test-message-decoder.c: message-decoder: Fixed assert-crashes caused by the previous quoted- printable change. [4c255c7b6245] * src/auth/passdb-pam.c: pam: Fixed compiler warning with BSDs. [5decb25661bd] * src/lib-mail/Makefile.am, src/lib-mail/message-header-decode.c, src /lib-mail/quoted-printable.c, src/lib-mail/quoted-printable.h, src /lib-mail/test-quoted-printable.c: Split quoted-printable parsing to q-p body parsing and "Q" header parsing. Fixed also several other issues in quoted-printable parsing to get it fully RFC compliant. [2dce50fc0d9f] * src/imap/main.c, src/pop3/main.c: imap/pop3: Compiling fix. [1780d56a9160] * src/lib-mail/test-mbox-from.c: test-mbox-from: Compile fix. [072b005181e8] * src/lib-storage/index/maildir/maildir-storage.c: Maildir LAYOUT=fs: Default INBOX path to Maildir root. [cc8c020707c1] * src/plugins/acl/acl-backend-vfile.c: acl: Support spaces in user/group identifiers. [f29a25420a82] * src/master/service-process.c: master: Handle better chdir()ing to home dir. [dfe15bb24fdb] * configure.in: configure: Check sasl.h existence only when using --with-ldap. Patch by Pascal Volk. [dc6d35b51b68] * configure.in: configure: Use -lrt for clock_gettime() if necessary. [cef143e8719d] * configure.in: configure: Support finding PostgreSQL without pg_config after all. [5714aba539f0] 2009-07-24 Timo Sirainen * src/imap/main.c, src/pop3/main.c: If imap/pop3 service is tried to be started without being auth_dest_service, log better error. If login_executable=imap/pop3, give better error message. [ad5d34c9031d] * src/lib-storage/mail-namespace.c: mail_location setting wasn't used if namespaces weren't defined. [1644c25bfbef] * src/imap/cmd-delete.c: imap delete: Use mailbox_backends_equal() for finding if we're deleting selected mailbox. [5024551304d9] * src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h: Added mailbox_backends_equal(). [6b6d6e094674] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/lib-lda/mail- deliver.c, src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/dbox/dbox-save.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/mbox /mbox-save.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib- storage/test-mailbox.c, src/plugins/acl/acl-mailbox.c, src/plugins/expire/expire-plugin.c, src/plugins/fts/fts-storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/quota/quota-storage.c: mailbox_transaction_commit_get_uids() changed to _get_changes() with more generic API. Saved UIDs are no longer necessarily in a simple x:y range. [47356e8dda45] 2009-07-21 Timo Sirainen * src/lib/lib-signals.c: lib-signals: Redesigned how delayed signals are handled. Fixes signal handler hanging infinitely in write() when many signals were sent rapidly. [028878f7063a] * src/lib/utc-offset.c: utc_offset() was broken with year's first/last day if struct tm.tm_gmtoff didn't exist. [22ede7ce7be4] * src/lib-index/mail-index-transaction-view.c: Transaction view: Fixed getting extension data from messages whose flags had changed. [d1c159e447a2] 2009-07-20 Timo Sirainen * src/lib-storage/index/shared/shared-storage.c: shared mailboxes: If only %%n is specified in prefix, default to current user's domain. [ab31f0f00912] 2009-07-17 Timo Sirainen * src/dsync/dsync-brain.c, src/dsync/test-dsync-brain.c: dsync: Handle missing mail GUIDs. [16849c0931be] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.h: mail_guid_128_is_empty() is now a public function. [3b285975bb15] * src/dsync/dsync-brain.c: dsync: Some fixes. [fb91695ec0bf] * src/auth/mech-gssapi.c: GSSAPI: Fixed memory leak on error conditions. [8c370896b657] * configure.in: configure: Use pg_config for figuring out PostgreSQL include/libs paths. pg_config has existsed since v7.1, so don't bother using any fallbacks. [ac52d79b7b94] 2009-07-16 Timo Sirainen * src/dsync/dsync-brain.c, src/dsync/dsync-data.h, src/dsync/test- dsync-brain.c: dsync: Skip syncing mailboxes whose uidvalidity/uidnext/highest- modseq hasn't changed. [ffda7bd92ebc] 2009-07-15 Timo Sirainen * src/dsync/dsync-brain.c, src/dsync/dsync-data.h, src/dsync/dsync- proxy.c, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.h, src/dsync/test-dsync-brain.c, src/dsync/test-dsync-proxy.c: dsync: Use expunged messages' GUIDs to determine what to do with missing messages at end of mailbox. If GUIDs match, expunge the message. If they don't match, treat it as UID conflict. [b11a3eda2477] * src/lib/test-hex-binary.c: Added missing test-hex-binary.c from earlier commit. [c4118cfa1085] * src/lib-storage/mail-storage-private.h, src/lib-storage/mail- storage.c, src/lib-storage/mail-storage.h, src/lib-storage/mail.c: mail_generate_guid_128_hash() is now a public function. [54f84f569ca0] * src/lib-index/mail-transaction-log.c, src/lib-index/mail- transaction-log.h: Added mail_transaction_log_get_tail(). [c8be44ff1090] * src/lib/Makefile.am, src/lib/hex-binary.c, src/lib/hex-binary.h, src/lib/test-lib.c, src/lib/test-lib.h: Added binary_to_hex_append(). [7fc9e93fe745] * src/imap/imap-sync.c: IMAP: When QRESYNC is enabled, don't crash when a new mail is received while IDLEing. [4f9267f13944] * src/lib-storage/index/Makefile.am, src/lib-storage/index/test-index- fetch.c: Added unit test for mailbox_get_expunges(). [85064a01ddfd] * src/lib-storage/index/index-fetch.c: Several fixes to mailbox_get_expunges(). [ee69a1de3b30] * src/plugins/virtual/virtual-storage.c: virtual: Compiler warning fix. [bbaa7a30b6cb] * src/plugins/virtual/virtual-storage.c: virtual: Compiling fix. [d8792caeede1] * src/plugins/quota/Makefile.am: quota-fs: Building fixes. [4ea40abcc301] 2009-07-14 Timo Sirainen * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/index- fetch.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c: Renamed index_storage_get_expunged_uids to index_storage_get_expunges. [ce601bb82183] * src/lib-index/Makefile.am, src/lib-index/mail-index-transaction- finish.c, src/lib-index/mail-index-transaction-private.h, src/lib- index/mail-index-transaction-update.c, src/lib-index/test-mail- index-transaction-finish.c, src/lib-index/test-mail-index- transaction-update.c: mail index transactions: More code cleanups and unit tests. [b45be8d8b388] * src/lib-index/mail-index-transaction-finish.c: mail index transaction: Dropping duplicate expunges changed expunges' GUIDs. [e8b9f78d2b3c] 2009-07-13 Timo Sirainen * src/imap/imap-fetch.c, src/lib-index/mail-index-sync-update.c, src /lib-index/mail-index-sync.c, src/lib-index/mail-index-transaction- export.c, src/lib-index/mail-index-transaction-finish.c, src/lib- index/mail-index-transaction-private.h, src/lib-index/mail-index- transaction-update.c, src/lib-index/mail-index-transaction-view.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail-index- view-sync.c, src/lib-index/mail-index.h, src/lib-index/mail- transaction-log-append.c, src/lib-index/mail-transaction-log-file.c, src/lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.h, src/lib-mail/mail-types.h, src/lib- storage/index/dbox/dbox-file-fix.c, src/lib-storage/index/dbox/dbox- file.c, src/lib-storage/index/dbox/dbox-file.h, src/lib- storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox- save.c, src/lib-storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- storage.h, src/lib-storage/index/dbox/dbox-sync-file.c, src/lib- storage/index/dbox/dbox-sync.c, src/lib-storage/index/dbox/dbox- sync.h, src/lib-storage/index/index-fetch.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-sync-changes.c, src/lib-storage/index/index- sync-changes.h, src/lib-storage/index/maildir/maildir-sync-index.c, src/lib-storage/index/mbox/mbox-sync.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/lib-storage/mail.c, src/lib-storage/test- mailbox.c, src/util/logview.c: Keep track of expunged messages' GUIDs and expose them via mailbox_get_expunges(). The message GUIDs are stored in expunge records to transaction log. Before doing the final expunge, Maildir and dbox verify that the GUID in expunge request matches the current actual GUID. The GUID is stored in 128 bit field. If the real GUID isn't 128 bit, the bits are taken from SHA1 of the GUID. [2558ba736207] * src/lib-index/mail-index-map.c, src/lib-index/mail-index-modseq.c, src/lib-index/mail-index-transaction-export.c, src/lib-index/mail- transaction-log-file.c, src/lib-index/mail-transaction-log- private.h, src/lib-index/mail-transaction-log-view.c, src/lib-otp /otp-parse.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/maildir/maildir-save.c, src/lib/buffer.c, src/lib/buffer.h, src/lib/str.c: buffer_create_[const_]data() API change: Take buffer_t as parameter instead of allocating it. [3da42dafa798] * src/lib-index/Makefile.am, src/lib-index/mail-index-transaction- finish.c, src/lib-index/mail-index-transaction-private.h, src/lib- index/mail-index-transaction-update.c, src/lib-index/mail-index- transaction.c, src/lib-index/test-mail-index-transaction-update.c: Moved around mail-index-transaction code and added initial unit tests. [cae78e734cdb] * src/lib-index/mail-index-view-sync.c: Mail index view syncs: Simplify code for getting list of expunges. [8c17eb6c28d6] * src/lib-index/mail-cache-transaction.c, src/lib-index/mail-cache.h, src/lib-storage/index/index-transaction.c, src/lib- storage/index/maildir/maildir-save.c: More fixes to cache changes. [a0b8777ac846] * src/lib-storage/index/cydir/cydir-transaction.c, src/lib- storage/index/dbox/dbox-transaction.c, src/lib-storage/index/index- transaction.c, src/lib-storage/index/maildir/maildir-transaction.c, src/lib-storage/index/mbox/mbox-transaction.c, src/lib- storage/index/raw/raw-transaction.c: Fix to previous cache changes: Cache transaction was commited too early. [430832cf3cf0] * src/lib-index/mail-index-transaction-finish.c: Fix to previous flag update changes: Avoid crashes / infinite looping. [8bdfb66bf660] * src/lib-index/mail-index-transaction-finish.c: If all flag changes are dropped, make sure we don't write anything to transaction log. [e852cb4c5cd2] * src/lib-index/mail-index-transaction-finish.c, src/lib-index/mail- index-transaction-private.h, src/lib-index/mail-index-transaction.c: mail_index_update_flags*() now does a better job of merging flag changes together. [1f8629349b41] * src/lib-index/mail-index-transaction.c: Fixed expunging appended message that had atomic extension changes done. [2f54270904bf] * src/lib-index/mail-index.c: Previous commit accidentally removed mail_index_keywords_create(). [d670b5d66302] * src/lib-index/mail-index-transaction.c, src/lib-index/mail-index.c: Moved mail_index_keywords_*() to mail-index.c. [ed9b4bc28913] * src/lib-index/Makefile.am, src/lib-index/mail-index-private.h, src /lib-index/mail-index-transaction-private.h, src/lib-index/mail- index-transaction.c, src/lib-index/mail-index-util.c, src/lib-index /mail-index-util.h: Moved mail_index_seq_array_*() to mail-index-util.c and added its own .h file. [2cab7f501986] * src/lib-index/mail-cache-transaction.c, src/lib-index/mail-index- transaction-private.h, src/lib-index/mail-index-transaction.c: Isolated all cache transaction handling code to a single file. [546adc9dd14b] 2009-07-27 Timo Sirainen * src/imap/imap-fetch.c: IMAP: FETCH X-* parameters weren't working. [cf930dc6a7fe] 2009-07-10 Timo Sirainen * src/imap/imap-commands.c, src/imap/imap-fetch.c, src/lib-index/mail- index-strmap.c, src/lib-index/mailbox-list-index-sync.c, src/lib- mail/istream-header-filter.c, src/lib-storage/index/dbox/dbox- storage-rebuild.c, src/lib-storage/index/index-thread.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/plugins/acl/acl- backend-vfile.c, src/plugins/fts/fts-storage.c, src/plugins/virtual /virtual-storage.c, src/plugins/virtual/virtual-sync.c: Use array_bsearch*(). [d404d34097f2] * src/lib/bsearch-insert-pos.c, src/lib/bsearch-insert-pos.h: Added type safe array_bsearch_insert_pos(). [5ab09480d6b4] * src/lib/array.c, src/lib/array.h: Added type safe array_bsearch(). [55690917fefb] * src/plugins/expire/expire-env.c: expire: Log configuration at startup if mail_debug=yes. [26ff48e47764] * src/plugins/quota/Makefile.am: quota: Fixed compiling with older automakes. [e96ea07f1437] 2009-07-09 Timo Sirainen * src/plugins/convert/convert-storage.c: convert plugin: Fixed changing hierarchy separators in mailbox names when alt_hierarchy_char isn't set. [c0914a6a2e36] * src/imap-login/client-authenticate.c, src/imap-login/client.c, src /login-common/sasl-server.c, src/login-common/sasl-server.h, src/pop3-login/client-authenticate.c, src/pop3-login/client.c: login processes: Auth code cleanups. Custom IMAP auth errors now have [ALERT] prefix. This should make them visible in more clients. [caea6aaadde4] * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h, src/lib-storage/index/maildir/maildir-sync- index.c, src/lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/maildir/maildir-sync.h: maildir: Cleaned up save/copy code. [489727453d1c] * src/plugins/acl/acl-backend-vfile-acllist.c: acl: Fixed previous mbox fix. [069679de3005] * src/master/service-process.c: master: Fail service if home directory path is relative. [155a5ddb26f3] * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c: Reverted changes committed accidentally in previous commit. [a032deb40060] * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/master/service-process.c: master: A bit more logging improvements for bad UID/GID. [444ce507a5ea] * src/master/service-process.c: master: Give better error messages if UNIX uid/gid is too high/low. [771097ddce48] 2009-07-08 Timo Sirainen * src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-storage.h: maildir: Small code cleanup. [d5637a78d263] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-save.c, src/lib- storage/index/dbox/dbox-storage-rebuild.c: dbox: Allow any kind of non-128bit GUIDs. For those store their hash to index instead. [d4c1a2941c43] * src/lib-storage/index/maildir/maildir-save.c: maildir: Error message fix. [49bf801bf840] * src/dsync/test-dsync-brain.c: dsync: Improved brain unit test. [7de1407b4229] * src/dsync/dsync-brain.c, src/dsync/test-dsync-brain.c: dsync: Fixed uid conflict handling. [7b0bcf423fca] * src/plugins/quota/Makefile.am: quota-fs: Another compiling fix (for older autotools?) [2cd15c71923d] * src/lib/ioloop-notify-inotify.c: inotify: Give a better error message if user's watch limit exceeds. [556855724e6e] * src/lib/eacces-error.c: eacces_error_get*(): Show current directory if path is relative. [f564209e9396] 2009-07-07 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Added some checks for UIDs reaching 2^31-1. Saving messages when it's reached will be handled by assert-crash for now. [a1dfbec72a6f] * src/plugins/expire/expire-plugin.c: expire plugin: If mail_debug=yes, log more debug information. [3788f3b0f9b2] * src/plugins/expire/expire-plugin.c: expire plugin: If a transaction expunges all messages and saves a new one, don't delete expire row. [aa6f96938626] * src/plugins/acl/acl-backend-vfile.c: acl: dovecot-acl file caching fixes. [b64aa73a34dc] * src/plugins/acl/acl-backend-vfile-acllist.c: acl+mbox: Create also temp acllist file to control directory. [fd83d1f43ce5] * src/lib/safe-mkstemp.c: safe_mkstemp*(): Truncate prefix to original length if creation failed. [3f32abc198d6] * src/plugins/acl/acl-backend-vfile-acllist.c: acl+mbox: Create dovecot-acl-list to control dir. [ad43ac627724] * src/lib-storage/list/subscription-file.c, src/lib-storage/mailbox- list.c, src/lib-storage/mailbox-list.h: Added mailbox_list_create_parent_dir() and used it when creating subscriptions file. [9ced768849e8] * src/lib-storage/index/index-storage.c: Compiling fix. [7a1da6de3cd8] * src/lib-storage/index/maildir/maildir-sync.c: OSX+Maildir: Also don't log an error if readdir() fails with EINVAL. [41cebb4a3b0d] * src/lib-storage/index/maildir/maildir-sync.c: OSX+Maildir: If readdir() fails with EINVAL after doing rename()s, retry. Fixes HFS+. Based on patch by Apple. [b6fcd9966727] * src/auth/mech-gssapi.c: gssapi: Code cleanup. [44c2ba2ea75d] * src/auth/mech-gssapi.c: gssapi: Use *userok() functions only when authz_name != authn_name. Some more code cleanups. [43466b5b6869] * autogen.sh: autogen.sh: Look up config.rpath also from /usr/local/shared/gettext/. [38add5a084db] * src/auth/mech-gssapi.c: gssapi: Set username via auth_request_set_username(). This makes GSSAPI also use auth_username_* settings. Also improved logging. [ca48bc74f6bd] * src/auth/mech-gssapi.c: gssapi: Code cleanups. Logging error level changes. [07c4ddae1d47] * src/lib-storage/mailbox-list.c: mail_location: Added support back for ~user/ expansion in paths. [520e408a4f6a] * src/plugins/quota/Makefile.am: quota-fs: Fixed previous "VPATH build" commit to work with all shells. [5d5cb8159954] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Don't use UIDVALIDITY 1 for all new mailboxes. [d74d50dceeda] * src/plugins/quota/quota-fs.c: quota-fs: Default to user quota with NFS, not group quota. [7853731cb1c4] 2009-07-07 Matthias Andree * src/plugins/quota/Makefile.am: Fix VPATH build of RQUOTA support. Some rpcgen derive #include "..." paths from the infile argument. This will be off for VPATH builds, as the generated rquota_xdr.c code will look in $(srcdir), but we'll generate the rquota.h file in $(builddir). Play safe and copy rquota.x to $(builddir) first. This fixes the build on openSUSE 11.1. [4aa97c04682d] 2009-07-07 Timo Sirainen * src/imap/imap-fetch-body.c, src/plugins/convert/convert-storage.c, src/plugins/mail-log/mail-log-plugin.c: Use mailbox_get_vname() to improve logging. [d4bce0753105] * src/plugins/expire/expire-plugin.c: expire code cleanup: Use mailbox_get_vname(). [2c90d6cf8b09] * src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c: quota: Rules use virtual mailbox names now (as they always should have). [eda6f7c67058] * src/lib-storage/index/index-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail- storage.h: lib-storage: Added mailbox_get_vname(). [279af9682cd6] * src/plugins/expire/expire-env.c, src/plugins/expire/expire-env.h, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire- tool.c: expire: Support per-user expire configuration. [1cf278c2fd63] * src/auth/auth-request-handler.c: auth: Ignore empty initial response strings. [90f8e2d091b5] * src/pop3-login/client-authenticate.c: pop3: Fixed AUTH PLAIN command when SASL initial response wasn't specified. [df84d8a0efbf] * src/lib/file-dotlock.c: file_dotlock_open_*() shouldn't try to fchmod() with no uid/gid change. Patch by Ralf Becker. [77b6f05df645] 2009-06-29 Timo Sirainen * .hgignore, TODO, configure.in, src/Makefile.am, src/dsync/Makefile.am, src/dsync/dsync-brain-private.h, src/dsync /dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync-data.c, src/dsync/dsync-data.h, src/dsync/dsync-proxy-client.c, src/dsync /dsync-proxy-server-cmd.c, src/dsync/dsync-proxy-server.c, src/dsync /dsync-proxy-server.h, src/dsync/dsync-proxy.c, src/dsync/dsync- proxy.h, src/dsync/dsync-worker-local.c, src/dsync/dsync-worker- private.h, src/dsync/dsync-worker.c, src/dsync/dsync-worker.h, src/dsync/dsync.c, src/dsync/test-dsync-brain.c, src/dsync/test- dsync-common.c, src/dsync/test-dsync-common.h, src/dsync/test-dsync- proxy-server-cmd.c, src/dsync/test-dsync-proxy.c, src/dsync/test- dsync-worker.c, src/dsync/test-dsync-worker.h: dsync: Initial implementation. [34eef8a2716b] * src/lib/Makefile.am, src/lib/ostream-buffer.c, src/lib/ostream.h: Added o_stream_create_buffer() for having output stream write to a buffer. [320d2164bc17] * src/lib/ostream-file.c, src/lib/ostream-internal.h, src/lib/ostream.c: ostreams: Moved generic o_stream_send_istream() implementation to ostream.c. [e41c648a2f4c] * src/lib-test/test-common.c: unit testing: If a warning or error is logged during unit test, fail it. [bf96497404f5] * src/lib-test/test-common.c, src/lib-test/test-common.h: unit testing: Added support for doing test_init/run/deinit in separate functions. [ff4e33e22764] * src/lib-storage/index/dbox/dbox-save.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h: Mailbox saving: Allow setting IMAP UID, POP3 UIDL and save date. Most of them aren't yet implemented by backends. [49f736dce881] * src/lib-storage/index/dbox/dbox-storage.c: dbox: Fixed setting mailbox GUID. [be220a26fc5e] * src/lib-storage/index/maildir/maildir-save.c: maildir: Code cleanups. [bb260536bdb5] * configure.in: Fixed building LDAP support as plugin. Patch by Paul Howarth. [49a1e47cb037] 2009-06-27 Timo Sirainen * src/plugins/virtual/virtual-sync.c: virtual: Fixed inifinite looping. [986f8270a226] * src/plugins/acl/acl-mailbox.c: acl: When creating a new child mailbox, copy parent's ACLs to it. [43254b30c17f] * src/lib-storage/mail-storage.c: Fixed shared namespace initialization. [ac0a9729fe3c] * src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c: zlib: Fixed error handling. [d2b2742dea75] * src/lib-dict/dict-sql-settings.c: dict sql: If pattern, table or value_field is unset, fail early with an error. [913f8a4bb043] * src/dict/Makefile.am, src/dict/dict-connection.c, src/dict/dict- settings.c, src/dict/dict-settings.h, src/lib-dict/Makefile.am, src /lib-dict/dict-client.c, src/lib-dict/dict-client.h, src/lib-dict /dict-db.c, src/lib-dict/dict-file.c, src/lib-dict/dict-private.h, src/lib-dict/dict-sql.c, src/lib-dict/dict.c, src/lib-dict/dict.h, src/plugins/acl/acl-lookup-dict.c, src/plugins/expire/expire- plugin.c, src/plugins/expire/expire-tool.c, src/plugins/quota/quota- dict.c: dict proxy: Use base_dir as the default dict-server location. [ee99bb70b05f] * src/lib-storage/index/index-sort-string.c: Mail sorting: Fixed potential excessive memory usage. [3f4ae64b27ac] * src/plugins/virtual/virtual-save.c: virtual: Fixed previous change. [8f74a0f149ad] * configure.in: configure --with-storages: Drop duplicate storages. [6350d105c34e] * src/plugins/virtual/virtual-save.c: virtual: Fixed saving messages with keywords. [56dc85882e9e] * src/lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib/istream- concat.c, src/lib/istream-crlf.c, src/lib/istream-data.c, src/lib /istream-file.c, src/lib/istream-limit.c, src/lib/istream-mmap.c, src/lib/istream-seekable.c, src/lib/istream.h, src/lib/ostream- file.c, src/plugins/zlib/istream-zlib.c: Added struct istream.readable_fd, which is used to determine if sendfile() can be used. [622509c562e8] * src/lib-mail/test-istream-dot.c: istream dot unit test fixes. [7e4fe0c07661] 2009-06-28 Daniel Mierswa * configure.in: Added --without-libcap configure option. [b20513ab8f5a] 2009-06-27 Timo Sirainen * src/lda/main.c, src/lib-index/mail-index-private.h, src/lib-index /mail-index-strmap.c, src/lib-index/mail-index.c, src/lib-index /mail-index.h, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox/dbox- map.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/index- storage.c, src/lib-storage/index/maildir/maildir-keywords.c, src /lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/list/mailbox-list-fs.c, src/lib- storage/list/subscription-file.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage.c, src/lib-storage/mailbox- list-private.h, src/lib-storage/mailbox-list.c, src/lib-storage /mailbox-list.h, src/lib/eacces-error.c, src/lib/eacces-error.h, src/lib/file-dotlock.c, src/lib/file-dotlock.h, src/lib/mkdir- parents.c, src/lib/mkdir-parents.h, src/lib/safe-mkstemp.c, src/lib /safe-mkstemp.h, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/lazy-expunge/lazy- expunge-plugin.c, src/plugins/quota/quota-maildir.c: Whenever file's group changing fails, show the group origin in the error message. [b373de4973cd] * src/imap/imap-commands-util.c: Compiler warning fix. [5a413a1beb60] * src/lib-index/mail-index.c, src/lib-storage/index/maildir/maildir- uidlist.c: Use eacces_get_error() in more places for handling EACCES errors. [bbe4c24faf21] * src/lib/eacces-error.c: eacces_error_get(): Check also if user had write permissions to the given file. [8760bc0b1c3a] 2009-06-26 Timo Sirainen * src/imap/cmd-create.c, src/lib-lda/mail-deliver.c, src/lib- storage/index/cydir/cydir-storage.c, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/dbox/dbox-storage-rebuild.c, src /lib-storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox /dbox-storage.h, src/lib-storage/index/dbox/dbox-sync-rebuild.c, src /lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- storage.h, src/lib-storage/index/mbox/mbox-sync.c, src/lib- storage/index/raw/raw-storage.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mail-storage.c, src/lib-storage/mail-storage.h, src/lib- storage/test-mail-storage.c, src/lib-storage/test-mailbox.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-storage.c, src/plugins/autocreate/autocreate-plugin.c, src/plugins/convert /convert-storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/virtual /virtual-storage.c: Added support for creating/updating mailboxes with given metadata (guid, uid validity, etc). [530bbade4e3f] 2009-06-25 Timo Sirainen * src/config/config-parser.c, src/lib-settings/settings-parser.c, src /lib-storage/mailbox-list.c: Increased some initial memory pool sizes. [29733d23d903] * src/lib-imap/test-imap-parser.c, src/lib-mail/test-istream-dot.c, src/lib-test/test-common.c: Improved test istream. [cdd6ef3c356c] * src/lib-mail/istream-dot.c: istream-dot fixes. [5ca3318cd3e2] * src/auth/auth-master-connection.c: auth: Keep master connection referenced during USER lookups. Fixes a crash when master disconnected before USER lookup was finished. [270c07cf45b6] 2009-06-24 Timo Sirainen * src/lib-storage/index/mbox/mbox-save.c: mbox: Don't write garbage to mbox if message doesn't have a body. [d8556f68f6a7] * src/lib-storage/index/maildir/maildir-save.c: Maildir saving: If GUID is specified, try to preserve it in the filename. [a1535b151afa] * src/auth/auth-worker-client.h: auth: Increased auth workers' max. input line length to 8192. [c8ff1a3722b7] 2009-06-23 Timo Sirainen * src/lib/istream-limit.c, src/lib/istream.c: istream: Changed default destroy() implementation not to do parent stream seeking. The stream's v_offset may be completely different from what parent uses. [02badd89127e] * src/config/config-request.c: config: Export also empty setting values also, if empty isn't the default. [498965c87314] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail storage service: Added MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR. [3f9dcaf102d1] * src/lib-mail/istream-dot.c, src/lib/istream-crlf.c, src/lib/istream- tee.c, src/lib/istream.c: istreams: Added a default seek() implementation for non-seekable streams. [85912a6031a0] * src/lib-storage/mail-namespace.c: Namespaces: Check alias_for namespaces after all namespaces have been parsed. [7ba2c40ed078] * src/lib-storage/mail-namespace.c: Don't (double) free mail_user if namespace initialization fails. [7c7ff145b171] * src/lib-mail/istream-dot.c, src/lib-mail/istream-header-filter.c, src/lib-storage/index/istream-mail-stats.c, src/lib- storage/index/mbox/istream-raw-mbox.c, src/lib/istream-crlf.c, src/lib/istream-file.c, src/lib/istream-limit.c, src/lib/istream.c, src/plugins/zlib/istream-zlib.c: Moved some common istream functionality to default istream implementation. [c0c3dcb5a6f0] * src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: Mailbox list iteration: Added MAILBOX_LIST_ITER_SKIP_ALIASES flag. [87990dce79d4] * src/lib-master/master-service-settings.c: lib-master: Don't try to close(-1) [f5d95f4fd954] * src/lib/strescape.c, src/lib/strescape.h, src/lib/test-strescape.c: Added str_tabunescape(). [aad42b172e1a] * src/lmtp/client.h, src/lmtp/commands.c: lmtp: Use dot istream for reading DATA input. [70b96df05e9a] * src/lib-mail/Makefile.am, src/lib-mail/istream-dot.c, src/lib-mail /istream-dot.h, src/lib-mail/test-istream-dot.c: Added dot istream for reading SMTP DATA-style input. [f068c8a19013] * src/imap/imap-commands-util.c: imap: Use imap_parse_system_flag(). [0b7617d66ab1] * src/lib-imap/Makefile.am, src/lib-imap/imap-util.c, src/lib-imap /imap-util.h, src/lib-imap/test-imap-util.c: Added imap_parse_system_flag(). [e4ba9799a1ac] * src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h: Inlined IMAP_ARG_*() macros' error handling functions. [a81dfcf5a78d] * src/lib-imap/test-imap-parser.c: imap-parser unit test fix. [5ef9cca6fa27] 2009-06-22 Timo Sirainen * src/imap/cmd-copy.c, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/plugins/convert/convert-storage.c, src/plugins /lazy-expunge/lazy-expunge-plugin.c: Added mailbox_save_copy_flags(). Use it wherever possible. [15e427021619] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-store.c, src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction.c, src/lib-index/mail-index.h, src/lib-lda/mail- deliver.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- sync-rebuild.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/maildir/maildir-sync- index.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/raw/raw- storage.c, src/lib-storage/mail-search.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/lib-storage/test-mailbox.c, src/plugins/convert /convert-storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- sync.c: Added reference counting to struct mail_keywords and related APIs. [094ad127d132] * src/imap-login/client.c, src/lib-auth/auth-client-interface.h, src/pop3-login/client.c: login client idle timeout should be larger than auth request timeout, not vice versa. [d7e09c3eaace] * src/plugins/acl/acl-backend-vfile-acllist.c: acl: If dovecot-acl-list writing fails, delete it so it gets rebuilt later. [0cc9e2028580] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: Handle empty rights (no rights) properly. [caf4e126670c] * src/plugins/acl/acl-backend-vfile.c: acl: Handle empty rights (no rights) properly. [e8b202fe3ef8] * src/lib-imap/imap-parser.c: imap_parser_read_args() didn't correctly return how many parameters were read. [fd7d2cb8fda6] * src/plugins/imap-acl/imap-acl-plugin.c: imap-acl: Command parameter reading wasn't done correctly. [a268f8fd89b7] 2009-06-21 Timo Sirainen * src/lib/eacces-error.c: eacces_error_get*() works now properly when process's real uid != effective uid. [e22e36a61fdd] * src/lib/restrict-access.c, src/lib/restrict-access.h: Added restrict_get_groups_list() for easily getting list of process's groups. [5074914f2dba] * src/auth/Makefile.am, src/dict/Makefile.am, src/lda/Makefile.am, src /lib-master/Makefile.am, src/lib-storage/index/shared/Makefile.am, src/lmtp/Makefile.am, src/login-common/Makefile.am, src/master/Makefile.am, src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am: Removed unnecessary macro definitions from Makefiles. [3aeab83e661a] * src/lib-storage/mail-namespace.c: When accessing a shared namespace, don't change separators in mailbox name. [7bbae4008efd] * src/lib-storage/mailbox-list.c: mail_location: Allow using ":" characters in dir names by escaping it as "::". [1769b18aea5b] * src/master/main.c, src/master/service-monitor.c, src/master/service- monitor.h, src/master/service-process.c, src/master/service.c, src/master/service.h: master: If time moves backwards, delay launching new processes. [4fd624e60da1] * src/lib-storage/mail-storage-service.c: Mail storage service processes now sleep/die if time moves backwards. [b9f5982e68ee] * src/lib/ioloop-epoll.c, src/lib/ioloop-internal.h, src/lib/ioloop- kqueue.c, src/lib/ioloop-poll.c, src/lib/ioloop-select.c, src/lib/ioloop.c, src/lib/ioloop.h: ioloop: Added callback for handling time jumping forwards/backwards. The default implementation is now to only log a warning when time moves backwards. The callback is also called if it's detected that time jumps forwards. In both cases existing timeouts' run times are updated so that they're called approximately the intended time. [a442d3c40693] * src/lib/priorityq.c, src/lib/priorityq.h, src/lib/test-priorityq.c: Added priorityq_items() for getting all items from a priority queue. [ee4201fdad4f] 2009-06-17 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Crashfix to opening a newly created maildir. [ee874a76aaaf] * src/config/doveconf.c, src/imap/imap-commands.c, src/imap/imap- fetch.c, src/lib-index/mail-cache-lookup.c, src/lib- mail/rfc2231-parser.c, src/lib-settings/settings-parser.c, src/lib- storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/index- mail-headers.c, src/lib-storage/index/index-sort-string.c, src/lib- storage/index/index-sort.c, src/lib-storage/index/index-thread- finish.c, src/lib-storage/index/maildir/maildir-sync-index.c, src /lib-storage/index/maildir/maildir-uidlist.c, src/lib/module-dir.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-lookup- dict.c, src/plugins/fts/fts-storage.c, src/plugins/trash/trash- plugin.c, src/plugins/virtual/virtual-search.c, src/plugins/virtual /virtual-sync.c: Use array_sort() instead of qsort() wherever possible. [0059b2381024] * src/lib/array.c, src/lib/array.h: Added array_sort() for type-safe array sorting. [a6e1f054a808] * src/imap-login/client-authenticate.c, src/imap-login/client.c, src /imap-login/client.h, src/imap-login/imap-proxy.c: imap-login: Using CAPABILITY command after STARTTLS shouldn't trigger CAPABILITY pushing workaround. [e8301a8f9cf7] * doc/solr-schema.xml, src/plugins/fts-solr/fts-backend-solr.c: solr: Don't use "any" copyfield, it doubles the index size. [1492d688d8a9] 2009-06-16 Timo Sirainen * src/util/threadview.c: threadview: If mmap() fails, fail with an error instead of crashing. [a33722839adf] * src/lmtp/commands.c: lmtp: Fixes to handling "." correctly in DATA. [a04a3ce0764e] * src/plugins/expire/expire-tool.c: expire-tool --test: Don't write LFs after timestamps. [acbbd522be43] * src/lib/Makefile.am, src/lib/strescape.c, src/lib/strescape.h, src/lib/test-lib.c, src/lib/test-lib.h, src/lib/test-strescape.c: Added str_append_tabunescaped(). str_tabescape*() now escapes also CR. Added unit tests. [5a6fe52a0cfc] * src/lib/strescape.c: str_append_unescaped() didn't unescape \\ correctly. The function wasn't used anywhere in Dovecot though. [464116e1d0ae] 2009-06-15 Timo Sirainen * src/plugins/expire/expire-tool.c: expire-tool --test: Fixed timestamp logging. [d4ad8009a18b] * src/imap/imap-client.c, src/imap/imap-commands.c, src/imap/imap- commands.h, src/imap/imap-sync.c, src/imap/imap-sync.h: IMAP: Don't crash if IDLE command is pipelined after a long-running UID FETCH or UID SEARCH. [25ad27f699f6] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/imap/cmd-create.c, src/imap/cmd-rename.c, src/imap/cmd-subscribe.c, src/imap/imap- commands-util.c, src/imap/imap-commands-util.h: IMAP: Send [ALREADYEXISTS], [NONEXISTENT] and [TRYCREATE] resp-codes correctly. [8741d62d6b74] * src/imap/cmd-rename.c: IMAP RENAME: If dest mailbox exists but source doesn't, fail with "Mailbox doesn't exist". [9291253df6de] * src/plugins/expire/Makefile.am: expire-tool, --without-shared-libs: Link mountpoint.o so quota plugin loading doesn't fail. [4d46c8517a90] * src/auth/auth-request.c: auth: Don't assert-crash if trying to log in as master user but with empty login username. [6462ba85d751] * src/lib/file-dotlock.c: safe_mkstemp() was used incorrectly. umask() no longer changes its behavior. [d394cca843a9] * src/lib-index/mail-transaction-log.c: Transaction log dotlocking ignored mail_nfs_index and dotlock_use_excl settings. [73aea4432453] * src/plugins/acl/acl-backend-vfile.c: acl: Don't assert-crash if removing all rights. [836646906a63] * src/imap-login/imap-proxy.c: imap proxy: Pass through to client unexpected untagged replies from remote server. [57a2431852f5] * src/imap/imap-status.c: IMAP: STATUS .. X-GUID returns mailbox GUID. [18caae3804e3] * src/lib-storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox/dbox- sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- storage.h, src/lib-storage/index/mbox/mbox-sync.c, src/lib-storage /mail-storage.h, src/util/idxview.c: Added support for mailbox GUIDs. [f98ec5dffd04] * src/lib-storage/index/index-storage.c: Fixed using freed memory when opening mailboxes. [c0dd791aaaaa] * src/lib-storage/index/index-storage.c: Fixed opening mailbox when index directory didn't already exist. [7a63279e95ba] * src/imap/cmd-append.c, src/imap/cmd-close.c, src/imap/cmd-copy.c, src/imap/cmd-delete.c, src/imap/cmd-select.c, src/imap/cmd- unselect.c, src/imap/imap-status.c, src/lda/main.c, src/lib-lda /mail-deliver.c, src/lib-storage/index/cydir/cydir-storage.c, src /lib-storage/index/cydir/cydir-storage.h, src/lib- storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox/dbox- file.c, src/lib-storage/index/dbox/dbox-mail.c, src/lib- storage/index/dbox/dbox-save.c, src/lib-storage/index/dbox/dbox- storage-rebuild.c, src/lib-storage/index/dbox/dbox-storage.c, src /lib-storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox /dbox-sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c, src /lib-storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/index-thread.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-keywords.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox/mbox-file.c, src/lib-storage/index/mbox /mbox-lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- storage.c, src/lib-storage/index/mbox/mbox-storage.h, src/lib- storage/index/mbox/mbox-sync-rewrite.c, src/lib-storage/index/mbox /mbox-sync.c, src/lib-storage/index/raw/raw-mail.c, src/lib- storage/index/raw/raw-storage.c, src/lib-storage/index/raw/raw- storage.h, src/lib-storage/index/raw/raw-sync.c, src/lib- storage/list/index-mailbox-list-sync.c, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage /mail-storage.h, src/lib-storage/mailbox-list-private.h, src/lib- storage/mailbox-list.c, src/lib-storage/test-mail-storage.c, src /lib-storage/test-mail-storage.h, src/lib-storage/test-mailbox.c, src/lmtp/commands.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl /acl-plugin.h, src/plugins/acl/acl-storage.c, src/plugins/convert /convert-storage.c, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire-tool.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-plugin.h, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota/quota-storage.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- config.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual /virtual-storage.h, src/plugins/virtual/virtual-sync.c, src/plugins/zlib/zlib-plugin.c, src/pop3/pop3-client.c, src/util/doveadm.c: Mailbox opening and closing APIs changed. [653183a81b6c] 2009-06-12 Timo Sirainen * src/imap/cmd-list.c: IMAP: Fixed LIST RETURN (STATUS ..) if namespace separator wasn't storage separator. [7b6fe859ec64] * src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h: Added mail_namespace_get_storage_name(). [3111c362edff] * src/imap/cmd-list.c: IMAP: Fixed untagged error messages for LIST RETURN (STATUS ..) failures. [b09ad4858d22] 2009-06-11 Timo Sirainen * src/util/Makefile.am, src/util/imap-utf7.c: imap_utf7: Renamed to imap-utf7. Also fixed usage error string to print LF. [a5f5584646ed] * src/lib-storage/index/mbox/istream-raw-mbox.c: mbox: Don't crash with invalid From_-lines. [1f7f7c0aa711] 2009-06-09 Timo Sirainen * src/master/service-process.c: Compiler warning fix with non-Linux. [e03003e935b5] * src/lib-storage/test-mail-storage.h: Forgot to add test-mail-storage.h in an earlier comment. [df1d8e45c067] 2009-06-05 Timo Sirainen * dovecot-example.conf: dovecot-example.conf: Changed auth_verbose comment. [f672303df2b6] 2009-06-04 Timo Sirainen * TODO: TODO updated. [0aeea5034358] * src/plugins/virtual/virtual-storage.c: virtual: Forgot to commit in previous API change commit. [19fc2147cc10] * src/lib-storage/Makefile.am, src/lib-storage/test-mail-storage.c, src/lib-storage/test-mail.c, src/lib-storage/test-mailbox.c: Added libstorage-test.a for unit testing lib-storage users. [4dca587d5b75] * src/lib-storage/mail-search.c: mail_search_args_simplify() no longer uses lib-index functions directly. [63f4a2825bbe] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h: Added mailbox_keywords_create_from_indexes(). [374d29a1905e] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/plugins/virtual/virtual-storage.c: mailbox_header_lookup*() private API changed. [87e533f1127d] * src/lib-storage/index/index-search.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/maildir/maildir-sync.c, src/lib- storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/plugins/fts/fts-storage.c: struct mail_storage.callbacks is no longer a pointer. [2a3390530f6a] * src/auth/passdb-ldap.c: ldap: Fixed auth_bind=yes. [d9f5cc5365d1] * src/auth/auth-settings.c: auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose cascading. [d86490ef27bd] * src/lib-mail/message-search.c: Message body search: Skip MIME boundaries and multipart footer. [227a64839587] * src/plugins/convert/convert-storage.c: convert plugin: After storage is locked, check another way to see if it still exists. [653bfe9ad192] * src/lib-master/master-service-settings.c, src/lib/module-dir.c, src /login-common/main.c: Increased some memory pool sizes. [1348d374e574] * src/lib-storage/mail-storage-service.c: lib-storage: Avoid wasting data stack usage. [0a1f989bc5ad] * src/lib-storage/index/dbox/dbox-sync.c: dbox: When rebuilding dbox storage, reset recent flags to avoid assert-crashing. [563b17988ce1] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c: dbox, cydir: Ignore MAILBOX_OPEN_NO_INDEX_FILES flag when opening mailbox. [3396bab1feb6] * src/lib-storage/index/dbox/dbox-sync.c: dox: When checking dbox header in sync, make sure we're using the latest index. [99a97c5c9912] * src/log/log-connection.c, src/log/log-connection.h, src/log/main.c: Fixed log process after recent lib-master changes. [0bf92fe23dea] * src/lib-storage/index/dbox/dbox-storage.c: dbox: Fixed creating new mailboxes. [97679435f892] * src/lib-master/master-service.c: lib-master: Non-listening processes should die when their std-client is destroyed. [d43232f22ace] * src/anvil/anvil-connection.c, src/anvil/anvil-connection.h, src/anvil/main.c: anvil: Fixed checking what the master connection is. [cab8f8009456] 2009-06-03 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-storage.c: dbox: storage directory was created without +x permissions. [03ef1dd538fe] * src/lib-master/master-service.c, src/log/log-connection.c, src/log /log-connection.h, src/log/main.c: log, lib-master: More fifo handling fixes. [27dfd1f5d46b] * src/lib-master/master-service.c: lib-master: Fixed crashing on deinit when listening on fifos. [e18fb0a361ef] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/maildir /maildir-storage.c, src/lib-storage/index/mbox/mbox-storage.c, src /lib-storage/index/raw/raw-storage.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/mail-namespace.c, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h, src/lib-storage/mail-user.h, src/lib-storage /mailbox-list.c, src/plugins/convert/convert-storage.c, src/plugins/virtual/virtual-storage.c: mail storages can now be shared between namespaces. [4f46cee3a1d4] * src/lib-dict/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-mail/Makefile.am, src/lib- sql/Makefile.am, src/lib/Makefile.am: Compiling fix for Solaris 7. [da12e994d942] 2009-06-02 Timo Sirainen * src/config/settings-get.pl, src/imap/cmd-append.c, src/imap/cmd- copy.c, src/imap/cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd- list.c, src/imap/cmd-rename.c, src/imap/cmd-select.c, src/imap/cmd- status.c, src/imap/cmd-subscribe.c, src/imap/imap-client.c, src/imap /imap-commands-util.c, src/imap/imap-commands-util.h, src/imap/imap- commands.h, src/imap/imap-status.c, src/imap/imap-status.h, src/lda/main.c, src/lib-lda/mail-deliver.c, src/lib- storage/index/cydir/cydir-mail.c, src/lib-storage/index/cydir/cydir- save.c, src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/cydir/cydir-sync.c, src/lib-storage/index/dbox/dbox- map.c, src/lib-storage/index/dbox/dbox-settings.c, src/lib- storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- storage.h, src/lib-storage/index/dbox/dbox-sync-rebuild.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-keywords.c, src /lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-util.c, src/lib-storage/index/mbox /mbox-lock.c, src/lib-storage/index/mbox/mbox-save.c, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- storage.h, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/index/shared/shared-storage.h, src/lib-storage/list/index-mailbox-list-sync.c, src/lib-storage/list /index-mailbox-list.c, src/lib-storage/list/mailbox-list-fs.c, src /lib-storage/list/mailbox-list-maildir.h, src/lib-storage/mail- namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage-settings.c, src/lib- storage/mail-storage-settings.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h, src/lib-storage/mail-user.c, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/lmtp/commands.c, src/plugins/acl /acl-api-private.h, src/plugins/acl/acl-api.c, src/plugins/acl/acl- api.h, src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/acl /acl-backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl /acl-lookup-dict.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-mailbox.c, src/plugins/acl/acl-plugin.h, src/plugins/acl/acl-shared-storage.c, src/plugins/acl/acl-storage.c, src/plugins/acl/acl-storage.h, src/plugins/autocreate/autocreate- plugin.c, src/plugins/convert/convert-storage.c, src/plugins/expire /expire-plugin.c, src/plugins/expire/expire-tool.c, src/plugins/fts- lucene/fts-backend-lucene.c, src/plugins/fts-solr/fts-backend- solr.c, src/plugins/fts-squat/fts-backend-squat.c, src/plugins/fts /fts-storage.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins /imap-quota/imap-quota-plugin.c, src/plugins/lazy-expunge/lazy- expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/mbox-snarf/mbox- snarf-plugin.c, src/plugins/quota/quota-count.c, src/plugins/quota /quota-dirsize.c, src/plugins/quota/quota-fs.c, src/plugins/quota /quota-maildir.c, src/plugins/quota/quota-private.h, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual- config.c, src/plugins/virtual/virtual-mail.c, src/plugins/virtual /virtual-storage.c, src/plugins/virtual/virtual-storage.h, src/plugins/zlib/zlib-plugin.c, src/pop3/pop3-client.c, src/util/doveadm.c: Initial commit for making mail_storage:mailbox_list to be from 1:1 to n:n. This will allow namespaces to share the same storage and a single namespace to have multiple storages (multiple mailbox formats). Neither works currently, and this commit probably breaks some things. [e374a365521d] * src/imap/imap-commands-util.c: IMAP: Error handling fix for mailbox name validity checking. [438491c166cb] * src/plugins/virtual/virtual-storage.c: virtual: Error handling fix. Don't expose hidden namespace names. [f8826c72f71b] 2009-06-01 Timo Sirainen * src/lib-master/master-service.c: lib-master: When master dies, stop listening for new connections. [33727c70e89d] * src/auth/auth-client-connection.c: When auth client disconnected, it didn't update master service count. [ace6f94f60bc] * src/imap/main.c: imap: If CAPABILITY was used before login, "Logged in" was missing OK prefix. [02679d365af7] * src/imap/imap-fetch.c: IMAP FETCH: Previous change broke fetching RFC822*. [36311318a958] * src/imap/imap-fetch.c: IMAP FETCH: Binary searching fetch handlers was a bit broken. [befc876577e4] * src/imap/main.c: imap: After logging in, send CAPABILITY and tagged OK in the same IP packet. [8ecbc7fefeb2] * src/lib/Makefile.am, src/lib/test-aqueue.c, src/lib/test-array.c, src/lib/test-base64.c, src/lib/test-bsearch-insert-pos.c, src/lib /test-buffer.c, src/lib/test-istream.c, src/lib/test-lib.c, src/lib /test-lib.h, src/lib/test-mempool-alloconly.c, src/lib/test- network.c, src/lib/test-primes.c, src/lib/test-priorityq.c, src/lib /test-seq-range-array.c, src/lib/test-str-find.c, src/lib/test-str- sanitize.c, src/lib/test-utc-mktime.c: liblib unit tests are now split to separate files. [810e36796e3d] * src/lib-mail/Makefile.am, src/lib-mail/message-id.c, src/lib-mail /test-message-id.c: message_id_get_next() didn't contain @ in reply when msgid wasn't in canonical form. [97f62a823666] * src/lib-mail/message-address.c, src/lib-mail/message-address.h, src /lib-mail/test-message-address.c: message_address_write() wrote extra @ if route was specified. [fa17414cfe77] 2009-05-31 Timo Sirainen * src/plugins/fts-solr/solr-connection.c: fts-solr: Reset XML parser when doing update requests. We don't really care about what the XML contains, we'll just verify that it's valid input. [c0821048c517] * src/lib-index/mail-index.c, src/lib-storage/mailbox-list.c: More group permission handling fixes. [14ed9ca980d1] * src/lib-index/mail-cache-compress.c, src/lib-index/mail-index- private.h, src/lib-index/mail-index.c, src/lib-index/mail- transaction-log-file.c: index: Handle better errors where a new file's group can't be changed. [c496f137c843] * src/imap/cmd-uid.c: IMAP: UID commands didn't set cmd->name properly. Patch by Richard Platel. [2e373584b0b9] * src/lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-util.c, src/lib-storage/mailbox-list.c: storage: Create index/control root directories using same permissions as mail root. [a98645075fd5] * src/lib/mkdir-parents.c, src/lib/mkdir-parents.h: Added mkdir_chown(). [4c44592de21e] * dovecot-master-example.conf: dovecot-master-example.conf: Added IPv6 listeners. [f4eca3bbd4ac] * src/lib-imap/Makefile.am, src/lib-index/Makefile.am, src/lib- mail/Makefile.am: Link test programs with .lo instead of .o. Dependencies aren't tracked properly with .o. [dca52f948452] * src/plugins/expire/expire-plugin.c: expire-tool: Make sure expire plugin won't get used. [a7cb99756199] * src/lib-master/master-service.c, src/lib-master/master-service.h: lib-master: Added master_service_get_name(). [84f96a722fcc] * src/plugins/expire/expire-tool.c: expire-tool --test: Log timestamps also in user-readable format. [1da29762c407] * src/lib-storage/index/maildir/maildir-mail.c: Maildir: Use i_stream_stat() instead of i_stream_get_fd()+fstat(). Fixes zlib plugin. [b5f9a3387b5a] * configure.in: configure: If all passdb/userdb/sql drivers are compiled, don't print an empty line for them. [ab69375b8422] * doc/Makefile.am: thread-refs.txt was missing from release tarball. [1cfa4804ecbe] * src/lib-storage/index/index-thread-list.c: Removed unused code. [c5153391d689] 2009-05-29 Timo Sirainen * src/lib-storage/mail-storage-service.c: mail_storage_service*() chdired to base_dir instead of user's home dir. [6a2660115d3d] * src/dict/dict-commands.c, src/dict/dict-commands.h, src/dict/dict- connection.c, src/dict/dict-connection.h: dict server: Forgot to add new files in previous commit. [fb32daa5c50a] * dovecot-master-example.conf, src/dict/Makefile.am, src/dict/dict- settings.c, src/dict/dict-settings.h, src/dict/main.c, src/lib-dict /dict-client.h: dict server works again. [aa08a4506d89] 2009-05-28 Timo Sirainen * src/plugins/virtual/virtual-config.c: virtual: If search rule is missing, use SEARCH_ALL. [11b8d0210b7a] * src/lib-storage/mail-search.c: mail_search_args_dup(): Don't return broken results if there are no search args. [16b4e9cfa1c9] * src/imap-login/client-authenticate.c, src/imap-login/client.c, src /imap-login/imap-proxy.c, src/imap/main.c, src/login-common/client- common.h, src/login-common/login-settings.c, src/login-common/login- settings.h, src/login-common/sasl-server.c: imap-login now advertises only pre-login capabilities. If client had used CAPABILITY command before logging in, untagged CAPABILITY is sent to client in the hope that client understands this. This change could get reverted if it breaks too many clients. [5f64f935e64b] 2009-05-26 Timo Sirainen * src/lib-mail/Makefile.am, src/lib-mail/test-mbox-from.c: Added unit test for mbox-from. [82bb4c6a6d64] * src/lib/ioloop-notify-dn.c, src/lib/ioloop-notify-inotify.c, src/lib /ioloop-notify-kqueue.c, src/lib/ioloop.c, src/lib/ioloop.h: Removed ioloop_timezone. It's not working nowadays. [b59c6c30115e] * src/lib-mail/mbox-from.c: mbox_from_parse(): Fixes to handling missing timezones. Also use timezone variable, gettimeofday()'s timezone is 0 nowadays in Linux. [91984e758846] * src/lib-index/test-mail-transaction-log-view.c: mail-transaction-log-view compiling fix. [149f7c22217d] * src/lib-index/Makefile.am, src/lib-index/test-index.c, src/lib-index /test-index.h, src/lib-index/test-mail-transaction-log-view.c, src /lib-index/test-transaction-log-view.c: mail-transaction-log-view unit testing is now also independent. [bde78a3c9c8b] * src/lib-master/master-service.c: DEBUG: lib-master no longer verifies fd leaks for programs running standalone. [674024d7bcb7] * src/lib-index/Makefile.am, src/lib-index/test-mail-transaction-log- append.c: Added unit test for mail-transaction-log-append. [ff9c8f94ee8d] * src/lib-index/Makefile.am, src/lib-index/mail-index-util.c, src/lib- index/mail-index.c: Moved some generic library functions to mail-index-util.c. [a9a532d4f00e] * src/lib-index/mail-transaction-log-append.c: Fixed bugs caused by recent mail-transaction-log-append refactoring. [50b879627fb1] * src/lib-mail/Makefile.am, src/lib-mail/test-message-header-parser.c: Added unit test for message-header-parser. [75a8a2a8103f] * src/lib-mail/message-header-parser.c, src/lib-mail/message-header- parser.h: message-header-parser: MESSAGE_HEADER_PARSER_FLAG_CLEAN_ONELINE should affect only full_line. Otherwise it behaves inconsistently between hdr->use_full_value=TRUE/FALSE. [d9ce4c485dee] * src/lib-mail/message-header-parser.c: message header parser: Don't set hdr->continues=TRUE when hdr->eoh=TRUE. This happened if body began with LWSP. Also if parser has seen eoh but not the following character, don't bother waiting for it. [7b247ab96520] * src/lib-mail/test-message-parser.c: test-message-parser: Improvements. [ca62d712d149] * src/lib-mail/test-message-parser.c: test-message-parser: Fixed and improvements. [54a56772aeb8] * src/lib-mail/message-parser.c: message_parser_init_from_parts(): Assert that MESSAGE_PARSER_FLAG_SKIP_BODY_BLOCK is set. [59bad3eabb93] * src/lib-mail/Makefile.am, src/lib-mail/test-istream-header-filter.c, src/lib-mail/test-mail.c, src/lib-mail/test-message-address.c, src /lib-mail/test-message-date.c, src/lib-mail/test-message-parser.c, src/lib-mail/test-rfc2231-parser.c: Split test-mail binary to test-mail-* binaries. [aff3abbcb8a6] * src/imap/cmd-append.c, src/imap/cmd-idle.c, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-search.c: imap: Cleaned up "command pending" handling code. Should fix hangs caused by recent changes. [89d2dbbfa4ca] * src/imap/imap-sync.c: imap: Don't cancel sync if client disconnects in the middle. Fixes "Message count decreased" errors. [df12f1bc629f] * src/auth/auth-request.c, src/auth/passdb.c: auth: Improved "Password not in expected scheme" error message. [513691dbe21c] * src/lib-storage/mail-namespace.c: Fixed handling non-default namespace separators. [0b3225f7b3a6] * src/imap/main.c, src/pop3/main.c: imap, pop3: Fixed assert-crash on exit. [315a480f9942] * src/auth/mech-external.c: auth: Forgot to add mech-external.c in earlier commit. [976a4c9ca6b6] * src/plugins/virtual/virtual-mail.c: virtual: Don't assert-crash if trying to access an expunged mail. [304238bbd36c] * src/plugins/virtual/virtual-sync.c: virtual: Fix to previous commit. [c920998cb44d] * src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h, src/plugins/virtual/virtual-sync.c: virtual: Fixed crashes when simultaneous connections accessed the same virtual mailbox. [17a2415fdab9] * src/plugins/convert/convert-storage.c: convert plugin: Don't crash after finishing conversion. [446ba4e8d37d] 2009-05-25 Timo Sirainen * src/plugins/virtual/virtual-storage.c: virtual: Virtual mailboxes shouldn't be counted in quota. [24fa8a39ec0b] * src/lda/main.c, src/lib-storage/mail-namespace.c, src/lib-storage /mail-namespace.h, src/lmtp/client.c, src/plugins/acl/acl-lookup- dict.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl- storage.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/quota/quota-storage.c: Split NAMESPACE_FLAG_INTERNAL into distinct _NOQUOTA and _NOACL flags. [e4429faabf59] * src/imap-login/client-authenticate.c: imap: Don't send "Waiting for auth process" if it's the client that's waiting on AUTHENTICATE. [ca2488181a2d] 2009-05-25 timo * src/lda/main.c: lda: If temp file can't be created because home dir doesn't exist, create it. [b1c584654a0e] 2009-05-25 Timo Sirainen * src/lda/main.c: lda: Log to specified log file, not to stderr. [ad0b052aef5e] * src/lda/main.c, src/lib/istream-seekable.c, src/lib/istream- seekable.h: istream-seekable: Changed API to use a callback function to create the temp file. [8fa79cdb2ef3] * src/plugins/convert/convert-storage.c: convert plugin: If alt_hierarchy_char isn't specified, don't truncate mailbox names. [b7722e6ccccb] * src/plugins/convert/convert-tool.c: convert-tool didn't handle command line parameters correctly. [e76d521817d3] * src/lib-imap/imap-parser.c: imap-parser: Don't return early if line ends with CR but there's no LF. [704917a65a16] * src/lib-imap/Makefile.am, src/lib-imap/test-imap-parser.c: imap-parser unit testing started. [9297ae2ee45f] * src/lib-imap/Makefile.am, src/lib-imap/test-imap-match.c, src/lib- imap/test-imap-utf7.c, src/lib-imap/test-imap.c: Split test-imap binary to test-imap-match and test-imap-utf7. [07b601734cc8] * .hgignore: .hgignore: Ignore all test-* binaries. [26cb0925f2c4] * dovecot-example.conf: dovecot-example.conf: Make it clear mail_log_group_events is boolean. [1aeb7fb9d1ea] * src/auth/Makefile.am, src/auth/mech.c: auth: Added support for EXTERNAL SASL mechanism. [8e7dcb58bd89] * src/auth/mech.c: auth: If initial SASL reply was given but empty, pass it to auth mechanisms. [116d94937979] * src/lib-mail/message-decoder.c: Message-decoder: Fixes to handling binary body parts. [fd3c13b9837b] * src/imap/imap-client.c: imap: Mailbox closing command shouldn't hang on waiting a delayed sync to finish. [46277443b90c] * src/lmtp/commands.c: lmtp: Handle MAIL FROM and RCPT TO parameters properly. [2784877c567c] 2009-05-24 Timo Sirainen * src/imap/imap-client.c: IMAP: Make sure pending syncs are done before a mailbox-changing command is run. [2b95ca15f514] 2009-05-23 Timo Sirainen * dovecot-example.conf: dovecot-example.conf: Drop _file from ssl_cert and ssl_key. [e448f770039f] 2009-05-22 Timo Sirainen * src/imap/imap-client.c, src/imap/imap-client.h, src/imap/main.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: imap, pop3 no longer assume that there's only a single client in process. [d6d4ec8ac06d] * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge plugin implements mailbox deletions now using mailbox_list_rename_mailbox(). [8cf39c0b88d9] * src/imap/cmd-rename.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib-storage/index/maildir/maildir-storage.c, src/lib- storage/index/shared/shared-list.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/plugins/acl/acl-mailbox-list.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c: Implemented initial support for renaming mailboxes across namespaces. [c86b65e4a510] * src/lib-settings/settings-parser.c: settings_parse_stream*() could have stopped after reading unknown settings. [9f2403f3e345] * src/imap/cmd-fetch.c: FETCH: If FETCH returned [EXPUNGEISSUED], it got stuck to all subsequent replies too. [8524ed76b929] * dovecot-master-example.conf, src/lmtp/main.c: Fixed LMTP server to actualy work. [7df8fddbc7a5] * src/anvil/anvil-connection.c, src/config/config-connection.c, src/imap/imap-client.c, src/pop3/pop3-client.c: Added missing master_service_client_connection_destroyed() calls. [04cade277134] * src/anvil/main.c, src/auth/auth-common.h, src/auth/auth-master- connection.c, src/auth/auth-worker-client.c, src/auth/main.c, src/config/doveconf.c, src/config/main.c, src/imap-login/client.c, src/imap/imap-client.c, src/imap/imap-common.h, src/imap/main.c, src/lda/main.c, src/lib-master/master-service.c, src/lib-master /master-service.h, src/lmtp/client.c, src/lmtp/main.c, src/lmtp/main.h, src/log/common.h, src/log/log-connection.c, src/log/main.c, src/login-common/common.h, src/login-common/login- proxy.c, src/login-common/main.c, src/login-common/sasl-server.c, src/login-common/ssl-proxy-openssl.c, src/master/common.h, src/master/service-process.c, src/plugins/convert/convert-tool.c, src/plugins/expire/expire-tool.c, src/pop3-login/client.c, src/pop3/main.c, src/pop3/pop3-client.c, src/pop3/pop3-common.h, src/util/doveadm.c: lib-master has now a global master_service variable that all binaries use. There should always be only one of them anyway. [0c587f108916] * src/lib-storage/list/mailbox-list-fs.c: Mailbox renaming with LAYOUT=fs wasn't renaming control dirs if they were used. [79174ec42414] 2009-05-21 Timo Sirainen * src/plugins/lazy-expunge/lazy-expunge-plugin.c: lazy-expunge plugin: Replaced maildir-specific expunge implementation with generic copy+expunge. [cf3f5258d47f] * src/lib-master/master-service.c, src/lib-master/master-service.h, src/master/main.c, src/util/doveadm.c: master process shouldn't log to stderr. Changed the lib-master flag to _DONT_LOG_TO_STDERR. [0dbc2dc0877c] * src/imap/imap-fetch.c: imap code cleanup: Use array instead of buffer for storing fetch handlers. [d6eda52bd74b] * src/imap/imap-fetch.c, src/imap/imap-fetch.h, src/imap/main.c: IMAP: Register FETCH handlers at startup so we don't break if plugins add them. [fe0ee823db41] * src/auth/password-scheme.c: auth: Handle crypt() failing. [f595b68616e4] 2009-05-20 Timo Sirainen * src/util/idxview.c: idxview: Show dbox record contents in human-readable form. [bc13674ac55f] * src/lib-storage/index/dbox/dbox-map.c: dbox: Fixed giving wrong map_uid_validity to new mailboxes. [e902652ce4eb] * src/lib-storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/dbox/dbox-storage-rebuild.c, src /lib-storage/index/dbox/dbox-storage.h: multi-dbox: Added save date to dbox index records so it won't be shared across mailboxes. [5ba40c164a2d] * src/imap/imap-fetch.c: Added FETCH X-SAVEDATE. Based on patch by Alaa Ibrahim. [c47c961a9727] * src/lib-master/master-service.c: lib-master: Log to stderr by default when starting standalone. [e8f4e5acd932] * src/lib-master/master-service-private.h, src/lib-master/master- service-settings.c, src/lib-master/master-service.c: lib-master: Added -O parameter to use program default settings. [fa195866a79a] * src/lib-lda/mail-deliver.c: deliver_log_format: %s should contain subject in UTF8, not in MIME- encoded form. [6b06f4561fcb] * src/lib-storage/index/maildir/maildir-sync.c: Maildir: Make sure messages are removed from index if they are deleted externally from new/. The problem happened when a message in new/ was indexed, deleted externally and the mailbox was again opened as read-only. This caused a partial sync in new/ directory, which didn't notice that the files were gone. [a4759b848d74] * src/lib-index/mail-index-map.c, src/lib-index/mail-index-private.h, src/lib-index/mail-index-view.c: Created mail_index_map_lookup_seq_range() from code in mail-index- view.c. [190669ac816c] * src/lib-index/Makefile.am, src/lib-index/mail-index-map-read.c, src /lib-index/mail-index-map.c: Moved some code from mail-index-map.c to mail-index-map-read.c [e55de8b34144] * src/lib-index/Makefile.am, src/lib-index/mail-index-map-hdr.c, src /lib-index/mail-index-map.c, src/lib-index/mail-index-private.h: Moved some code from mail-index-map.c to mail-index-map-hdr.c [768b25cabd6c] * src/auth/db-ldap.c, src/auth/passdb-ldap.c, src/auth/userdb-ldap.c: auth: Fixed using ldap plugin. [94547703da25] * configure.in, src/master/main.c: dovecot --build-options: If SQL or LDAP was built as plugins, say it. [ed142749ce67] 2009-05-19 Timo Sirainen * src/lib-storage/mail-search.c: SEARCH INTREAD: Crashfix when deinitializing. [91b961fb07a5] * src/imap/imap-fetch-body.c: If FETCH gets too little message data, use "FETCH failed" disconnection reason. [a9ffb4614b5e] * src/lib/ostream-file.c: o_stream_send_istream(): Make sure istream->eof gets set after sending everything with sendfile(). [a5bc58832be9] * src/lib/sendfile-util.c: safe_sendfile(): Error handling fixes for Linux and Solaris. [c96abc68b115] 2009-05-18 Timo Sirainen * src/login-common/ssl-proxy.c: Fixed compiling without OpenSSL. [9c6597ba9e3e] * src/lib-storage/Makefile.am, src/lib-storage/index/index-thread.c, src/lib-storage/mail-thread.c: Moved mail_thread_type_parse() to lib-storage.a to avoid some linking problems. [ca39cedd796e] * src/lib-mail/message-decoder.c, src/lib-mail/message-decoder.h, src /lib-mail/message-search.c, src/plugins/fts/fts-storage.c: message-decoder now supports optionally returning non-text bodyparts as-is. [ce612bdafc84] 2009-05-17 Timo Sirainen * src/plugins/zlib/istream-zlib.c: zlib: Don't expose file descriptor. Others can't do anything with it anyway. Fixes o_stream_send_istream(zlib_istream), which was trying to sendfile() the compressed data. [4c4b95def1fa] * src/lib/env-util.c, src/lib/env-util.h: Added env_backup_*() for saving/restoring environment. [9bdd43acd083] * src/lib/env-util.c: env_clean(): Clear the environment memory pool also. We trust that nowadays our environment clearing code works everywhere. [6e80c8fb225e] * src/lib/env-util.c: env-util: Minor code cleanup. [92be0f90a9df] * src/lib-dict/dict-db.c: Berkeley DB dict: Transactions should be aborted with abort(), not discard(). [1ab11ad931d0] * src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-storage.h: virtual: If we can't open a mailbox that was added using a wildcard, just skip it. [eb67ef194562] * src/plugins/quota/quota-fs.c: quota-fs: Improved debug logging. [7344f1a53f0f] * src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- storage.c, src/plugins/virtual/virtual-sync.c: virtual: Fixed handling multiple mailboxes using the same search args. [7c4af82cb5e7] * src/lib-storage/mail-search.c, src/lib-storage/mail-search.h: Added mail_search_args_dup(). [47d22004ea13] * src/plugins/virtual/virtual-sync.c: virtual: Handle broken index files better. [9c7164014a11] * src/lib-index/mail-index.c, src/lib-index/mail-index.h, src/lib- index/mail-transaction-log-private.h, src/lib-index/mail- transaction-log.h: Added mail_index_unlink(). [0b3d90514e85] * src/lib-sql/sql-pool.c: Dropping connections from sql connection pool could have crashed. [4ae7728a99f0] * src/plugins/virtual/virtual-sync.c: virtual: Fixed several crashes. [78bf2b7276b0] * src/lib-storage/index/index-search-result.c, src/lib-storage/index /index-search-result.h, src/lib-storage/index/index-sync-private.h, src/lib-storage/index/index-sync-search.c, src/lib-storage/index /index-sync.c: Tracking flag updates in saved search results was broken when expunging messages. [b42ccb84887f] * src/lib-storage/index/index-thread-links.c: Message threading assert-crashfix. [789136ae7e21] * src/plugins/virtual/virtual-sync.c: virtual: Assert-crashfix when opening mailbox. [b5889a18fb25] * src/lib-storage/index/index-search.c: Search: Added an assert. [34e4af1f5009] * src/lib-storage/index/index-thread.c: mail_thread_init(): Don't assert-crash when checking if we can use a cached thread tree. [58c240b45d24] * src/lib-imap/Makefile.am, src/lib-index/Makefile.am, src/lib- mail/Makefile.am: And fix for last change: Use LIBICONV, not LTLIBICONV when linking. [84f3d92ea9e8] * src/lib-imap/Makefile.am, src/lib-index/Makefile.am, src/lib- mail/Makefile.am: test-* programs weren't linking enough libraries in all systems. [c90da6423ff3] * src/imap/cmd-list.c: LIST: Previous prefix="", list=no change broke listing other list=no namespaces. [6e0ea2caf655] 2009-05-15 Timo Sirainen * src/lib-master/master-service-settings.c, src/lib-master/master- service.c, src/lib-settings/settings-parser.c, src/lib-storage/mail- storage-service.c, src/lib-storage/mail-storage-service.h, src/util/doveadm.c: Memory leak fixes. [b66054f9b8fb] * src/lib-auth/auth-master.c, src/lib-auth/auth-master.h: lib-auth: Added auth_master_user_list_count(). [602adc1f2f83] * src/util/doveadm.c: doveadm -v: Print progress counter. [468273e27777] * src/util/doveadm.c: doveadm: Memory usage improvements. [3d20388cee21] * src/lib-storage/mail-user.c: Use a larger initial "mail user" pool. [0fb684847ae1] * src/util/doveadm.c: doveadm: When iterating through all users, stop when receiving SIGTERM/SIGINT. [6df5bdefad00] * src/auth/userdb-sql.c: userdb sql: Fixed crashing when listing users. [41fda72aa80a] * src/lib-auth/auth-master.c: auth master: Fixed hanging when iterating through users. [3d628e998192] * src/auth/auth-master-connection.c: userdb listing: Don't crash with multiple userdbs. [de33ce3795da] * dovecot-example.conf, src/lib-storage/mail-storage-settings.c: mail_log_prefix default setting: Don't uppercase the service name. [7357b0da7589] * src/util/doveadm.c: doveadm: Added -a parameter to perform the operation to all users. [5ef2a14b4527] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail storage multi service: Added support for iterating through all users. [0e02c867b15a] * src/lib-auth/auth-master.c, src/lib-auth/auth-master.h: lib-auth: Added support for iterating through all users. [77d6b5eb0963] * src/auth/userdb-passwd-file.c: userdb passwd-file: Fixes to user listing. [6557ed6fc4e1] * src/imap/cmd-append.c: APPEND: Don't assert-crash if message size parameter isn't given. [22369ac2c99c] 2009-05-14 Timo Sirainen * src/login-common/ssl-proxy-openssl.c: login: Support per-connection ssl_cert/ssl_key. [a5973f031e7a] * src/imap-login/client.c, src/pop3-login/client.c: Crashfix to previous commit. [90312c7416c3] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/client.c, src/imap-login/imap- proxy.c, src/login-common/client-common.c, src/login-common/client- common.h, src/login-common/common.h, src/login-common/login-proxy.c, src/login-common/login-settings.c, src/login-common/login- settings.h, src/login-common/main.c, src/login-common/sasl-server.c, src/login-common/ssl-proxy-openssl.c, src/login-common/ssl-proxy.h, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c: login processes: Added initial support for per-connection configuration. [02721ba17309] * src/lib-master/master-service-private.h, src/lib-master/master- service-settings.c, src/lib-master/master-service.c, src/lib-master /master-service.h: lib-master: Added support for keeping config connection open and reusing it for later requests. [6bb773332683] * src/config/config-request.c, src/lib-settings/settings-parser.c, src /lib-settings/settings-parser.h, src/master/master-settings.c: Removed SET_INTERNAL, it's unnecessary. [11e974e40f7b] * src/lib-settings/settings-parser.c: settings_dup(): Copy only the settings, leave the rest of the struct zeroed out. [8e7809057f85] * src/imap/imap-client.c: imap: When multiple commands are pipelined, try harder to combine their mailbox syncing together. [2da7dec937d4] * src/master/service-process.c: master: Improved "out of memory" error message. [e7a3c0e6ba0f] * dovecot-master-example.conf: dovecot-master-example.conf updated. [3dae622212f4] * src/master/service-process.c: master: vsz_limit wasn't being enforced. [435298234943] 2009-05-13 Timo Sirainen * dovecot-example.conf, src/login-common/login-settings.c, src/login- common/login-settings.h, src/login-common/ssl-proxy-openssl.c: Renamed ssl_cert_file to ssl_cert and ssl_key_file to ssl_key. Instead of pointing to files they now contain the certs directly. [c38f3fb4c6b6] * src/config/config-connection.c, src/config/config-parser.c, src/config/config-parser.h, src/config/doveconf.c, src/config/main.c, src/lib-settings/settings-parser.c, src/lib- settings/settings-parser.h: config: If value contains * doc/dovecot-ldap-example.conf, doc/dovecot-sql-example.conf, src/auth/auth-master-connection.c, src/auth/auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/auth-worker-server.h, src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/db-passwd-file.h, src/auth/db-sql.c, src/auth/db-sql.h, src/auth/main.c, src/auth /passdb-blocking.c, src/auth/passdb-ldap.c, src/auth/passdb.c, src/auth/userdb-blocking.c, src/auth/userdb-blocking.h, src/auth /userdb-checkpassword.c, src/auth/userdb-ldap.c, src/auth/userdb- nss.c, src/auth/userdb-passwd-file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb- static.c, src/auth/userdb-vpopmail.c, src/auth/userdb.c, src/auth/userdb.h: Implemented support for listing all users in userdb. [1d7965092e0e] * dovecot-example.conf: dovecot-example.conf: Clarified that commented sections or plugin settings aren't defaults. [f5b6974cbee7] 2009-05-12 Timo Sirainen * src/lib-sql/driver-pgsql.c: pgsql: We didn't read all the SQL packets replies from the server. [d467712aee77] * src/lib-dict/dict-sql.c, src/lib-sql/driver-mysql.c, src/lib-sql /driver-pgsql.c, src/lib-sql/driver-sqlite.c, src/lib-sql/sql-api- private.h, src/lib-sql/sql-api.c, src/lib-sql/sql-api.h: SQL API change: SQL results can be now refed/unrefed. [f9ebd72a73e8] * src/lib-master/master-service.c: DEBUG: Preserve GDB environment when executing doveconf. [2eecf682262a] * src/lib-master/master-service.c: master services: When accepting connections, set them nonblocking. [f389f56a68a8] * src/auth/auth-settings.c: Compiler warning fix. [269cebf1aad4] * dovecot-master-example.conf, src/auth/auth-worker-server.c: Fixed using auth worker processes. [e5f4cce3ef7a] * src/auth/db-ldap.c: ldap: When using the same LDAP attribute multiple times, give an error message. [b4dcdc5ccd8e] * src/auth/db-ldap.c: LDAP: If LDAP_OPT_ERROR_STRING gives more information, log it. [11b6aab8a203] 2009-05-11 Timo Sirainen * src/config/Makefile.am, src/config/all-settings.h, src/config /config-connection.c, src/config/config-filter.c, src/config/config- filter.h, src/config/config-parser.c, src/config/config-parser.h, src/config/config-request.c, src/config/config-request.h, src/config/doveconf.c, src/imap/main.c, src/lda/main.c, src/lib- master/master-service-settings.c, src/lib-master/master-service- settings.h, src/lib-storage/mail-storage-service.c, src/lib-storage /mail-storage-service.h, src/login-common/login-settings.c, src/pop3/main.c: config handling fixes and improvements. Separated module/service lookups. Added support for per-lip/rip settings. [5d0a69504867] * src/lib-settings/settings-parser.c: settings_parser_dup() fixes. [7604073a4ccc] * src/auth/auth-settings.c: auth settings: Make sure we have a section name defined. [5e80d667a827] * src/lib-test/test-common.lo, src/lib-test/test-common.o: test-common.l?o shouldn't have been added to hg. [36bdeba8f39a] * src/lib/data-stack.c: DEBUG: data-stack buffer overflow checking code was causing false positives. [8fc3639ef601] 2009-05-09 Timo Sirainen * .hgignore, configure.in, src/Makefile.am, src/lib-imap/Makefile.am, src/lib-imap/test-imap.c, src/lib-index/Makefile.am, src/lib-index /mail-index-transaction-export.c, src/lib-index/mail-index- transaction.c, src/lib-index/mail-transaction-log-append.c, src/lib- index/mail-transaction-log.h, src/lib-index/test-index.c, src/lib- index/test-index.h, src/lib-index/test-transaction-log-view.c, src /lib-mail/Makefile.am, src/lib-mail/test-mail.c, src/lib- test/Makefile.am, src/lib-test/test-common.c, src/lib-test/test- common.h, src/lib-test/test-common.lo, src/lib-test/test-common.o, src/lib/Makefile.am, src/lib/test-istream.c, src/lib/test-lib.c, src/lib/test-lib.h, src/tests/Makefile.am, src/tests/test-common.c, src/tests/test-common.h, src/tests/test-imap.c, src/tests/test- istream.c, src/tests/test-lib.c, src/tests/test-lib.h, src/tests /test-mail.c: Tests are now run on "make check". Added initial tests for lib- index. Moved old tests away from tests/ to libraries' individual directories. [665ea7a8d26e] * src/config/Makefile.am: config: Added missing header to Makefile.am [2090983d37fa] * src/lmtp/Makefile.am: lmtp: Added main.h to Makefile.am. [8e0ff6b00221] * src/Makefile.am: Makefile.am: anvil was missing from SUBDIRS [7919f307a5cd] * src/lib-index/mail-index-transaction-export.c, src/lib-index/mail- transaction-log-append.c, src/lib-index/mail-transaction-log.h: More cleanups to transaction log writing code. [0e407ad46307] * src/imap/cmd-list.c, src/lib-storage/mail-namespace.c: Allow prefix="" namespace to have list=no and make it work in a somewhat useful way. Based on patch by Mark Washenberger. [e144fa1dd2ce] * src/lib-index/Makefile.am, src/lib-index/mail-index-transaction- export.c, src/lib-index/mail-index-transaction-finish.c, src/lib- index/mail-index-transaction-private.h, src/lib-index/mail-index- transaction-sort-appends.c, src/lib-index/mail-index-transaction.c, src/lib-index/mail-transaction-log-append.c, src/lib-index/mail- transaction-log.h: Moved transaction commiting code to mail-index-transaction-*.c [937dca181d77] * src/lib-index/Makefile.am, src/lib-index/mail-transaction-log-view- private.h, src/lib-index/mail-transaction-log-view.c: Transaction log view code cleanups. [08cf5c1814ef] * src/lib-index/mail-transaction-log-view.c, src/lib-index/mail- transaction-log.h: mail_transaction_log_view_clear() should keep oldest_file_seq and newer referenced. [4d6f33fa08ee] * src/lib-index/mail-transaction-log-view.c: Removed assert. [5e1a4020a277] 2009-05-07 Timo Sirainen * src/lib-sql/driver-pgsql.c: pgsql: We hadn't called PQsetnonblocking(). [0f03cd2679c6] 2009-05-06 Timo Sirainen * src/config/config-parser.c: config: Code cleanup. [cbade54216a6] * configure.in: configure: Show also list of disabled passdbs/userdbs/sql drivers. [df8b1ae676fe] * configure.in: configure: Version number is nowadays 2.0, not 1.3. [e661cd70e425] * src/auth/auth-settings.c, src/lib-master/master-service-settings.c, src/lib-master/master-service-settings.h, src/lib-storage/mail- storage-service.c, src/log/main.c, src/login-common/login- settings.c, src/master/main.c: mail processes now specify user/lip/rip in config requests. [4bf901b4c402] * src/master/main.c: master: Added dovecot stop and dovecot reload parameters. [64a7a1a3fe33] * src/lib-master/master-service-settings.c: Fixed running / when building absolute path for doveconf -e. [031bfa5a8995] * src/master/main.c: dovecot: Fixed --parameters. [0b74ad9372d9] * src/master/master-settings.c, src/master/master-settings.h, src/master/service-process.c: master: If mail_debug=yes, set DEBUG=1 environment to auth- destination processes. [3e5c6e2367db] * src/lib-master/master-service-private.h, src/lib-master/master- service-settings.c, src/lib-master/master-service.c, src/lib- settings/settings-parser.c, src/lib-settings/settings-parser.h: Binaries now take -o key=value parameters to override settings. [1cb45d4389d4] * src/config/config-request.c, src/lib-master/master-service- settings.h: config: Give master service settings to all requests. [c57038025171] * src/config/Makefile.am, src/config/doveconf.c, src/config/sysinfo- get.c, src/config/sysinfo-get.h: doveconf -n, -a: Show version number, config file path and system info. [30d771700232] * src/master/main.c: dovecot: Forward dovecot -a, -n to doveconf. [955e68007ada] 2009-05-05 Timo Sirainen * .hgignore, TODO, configure.in, dovecot-master-example.conf, src/anvil/Makefile.am, src/anvil/anvil-connection.c, src/anvil /anvil-connection.h, src/anvil/common.h, src/anvil/connect-limit.c, src/anvil/connect-limit.h, src/anvil/main.c, src/imap- login/client.c, src/imap/imap-client.c, src/imap/imap-client.h, src /lib-master/master-interface.h, src/lib-master/master-service- settings.c, src/lib-master/master-service.c, src/lib-master/master- service.h, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/login-common/common.h, src/login-common/login-settings.c, src /login-common/login-settings.h, src/login-common/main.c, src/login- common/sasl-server.c, src/master/Makefile.am, src/master/master- settings.c, src/master/service-anvil.c, src/master/service-anvil.h, src/master/service-auth-server.c, src/master/service-log.c, src/master/service-log.h, src/master/service-monitor.c, src/master /service-process-notify.c, src/master/service-process-notify.h, src/master/service-process.c, src/master/service-process.h, src/master/service.c, src/master/service.h, src/pop3-login/client.c, src/pop3/pop3-client.c, src/pop3/pop3-client.h: Implemented anvil service, which is used to implement mail_max_userip_connections. [2e2b957f1cca] * src/login-common/login-settings.c, src/login-common/login- settings.h: Removed login_dir setting. It's really not useful. [783a81c3deb7] * src/config/config-connection.c, src/config/config-connection.h: config: Removed unnecessary code. [770a02e0dbd2] * src/auth/auth-stream.c, src/lib/strescape.c, src/lib/strescape.h: Added str_tabescape*() to write escaped strings to Dovecot's IPC protocols. [2dcf2f313329] * src/master/service.c: SERVICE_TYPE_AUTH_SOURCE wasn't used. [8f770c8ad198] * src/master/main.c, src/master/master-settings.c: Verify that service type string is known. Removed auth-destination type. [d83bfe8c38c2] * src/config/config-parser.c, src/config/config-parser.h, src/config/doveconf.c, src/config/main.c: doveconf/config cleanups. [e5303fd61b5c] * dovecot-master-example.conf: dovecot-master-example.conf updated. [e91bca10d5a1] * src/config/Makefile.am, src/config/config-connection.c, src/config /config-connection.h, src/config/config-request.h, src/config/doveconf.c, src/config/main.c: Split doveconf and libexec/dovecot/config binaries. [f155917f1615] * src/master/common.h, src/master/main.c, src/master/master- settings.c, src/master/master-settings.h, src/master/service- process.c, src/master/service.c: master: Added back some startup checks/fixes. [0ca7ed260f1e] * src/auth/main.c: auth: Minor code cleanup. [b510683ab83c] * src/lib/failures.c, src/lib/failures.h: Added i_get_failure_handlers(). [da94fa5953ec] * src/master/main.c: master: Check PID file existence at startup before doing anything. [b1c6b740a4a1] * src/master/service.c: services: If group isn't explicitly set, use user's primary group. [9e02485f6e3d] * src/pop3/main.c: pop3: Don't verify fd leaks here. [f41ce5378722] 2009-05-05 Mark Washenberger * src/auth/Makefile.am, src/imap/Makefile.am, src/lib- auth/Makefile.am, src/lib-charset/Makefile.am, src/lib- dict/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-lda/Makefile.am, src/lib- mail/Makefile.am, src/lib-settings/Makefile.am, src/lib- sql/Makefile.am, src/lib-storage/Makefile.am, src/lib- storage/index/Makefile.am, src/lib-storage/index/cydir/Makefile.am, src/lib-storage/index/dbox/Makefile.am, src/lib- storage/index/maildir/Makefile.am, src/lib- storage/index/mbox/Makefile.am, src/lib- storage/index/raw/Makefile.am, src/lib- storage/index/shared/Makefile.am, src/lib-storage/list/Makefile.am, src/lib/Makefile.am, src/pop3/Makefile.am: Flattened header namespace on install. [3cac418eeab5] * src/auth/Makefile.am, src/auth/auth-cache.c, src/auth/auth-client- connection.c, src/auth/auth-common.h, src/auth/auth-master- connection.c, src/auth/auth-request-handler.c, src/auth/auth- request.c, src/auth/auth-stream.c, src/auth/auth-worker-client.c, src/auth/auth-worker-server.c, src/auth/auth.c, src/auth/common.h, src/auth/db-checkpassword.c, src/auth/db-ldap.c, src/auth/db-passwd- file.c, src/auth/db-sql.c, src/auth/main.c, src/auth/mech- anonymous.c, src/auth/mech-apop.c, src/auth/mech-cram-md5.c, src/auth/mech-digest-md5.c, src/auth/mech-gssapi.c, src/auth/mech- login.c, src/auth/mech-ntlm.c, src/auth/mech-otp-skey-common.c, src/auth/mech-otp-skey-common.h, src/auth/mech-otp.c, src/auth/mech- plain-common.c, src/auth/mech-plain-common.h, src/auth/mech-plain.c, src/auth/mech-rpa.c, src/auth/mech-skey.c, src/auth/mech-winbind.c, src/auth/mech.c, src/auth/otp-skey-common.c, src/auth/otp-skey- common.h, src/auth/passdb-blocking.c, src/auth/passdb-bsdauth.c, src/auth/passdb-cache.c, src/auth/passdb-checkpassword.c, src/auth /passdb-ldap.c, src/auth/passdb-pam.c, src/auth/passdb-passwd- file.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c, src/auth /passdb-sia.c, src/auth/passdb-sql.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth/plain-common.c, src/auth/plain-common.h, src/auth/userdb-blocking.c, src/auth/userdb-checkpassword.c, src/auth/userdb-ldap.c, src/auth/userdb-nss.c, src/auth/userdb- passwd-file.c, src/auth/userdb-passwd.c, src/auth/userdb-prefetch.c, src/auth/userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb- vpopmail.c, src/auth/userdb.c, src/imap/Makefile.am, src/imap/client.c, src/imap/client.h, src/imap/cmd-append.c, src/imap/cmd-cancelupdate.c, src/imap/cmd-capability.c, src/imap /cmd-check.c, src/imap/cmd-close.c, src/imap/cmd-copy.c, src/imap /cmd-create.c, src/imap/cmd-delete.c, src/imap/cmd-enable.c, src/imap/cmd-examine.c, src/imap/cmd-expunge.c, src/imap/cmd- fetch.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd- list.c, src/imap/cmd-logout.c, src/imap/cmd-lsub.c, src/imap/cmd- namespace.c, src/imap/cmd-noop.c, src/imap/cmd-rename.c, src/imap /cmd-search.c, src/imap/cmd-select.c, src/imap/cmd-sort.c, src/imap /cmd-status.c, src/imap/cmd-store.c, src/imap/cmd-subscribe.c, src/imap/cmd-thread.c, src/imap/cmd-uid.c, src/imap/cmd-unselect.c, src/imap/cmd-unsubscribe.c, src/imap/cmd-x-cancel.c, src/imap /commands-util.c, src/imap/commands-util.h, src/imap/commands.c, src/imap/commands.h, src/imap/common.h, src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-commands-util.c, src/imap /imap-commands-util.h, src/imap/imap-commands.c, src/imap/imap- commands.h, src/imap/imap-common.h, src/imap/imap-expunge.c, src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap- search-args.c, src/imap/imap-search.c, src/imap/imap-status.c, src/imap/imap-sync.c, src/imap/mail-storage-callbacks.c, src/imap/main.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins /imap-quota/imap-quota-plugin.c, src/pop3-login/client- authenticate.c, src/pop3/Makefile.am, src/pop3/capability.h, src/pop3/client.c, src/pop3/client.h, src/pop3/commands.c, src/pop3/commands.h, src/pop3/common.h, src/pop3/main.c, src/pop3/pop3-capability.h, src/pop3/pop3-client.c, src/pop3/pop3-client.h, src/pop3/pop3-commands.c, src/pop3/pop3-commands.h, src/pop3/pop3-common.h: Renamed headers to prevent collision if they were flattened on an install. [97cdfeb57129] 2009-05-04 Timo Sirainen * src/lib-master/master-service-private.h, src/lib-master/master- service.c, src/lib-master/master-service.h, src/login-common/main.c, src/master/master-settings.c, src/master/master-settings.h, src/master/service-process.c: inet_listeners now support ssl=yes. For now only login processes support it. [4a42f694b762] * src/login-common/ssl-proxy-openssl.c: Fixed SSL parameter file reading in login processes. [5595d6d07a47] * dovecot-master-example.conf: Added names to services. [8d4b7abdcf3a] * src/lib/failures.c, src/lib/failures.h, src/master/service- process.c: Removed LOG_TYPE_ERROR_IGNORE_IF_SEEN_FATAL. It's no longer necessary. [b57e1c3ea3f7] * src/lib-master/master-interface.h, src/lib-master/master-service.c, src/log/log-connection.c, src/log/log-connection.h, src/log/main.c, src/master/service-log.c, src/master/service-log.h, src/master /service-process.c, src/master/service-process.h, src/master/service.c, src/master/service.h: master: Fixes to handling logging. Master now has a non-blocking write pipe to log process, so it no longer blocks if log process is hanging. Also it's cleaner to send log commands via a pipe specifically meant for them. [7def7fa61d68] * src/master/master-settings.c, src/master/master-settings.h, src/master/service-auth-server.c, src/master/service-auth-source.c, src/master/service-listen.c, src/master/service-log.c, src/master /service-monitor.c, src/master/service-process.c, src/master/service.c, src/master/service.h: Require each service to have a unique name. Log service errors using service_error(). [7b3accdf44f8] * src/master/main.c: Minor error message fix. [7b110aa9fac5] * src/master/master-settings.c: service settings: Base relative chroots under base_dir. [66bb019c664c] * src/dict/dict-settings.c, src/lib-master/master-service-settings.c: settings_parser_check() return value was checked wrong. [189a92535cc7] * src/lib-storage/index/dbox/dbox-sync-rebuild.c: dbox: Compiling fix for previous maildir changes. [419b35be0823] * src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-sync-index.c, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h: Maildir: More fixes to uidlist handling. [236509dddd3c] * src/lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/maildir/maildir-copy.c, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/maildir/maildir-sync.c, src /lib-storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/maildir/maildir-uidlist.h, src/lib- storage/index/maildir/maildir-util.c: Maildir: Handle uidlist errors better. [d04b97ed7ac4] * src/lib-storage/index/maildir/maildir-uidlist.c: Maildir saving: Fixed race condition bugs in uidlist handling, causing files to be given new UIDs sometimes. [9b6ca1680cd2] * src/lib-mail/rfc2231-parser.c: Try to skip over errors in Content-Type parameters. [1cdee5c559ca] 2009-05-03 Timo Sirainen * configure.in, src/lib/randgen.c: If /dev/arandom exists (OpenBSD), use it instead of /dev/urandom. [1849c4269ad8] * src/lib/primes.c: Compiler warning fix. [a035febf39d4] 2009-05-02 Timo Sirainen * src/imap/cmd-idle.c: IDLE: Check DONE case-insensitively. [4067b6e7f515] * src/plugins/virtual/virtual-config.c: virtual: Open the dovecot-virtual as readonly, we don't need to write to it. [10f2650ce56b] 2009-05-01 Timo Sirainen * doc/Makefile.am, doc/dovecot-initd.sh: Added example init.d/dovecot script. [493de7a6d411] * src/lib-storage/index/shared/shared-storage.c: shared mailboxes: Don't crash if trying to open "shared/domain" namespace prefix as mailbox. [45ab7d730968] * src/plugins/virtual/virtual-storage.c: virtual: Don't show mailboxes as \Noselect. [f5eb54133c9d] * src/plugins/mbox-snarf/mbox-snarf-plugin.c: mbox-snarf plugin: Fixed memory/io leaking. [2e7503221cb7] * src/lib-mail/istream-header-filter.c, src/lib-storage/index/istream- mail-stats.c, src/lib/istream-internal.h, src/lib/istream-limit.c, src/lib/istream.c: istreams: Fixed some parent stream seeking issues. [ef0c861608d9] * src/lib-storage/index/mbox/mbox-sync.c: mbox: Don't crash when expunging all messages and file doesn't end with [CR]LF. [01c0d64e5f91] * src/lib-storage/index/mbox/istream-raw-mbox.c: mbox: Fix to handling CRs before From_ lines. [44bd81c9d11a] * src/plugins/virtual/virtual-config.c: virtual: Allow search rules to begin with TAB instead of space. [39f66363ec56] * src/lib/file-dotlock.c: dotlocking: Don't generate "Will override dotlock in 0 secs" messages. [4f12a7c7f140] * src/lib/safe-mkstemp.c: safe_mkstemp()'s mode parameter didn't override umask as it was supposed to. [92d0383cc323] 2009-04-30 Timo Sirainen * src/lib-dict/dict-file.c: dict-file: When replacing the dict file, preserve its permissions. [cc280979ea8d] * src/lib-storage/mailbox-list.c: When :MAILBOXDIR= was empty, we might have appended extra '/' to it, which caused problems. [c0c4e6e75366] * src/lib-storage/index/mbox/mbox-storage.c: mbox: When skipping subscriptions file, use the configured filename instead of hardcoded one. [430eabd745a1] * src/lib-master/master-service-settings.c, src/master/service- process.c: Fixed passing settings from userdb to mail processes. [f86e83fa9dd4] * src/lib-storage/index/maildir/maildir-sync.c: maildir: Don't assert-crash if we have no read-access to the Maildir. [dcad675890c1] * src/auth/Makefile.am, src/auth/auth-client-interface.h, src/lib- auth/Makefile.am, src/lib-auth/auth-client-interface.h, src/lib-auth /auth-client.h: Moved auth-client-interface.h to lib-auth/. [637b627efbf1] * src/master/master-settings.c: master: Removed unused code. [afdeb38c338f] * src/master/service-process.c: Don't allow auth source/destination services to run as root. [bfe448b4951f] * src/master/service-log.c, src/master/service-process.c, src/master /service-process.h: master: Fixed logging process related bugs. [2f293c844e31] * src/config/config-connection.c: config: service names had an extra "service=". [150a98d2407c] * src/lib-dict/dict-file.c: dict-file: If file_dotlock_open() fails, log also the path. [ea0b68301004] * src/config/Makefile.am, src/config/common.h, src/config/config- connection.c, src/config/config-connection.h, src/config/config- parser.c, src/config/config-parser.h, src/config/config-request.c, src/config/config-request.h, src/config/main.c, src/config/settings- get.pl, src/imap/imap-settings.c, src/lib-lda/lda-settings.c, src /lib-settings/settings-parser.h, src/pop3/pop3-settings.c: doveconf: With -p only protocol-specific settings are returned. -n and -a return human-readable output. [f8460b27db00] * src/lib/array-decl.h: Defined ARRAY_TYPE(uint). [13bbdd7b15b8] * src/config/settings-get.pl, src/lib-storage/mail-storage-settings.c, src/pop3/client.c, src/pop3/client.h, src/pop3/commands.c, src/pop3/main.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Moved pop3_uidl_format checking to mail-storage-settings. [e4cc93190ec3] 2009-04-29 Timo Sirainen * src/lib-storage/mail-storage-service.c: mail-storage-service: Callmaster_service_init_finish(). [cf026a9180f1] * src/lib-master/master-service-settings.c: master: Don't fail startup if the full path to dovecot wasn't in argv[0]. [9ef2d07f786d] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox /dbox-mail.c, src/lib-storage/index/index-search.c, src/lib- storage/index/maildir/maildir-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h: Split struct mail_private.stats_dentry_lookup_count to open/stat counts. [1ad6926f46a2] * src/util/rawlog.c: rawlog: If mail_debug=yes, log if dovecot.rawlog/ directory doesn't exist. [396cd2e86103] * src/lib-storage/mail-storage.c: Shared mailboxes: Fixed a bug where some mailboxes were added to root shared namespace. [fa8f044040e1] * src/lib-storage/index/maildir/maildir-uidlist.c: maildir: Don't show "* OK" messages about lock waits too early. [c9ca36745670] * src/plugins/virtual/virtual-storage.c: Virtual: If opening a virtual mailbox fails, don't leak memory/timeouts. [c26e1b2f32c0] * src/plugins/virtual/virtual-config.c: virtual: If last search rule was invalid, we gave "Unknown error". [13698b875984] * dovecot-example.conf: dovecot-example.conf: Improved rawlog example. [6f4a4db41c44] * src/auth/db-ldap.c: ldap: If first request is over 60 seconds old while a new request comes, reconnect. [97984b1fd5f8] * src/login-common/ssl-proxy-openssl.c: ssl-proxy: Crashfix to previous commit. [39565c3eb1b3] 2009-04-28 Timo Sirainen * src/imap-login/client-authenticate.c, src/imap-login/client.h, src /imap-login/imap-proxy.c, src/imap-login/imap-proxy.h, src/login- common/login-proxy.c, src/login-common/login-proxy.h, src/login- common/ssl-proxy-openssl.c, src/login-common/ssl-proxy.c, src/login- common/ssl-proxy.h, src/pop3-login/client-authenticate.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c, src/pop3-login/pop3-proxy.h: imap/pop3 proxy: Support SSL/TLS connections to remote servers. passdb can return ssl=yes, ssl=any-cert and starttls options. [96678e83eab6] * src/lib-storage/index/index-search.c: Use the new mail_private.stats_* fields to stop non-blocking searches after about 250 ms. [9b8bf57405c8] * src/lib-storage/index/Makefile.am, src/lib-storage/index/cydir /cydir-mail.c, src/lib-storage/index/dbox/dbox-file.h, src/lib- storage/index/dbox/dbox-mail.c, src/lib-storage/index/index-mail- headers.c, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-mail.h, src/lib-storage/index/istream-mail-stats.c, src/lib- storage/index/istream-mail-stats.h, src/lib-storage/index/maildir /maildir-mail.c, src/lib-storage/index/raw/raw-mail.c, src/lib- storage/mail-storage-private.h: struct mail_private now contains all kinds of statistics about file accesses. [be7413b0e0e0] * src/lib-storage/index/index-search.c: Search: Perform all lookups from cache before attempting any uncached lookups. [3727bfc568b9] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox /dbox-mail.c, src/lib-storage/index/maildir/maildir-mail.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/raw/raw- mail.c, src/lib-storage/mail-storage-private.h, src/lib-storage /mail-storage.h, src/lib-storage/mail.c: Added struct mail.lookup_abort, which can be used to abort lookups that can't be done using cache. [03a5f5cf6b4c] 2009-04-23 Timo Sirainen * dovecot-example.conf, dovecot-master-example.conf: Added example dovecot-master.conf. [1cd9808147e3] * .hgignore, TODO, configure.in, src/Makefile.am, src/auth/Makefile.am, src/auth/auth-client-connection.c, src/auth /auth-client-connection.h, src/auth/auth-master-connection.c, src/auth/auth-master-connection.h, src/auth/auth-master-interface.h, src/auth/auth-master-listener.c, src/auth/auth-master-listener.h, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/auth- worker-client.c, src/auth/common.h, src/auth/db-ldap.c, src/auth/main.c, src/config/Makefile.am, src/config/common.h, src/config/config-connection.c, src/config/config-connection.h, src/config/main.c, src/config/settings-get.pl, src/imap- login/Makefile.am, src/imap-login/client.c, src/imap-login/client.h, src/imap-login/imap-proxy.c, src/imap/main.c, src/lda/main.c, src /lib-master/Makefile.am, src/lib-master/master-auth.c, src/lib- master/master-auth.h, src/lib-master/master-interface.h, src/lib- master/master-service-private.h, src/lib-master/master-service- settings.c, src/lib-master/master-service.c, src/lib-master/master- service.h, src/lib-settings/settings-parser.c, src/lib-settings /settings-parser.h, src/lib-storage/mail-storage-service.c, src/lib- storage/mail-storage-settings.c, src/lib-storage/mail-storage- settings.h, src/lib/failures.c, src/lib/failures.h, src/lib /restrict-access.c, src/lib/restrict-access.h, src/lmtp/client.c, src/lmtp/main.c, src/log/Makefile.am, src/log/common.h, src/log/log- connection.c, src/log/log-connection.h, src/log/main.c, src/login- common/Makefile.am, src/login-common/client-common.h, src/login- common/common.h, src/login-common/login-proxy.c, src/login-common /login-proxy.h, src/login-common/login-settings.c, src/login-common /login-settings.h, src/login-common/main.c, src/login- common/master.c, src/login-common/master.h, src/login-common/sasl- server.c, src/login-common/sasl-server.h, src/login-common/ssl- proxy-openssl.c, src/login-common/ssl-proxy.c, src/login-common/ssl- proxy.h, src/master/Makefile.am, src/master/auth-process.c, src/master/auth-process.h, src/master/child-process.c, src/master /child-process.h, src/master/common.h, src/master/dict-process.c, src/master/dict-process.h, src/master/listener.c, src/master/listener.h, src/master/log.c, src/master/log.h, src/master/login-process.c, src/master/login-process.h, src/master /mail-process.c, src/master/mail-process.h, src/master/main.c, src/master/master-login-interface.h, src/master/master-settings.c, src/master/master-settings.h, src/master/service-auth-server.c, src/master/service-auth-server.h, src/master/service-auth-source.c, src/master/service-auth-source.h, src/master/service-listen.c, src/master/service-listen.h, src/master/service-log.c, src/master /service-log.h, src/master/service-monitor.c, src/master/service- monitor.h, src/master/service-process.c, src/master/service- process.h, src/master/service.c, src/master/service.h, src/master /sysinfo-get.c, src/master/sysinfo-get.h, src/plugins/convert /convert-tool.c, src/pop3-login/Makefile.am, src/pop3-login/client.c, src/pop3-login/client.h, src/pop3-login/pop3-proxy.c, src/pop3/main.c: Initial commit for v2.0 master rewrite. Several features are still missing. [6324a79d3ee1] * configure.in: configure: Removed --with-* parameters for passdbs/userdbs that don't require external libraries. There's really no point in disabling them in configure stage. [69aa6e878a59] * configure.in: configure: Removed --disable-ipv6 parameter. There's really no point having it. Originally it was added back when some OSes had broken IPv6 support, but those OSes should be long gone by now. Also we still support automatically building without IPv6 support if it's not detected. [ee378a4ba6cd] * src/lib-mail/message-header-parser.c: Message header parser didn't skip all LWSP at the beginning of headers, only one. Patch by Johann Klasek. [cd85782b64f9] 2009-04-22 Timo Sirainen * src/imap-login/client.c, src/imap-login/client.h, src/imap-login /imap-proxy.c: imap-proxy: Send backend's CAPABILITY if it's different from what was sent to client before. [3dae5834ded3] * src/imap-login/client.c, src/master/login-process.c: imap-login: Generated IMAP capability wasn't being used. [213c2f313bc1] * src/auth/main.c, src/master/master-settings.c: Don't crash if auth settings don't contain any sockets. [f8508e7aca6c] * src/imap-login/imap-proxy.c: imap-proxy: Don't break ID capability check if it's the last capability. [fa66e66850fa] 2009-04-21 Timo Sirainen * src/lib-settings/settings.c: Settings parser: !included files without absolute paths are relative to their parent config file. [cab82d03d00d] * src/config/config-parser.c: Settings parser: !included files without absolute paths are relative to their parent config file. [92825cc9a59c] 2009-04-20 Timo Sirainen * src/dict/Makefile.am, src/dict/dict-server.c, src/dict/dict- settings.c, src/dict/dict-settings.h, src/dict/main.c, src/master /dict-process.c, src/master/master-settings.c, src/master/master- settings.h: Moved most of the dict settings handling to dict binary. [6d374fc3ae1d] * src/lib/failures.c: Removed accidentally committed debug warning. [e3f61d434616] * src/imap/main.c, src/lda/main.c, src/lib-storage/mail-storage- service.c, src/lib-storage/mail-storage-service.h, src/lib-storage /mail-storage-settings.c, src/lib-storage/mail-storage-settings.h, src/lib-storage/mail-user.c, src/lib/failures.c, src/lmtp/commands.c, src/plugins/convert/convert-tool.c, src/plugins/expire/expire-tool.c, src/pop3/main.c, src/util/doveadm.c: Pass remote/local IPs to mail_users. Standalone mail programs now log with mail_log_prefix. [bf448752f6c4] * src/auth/Makefile.am, src/config/Makefile.am, src/dict/Makefile.am, src/imap-login/Makefile.am, src/master/Makefile.am, src/pop3-login/Makefile.am, src/tests/Makefile.am, src/util/Makefile.am: Some binaries were missing list of library dependencies. [1e26166a3cf8] * src/plugins/virtual/virtual-sync.c: virtual: Reversed the broken "fix" in previous commit. [fb8b7ebf0baf] * src/plugins/virtual/virtual-sync.c: virtual: Some cleanups and fixes. [7c93e6c9cb0a] * src/lib/array.c: array_idx_clear() was broken when clearing an index outside the existing array. [9336cf20a96c] * src/imap/cmd-list.c: namespaces: list=children wasn't working correctly. [7c8fa884cd37] * src/lib-storage/index/shared/shared-list.c: shared mailboxes: LIST shared/% shouldn't list "%" entry. [1a49747f9445] * src/plugins/quota/quota-maildir.c: Maildir++ quota: Recalculation was broken if limits were defined by maildirsize file (and not quota_rules). [7be0a6c4bc6b] * src/lib-lda/mail-send.c: deliver: When forwarding messages, use -f parameter as return path and fallback to normalized Return-Path: header. [a3e0524e8af8] 2009-04-17 Timo Sirainen * src/config/common.h, src/config/config-connection.h, src/config /config-parser.h, src/login-common/login-settings.h: Code cleanup: Don't use __ prefix in header #defines. [3c8e0e094139] * src/lib-storage/index/shared/shared-storage.c: Allow shared namespaces to have subscriptions=yes. [40607877c3f9] * src/plugins/fts-solr/solr-connection.c: fts-solr: Don't break with curl versions older than v7.17. [35c69f57621e] * configure.in, src/lib-storage/Makefile.am: configure --without-shared-libs: Don't link other libraries to libstorage.a. [43ce0506a90b] * src/master/main.c: Removed unused code. [761fc36e0e34] * src/lmtp/commands.c: lmtp: If mail is >128 kB, write it to a temporary file. [a80db92d296b] * src/lib-storage/index/index-storage.h, src/lib-storage/mail-storage- private.h: Moved MAIL_READ_BLOCK_SIZE to mail-storage-private.h [dad05c75bd48] 2009-04-16 Timo Sirainen * src/plugins/quota/quota-maildir.c: maildir++ quota: Make sure we don't create maildirsize file to wrong namespace. [6284c1ff3e34] * src/plugins/imap-quota/imap-quota-plugin.c: imap-quota: Allow GETQUOTAROOT for public namespaces. [8517afb01903] * src/plugins/quota/quota-count.c, src/plugins/quota/quota-dict.c, src/plugins/quota/quota-dirsize.c, src/plugins/quota/quota- maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota /quota-plugin.h, src/plugins/quota/quota-private.h, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c: Implemented support for per-namespace quotas. Can be used with public namespaces. [f9c07af22f91] * src/lib-settings/settings-parser.c: settings_dup() didn't copy STRLISTs. [be738988c8ab] * src/imap/Makefile.am, src/lda/Makefile.am, src/pop3/Makefile.am: When using --disable-shared-libs, link with some unused .o files to get plugins working. [922868605499] * src/imap/main.c: imap: Initialize commands hash before plugins are initialized so they can register commands. [9ff1e79fffab] * src/lib-storage/mail-storage.c: When mailbox is successfully opened, mark its namespace as being usable. [dc220ff69fb8] * src/lib-storage/index/shared/shared-storage.c: shared mailboxes: Don't assert-crash if trying to look up "" user's mailboxes. [a061db71e166] * dovecot-example.conf, src/imap/cmd-idle.c, src/imap/imap-settings.c, src/imap/imap-settings.h: Added imap_idle_notify_interval setting. [edcafb3efbbf] * src/plugins/virtual/virtual-sync.c: virtual: Crashfix. Also cleaned up the code a bit. [d33915e5da10] * .hgignore, configure.in, src/Makefile.am, src/lmtp/Makefile.am, src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c, src/lmtp/commands.h, src/lmtp/main.c, src/lmtp/main.h: Initial implementation of LMTP server. Master process doesn't yet execute it though. [a957a6be4af5] * src/lib-master/master-service-settings.h: Compiler warning fix. [749339f9d1df] * src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h: mail_deliver(): Support returning a destination mail. [b16ec327b266] * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h: mail-storage-service: Fixes to handling multiple users. [03fe226e85d4] * src/lda/main.c: lmtp: Minor cleanup. [a9f61b63dc3d] 2009-04-15 Timo Sirainen * src/master/login-process.c: Compile fix for old non-C99 compilers. [b1e9bb291e70] * src/lib-storage/index/index-search-result.c: Search result updating: Make sure search args are initialized. [755d3c958892] * src/lib-storage/mail-search.c, src/lib-storage/mail-search.h: mail_search_args_[de]init() calls stack now. Last unref is still allowed without deiniting. [8b831d260dca] * src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts- storage.c, src/plugins/fts/fts-storage.h: fts: Fixes to how virtual mailboxes are searched. [093c15fed377] * src/plugins/virtual/virtual-mail.c: virtual: Return original mailbox names with namespace prefix. [2ba85232848e] * src/lib-storage/list/mailbox-list-maildir.c: Maildir++ layout: Allow selecting namespace prefix if inbox=no. With Maildir this allows opening the "mailbox root" (i.e. INBOX). [8ea3e0549b5a] * src/plugins/virtual/virtual-config.c: virtual: Fixed using !INBOX when INBOX wasn't in prefix="" namespace. [def8b99b1a02] 2009-04-14 Timo Sirainen * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Fixes with virtual mailboxes. [4753aa4f1626] 2009-04-15 Timo Sirainen * src/lib-storage/mail-storage-service.c, src/lib-storage/mail- storage-service.h, src/plugins/expire/expire-tool.c: mail_storage_service_multi*() API change and fixes. [14ebbf71ef3e] * src/lib-settings/settings-parser.c, src/lib-settings/settings- parser.h: Added settings_parser_dup(). [a8dfff3ed857] * src/imap/main.c, src/lda/main.c, src/lib-storage/mail-storage- service.c, src/lib-storage/mail-storage-service.h, src/pop3/main.c: mail_storage_service_init*() can now take multiple set_roots. [fce3926fe910] * src/lib-lda/lda-settings.c, src/lib-lda/lda-settings.h: lda-settings doesn't need plugin_envs. [fdbc1902b4a9] 2009-04-14 Timo Sirainen * configure.in, src/auth/Makefile.am, src/config/Makefile.am, src/dict/Makefile.am, src/imap-login/Makefile.am, src/imap/Makefile.am, src/lda/Makefile.am, src/lib- dovecot/Makefile.am, src/lib-storage/Makefile.am, src/login- common/Makefile.am, src/master/Makefile.am, src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am, src/plugins/fts-squat/Makefile.am, src/pop3-login/Makefile.am, src/pop3/Makefile.am, src/tests/Makefile.am, src/util/Makefile.am: Added configure --without-shared-libs to link built binaries against static libraries. The libraries are still built and installed, so this is mainly useful for making life easier for developers. [c6d306772f4e] 2009-04-13 Timo Sirainen * src/lda/main.c, src/lib-storage/index/maildir/maildir-copy.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-storage.c: s/deliver/lda/ [5c12eac2c3ca] * src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-sync.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/index-sync.c: dbox: Don't crash if index files can't be opened. [8be5ca07189f] * src/imap/cmd-append.c, src/imap/cmd-copy.c, src/lib-lda/mail- deliver.c, src/lib-storage/index/index-status.c, src/lib- storage/index/index-transaction.c, src/lib-storage/mail-storage.h, src/plugins/quota/quota-storage.c: Changed MAILBOX_OPEN_FAST meaning a bit. Don't use it where it's unnecessary. [2e20a1a9bcd4] * src/lib-index/mail-index.c, src/lib-index/mail-index.h: Removed duplicate mail_index_is_in_memory(). [be8d15cb98e7] * src/lib-index/mail-index.c, src/lib-index/mail-index.h, src/lib- storage/index/maildir/maildir-uidlist.c: maildir: When saving messages, in some race conditions we might have written a duplicate UID. [67369ba9f447] * src/lib-index/mail-transaction-log-view.c: indexes: Added a new assert. [e2e481482c27] * src/lib-index/mail-index-map.c, src/lib-index/mail-transaction-log- append.c, src/lib-index/mail-transaction-log-file.c, src/lib-index /mail-transaction-log.c: indexes: Error handling fixes. [da5f1b89d4e1] * dovecot-example.conf: dovecot-example.conf: Fixed mail_plugin_dir defaults. [748c0741b25b] * src/Makefile.am: lib-lda wasn't being built. [93dc8f46b4af] * src/lib-storage/index/maildir/maildir-save.c: maildir saving: If dovecot-uidlist reading failed, we might have gone forward and crashed. [98e2f0e3503e] * src/login-common/login-settings.c: Fix to "SSL support not compiled in" error message. [f6bbb5c6d57c] * .hgignore, configure.in, src/Makefile.am, src/deliver/Makefile.am, src/deliver/deliver-settings.c, src/deliver/deliver-settings.h, src/deliver/deliver.c, src/deliver/deliver.h, src/deliver/duplicate.c, src/deliver/duplicate.h, src/deliver/mail- send.c, src/deliver/mail-send.h, src/deliver/smtp-client.c, src/deliver/smtp-client.h, src/lda/Makefile.am, src/lda/main.c, src /lib-lda/Makefile.am, src/lib-lda/duplicate.c, src/lib- lda/duplicate.h, src/lib-lda/lda-settings.c, src/lib-lda/lda- settings.h, src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h, src/lib-lda/mail-send.c, src/lib-lda/mail-send.h, src/lib-lda/smtp- client.c, src/lib-lda/smtp-client.h: Renamed deliver to dovecot-lda and moved most of its code to lib- lda. [e4832f128738] * configure.in, src/Makefile.am: Removed configure --with-deliver and --with-pop3d parameters. If you don't want them, just don't use them. There are a lot of other useless binaries also being compiled. [e7dc0fb735ff] * src/lib-storage/mail-storage-service.c: mail-storage-service: Don't do userdb lookups to get a missing home if it's not wanted. [a06b6fa612ad] * src/master/master-settings.c: dovecot -n/-a shouldn't try to create login directory. [ebec4c879cc3] * src/master/syslog-util.c, src/master/syslog-util.h: Removed syslog-util.*, they were already moved to lib-master. [0f72263501c6] * src/config/common.h, src/config/config-connection.c, src/config /config-connection.h, src/config/config-parser.c, src/config/config- parser.h, src/config/main.c: Some cleanups to the config parsing code. [81ff88345441] * src/lib-storage/index/dbox/dbox-file-fix.c, src/lib- storage/index/dbox/dbox-storage.h: dbox: When fixing a broken dbox file, keep a copy of the original broken file. [a19365f30de7] * src/deliver/deliver.c: deliver: Code cleanup [1c3ca4aa62b2] * src/lib-storage/mail-user.c: mail_user_alloc() now duplicates also the unexpanded_set input settings. [31389897ca8c] * src/deliver/deliver.c: Fixed deliver -p. [e2f48d895420] * src/lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-storage/mail-storage-service.c: Added master_service_set(). [ea2117eaa8d1] 2009-04-11 Timo Sirainen * dovecot-example.conf: dovecot-example.conf: Moved most of the settings inside protocol lda {} to root level. In future LMTP server will use the same settings. [0e10344711b8] * src/imap/Makefile.am, src/imap/client.c, src/imap/common.h, src/imap /imap-settings.c, src/imap/imap-settings.h, src/imap/main.c, src /lib-storage/mail-storage-service.c, src/lib-storage/mail-storage- service.h, src/master/child-process.c, src/pop3/Makefile.am, src/pop3/client.c, src/pop3/common.h, src/pop3/main.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: imap and pop3 now use mail-storage-service API. [e560b92ed763] * src/util/doveadm.c: Removed unnecessary code. [a817f39d255f] * src/master/mail-process.c: dump-capability fix. [7ee8a3ea7b37] * src/lib-storage/index/mbox/mbox-storage.c: mbox: When doing autodetection, don't just create the missing mbox directory. [e77f2df8c666] * src/lib-storage/mail-storage-service.c: Assume unknown settings returned by userdb lookup are plugin settings. [52bf76fa5b85] * src/lib-index/mail-index-map.c, src/lib-storage/index/shared/shared- list.c: Memory leak fixes. [eb8a2d17fd44] * src/lib-settings/settings-parser.c: Sort environment for settings in reverse order, or it won't work.. [c77a3902dc5e] * src/lib-settings/settings-parser.c: Sort environ[] before feeding it to settings parser. This fixes running with valgrind. [dc3739ee4123] * src/util/maildirlock.c: Compile fix. [fb11dca591da] 2009-04-10 Timo Sirainen * src/lib-storage/index/dbox/dbox-map.c: dbox: Saving shouldn't give up so easily in using existing files. [c5ba9bc89ccb] * src/imap/client.c, src/imap/imap-settings.c, src/pop3/pop3-settings.c: Changed initial memory pool sizes. [8217998f8133] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-map.c: dbox: Flush file input caches when needed so that we don't try to use partially written mails. [c957575afd8a] * src/lib-storage/index/dbox/dbox-save.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/dbox/dbox-sync.h: dbox: Fix to auto-purging. [b7142ab35480] * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-map.h, src/lib-storage/index/dbox/dbox-sync.c, src/lib- storage/index/dbox/dbox-sync.h: dbox: If enough bytes have been expunged, force a purge. [53885f710b0b] * src/lib-master/master-service.c, src/lib-master/master-service.h, src/util/doveadm.c: doveadm: Log to stderr. [4f64d429985a] * src/plugins/virtual/virtual-storage.c: Compiler warning fix. [52eb87931e91] * src/lib-storage/index/dbox/dbox-sync.c, src/lib-storage/index/dbox /dbox-sync.h, src/lib-storage/index/maildir/maildir-sync.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h, src/util/doveadm.c: doveadm: Implemented force-resync functionality. [d8e8a9c447af] * src/lib-storage/mail-storage-service.c: Fixed problems with getting home directory. [daa079a90b66] * .hgignore, src/util/doveadm.c: Initial implementation of doveadm tool. [0b8009b5aff8] * src/lib-storage/index/cydir/cydir-storage.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- sync.c, src/lib-storage/index/dbox/dbox-sync.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib-storage/index/mbox /mbox-storage.c, src/lib-storage/index/raw/raw-storage.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/mail-storage- private.h, src/lib-storage/mail-storage-service.c, src/lib-storage /mail-storage-service.h, src/lib-storage/mail-storage.c, src/lib- storage/mail-storage.h: Added mail_storage_purge() for dbox. dbox no longer calls it automatically at logout. [f3cfa467b3b3] 2009-04-09 Timo Sirainen * src/deliver/auth-client.c, src/deliver/auth-client.h, src/plugins/expire/auth-client.c, src/plugins/expire/auth-client.h: Removed unnecessary code. [cc4b794ac6b9] * configure.in, src/Makefile.am, src/deliver/Makefile.am, src/deliver /deliver-settings.c, src/deliver/deliver-settings.h, src/deliver/deliver.c, src/deliver/deliver.h, src/deliver/smtp- client.c, src/dict/main.c, src/imap/Makefile.am, src/imap/imap- settings.c, src/imap/imap-settings.h, src/imap/main.c, src/lib-auth /auth-master.h, src/lib-dovecot/Makefile.am, src/lib- master/Makefile.am, src/lib-master/master-service-private.h, src /lib-master/master-service-settings.c, src/lib-master/master- service-settings.h, src/lib-master/master-service.c, src/lib-master /master-service.h, src/lib-master/syslog-util.c, src/lib-master /syslog-util.h, src/lib-settings/settings-parser.c, src/lib-settings /settings-parser.h, src/lib-sql/Makefile.am, src/lib- storage/Makefile.am, src/lib-storage/mail-namespace.c, src/lib- storage/mail-storage-service.c, src/lib-storage/mail-storage- service.h, src/lib-storage/mail-storage-settings.c, src/lib-storage /mail-storage-settings.h, src/lib-storage/mail-user.c, src/lib- storage/mail-user.h, src/master/Makefile.am, src/master/child- process.c, src/plugins/convert/Makefile.am, src/plugins/convert /convert-settings.c, src/plugins/convert/convert-settings.h, src/plugins/convert/convert-tool.c, src/plugins/expire/Makefile.am, src/plugins/expire/auth-client.c, src/plugins/expire/expire- settings.c, src/plugins/expire/expire-settings.h, src/plugins/expire /expire-tool.c, src/pop3/Makefile.am, src/pop3/main.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h, src/util/Makefile.am: Added lib-master and mail-storage-service code that makes it easier to build new Dovecot binaries. Currently only the standalone applications (e.g. deliver) uses this. [94ecf8a8ed68] * src/lib/restrict-access.c: restrict-access: If running as root, don't give "couldn't drop root group privileges" error. [ace05d7b6da0] * src/auth/auth-settings.c, src/auth/main.c: auth: Fixed listening in extra master/client sockets. [c1b201243d52] * src/lib-dict/dict-sql.c: dict-sql: Don't crash if iteration sees a NULL value in path. [40b5b098817b] * src/lib/restrict-access.c: restrict-access: Minor code cleanup. [af9ac89e0910] * src/lib/restrict-access.c: restrict-access: One more root dropping fix. [d591ee76ab9c] * src/master/dict-process.c: dict: Fixed crashes when dict process dies. [59165b07c874] * src/lib/restrict-access.c, src/lib/restrict-access.h: restrict-access: More fixes to root checking. [095837e6c073] * src/lib/restrict-access.c: restrict-access: Another fix to allow running processes as root. [1320550c00a2] * src/lib/restrict-access.c: Fix to previous restrict-access changes. [85a587bcc16f] * src/login-common/ssl-proxy-openssl.c: ssl: Don't use mempool_system_clean_*() functions. Just extra work and they've had some problems. [e812e3ed2d6f] * src/auth/mech-digest-md5.c: digest-md5: If client sent no input, log it as such instead of a more cryptic error. [25cf5d5b3d9c] 2009-04-08 Timo Sirainen * src/auth/auth-settings.c, src/deliver/deliver-settings.c, src/imap /imap-settings.c, src/lib-settings/settings-parser.c, src/lib- storage/index/dbox/dbox-settings.c, src/lib-storage/index/maildir /maildir-settings.c, src/lib-storage/index/mbox/mbox-settings.c, src /lib-storage/mail-storage-settings.c, src/login-common/login- settings.c, src/plugins/convert/convert-settings.c, src/plugins/expire/expire-settings.c, src/pop3/pop3-settings.c: Updated missing copyright years to 2009. [99659fef12b2] * src/login-common/main.c: Before starting imaps connections, check how full connection queue is. [f012c053aa5a] 2009-04-07 Timo Sirainen * src/auth/auth-settings.c, src/config/config-parser.c, src/imap/imap- settings.c, src/lib-settings/settings-parser.c, src/lib-settings /settings-parser.h, src/lib-storage/mail-storage-settings.c, src /login-common/login-settings.c, src/pop3/pop3-settings.c: settings_parser_info.check_func() now gets pool parameter if it wants to change settings. [0145ecc95752] * src/auth/main.c, src/deliver/auth-client.c, src/dict/main.c, src/imap/main.c, src/lib/restrict-access.c, src/lib/restrict- access.h, src/login-common/main.c, src/master/auth-process.c, src/master/login-process.c, src/master/mail-process.c, src/plugins/expire/auth-client.c, src/pop3/main.c, src/util/rawlog.c: Cleaned up restrict_access*() API. [967bfafe6c0a] * src/plugins/acl/acl-mailbox-list.c: Removed some unused code. Patch by Diego Liziero. [126a819f1fa7] * src/lib-storage/index/shared/shared-list.c, src/lib-storage/mail- storage.c, src/lib-storage/mailbox-list-private.h: Shared mailboxes: Fix to previous mailbox_open() change. [319a97b5cfd7] * src/lib-storage/index/shared/shared-storage.c: Shared mailboxes: If selecting prefix/, try to open the user's INBOX. [5d3dd9eb82d9] * src/lib-storage/index/shared/shared-list.c, src/lib- storage/index/shared/shared-storage.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src/lib- storage/mail-storage.c, src/lib-storage/mailbox-list-private.h: Shared mailboxes: Find the final storage before calling mail_storage.mailbox_open(), not inside it. This fixes some crashes with plugins. [4e6745ffc307] * src/plugins/quota/quota-storage.c: quota: Previous change broke other plugins. [e73f5828f8d8] * src/imap-login/client-authenticate.c, src/imap-login/client- authenticate.h, src/imap-login/imap-proxy.c, src/pop3-login/pop3-proxy.c: imap-login: Use [resp-codes] to figure out when to replace remote's auth failed message with ours. [72045e108c8b] * src/lib-storage/mail-storage-settings.c, src/lib-storage/mail- storage-settings.h: Removed umask setting. It's no longer used. [a33777517e3a] * src/deliver/deliver-settings.c, src/imap/imap-settings.c, src/lib- sql/Makefile.am, src/plugins/acl/Makefile.am, src/plugins/autocreate/Makefile.am, src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am, src/plugins/fts-lucene/Makefile.am, src/plugins/fts-solr/Makefile.am, src/plugins/fts-squat/Makefile.am, src/plugins/fts/Makefile.am, src/plugins/imap-acl/Makefile.am, src/plugins/imap-quota/Makefile.am, src/plugins/lazy- expunge/Makefile.am, src/plugins/listescape/Makefile.am, src/plugins /mail-log/Makefile.am, src/plugins/mbox-snarf/Makefile.am, src/plugins/quota/Makefile.am, src/plugins/trash/Makefile.am, src/plugins/virtual/Makefile.am, src/plugins/zlib/Makefile.am, src/pop3/pop3-settings.c: Get rid of imap/, pop3/, lda/ and sql/ module subdirs. It's all in lib/dovecot/ now. [d981b4b50cb7] * src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am, src/plugins/fts-squat/Makefile.am: Removed LIBICONV from unnecessary places. [17f06144e534] * src/lib-dovecot/Makefile.am: Link LTLIBICONV, not LIBICONV. [d249a28a6e1b] * src/plugins/quota/quota-storage.c: quota: Don't crash when modifying non-private namespaces. [792c3eb1e544] 2009-04-06 Timo Sirainen * src/lib/lib-signals.c: FreeBSD compiling fix. [286ff5114588] * src/lib/lib-signals.c, src/lib/lib-signals.h: Compile fix to NetBSD: Don't use si_code which is a macro. Patch by Tatsuyoshi. [bfbbae6cdb51] * src/auth/Makefile.am, src/deliver/Makefile.am, src/dict/Makefile.am, src/imap/Makefile.am, src/lib-dovecot/Makefile.am, src/pop3/Makefile.am, src/tests/Makefile.am, src/util/Makefile.am: Link -liconv to libdovecot.so if necessary. [f8cc52698a42] * src/deliver/deliver-settings.c, src/deliver/deliver-settings.h, src/deliver/deliver.c: deliver: umask setting has been removed, don't try to use it. [3195c1b157c9] * src/plugins/quota/quota-fs.c: quota-fs: Compile fix for OSes without GRPQUOTA define. [bcca9c0385b7] * src/imap/imap-search.h: Compile fix: Include sys/time.h for struct timeval. [a5185de111a4] * src/deliver/deliver-settings.c, src/master/master-settings.c, src/plugins/convert/convert-settings.c, src/plugins/expire/expire- settings.c: Fixes for non-C99 compilers. [385eaa5013fa] * src/master/mail-process.c: system_user -> system_groups_user change broke it completely. [d22e54cb4bda] * src/lib/module-dir.c: Compile fix when modules are disabled. [b9272de65955] 2009-04-03 Timo Sirainen * src/plugins/quota/Makefile.am: rquota.x was missing from distribution tarball. [e4d1cc1d9b46] * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.c: Compiler warning fixes on 64bit systems. [30db22205884] * src/plugins/quota/Makefile.am: Fixed quota compiling when using a separate build dir. [5650eba36f79] 2009-04-06 Timo Sirainen * src/lib-storage/index/dbox/Makefile.am: Added missing dbox-map-private.h. [36e6adec9377] * src/auth/passdb-pam.c: pam: Compiling fix. [d2a1254e1e24] * src/Makefile.am, src/lib-dovecot/Makefile.am, src/lib- storage/Makefile.am, src/util/Makefile.am: lib-index belongs to libdovecot-storage, not to libdovecot. [aeb2bd9d6951] 2009-04-03 Timo Sirainen * .hgignore, configure.in, src/Makefile.am, src/auth/Makefile.am, src/config/Makefile.am, src/deliver/Makefile.am, src/dict/Makefile.am, src/imap-login/Makefile.am, src/imap/Makefile.am, src/lib-auth/Makefile.am, src/lib- charset/Makefile.am, src/lib-dict/Makefile.am, src/lib- dovecot/Makefile.am, src/lib-imap/Makefile.am, src/lib- index/Makefile.am, src/lib-mail/Makefile.am, src/lib- settings/Makefile.am, src/lib-sql/Makefile.am, src/lib- storage/Makefile.am, src/lib-storage/index/Makefile.am, src/lib- storage/index/cydir/Makefile.am, src/lib- storage/index/dbox/Makefile.am, src/lib- storage/index/maildir/Makefile.am, src/lib- storage/index/mbox/Makefile.am, src/lib- storage/index/raw/Makefile.am, src/lib- storage/index/shared/Makefile.am, src/lib-storage/list/Makefile.am, src/lib-storage/register/Makefile.am, src/lib/Makefile.am, src /login-common/Makefile.am, src/master/Makefile.am, src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am, src/plugins/fts-squat/Makefile.am, src/pop3-login/Makefile.am, src/pop3/Makefile.am, src/tests/Makefile.am, src/util/Makefile.am: Build libdovecot.so and libdovecot-storage.so. Based on patch by Stephan Bosch. [1b586a2fee8b] * configure.in: This branch is v1.3.UNSTABLE. [fdcb1629ddcc] * .hgignore, TODO, configure.in, src/auth/Makefile.am, src/auth/auth- request.c, src/auth/db-ldap.c, src/auth/main.c, src/auth/mech- digest-md5.c, src/auth/mech-gssapi.c, src/auth/mech-winbind.c, src/auth/passdb-cache.c, src/auth/passdb-ldap.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb.c, src/deliver/auth-client.c, src/deliver/auth-client.h, src/deliver/deliver-settings.c, src/deliver/deliver-settings.h, src/deliver/deliver.c, src/deliver/duplicate.c, src/deliver/duplicate.h, src/deliver/mail- send.c, src/imap-login/client.c, src/imap-login/imap-proxy.c, src/imap/Makefile.am, src/imap/client.c, src/imap/client.h, src/imap /cmd-append.c, src/imap/imap-fetch-body.c, src/imap/main.c, src/lib- storage/index/cydir/cydir-save.c, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox/Makefile.am, src/lib- storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox/dbox- map.c, src/lib-storage/index/dbox/dbox-save.c, src/lib- storage/index/dbox/dbox-settings.c, src/lib-storage/index/dbox/dbox- settings.h, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox/dbox- sync-rebuild.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-storage.c, src/lib-storage/index/index- storage.h, src/lib-storage/index/maildir/maildir-copy.c, src/lib- storage/index/maildir/maildir-keywords.c, src/lib- storage/index/maildir/maildir-save.c, src/lib-storage/index/maildir /maildir-settings.c, src/lib-storage/index/maildir/maildir- settings.h, src/lib-storage/index/maildir/maildir-storage.c, src /lib-storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-sync.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/mbox/mbox-lock.c, src/lib- storage/index/mbox/mbox-mail.c, src/lib-storage/index/mbox/mbox- save.c, src/lib-storage/index/mbox/mbox-storage.c, src/lib- storage/index/mbox/mbox-sync.c, src/lib-storage/index/shared/shared- storage.c, src/lib-storage/list/index-mailbox-list.c, src/lib- storage/list/mailbox-list-fs-iter.c, src/lib-storage/list/mailbox- list-fs.c, src/lib-storage/list/subscription-file.c, src/lib-storage /mail-namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage /mail-storage-private.h, src/lib-storage/mail-storage-settings.c, src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src /lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib- storage/mailbox-list-private.h, src/lib-storage/mailbox-list.c, src /lib-storage/mailbox-list.h, src/login-common/main.c, src/master /auth-process.c, src/master/child-process.c, src/master/child- process.h, src/master/dict-process.c, src/master/login-process.c, src/master/mail-process.c, src/master/main.c, src/master/master- settings-defs.c, src/master/master-settings.c, src/master/master- settings.h, src/plugins/acl/acl-backend.c, src/plugins/acl/acl- mailbox-list.c, src/plugins/acl/acl-storage.c, src/plugins/convert /convert-storage.c, src/plugins/expire/expire-plugin.c, src/plugins /fts-solr/fts-backend-solr.c, src/plugins/imap-acl/imap-acl- plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/mail-log/mail-log-plugin.c, src/plugins/mbox-snarf/mbox- snarf-plugin.c, src/plugins/quota/quota-maildir.c, src/plugins/quota /quota-storage.c, src/plugins/virtual/virtual-storage.c, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c, src/pop3/client.c, src/pop3/client.h, src/pop3/commands.c, src/pop3/main.c: Merged configuration rewrite. [21d4363a3cf7] 2009-02-09 Timo Sirainen * src/config/config-parser.c, src/config/config-parser.h, src/config/main.c: Removed some unnecessary code. [fb8f4adc61c4] * src/config/config-connection.c, src/config/config-connection.h, src/config/config-parser.c, src/config/main.c, src/deliver/deliver- settings.c, src/deliver/deliver-settings.h, src/deliver/deliver.c, src/master/master-settings.c: Added dovecof --exec and made deliver use it instead of forking. [8b616cc6d848] * src/login-common/login-settings.c: doveconf shouldn't check if it has access to ssl files. For example deliver doesn't need it. [8d4052450e09] * src/auth/auth-settings.c, src/config/config-parser.c, src/config /settings-get.pl, src/imap/imap-settings.c, src/lib-settings /settings-parser.c, src/lib-settings/settings-parser.h, src/lib- storage/mail-storage-settings.c, src/lib-storage/mail-storage- settings.h, src/login-common/login-settings.c, src/master/master- settings.c, src/plugins/expire/expire-settings.c, src/pop3/pop3-settings.c: doveconf now checks that all settings are ok by calling check functions. [c37f7113b1ee] 2009-02-03 Timo Sirainen * src/master/mail-process.c, src/master/master-settings.c, src/master /master-settings.h: Removed nfs_check. So much trouble and so unreliable.. [185cc7ad6a30] * src/master/mail-process.c: If mail_chroot is set, don't fail at startup in dump-capability. [0ed8a0f1b42b] * src/master/mail-process.c, src/master/master-settings.c, src/master /master-settings.h: We don't care about plugin settings anymore, removed. [c33bd8517c63] * src/config/config-parser.c: config: Support !include and !include_try. [06015880f4c7] 2009-02-02 Timo Sirainen * .hgignore, src/config/all-settings.h: all-settings.h was missing [b02e5a575db9] * TODO, src/imap/Makefile.am, src/imap/imap-settings.c, src/imap/imap- settings.h, src/imap/main.c, src/lib-settings/settings-parser.c, src /lib-settings/settings-parser.h, src/master/mail-process.c, src/plugins/convert/convert-settings.c, src/plugins/convert/convert- settings.h, src/plugins/expire/auth-client.c, src/plugins/expire /expire-settings.c, src/plugins/expire/expire-settings.h, src/pop3/Makefile.am, src/pop3/main.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Plugin setting backwards compatibility support and other fixes. [1aacfd9d0d57] * TODO, src/lib-storage/mail-namespace.h, src/lib-storage/mail- storage-settings.c, src/lib-storage/mail-storage-settings.h, src /lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib- storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/master /mail-process.c, src/master/master-settings.c, src/plugins/acl/acl- backend.c, src/plugins/acl/acl-lookup-dict.c, src/plugins/acl/acl- lookup-dict.h, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl /acl-plugin.c, src/plugins/acl/acl-storage.c, src/plugins/autocreate /autocreate-plugin.c, src/plugins/convert/Makefile.am, src/plugins/convert/convert-plugin.c, src/plugins/convert/convert- settings.c, src/plugins/convert/convert-settings.h, src/plugins/convert/convert-storage.c, src/plugins/convert/convert- storage.h, src/plugins/convert/convert-tool.c, src/plugins/expire/Makefile.am, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire-settings.c, src/plugins/expire/expire- settings.h, src/plugins/expire/expire-tool.c, src/plugins/fts-solr /fts-backend-solr.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins/fts-solr/fts-solr-plugin.h, src/plugins/fts-squat/fts- backend-squat.c, src/plugins/fts/fts-plugin.c, src/plugins/fts/fts- storage.c, src/plugins/imap-acl/Makefile.am, src/plugins/imap-acl /imap-acl-plugin.c, src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/lazy-expunge/lazy-expunge-plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins/mail-log /mail-log-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-plugin.c, src/plugins/quota/quota-plugin.h, src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c, src/plugins/quota/quota.h, src/plugins/trash/trash-plugin.c: Fixed plugins to work with config rewrite. [a5555606846b] 2009-02-01 Timo Sirainen * src/deliver/deliver-settings.c, src/deliver/deliver-settings.h, src/imap/imap-settings.c, src/imap/imap-settings.h, src/lib-settings /settings-parser.c, src/lib-settings/settings-parser.h, src/master /mail-process.c, src/master/master-settings.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Fixed variable expansion in master <-> mail processes. [f5e35bc340bf] 2009-01-27 Timo Sirainen * .hgignore, TODO, configure.in, src/Makefile.am, src/auth/Makefile.am, src/auth/auth-client-connection.c, src/auth /auth-master-connection.c, src/auth/auth-request-handler.c, src/auth /auth-request.c, src/auth/auth-settings.c, src/auth/auth-settings.h, src/auth/auth-worker-server.c, src/auth/auth-worker-server.h, src/auth/auth.c, src/auth/auth.h, src/auth/db-ldap.c, src/auth/main.c, src/auth/mech-anonymous.c, src/auth/mech-digest- md5.c, src/auth/mech-gssapi.c, src/auth/mech-rpa.c, src/auth/mech- winbind.c, src/auth/mech.c, src/auth/mech.h, src/auth/passdb- cache.c, src/auth/passdb-cache.h, src/auth/passdb-passwd-file.c, src/auth/passdb.c, src/auth/passdb.h, src/auth/userdb-passwd-file.c, src/auth/userdb-prefetch.c, src/auth/userdb.c, src/auth/userdb.h, src/config/Makefile.am, src/config/common.h, src/config/config- connection.c, src/config/config-connection.h, src/config/config- parser.c, src/config/config-parser.h, src/config/main.c, src/config /settings-get.pl, src/deliver/Makefile.am, src/deliver/deliver- settings.c, src/deliver/deliver-settings.h, src/deliver/deliver.c, src/deliver/deliver.h, src/imap-login/Makefile.am, src/imap-login /client-authenticate.c, src/imap-login/client.c, src/imap-login /imap-proxy.c, src/imap/Makefile.am, src/imap/client.c, src/imap/client.h, src/imap/cmd-append.c, src/imap/cmd-capability.c, src/imap/cmd-delete.c, src/imap/cmd-id.c, src/imap/cmd-idle.c, src/imap/cmd-subscribe.c, src/imap/common.h, src/imap/imap-fetch- body.c, src/imap/imap-settings.c, src/imap/imap-settings.h, src/imap /imap-sync.c, src/imap/main.c, src/lib-settings/Makefile.am, src /lib-settings/settings-parser.c, src/lib-settings/settings-parser.h, src/lib-storage/Makefile.am, src/lib-storage/index/cydir/cydir- storage.c, src/lib-storage/index/dbox/Makefile.am, src/lib- storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox/dbox- settings.c, src/lib-storage/index/dbox/dbox-settings.h, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- storage.h, src/lib-storage/index/index-mail.c, src/lib-storage/index /index-storage.c, src/lib-storage/index/index-storage.h, src/lib- storage/index/maildir/Makefile.am, src/lib-storage/index/maildir /maildir-copy.c, src/lib-storage/index/maildir/maildir-keywords.c, src/lib-storage/index/maildir/maildir-save.c, src/lib- storage/index/maildir/maildir-settings.c, src/lib- storage/index/maildir/maildir-settings.h, src/lib- storage/index/maildir/maildir-storage.c, src/lib- storage/index/maildir/maildir-storage.h, src/lib- storage/index/maildir/maildir-uidlist.c, src/lib- storage/index/mbox/Makefile.am, src/lib-storage/index/mbox/mbox- lock.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/mbox/mbox-save.c, src/lib-storage/index/mbox/mbox- settings.c, src/lib-storage/index/mbox/mbox-settings.h, src/lib- storage/index/mbox/mbox-storage.c, src/lib-storage/index/mbox/mbox- storage.h, src/lib-storage/index/mbox/mbox-sync.c, src/lib- storage/index/raw/raw-storage.c, src/lib-storage/index/shared /shared-storage.c, src/lib-storage/list/index-mailbox-list.c, src /lib-storage/list/mailbox-list-fs-iter.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/list/mailbox-list-maildir.c, src /lib-storage/list/subscription-file.c, src/lib-storage/mail- namespace.c, src/lib-storage/mail-namespace.h, src/lib-storage/mail- storage-private.h, src/lib-storage/mail-storage-settings.c, src/lib- storage/mail-storage-settings.h, src/lib-storage/mail-storage.c, src /lib-storage/mail-storage.h, src/lib-storage/mail-user.c, src/lib- storage/mail-user.h, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/lib /array-decl.h, src/login-common/Makefile.am, src/login-common /client-common.c, src/login-common/common.h, src/login-common/login- settings.c, src/login-common/login-settings.h, src/login- common/main.c, src/login-common/master.c, src/login-common/sasl- server.c, src/login-common/ssl-proxy-openssl.c, src/master/Makefile.am, src/master/auth-process.c, src/master/child- process.c, src/master/child-process.h, src/master/dict-process.c, src/master/listener.c, src/master/listener.h, src/master/login- process.c, src/master/login-process.h, src/master/mail-process.c, src/master/mail-process.h, src/master/main.c, src/master/master- settings-defs.c, src/master/master-settings.c, src/master/master- settings.h, src/master/ssl-init.c, src/plugins/acl/acl-mailbox- list.c, src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins /fts-squat/fts-backend-squat.c, src/plugins/fts/fts-storage.c, src/plugins/imap-acl/imap-acl-plugin.c, src/plugins/imap-quota/imap- quota-plugin.c, src/plugins/mbox-snarf/mbox-snarf-plugin.c, src/plugins/virtual/virtual-storage.c, src/pop3-login/Makefile.am, src/pop3-login/client-authenticate.c, src/pop3-login/client.c, src/pop3-login/pop3-proxy.c, src/pop3/Makefile.am, src/pop3/client.c, src/pop3/client.h, src/pop3/commands.c, src/pop3/common.h, src/pop3/main.c, src/pop3/pop3-settings.c, src/pop3/pop3-settings.h: Initial commit for config rewrite. [9d0037a997f4] 2009-04-03 Timo Sirainen * TODO, dovecot-example.conf, src/lib-index/mail-index-modseq.c, src /lib-index/mail-index-private.h, src/lib-index/mail-index-strmap.c, src/lib-index/mail-index-sync-update.c, src/lib-index/mail-index- sync.c, src/lib-index/mail-index-transaction-private.h, src/lib- index/mail-index-transaction.c, src/lib-index/mail-index.h, src/lib- index/mail-transaction-log-append.c, src/lib-mail/message-size.c, src/lib-storage/index/dbox/dbox-index.c, src/lib-storage/index/dbox /dbox-index.h, src/lib-storage/index/dbox/dbox-map.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- storage.h, src/lib-storage/index/index-mail-headers.c, src/lib- storage/index/index-mail.c, src/lib-storage/index/index-mail.h, src /lib-storage/index/index-storage.c, src/lib-storage/index/maildir /maildir-uidlist.c, src/lib-storage/index/maildir/maildir-uidlist.h, src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/list /mailbox-list-fs.c, src/lib-storage/mail-storage-private.h, src/lib- storage/mailbox-list.c, src/lib-storage/mailbox-list.h, src/lib/istream.c, src/master/mail-process.c, src/master/main.c, src/master/master-settings-defs.c, src/master/master-settings.c, src/master/master-settings.h, src/plugins/virtual/virtual-mail.c, src/pop3/main.c: Merged multi-dbox code. [1f7e97e2139e] * TODO: Updated. [ffda403f7072] * dovecot-example.conf, src/lib-storage/index/dbox/dbox-map.c, src /lib-storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox /dbox-storage.h, src/master/mail-process.c, src/master/master- settings-defs.c, src/master/master-settings.c, src/master/master- settings.h: dbox: Added dbox_purge_min_percentage setting. [3f5fdd2b25de] * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-storage.c, src/lib-storage/index/dbox/dbox-sync-file.c, src /lib-storage/index/dbox/dbox-sync.c, src/lib-storage/index/dbox /dbox-sync.h: dbox: Renamed cleanup -> purge. [4556c33ed83d] 2009-03-31 Timo Sirainen * src/lib-storage/index/dbox/Makefile.am, src/lib-storage/index/dbox /dbox-file-fix.c, src/lib-storage/index/dbox/dbox-file.c, src/lib- storage/index/dbox/dbox-file.h, src/lib-storage/index/dbox/dbox- storage-rebuild.c: dbox: If we find a broken dbox file, do the best we can to save the mails in there. [7bddb84fd282] * src/lib-mail/message-size.c: Minor code cleanup. [639e16989018] * src/lib/str-find.c, src/lib/str-find.h, src/tests/test-lib.c: Added str_find_get_match_end_pos(). Added unit testing. [c8ba50450f12] 2009-03-30 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-map.c: dbox: Optimized saving messages. [a7203a35f04c] * src/lib-index/mail-index-private.h, src/lib-index/mail-index-sync- update.c, src/lib-index/mail-index-sync.c: Write to main index file less often. [48d2377939c2] 2009-03-25 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-mail.c, src/lib- storage/index/dbox/dbox-map-private.h, src/lib-storage/index/dbox /dbox-map.h: dbox: Fixed race condition when opening a message that was just moved to a different file. [67c36cebc975] * src/lib-index/mail-index-modseq.c: mail_index_map_modseq_clone() caused memory corruption. [335b4d648c6f] 2009-03-02 Timo Sirainen * configure.in, src/imap/main.c, src/lib/restrict-access.c, src/lib /restrict-access.h, src/master/child-process.c, src/master/common.h, src/master/main.c, src/pop3/main.c: Improved logging for core dumping. With Linux use PR_SET_DUMPABLE for imap/pop3. [8350642f78f2] 2009-03-25 Timo Sirainen * src/lib-storage/index/dbox/dbox-map.c: dbox: Don't allow copying the same message over 32768 times. [5ed59c9decaf] * src/lib-index/mail-index-transaction.c, src/lib-index/mail-index.h: mail_index_atomic_inc_ext() now returns the current diff sum. [07cdd2e39e31] 2009-03-24 Timo Sirainen * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-storage.c, src/lib-storage/index/dbox/dbox-storage.h: dbox: Delete mailboxes atomically and update its messages' refcounts. [9f7123fa2e92] * src/lib-storage/index/dbox/dbox-storage.c: dbox: No longer allow an empty MAILBOXDIR. Future code relies on this. [79928d158977] * src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h: dbox: Changed the default mailbox dir name, subscriptions and uidvalidity filenames. [07965db3d13d] 2009-03-12 Timo Sirainen * src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/list /mailbox-list-fs-iter.c, src/lib-storage/list/mailbox-list-fs.c, src /lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h: Added :MAILBOXDIR= to mail_location to specify the root dir for mailboxes. [174f6dc92088] 2009-03-23 Timo Sirainen * src/lib-storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-save.c, src/lib-storage/index/dbox/dbox- storage.c, src/lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/dbox/dbox-sync.c, src/lib-storage/index/dbox/dbox- sync.h: dbox: Implemented copying by changing refcounts. [1414916ad239] * src/util/idxview.c: idxview: SHow 16bit extension fields also as decimals. [48ea43893dfa] * src/lib-index/mail-index-transaction.c: mail_index_atomic_inc_ext() didn't handle multiple increments within a transaction. [e854f0140953] * src/lib-storage/index/dbox/dbox-map.c: dbox: Create missing storage directory automatically when needed. [314ea9000185] * src/lib-storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-storage-rebuild.c: dbox: Don't give an error if "storage" directory is missing. [617f328f8c3a] * src/lib-storage/index/dbox/dbox-save.c, src/lib-storage/index/dbox /dbox-storage-rebuild.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/dbox/dbox-sync-rebuild.c, src/lib-storage/index/dbox /dbox-sync.c: dbox: Create usable indexes when mailboxes are created. [18635bffc0d4] * src/lib-storage/index/index-mail-headers.c, src/lib-storage/index /index-mail.c, src/lib-storage/index/index-mail.h: Don't cache Date: header if we don't really want it. [1d856a4bf9bd] * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-map.h, src/lib-storage/index/dbox/dbox-sync-file.c: dbox: Cleaning wasn't actually expunging records from map index. [4373c6483df4] * src/lib-storage/index/dbox/dbox-map.c: dbox: Improved "Inconsistency in map index" error message. [5732e5a46cbb] * src/lib-index/mail-index-sync.c: mail_index_sync_get_offsets() now returns offset1 right. [dc858d9014ae] * src/lib-index/mail-cache.c, src/lib-index/mail-index-private.h, src /lib-index/mail-index-strmap.c, src/lib-index/mail-index.c, src/lib- index/mail-index.h, src/lib-storage/index/dbox/dbox-map.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h: dbox: Make sure indexes are never moved to memory (in case of out- of-disk space). [f295678cef1e] * src/lib-index/mail-transaction-log-file.c: Don't reset modseqs when reseting index. [8f82eb1f5033] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-mail.c, src/lib-storage/index/dbox/dbox-map-private.h, src /lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox- map.h, src/lib-storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox/dbox- sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c, src/lib- storage/index/dbox/dbox-sync.h: dbox fixes. [3ece68d69218] * src/util/idxview.c: idxview: Updated showing dbox data. [733e065099f5] 2009-03-20 Timo Sirainen * src/lib/istream.c, src/lib/istream.h: Added i_stream_is_eof(). [5deb3ee1d655] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-mail.c, src/lib-storage/index/dbox/dbox-map-private.h, src /lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox- map.h, src/lib-storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c: dbox bugfixes. [57162b905a9a] * src/lib-index/mail-index-transaction.c, src/lib-index/mail- transaction-log-append.c: Removed some asserts that dbox code hits now. [c4ac37a70d58] * src/lib-index/mail-index-sync.c: Mailbox syncing: If syncing wrote to transaction log, update the tail offset to include them. [78644bad1263] * src/lib-index/mail-index-write.c: Don't log an error if dovecot.index doesn't exist while trying to create the backup. [ad69d9cffade] * src/lib-storage/index/dbox/dbox-map-private.h, src/lib- storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox- map.h, src/lib-storage/index/dbox/dbox-save.c, src/lib- storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/dbox/dbox-sync.h: dbox: Initial code for handling crashes while writing to map index. [e17810deea46] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h, src /lib-index/mail-transaction-log-append.c: Added FSYNC flag for transactions. [375be2dbeea7] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h: Added mail_index_sync_get_offsets(). [b12ae0c97069] 2009-03-18 Timo Sirainen * src/lib-storage/index/dbox/Makefile.am, src/lib-storage/index/dbox /dbox-file.c, src/lib-storage/index/dbox/dbox-file.h, src/lib- storage/index/dbox/dbox-storage-rebuild.c, src/lib- storage/index/dbox/dbox-storage-rebuild.h, src/lib- storage/index/dbox/dbox-sync-rebuild.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/dbox/dbox-sync.h: dbox: Initial commit for rebuilding multi-file dbox. Also added support for using backup index. These changes are fully untested. [cde92fa2bc37] * src/lib-index/mail-index-private.h, src/lib-index/mail-index- write.c, src/lib-index/mail-index.c, src/lib-index/mail-index.h, src /lib-storage/index/dbox/dbox-storage.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h: dbox: Create dovecot.index.backup files. [63a75a03360c] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-mail.c, src/lib- storage/index/dbox/dbox-map-private.h, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- storage.h, src/lib-storage/index/dbox/dbox-sync-rebuild.c: dbox: Code cleanups. [79d93a807eac] * src/lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/dbox/dbox-file.h, src/lib-storage/index/dbox/dbox- save.c: dbox: When saving a message, put the original mailbox name to metadata. [7d811ca70d28] 2009-03-13 Timo Sirainen * src/lib-storage/index/dbox/dbox-sync-file.c: dbox: More error handling. [a93c247f80dc] 2009-03-11 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.h, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-sync-file.c: dbox: More error handling fixes. [ec6428000c5b] * src/lib-index/mail-cache-transaction.c, src/lib-index/mail-index- modseq.c, src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction.c, src/lib-index/mail-index.h, src/lib- storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox-sync- rebuild.c, src/lib-storage/index/index-transaction.c, src/lib- storage/list/index-mailbox-list-sync.c: Removed rarely used parameters from mail_index_transaction_commit(). mail_index_transaction_commit_get_pos() can be used where they're required. [4d4e1cbb61a0] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-mail.c, src/lib- storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox- map.h, src/lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c: dbox: Code cleanups and error handling improvements. [fb90b6e3b4b7] * src/lib-index/mail-index.c, src/lib-index/mail-index.h, src/lib- storage/index/index-storage.c, src/lib-storage/list/index-mailbox- list.c: Added mail_index_open_or_create(). [f80f26822262] * src/imap/imap-fetch-body.c, src/imap/imap-fetch.c, src/imap/imap- fetch.h: imap: Code cleanup: Changed buffer to an array. [429ef7b9c19b] * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-map.h, src/lib-storage/index/dbox/dbox-sync-file.c: dbox: Fixes. [268eb42244b4] * src/imap/imap-fetch-body.c, src/imap/imap-fetch.h: imap: Improve "FETCH .. got too little data" error messages. [f30dcf3f85cc] 2009-03-10 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-map.c, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c: dbox: Reimplemented file cleanup in a safer way. Added some more error handling. [b381f1187f6b] * src/lib-storage/mail.c: Compile warning fix. [f8c2e4c437c9] * src/lib-index/mail-index-sync.c, src/lib-index/mail-index- transaction-private.h, src/lib-index/mail-transaction-log-append.c, src/lib-index/mail-transaction-log-file.c: indexes: Fixes to handling shrinking tail offsets. [e892aa297b85] * src/lib-storage/index/dbox/dbox-map.c: dbox: When doing a cleanup, need to refresh map index after locking. [30a5b6c58793] * src/lib-index/mail-index-transaction-private.h, src/lib-index/mail- index-transaction.c: indexes: Removed unnecessary code. [e79ffa619bd1] 2009-03-09 Timo Sirainen * src/lib-index/mail-transaction-log-file.c: Improved "corrupted transaction log file" error message. [c2f364d3f389] * src/lib-storage/index/dbox/dbox-map.c: dbox: Make sure we don't append to files that are already unlinked. [8dc36dbb74c8] * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-sync-file.c: dbox fixes [e71b29410395] * src/lib-index/mail-transaction-log-append.c: If indexes had been reset, extension changes may have been written wrong. [61795c86bce8] * src/lib-index/mail-transaction-log-append.c: indexes: Don't add ext-intros unnecessarily twice for ext-rec updates. Also did some code cleanups. [f54e0ccb91ab] * src/lib-index/mail-index-view-sync.c: indexes: Crashfix to error handling. [dc421589c090] 2009-03-06 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c: dbox: Locking fix. [e6ea97e43753] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync.c: dbox: Fixes to save/expunge/cleanup. [6b0c6106b286] * src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index- transaction.c: mail_index_atomic_inc_ext(): Added error checking. [ceb05b3db1d8] * src/util/idxview.c: idxview: Updated to show dbox message sizes. [b8774ddeaf7a] 2009-03-05 Timo Sirainen * src/lib-storage/index/dbox/dbox-map.c: dbox: Saving shouldn't close any files after all, otherwise locks are lost. [c3287bf89274] * src/lib-index/mail-transaction-log-append.c, src/lib-index/mail- transaction-log-file.c: indexes: Make sure we don't shrink log_file_tail_offset. [993929dfa5fa] * src/lib-storage/index/dbox/dbox-map.c: dbox: Don't close file we appended to if we're still reading from it. [a5f9f8b67066] * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-map.h, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/dbox/dbox-sync.h: dbox: File cleanup is for now done in logout. [9f7b62b814a8] 2009-03-04 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/dbox/dbox-sync.h: dbox: Initial support for expunging messages. [cb37f2732abc] * src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index-sync- private.h, src/lib-index/mail-index-sync-update.c, src/lib-index /mail-index-sync.c, src/lib-index/mail-index-transaction-private.h, src/lib-index/mail-index-transaction.c, src/lib-index/mail-index.h, src/lib-index/mail-transaction-log-append.c, src/lib-index/mail- transaction-log.h, src/util/logview.c: Added mail_index_atomic_inc_ext() for atomically incrementing numbers in extensions. [9c50e7303513] * src/plugins/virtual/virtual-mail.c: virtual: Fixed to work again after set_uid_cache_updates() addition. [0fc03e326ccc] 2009-02-25 Timo Sirainen * src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox /dbox-map.h, src/lib-storage/index/dbox/dbox-save.c: dbox: Fixes to saving messages. [a48605408d18] * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-map.c, src/lib- storage/index/dbox/dbox-map.h, src/lib-storage/index/dbox/dbox- save.c: dbox: Store message sizes to map index and use them. Some other save optimizations. [be17526a165d] * src/lib-storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox /dbox-mail.c, src/lib-storage/index/index-mail.c, src/lib- storage/index/index-mail.h, src/lib-storage/index/maildir/maildir- mail.c, src/lib-storage/index/mbox/mbox-mail.c, src/lib- storage/index/raw/raw-mail.c, src/lib-storage/mail-copy.c, src/lib- storage/mail-storage-private.h: Mail copying: Avoid updating cache file because of copying. The mail is being opened in any case, so it's unlikely to help anything. [a1d920a81adc] 2009-02-24 Timo Sirainen * src/lib-storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox /dbox-file.h, src/lib-storage/index/dbox/dbox-map.c, src/lib- storage/index/dbox/dbox-save.c: dbox: Save optimizations. [a0b72838b441] * src/lib/ostream-file.c, src/lib/ostream-internal.h, src/lib/ostream.c, src/lib/ostream.h: Added o_stream_pwrite(). [47076db1f911] * src/lib-storage/index/mbox/mbox-sync.c, src/lib/istream-internal.h, src/lib/istream-limit.c, src/lib/istream.c, src/lib/istream.h, src/plugins/quota/quota-storage.c: Added i_stream_get_size(). Use it instead of i_stream_stat() where possible. [5106852f552a] * src/lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox/dbox- file.h, src/lib-storage/index/dbox/dbox-mail.c, src/lib- storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox/dbox- map.h, src/lib-storage/index/dbox/dbox-save.c, src/lib- storage/index/dbox/dbox-storage.c, src/lib-storage/index/dbox/dbox- storage.h, src/lib-storage/index/dbox/dbox-sync-file.c, src/lib- storage/index/dbox/dbox-sync-rebuild.c, src/lib-storage/index/dbox /dbox-sync.c, src/lib-storage/index/index-storage.c, src/lib- storage/index/index-storage.h, src/lib-storage/mail-storage- private.h, src/lib-storage/mail.c: dbox: Initial support for saving multiple messages per file. [84379691de26] * src/util/idxview.c: idxview: Expand dbox map extension contents. [8d951b66a0e5] * src/lib/ostream-file.c: o_stream_send_istream(): Don't do backwards copying if the area doesn't really overlap. [334d29caa084] * src/lib/ostream-file.c: ostream: When copying backwards within a file, update in/outstream offsets. [3194ac1c6d75] * src/lib-index/mail-index-map.c: mail_index_map_ext_hdr_check(): Fixed a wrong check. [98c84ae0b659] 2009-02-19 Timo Sirainen * src/util/idxview.c: idxview: Support specifying the name of dovecot.index file. [3ceb0878ab09] 2009-02-17 Timo Sirainen * src/lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/dbox/dbox-file-maildir.h, src/lib-storage/index/dbox /dbox-file.c, src/lib-storage/index/dbox/dbox-file.h: dbox: Some more code cleanups. [9a97b4f8f6d8] * src/lib-storage/index/dbox/Makefile.am, src/lib-storage/index/dbox /dbox-file-maildir.c, src/lib-storage/index/dbox/dbox-file.c, src /lib-storage/index/dbox/dbox-file.h, src/lib-storage/index/dbox /dbox-index.c, src/lib-storage/index/dbox/dbox-index.h, src/lib- storage/index/dbox/dbox-mail.c, src/lib-storage/index/dbox/dbox- map.c, src/lib-storage/index/dbox/dbox-map.h, src/lib- storage/index/dbox/dbox-save.c, src/lib-storage/index/dbox/dbox- storage.c, src/lib-storage/index/dbox/dbox-storage.h, src/lib- storage/index/dbox/dbox-sync-file.c, src/lib-storage/index/dbox /dbox-sync-rebuild.c, src/lib-storage/index/dbox/dbox-sync.c, src /lib-storage/index/dbox/dbox-sync.h: dbox: Cleaned up code to get ready for global storage. [e7b7bcbf96b0] * src/lib-storage/index/dbox/dbox-file.c: dbox: Removed some more unnecessary code. [0c600566d7ea] 2009-02-16 Timo Sirainen * src/lib-storage/index/dbox/dbox-sync-rebuild.c: dbox: use mailbox uidvalidity file again for assigning new UIDVALIDITY. [60a6c6ff6873] * src/lib-storage/index/dbox/dbox-file.h, src/lib-storage/index/dbox /dbox-index.c, src/lib-storage/index/dbox/dbox-index.h, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox/dbox- sync-file.c: dbox: Removed dbox-index code. [0b626cf2dd10] * src/lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/dbox/dbox-file.c, src/lib-storage/index/dbox/dbox- file.h, src/lib-storage/index/dbox/dbox-index.c, src/lib- storage/index/dbox/dbox-index.h, src/lib-storage/index/dbox/dbox- save.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h, src/lib-storage/index/dbox/dbox- sync-file.c, src/lib-storage/index/dbox/dbox-sync-rebuild.c, src /lib-storage/index/dbox/dbox-sync.c, src/lib-storage/index/dbox /dbox-sync.h, src/lib-storage/index/maildir/maildir-uidlist.c, src /lib-storage/index/maildir/maildir-uidlist.h: dbox: Removed code that is no longer necessary with the redesign. - Maildir code now uses dovecot-uidlist directly instead of dbox.index. - Flags and keywords are no longer written to metadata. - Removed metadata modifying code entirely. - dbox.index is no longer read or written. The code will be removed soon. [fef8259e7277]