2008-09-07 Timo Sirainen * configure.in, src/lib-storage/index/Makefile.am, src/lib- storage/index/shared/Makefile.am, 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/mail- namespace.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/register/Makefile.am: Added initial support for shared mailboxes. Listing isn't supported yet. Each user gets their own hidden namespace created automatically when they're accessed the first time. [6dd0c6755afe] [tip] * src/plugins/virtual/virtual-config.c: Virtual mailboxes: Fixes to handling invalid configuration. [c0a80d6b8ef6] * src/lib-mail/message-address.c, src/tests/test-mail.c: message address parser: More error handling improvements. [60b8c2609087] * src/lib-mail/message-date.c: message date parser: Fixed parsing last optional fields due to previous rfc822 parser changes. [3e21ec854acc] * src/lib-mail/message-address.c: message address parser: Check better if adress is invalid and set invalid_syntax. [cb01142bb9e8] * src/lib-mail/rfc822-parser.c: rfc822_parse_[dot_]atom(): Return failure if there isn't at least one character. [55871f3b4481] * src/lib-mail/message-address.c: message address parser: Handle errors better, fix crash in previous change. [99704b6b8dde] * src/lib-mail/message-address.c, src/lib-mail/message-address.h: message address parser: Set invalid_syntax=TRUE if the input is invalid. [a1f6c93afbc2] * 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.c, src/plugins/acl/acl-mailbox-list.c, src/plugins/acl/acl-plugin.h, src/plugins/acl/acl-storage.c: acl: Fixed handling 'k' right. Although box/child creation was prevented, box/child/child wasn't. [459c4c496983] * src/pop3/commands.c: pop3: Don't crash in UIDL command. [314fab62b3d1] 2008-09-05 Timo Sirainen * src/auth/auth-request.c: Added a special userdb_import field to add TAB-separated fields to userdb reply. [498dd1ec2b93] * .hgtags: Added tag 1.2.alpha1 for changeset eaa3469db1dd [19da1a89be5a] * configure.in: Released v1.2.alpha1. [eaa3469db1dd] [1.2.alpha1] * src/lib-index/mail-index-strmap.c: strmap: Don't check conflicts for strings known to be unique. [e76d8777d20c] * src/lib-storage/index/index-thread.c: thread indexes: Removed debugging code. [f6f2af2db365] * NEWS, TODO: Updated TODO and NEWS. [ad3ac0cb4573] * src/imap/cmd-close.c: CLOSE: Don't send any mailbox changes or HIGHESTMODSEQ to client. Also the previous code wasn't really even closing the mailbox. [5ca8140fcc95] * src/lib-storage/index/index-thread.c: thread indexes: Forgot to commit strmap syncing in some situations. [f77a285629a5] * src/lib-index/mail-index-strmap.c, src/lib-storage/index/index- thread.c: strmap: Make sure the records array is always zero-terminated. [b8feb139cf92] * src/lib/hash2.c: hash2: minor code cleanup. [f15ce57d84d1] * src/lib/hash2.c: hash2_clear() didn't reset deleted_values list, causing bugs later on. [30fedb49296e] * src/lib-storage/index/index-thread.c: thread index fixes. [9690f8a1d21f] 2008-09-01 Timo Sirainen * src/lib/hash2.c: hash2_remove_iter(): Never resize hash table, otherwise iteration breaks. [10a5483c0d02] * src/lib/hash2.c: hash2_remove_iter() was broken when it resized the hash table. [7b5120f7f732] * src/lib-storage/index/index-thread-links.c: Thread indexes: Crashfix. [17cec811c5fd] * src/lib-storage/index/index-thread.c: Thread index: Minor optimization. [920c1ca3a8db] * src/lib-storage/index/index-thread.c: Thread index bugfix. [b7e097200892] * .hgignore, src/imap/cmd-thread.c, src/lib-index/Makefile.am, src /lib-index/mail-hash.c, src/lib-index/mail-hash.h, src/lib-index /mail-index-private.h, src/lib-index/mail-index-strmap.c, src/lib- index/mail-index-strmap.h, src/lib-index/mail-index.c, src/lib- storage/index/Makefile.am, src/lib-storage/index/index-search.c, src /lib-storage/index/index-thread-finish.c, src/lib-storage/index /index-thread-links.c, src/lib-storage/index/index-thread-private.h, src/lib-storage/index/index-thread.c, src/lib-storage/mail-thread.h, src/util/Makefile.am, src/util/threadview.c: Rewrote thread indexing code. It's a lot simpler and takes less disk space. We no longer try to keep a hash table and the entire thread tree stored on disk. Instead we keep a simple Message-ID string (actually just "uid, ref#" pointer) -> unique index number mapping on disk, read it to memory and use it to build the thread tree. After the initial build the thread tree is still updated incrementally. [70b53e9b232e] * doc/thread-refs.txt: Minor cleanup to thread indexing document. [b296beccb70e] * src/lib-storage/mail-search.c, src/lib-storage/mail-search.h: Added mail_search_args_equal(). [ea5f84256c3f] * src/lib/Makefile.am, src/lib/hash2.c, src/lib/hash2.h: Added an alternative hash table implementation. [29ed66459a74] * src/lib/hash.c, src/lib/primes.c, src/tests/test-lib.c: primes_closest(): Use exponentially growing primes. [c55a66afddea] * src/lib/array.h: array_copy() was broken if source array was different from destination array. [5b845716308d] 2008-08-31 Timo Sirainen * TODO: Updated TODO [f8de4a912916] * src/lib-storage/index/index-mail-headers.c: If imap.envelope is cached, use it instead of rebuilding it. [f942af88598b] * src/lib-storage/index/index-mail-headers.c: Minor code cleanup. [e459274fc83f] * src/lib-storage/index/cydir/cydir-storage.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/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-user.c, src/lib- storage/mail-user.h, src/lib-storage/mailbox-list-private.h, src /lib-storage/mailbox-list.c, src/plugins/mbox-snarf/mbox-snarf- plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual /virtual-storage.c, src/plugins/zlib/zlib-plugin.c: Created mail_user_[try_]home_expand(). Used them for expanding mail directories. [b2a258213ee0] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log-private.h: Don't give bogus "log_file_tail_offset shrank" errors. [285f636884dc] * src/lib-index/mail-transaction-log.h: Added padding to struct mail_transaction_log_header so it's 64bit aligned. Most compilers did that automatically already. [0be9c476acdd] * src/lib-index/mail-index-fsck.c: index fsck: Don't give bogus "duplicate extension" errors and break them. [447638ac601a] * src/lib-storage/index/maildir/maildir-save.c: Added assert. [11f07916003a] * src/lib-storage/index/index-sync.c: DEBUG: Don't verify recent flags if view is already marked inconsistent. [66dd5f452d32] * src/lib-index/mail-index-map.c, 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-view-sync.c: Fixed crashes related to struct mail_index_map_modseq handling. [32a045eaf6b6] * src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-transaction- log-append.c, src/lib-index/mail-transaction-log.h: Replaced "no extension resizing" flag with "no extension shrinking". It fixes some bugs while still handling the original reason it was added. [b97c3be33b04] * src/lib-index/mail-transaction-log-file.c, src/lib-index/mail- transaction-log.h, src/util/logview.c: Write CPU endianess to transaction log header and check it's correct when reading. [612eb505775f] 2008-08-30 Timo Sirainen * src/lib-mail/message-parser.c: message parser: Cleaned up the code and another attempt at fixing infinite looping. [fcf0c5ac5975] * src/lib-storage/index/mbox/istream-raw-mbox.c, src/lib- storage/index/mbox/istream-raw-mbox.h, src/lib-storage/index/mbox /mbox-mail.c, src/lib-storage/index/mbox/mbox-storage.c: mbox: If we detect corrupted cached offsets/sizes, make sure the mbox gets resynced. [8b0e3e27b551] * src/lib-index/mail-index-transaction-view.c: mail_index_lookup_ext*() didn't return properly aligned pointers with updated transaction views. [cf2c4f3c636f] * src/deliver/deliver.c: deliver: Added -s parameter to autosubscribe to autocreated mailboxes. [81967ad7098f] * src/lib/ostream-file.c: ostream: Make sure writing to files always fully succeeds or fails. Don't allow partial writes (to NFS). [744f9dbff89c] * src/imap-login/imap-proxy.c, src/pop3-login/pop3-proxy.c: imap/pop3-proxy: If auth_verbose=yes, log proxy login failures. [26b67708b365] * 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_log_format_elements: Added %k to show SSL protocol/cipher information. [3917bf9cf311] * src/lib-mail/message-parser.c: message_parser_init_from_parts(): If parts were broken, we may have assert-crashed. [d95770cfd935] * src/plugins/zlib/istream-zlib.c: zlib plugin/bzip2 handling: Update stream's visible fd after changing it. [3a1e0970d053] * src/lib-index/mail-cache-fields.c: cache file: Don't crash if fields header offset points outside mmapped data. [c96d9af856d1] 2008-08-29 Timo Sirainen * src/deliver/deliver.c: deliver: If we're dying because we can't write to log file, write error to stderr. [6665a641780c] * src/lib/failures.c: If logging failed to info log, try to log a failure to error log if it's elsewhere. [079ed76a987d] 2008-08-28 Timo Sirainen * dovecot-example.conf: Updated auth_debug_passwords to say that it also turns on auth_debug. [827c3a3a1627] * src/lib-index/mail-index-transaction-view.c: mail_index_lookup_seq*() could have returned wrong sequences with transaction views. This caused assert-crashes in recent flag handling for mbox and maildir. [8ac8713b1386] 2008-08-27 Timo Sirainen * src/plugins/zlib/istream-zlib.c: bzip plugin: Seeking streams backwards was broken. [74153b8e63a6] * doc/dovecot-dict-sql-example.conf, src/dict/Makefile.am, src/lib- dict/Makefile.am, 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: dict sql: Added configuration for mapping dict paths to SQL fields. [2d3e942a4cde] * src/plugins/expire/expire-env.h, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire-tool.c: Expire plugin: Include expire/ in the dictionary path. [d630b13ccd60] * src/auth/auth-request.c, src/auth/auth-request.h: auth: %m variable didn't work with blocking passdbs [d49bdda63506] * src/dict/dict-server.c: dict: Support large iterations by sending data in output stream flush callback. Fixes also a hang if a lot of changes were done during the iteration. [1cf9844b7a20] * src/plugins/fts-solr/fts-backend-solr.c: fts-solr: Fixed compiling with recent struct mail_user changes. [e7929190cd32] * src/dict/dict-server.c, src/lib-dict/dict.c, src/lib-dict/dict.h, src/plugins/expire/expire-plugin.c, src/plugins/expire/expire- tool.c, src/plugins/quota/quota-dict.c: dict API: deinit functions now take pointer-to-pointer parameter which gets NULLed. [b46b0158eb64] * src/lib/ostream.h: Updated o_stream_flush() comment. [dfae8a7d695b] 2008-08-25 Timo Sirainen * src/imap-login/client.c, src/pop3-login/client.c: If client disconnects without any auth attempts, don't log "auth failed". [16cb3a2b25ab] * src/lib-dict/dict-client.c: Calling dict_iterate_init() multiple times for a dict assert- crashed. Patch by Bernhard Herzog. [ad9ad222729c] 2008-08-22 Timo Sirainen * src/lib-storage/list/mailbox-list-fs-iter.c: mail_full_filesystem_access=yes was broken when listing mailboxes. [b03b937dadcf] * src/lib-mail/message-parser.c: Fixed infinite looping when parsing some (not all) broken multipart mails that didn't end with proper --boundary--. [360ade35792f] * src/lib-sql/driver-sqlite.c: sqlite crashed with dict server. Patch by Bernhard Herzog. [277aadb0ef8c] 2008-08-21 Timo Sirainen * src/auth/db-ldap.c: ldap: Avoid kqueue/epoll errors when LDAP connection closes unexpectedly. [06cb6f9d3054] * 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: Added io_remove_closed(). [83aef3a6c0a3] * src/lib-storage/index/mbox/mbox-sync.c: mbox lazy writes: Mark messages dirty when their rewrite is delayed to make sure they'll eventually get rewritten. [060165bdb0b0] * src/master/mail-process.c: Don't apply mail_max_userip_connections limit to master user logins. [8f0111854933] 2008-08-14 Timo Sirainen * src/imap-login/imap-proxy.c, src/pop3-login/pop3-proxy.c: Proxy: Log destuser in the "proxying" line if it's different from username. [4d6cc7bb3426] 2008-08-13 Timo Sirainen * src/plugins/quota/quota-fs.c, src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-private.h, src/plugins/quota/quota.c: Fixed FS quota compiling and Maildir++ quota with multiple users. [f35a8a3dc06d] * dovecot-example.conf, src/auth/mech-gssapi.c, src/auth/mech.c, src/master/auth-process.c, src/master/master-settings.c, src/master /master-settings.h: Renamed auth_ntlm_use_winbind to auth_use_winbind, which also determines if GSS-SPNEGO is handled by GSSAPI or winbind. [1f948670f274] * configure.in, src/auth/mech-gssapi.c, src/auth/mech.c: Support GSS-SPNEGO mechanism if GSSAPI library supports it. Based on a patch by Jason Gunthorpe. [641d761219a6] * dovecot-example.conf, src/auth/mech-gssapi.c: Added support for gssapi_hostname=$ALL for multihomed hosts. Patch by Jason Gunthorpe. [9ca5e8f66d10] * src/login-common/client-common.c, src/login-common/client-common.h, src/login-common/master.c, src/login-common/master.h, src/login- common/sasl-server.c, src/master/login-process.c, src/master/mail- process.c, src/master/mail-process.h, src/master/master-login- interface.h, src/master/master-settings.c: Pass the created mail process PID back to login process so it can log it. Added %e log format element for it. [29b623366e1e] 2008-08-12 Timo Sirainen * src/plugins/quota/quota-fs.c: quota-fs: compile fix for previous changes. [ceca59aaae89] * configure.in: Added --with-zlib and --with-bzlib configure options. [75b1f16cba72] * src/auth/passdb-vpopmail.c: vpopmail: Added webmail=ip parameter. Use it for checking imap/webmail access. [30e4c3360e76] * src/login-common/main.c, src/master/login-process.c: Master process leaked one fd to login process. Typically it was listener fd, which caused imap-login processes existing after Dovecot was killed to keep the port reserved so Dovecot couldn't be started again. [14a061acbb7b] * src/plugins/quota/quota-storage.c: quota: Fix to previous mailbox deletion fix. [7a498b73380c] * src/plugins/quota/quota-storage.c: quota: Fixed error handling if quota shrinking fails when deleting a mailbox. [27940e82901e] * src/deliver/deliver.c, src/imap/main.c, src/lib-storage/mail- namespace.c, src/lib-storage/mail-namespace.h, src/plugins/convert /convert-storage.c, src/plugins/convert/convert-tool.c, src/plugins/expire/expire-tool.c, src/pop3/main.c: Removed pool parameter from mail_namespaces_init*(). Use mail_user's pool intead. [bf83aa9c3f4a] * src/lib-storage/mail-user.c, src/lib-storage/mail-user.h: Forgot to add mail-user.* files in previous struct mail_user commit. [f12f8c1da0bf] * src/lib-storage/mail-storage.h: Typofix in comment. [bed6d0895dce] * src/deliver/deliver.c, src/imap/client.c, src/imap/client.h, src/imap/cmd-list.c, src/imap/cmd-namespace.c, src/imap/cmd- subscribe.c, src/imap/commands-util.c, src/imap/main.c, src/lib- storage/Makefile.am, src/lib-storage/index/maildir/maildir- storage.c, src/lib-storage/index/mbox/mbox-save.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/plugins/acl/acl-mailbox-list.c, src/plugins/convert /convert-plugin.c, src/plugins/convert/convert-storage.c, src/plugins/convert/convert-storage.h, src/plugins/convert/convert- tool.c, src/plugins/expire/expire-plugin.c, src/plugins/expire /expire-tool.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/quota/quota-dict.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, src/plugins/quota/quota.h, src/plugins/trash/trash-plugin.c, src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- plugin.c, src/plugins/virtual/virtual-plugin.h, src/plugins/virtual /virtual-storage.c, src/pop3/client.c, src/pop3/client.h, src/pop3/main.c: Added struct mail_user and fixed the code to support multiple users per process. [db66611fd195] 2008-08-08 Timo Sirainen * src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual- storage.h: virtual mailboxes: Detect loops in virtual mailbox definitions. [0d5fba71cb93] * src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual- storage.h: virtual mailboxes: Added support for using wildcards in mailbox names. The wildcards don't span namespaces so that "*" won't also match mailboxes in virtual namespace. [3aec087609f0] * src/lib-storage/list/mailbox-list-maildir-iter.c, src/lib-storage /mailbox-list.c, src/lib-storage/mailbox-list.h: Added mailbox_list_iter_init_namespaces() for listing mailboxes from multiple namespaces. struct mailbox_info now always contains the listed namespace. [4e1b54eb7407] * src/lib-storage/list/mailbox-list-fs-iter.c: dbox could have listed INBOX twice. [c8d3024015a8] 2008-08-07 Timo Sirainen * src/imap/imap-fetch.c, src/lib-storage/index/cydir/cydir-save.c, src /lib-storage/index/dbox/dbox-file-maildir.c, src/lib- storage/index/dbox/dbox-file.h, 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/index-search.c, src/lib-storage/index/index- storage.c, src/lib-storage/index/index-storage.h, 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-copy.c, src/lib-storage/mail-search-build.c, src/lib- storage/mail-search.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: Added the concept of Global UIDs that are preserved across copies. They can be fetched, searched and specified for the save API. dbox format supports them correctly, but with maildir the base filename is used so maildir_copy_preserve_filename=yes is required to preserve GUIDs when copying. [6d51328896d6] * configure.in, src/lib/compat.c, src/lib/compat.h: Added clock_gettime() compatibility function for systems without it. [bbfbc84f795c] * src/imap/cmd-append.c, 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/dbox /dbox-save.c, src/lib-storage/index/dbox/dbox-storage.c, src/lib- storage/index/dbox/dbox-storage.h, 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/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/mail-copy.c, src /lib-storage/mail-storage-private.h, src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h, src/plugins/acl/acl-mailbox.c, src/plugins/quota/quota-storage.c, src/plugins/virtual/virtual- storage.c: mailbox_save_init() API was split to multiple functions. This allows adding more parameters easily in future. [8a068f879cd1] * src/lib-storage/index/index-search.c: INTHREAD search may have failed randomly. [05565bfadc6b] 2008-08-06 Timo Sirainen * src/login-common/main.c: login processes: Another try at setting the correct fd limit. [f27ecc07d93a] * src/login-common/main.c: Reverted previous change, it wasn't correct.. [f6cff15160d4] * src/login-common/main.c: login processes set their fd limit too low, causing "too many open files" errors [f39a6be7d42a] 2008-08-05 Timo Sirainen * src/lib-storage/index/index-sort-string.c: sort indexes: One more assert-crashfix when renumbering sort IDs. [7e3590da43a9] 2008-08-04 Timo Sirainen * src/auth/main.c: dovecot-auth: Give a nice error message if you try to run it manually. [6396a64b0fcb] * configure.in, src/auth/mech-gssapi.c, src/master/auth-process.c: gssapi: Make auth_krb5_keytab work by calling _register_acceptor_identity() instead of relying on KRB5_KTNAME environment to be picked up. [9569038e0816] * src/lib-index/mail-index-fsck.c: Index fsck crashfix / cleanup. [6319603ffa70] * src/util/maildirlock.c: maildirlock: Do IPC with pipes instead of with signals. Fixes race conditions. Based on patch by Kyle Wheeler. [28b1c4f68c9f] * src/lib/hostpid.c: hostpid_init(): If called again, update the hostname/pid. [c832be51c7ac] * src/auth/mech-cram-md5.c: Don't call hostpid_init(), it's always called at startup anyway. [02c6ce8d4fef] * src/imap/client.h, src/imap/cmd-select.c, src/imap/cmd-store.c: imap: Try to allow STORE for read-only mailboxes, but not for EXAMINEd. [f7cbcd15ef2c] * src/master/main.c: Master could have crashed if auth process died too early and not log the reason. [a69c49565a5b] * src/lib-storage/index/mbox/mbox-save.c: mbox: Saving may have truncated the mail being saved. save_continue() must not return if there's still data to be saved and index_mail_cache_parse_continue() may read more of it, so make sure after calling that the save input is handled. [7f1389badb4c] * src/lib-index/mail-index-fsck.c: Index opening: If there's broken index and no .log, don't crash. [4bfe7618743e] 2008-07-24 Timo Sirainen * src/lib-dict/dict-db.c: dict-db: Don't assume bdb returns aligned memory addresses. [25ff4c990c23] * src/auth/userdb-prefetch.c: userdb prefetch: Userdb lookups shouldn't log the "passdb didn't return userdb entries" since there was no passdb lookup at all. But log it anyway when auth_debug=yes. [17d8b197641b] * src/auth/passdb-checkpassword.c: checkpassword: Set TCPLOCALPORT and TCPREMOTEPORT environments. [2fc09774bc02] * src/lib-storage/index/mbox/mbox-file.c: mbox: Fixed assert-crash with read-only mbox streams (e.g. zlib plugin) [f30268333748] * configure.in, src/master/main.c: Don't list checkpassword as a userdb, since it isn't one. [1894a0b4957d] 2008-07-22 Timo Sirainen * src/deliver/deliver.c: deliver: Fixed reading namespace settings. [1b22f5e61136] 2008-07-21 Timo Sirainen * src/lib-storage/index/mbox/mbox-sync.c: mbox: Fixed a rare assert-crash with \Recent flag handling. [d8a22a7f8b08] * src/lib-storage/index/index-mail.c: Fixed a potential crash if message parsing failed while fetching bodystructure. [ab7ad44d709a] * src/plugins/fts-lucene/Makefile.am, src/plugins/fts- solr/Makefile.am, src/plugins/fts-squat/Makefile.am, src/plugins/fts/Makefile.am: Symlink FTS plugins to pop3 directory too. [0cf12f30985f] * src/plugins/zlib/Makefile.am: zlib: Install the plugin also to pop3 directory. [ba857d9b5f77] * configure.in: s/zlib/bzlib/ in HAVE_BZLIB description. [e2f3b5bd0e47] * src/lib-storage/mailbox-list.c: Compiler warning fix. [63bd99cb4c97] * src/plugins/zlib/istream-bzlib.c: bzlib: Include stdio.h in case bzlib.h needs it. [965f8809d30c] * configure.in: Check that libbz2 has correct functions. Old versions had different names. [8afc9ddd723e] * src/lib-index/mail-index-transaction.c: If UIDVALIDITY changes and view hasn't noticed it yet, don't assert- crash when saving messages. [f0ca5110b99d] * src/lib/mountpoint.c: AIX compiling fix. [56c0494d8c49] * src/lib-storage/index/index-storage.h, src/lib-storage/index/mbox /mbox-sync-parse.c, src/plugins/virtual/virtual-storage.c: A few more fixes to previous mailbox_keyword_is_valid() commit. [b40e772d2e2c] * 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_keyword_is_valid(). [0e7a9547be83] * src/util/Makefile.am, src/util/maildirlock.c: Compiling fix. [4de1590878ea] * doc/Makefile.am, src/plugins/fts-solr/Makefile.am: solr-schema.xml move was forgotten from Makefiles. [f118ee90ab21] * src/plugins/quota/quota-fs.c: Solaris fs quota may have closed fd 0. [ccf59801b63c] 2008-07-20 Timo Sirainen * src/lib-storage/index/cydir/cydir-save.c, src/lib- storage/index/cydir/cydir-storage.h, src/lib-storage/index/dbox /dbox-save.c, src/lib-storage/index/dbox/dbox-storage.h, 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/mail-storage- private.h, src/lib-storage/mail-storage.c, src/plugins/acl/acl- mailbox.c, src/plugins/quota/quota-storage.c, src/plugins/virtual /virtual-storage.c: mailbox.save_init() API now takes ** pointer to dest_mail, so multiple plugins can safely specify it. ctx->dest_mail also gets updated then. [dc280df713f4] * 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/maildir/maildir-storage.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/mailbox-list.c, src/lib-storage/mailbox-list.h, src/plugins/quota/quota-maildir.c: Use permissions based on mail root directory when creating new files/dirs under it. [ab1c170b1559] * src/lib/file-dotlock.c, src/lib/file-dotlock.h: Added file_dotlock_open_mode(). [b3303b65c3f2] * src/lib/mkdir-parents.c, src/lib/mkdir-parents.h: Added mkdir_parents_chown(). [ed12eee73357] * src/lib-storage/index/dbox/dbox-file.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/mkdir-parents.c, src/lib /mkdir-parents.h, src/plugins/fts-lucene/fts-backend-lucene.c: mkdir_parents() API was sometimes assumed to return EEXIST and sometimes not. Standardized it now so that the API does return EEXIST. [b3efdd9dc293] * src/lib-storage/mailbox-list.c: If mail_debug=yes: Log which per-namespace file permissions are used. [38897ffeec2d] * src/lib/safe-mkstemp.c: safe_mkstemp(): If fchown() fails, log the used uid/gid. [fa2bd47fc59c] * src/plugins/quota/quota-fs.c: fs quota: Don't crash if some mail storages are outside known mountpoints. [be8550f51b02] * src/plugins/quota/quota-dict.c, src/plugins/quota/quota-fs.c: Use quota->debug instead of getenv()ing it every time. [7fdb5f222d95] * 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: FS quota: Handle quota only for the quota roots which apply to the mailbox when there are multiple roots. With a single quota root the check is usually unnecessary. Based on patch by Ralf Becker. [796307638449] * src/lib-storage/index/maildir/maildir-storage.c: Maildir: Create maildirfolder using the same permissions as dovecot- shared. [ea4821b4e29a] * src/auth/db-ldap.c, src/auth/db-sql.c, src/dict/main.c, src/imap /cmd-fetch.c, src/imap/commands.c, src/imap/imap-fetch.c, src/imap/main.c, src/lib-index/mail-index-transaction.c, src/lib- index/mailbox-list-index.c, src/lib-otp/otp-parity.h, src/lib-sql /driver-sqlite.c, src/lib-storage/index/mbox/mbox-lock.c, src/login- common/client-common.c, src/plugins/convert/convert-storage.c, src/plugins/quota/quota-maildir.c, src/pop3/main.c: extern/static fixes (from a sparse check by Diego Liziero) [62cf70991cf2] * src/lib-index/mail-cache-fields.c, src/tests/test-lib.c: Compiler warning fixes. [ff6ccf848cc1] * src/lib-storage/index/index-mail.c: Maildir: If uidlist couldn't be locked while saving, we might have assert-crashed afterwards when trying to update cache file for the newly saved message whose index update was already cancelled. [09295548c123] * src/deliver/deliver.c: deliver: Save mails to namespace prefix to INBOX instead. [8cb32b10a536] * src/lib-storage/index/maildir/maildir-storage.c: Maildir: Group of the created shared directory wasn't set. Patch by Simon Michelson. [a90541a1192c] * configure.in, src/lib/mountpoint.c: mountpoint_get(): Added support for AIX support with mntctl(). [d1da922a437d] * src/plugins/mbox-snarf/mbox-snarf-plugin.c: mbox-snarf: Messages weren't sometimes expunged from the source mbox, causing duplicates. [1f20b78f37d7] * src/lib/istream-seekable.c: istream-seekable: Log file creation error as creat() failure, not open(). [701828d42e66] * src/lib/failures.c: Logging: Make sure we don't recurse infinitely when running out of memory. Also cleaned up the logging handlers' code a bit. [bd0a8f1485b5] * src/lib-storage/index/index-sort-string.c: SORT: Fixed assert-crash. [2621f6f10c2e] * src/lib-storage/list/mailbox-list-fs-iter.c: fs mailbox layout: Several fixes to handling INBOX listing. [4a80a7ec7c6a] * src/imap/cmd-list.c: LIST didn't show INBOX if list patterns didn't match namespace prefix. [8b240457c4a4] * src/lib-storage/index/maildir/maildir-uidlist.c: Maildir: Check more correctly when we should update/recreate uidlist. [73b4fe95a6dd] 2008-06-18 Timo Sirainen * src/lib-storage/index/maildir/maildir-uidlist.c: Recreate dovecot-uidlist if updating it would shrink the file more than 25%. [cb2650c20a58] * src/lib/restrict-process-size.c: If process's RLIMIT_NOFILE can't be changed, log an error but don't die. Fixes running with Valgrind. [7513ad244f0f] 2008-07-20 Timo Sirainen * src/lib/fdatasync-path.c: fdatasync_path(): Ignore EBADF errors, it probably means directory fsyncing isn't allowed (e.g. NetBSD). [164bdad216b8] 2008-07-19 Timo Sirainen * src/deliver/deliver.c, src/imap/imap-fetch-body.c, src/imap/imap- fetch.c, src/imap/imap-sort.c, 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- mail.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/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/plugins/virtual/virtual-storage.c: struct mailbox_header_lookup_ctx can now be referenced/unreferenced so it can be shared among multiple struct mails. [2d902d1f8bea] 2008-07-18 Timo Sirainen * src/lib-storage/mail-copy.c: Message copying: Don't save empty mail if input was already read to memory. [2c1e4f1fc4e0] * src/lib-mail/rfc822-parser.c: rfc822_parse_phrase(): Don't read outside data boundaries if input is empty. [289593cceb58] * configure.in: Removed MIT Kerberos v1.2 check, since Heimdal v1.2 is out and it works fine. [1d209ee7eead] * src/lib/str.c, src/lib/str.h: Added str_new_const(). [b3dd6db685a4] 2008-07-13 Timo Sirainen * 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-solr/fts-backend-solr.c, src/plugins/fts-solr/solr- connection.c, src/plugins/fts-solr/solr-connection.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.c, src/plugins/fts/fts-storage.h: Added support for sorting by X-SCORE. Currently it's only set by fts-solr. [0a3b5ddb0869] * src/imap/cmd-sort.c: SORT: Return BAD if sort program ends with REVERSE. [67eb95aa7293] * 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-api-private.h, src/plugins/fts/fts-api.c, src/plugins/fts/fts-api.h, src/plugins/fts/fts-search.c,