2015-10-02  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset d7e14d388a7e
	[b483fba06083] [tip]

	* .hgtags:
	Added tag 2.2.19 for changeset d7e14d388a7e
	[0818b2fb5148]

	* NEWS, configure.ac:
	Released v2.2.19.
	[d7e14d388a7e] [2.2.19]

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

	* src/plugins/push-notification/Makefile.am, src/plugins/push-
	notification/push-notification-driver-ox.c:
	push-notification: Use setting_get_time() parsing for cache_lifetime
	OX driver setting.
	[7a7111a5ce5e]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Compiler warning fix.
	[cac0c21f5746]

	* src/plugins/push-notification/push-notification-drivers.c:
	push-notification: Allow drivers to set only "key" without "=value"
	to parameters.
	[67996a17e857]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Added timeout_msecs and max_retries parameters to
	OX driver. For configuring HTTP lookups.
	[5a64d5ea81e2]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Don't allocate cached metadata from memory pool
	in OX driver. It slowly keeps increasing memory usage over time.
	[5e667cce0842]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: OX driver error handling fix - garbage metadata
	was returned on failure.
	[012d11e9cb67]

2015-10-01  Michael Slusarz  <michael.slusarz@dovecot.fi>

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Add cache lifetime config parameter to OX driver
	[990030864e16]

	* src/plugins/push-notification/push-notification-plugin.c:
	push-notification: OCD fix for lining up function parameters
	[6c001f36f1ed]

2015-10-02  Timo Sirainen  <tss@iki.fi>

	* src/plugins/push-notification/push-notification-driver-ox.c,
	src/plugins/push-notification/push-notification-drivers.h,
	src/plugins/push-notification/push-notification-plugin.c:
	push-notification: Removed optimization to init drivers only once.
	Different users may have different drivers. And the previous
	metadata-caching change especially isn't working without this
	change.
	[cb7b0ad2836a]

2015-10-01  Timo Sirainen  <tss@iki.fi>

	* src/plugins/push-notification/push-notification-events-rfc5423.c,
	src/plugins/push-notification/push-notification-events-rfc5423.h,
	src/plugins/push-notification/push-notification-plugin.c:
	push-notification: Free all events at plugin deinit.
	[5f883bc3f380]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Allow OX driver to use "user" from METADATA only
	if user_from_metadata is set. Otherwise users could send push-
	notifications to each others' if imap_metadata=yes.
	[af0ae8ab2be4]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Cache the metadata lookup in OX driver.
	[7cbb955a3d44]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Don't crash at ox driver cleanup if init() hadn't
	been called.
	[a67e667f38a9]

2015-09-30  Michael Slusarz  <michael.slusarz@dovecot.fi>

	* src/plugins/push-notification/push-notification-drivers.h,
	src/plugins/push-notification/push-notification-plugin.c:
	push-notification: Improved struct naming of driver list data
	[e309b27f02ea]

	* src/plugins/push-notification/push-notification-drivers.h,
	src/plugins/push-notification/push-notification-plugin.c:
	push-notification: On-demand initialization of transaction data
	[6f86db8428e6]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: Fix infinite recursive loop in OX driver
	[fe5890ba0618]

	* src/plugins/push-notification/push-notification-driver-ox.c:
	push-notification: If other drivers triggered a non-MessageNew
	successful event, don't assert
	[160eae376b44]

	* src/plugins/push-notification/push-notification-plugin.c:
	push-notification: Fix distinguishing between IMAP APPEND and MTA
	deliveries
	[39ae1789ba74]

2015-09-30  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added "storageid" field.
	[2ceca0becf8e]

	* src/lib-storage/index/index-mail.c, src/lib-storage/index/maildir
	/maildir-copy.c, src/lib-storage/index/maildir/maildir-mail.c, src
	/lib-storage/index/raw/raw-mail.c, src/lib-storage/mail-storage.h,
	src/pop3/pop3-commands.c:
	lib-storage: Renamed MAIL_FETCH_UIDL_FILE_NAME to
	MAIL_FETCH_STORAGE_ID. Keep MAIL_FETCH_UIDL_FILE_NAME for backwards
	compatibility for now.
	[b631f67f56d3]

	* src/lib-dict/dict-sql-settings.c, src/lib-dict/dict-sql-settings.h,
	src/lib-dict/dict-sql.c:
	dict-sql: Added support for "uint" field type.
	[22015b472147]

	* src/lib-dict/dict-sql-settings.c, src/lib-dict/dict-sql-settings.h,
	src/lib-dict/dict-sql.c:
	dict-sql: Added support for extensible field types.
	[6785752f1e25]

2015-09-29  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-solr/solr-connection.c:
	fts-solr: Removed Content-Type header from "select" requests to fix
	Solr v5.1.
	[202c236f7581]

2015-09-28  Timo Sirainen  <tss@iki.fi>

	* src/lib/file-lock.c:
	lib: s/EDEADLOCK/EDEADLK/ It felt wrong since the beginning, but my
	first attempt at EDEADLCK didn't work and EDEADLOCK did. Of course,
	not everywhere.
	[7633bca91551]

	* .hgsigs:
	Added signature for changeset 7a5726201e40
	[460cee8121ff]

	* .hgtags:
	Added tag 2.2.19.rc2 for changeset 7a5726201e40
	[8d86e2d2f049]

	* configure.ac:
	Released v2.2.19.rc2.
	[7a5726201e40] [2.2.19.rc2]

	* src/plugins/quota/quota-count.c:
	quota: Fix to previous commit - counting quota-disabled-storages may
	have returned random failures.
	[15be6c2e26c0]

	* src/plugins/quota/quota-count.c:
	quota: Fixed "count" backend to ignore storages that have quota
	disabled. For example virtual mailboxes shouldn't be counted in
	quota.
	[2db9595b302e]

	* src/plugins/quota/quota-count.c:
	quota: The new quota counting code was counting only the last
	mailbox.
	[08725018dedd]

	* src/plugins/virtual/virtual-storage.c:
	virtual plugin: Fixed assert-crash on mailbox_status() if virtual
	mailbox wasn't opened yet. We no longer require that mailboxes must
	not be auto-opened.
	[f2c25d5b6280]

	* src/plugins/virtual/virtual-storage.c:
	virtual plugin: Fixed crash on mailbox_status() if virtual mailbox
	wasn't opened yet. mbox->backend_boxes is initialized only when
	mailbox is opened.
	[1041fb241512]

	* src/plugins/quota/quota-count.c:
	quota: doveadm quota recalc works now for "count" backend by
	rebuilding vsize header.
	[687dd4db9373]

	* src/plugins/quota/quota-count.c:
	quota: Code cleanup - abstract out iteration of mailboxes related to
	a quota root.
	[78a027250652]

	* src/lib/istream-timeout.c:
	lib: Using istream-timeout with timeout disabled caused excessive
	CPU usage.
	[b7a0b0d86651]

	* src/lib-storage/index/index-mailbox-size.c:
	lib-storage: Added assert - mailbox has to be open when starting
	vsize header update.
	[60814596aff2]

	* src/lib-storage/index/index-sync.c:
	lib-storage: Don't try to update index vsize if syncing failed.
	[12205b780996]

	* src/lib-http/http-message-parser.c:
	lib-http: Don't silently truncate response payload if server
	disconnects during it.
	[ecad47a83d1d]

	* src/lib/istream-sized.c, src/lib/istream-sized.h:
	lib: Added i_stream_create_sized_with_callback(). The callback
	returns the wanted error string.
	[5fa5cbdf65a3]

	* src/lib/istream-sized.c:
	lib: When destroying istream-sized stream, it seeks the parent input
	at the end offset. This is also how istream-limit works.
	[ea56193d05b3]

	* src/lib-http/http-response-parser.c:
	lib-http: When receiving unexpected input in HTTP response, include
	a longer snippet of it in the error.
	[cfee3a8b35ec]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	request.c, src/lib-http/http-server-connection.c, src/lib-http/http-
	server-request.c:
	lib-http: Added asserts to all refcount increments. These could
	catch situations where an already freed object's refcount is
	attempted to be increased.
	[c30c30c1e642]

	* src/lib-http/http-client-connection.c:
	lib-http: Avoid crashes when server is already disconnected. I'm not
	sure if this is the nicest fix, but seems to work for now at least.
	[77486e114423]

	* src/lib-http/http-client-connection.c:
	lib-http: Disconnection from HTTP server could have caused accessing
	already freed memory. Freeing a request could have freed the
	connection.
	[44dd7e81a38b]

	* src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c:
	quota: Avoid crash in quota_root_iter_init() if mailbox has no quota
	enabled. This allows quota_get_mail_user_quota() to be called even
	when quota doesn't exist. Cleaned up all the code using it to now
	check for the NULL result.

	This fixes a crash in quota_clone plugin.
	[14f670053196]

	* src/plugins/quota-clone/quota-clone-plugin.c:
	quota-clone: Memory leak fix when mailbox had no quota roots.
	[9b2be8702e59]

2015-09-27  Timo Sirainen  <tss@iki.fi>

	* src/plugins/push-notification/push-notification-driver-ox.c,
	src/plugins/push-notification/push-notification-event-
	mailboxcreate.c:
	push-notification: Log about unexpectedly failing mailbox functions.
	Found by Coverity.
	[30f4615efa10]

	* src/config/doveconf.c, src/plugins/push-notification/push-
	notification-driver-ox.c:
	Added NULL-check asserts to make static analyzer happier. These
	shouldn't be happening.
	[8d2f1c363853]

	* src/lib-storage/list/mailbox-list-index-notify.c:
	lib-storage: Removed unnecessary code - nnode is never NULL at this
	point. Found by Coverity.
	[5af9b91c38c0]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Removed unnecessary code - cur_mail is never NULL at this
	point. Found by Coverity.
	[83ccad730ea3]

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Fixed crash if imapc_host or imapc_password setting was
	missing. Instead of giving a nice error message about it. Found by
	Coverity.
	[a887dc2b3fb9]

	* src/lib-dict/dict-client.c:
	dict-client: Avoid crash if server disconnects during transaction
	commit. Found by Coverity.
	[e5164f14723f]

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

	* src/lib-http/http-server-connection.c:
	lib-http: Avoid compiler warnings in printf() strings. Cast fields
	explicitly as long, which should be large enough.
	[7010dd10ccc6]

	* src/imap-hibernate/imap-client.c, src/imap/imap-client-hibernate.c,
	src/imap/imap-master-client.c:
	Fixed compiler warnings in some systems. major() and minor() are
	unsigned ints nowadays, but in Solaris it's major_t. Cast them
	explicitly to avoid compiler warnings, and use unsigned longs
	instead of unsigned ints just in case.
	[ca0916045005]

	* src/lib-mail/test-message-id.c, src/lib-storage/list/mailbox-list-
	index-status.c, src/lib-storage/mail-namespace.c:
	Make static analyzer happier.
	[e97a8dd8d2b6]

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

2015-09-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-sql.c:
	dict-sql: If value isn't a hexblob as expected, log an error instead
	of killing the whole process.
	[fbff1e801300]

2015-09-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-cassandra.c:
	cassandra: copy&paste mistake - use monotonic timestamp generator,
	not server side..
	[8183663ad7c0]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Added "version" parameter to specify a protocol version.
	Mainly to avoid warnings logged when connecting to an older
	Cassandra server.
	[e92af8f36ed0]

	* src/config/doveconf.c:
	doveconf: Don't if _password value is empty, don't hide it.
	[bf64724225e9]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Use a local monotonic timestamp generator. Otherwise we
	run into race conditions on server side timestamps, which cause
	problems.
	[1e4d2306f1f3]

	* src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual-
	plugin.c, src/plugins/virtual/virtual-storage.c, src/plugins/virtual
	/virtual-storage.h, src/plugins/virtual/virtual-sync.c:
	virtual plugin: Auto-close mailboxes by hooking into backend's
	mailbox_open() This is a more reliable way of doing it. The earlier
	version had problems that all the backend mailboxes could be opened
	when doing a search on the virtual mailbox (for getting the GUID of
	the mailboxes).
	[055d1e2d894c]

	* src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-
	storage.h:
	virtual plugin: Fixed assert-crash when closing a virtual mailbox
	consisting of many real mailboxes.
	[4b5b8e6a4a32]

	* src/lib-dict/dict-client.c:
	dict-client: Verify that the correct transaction ID is returned for
	commit reply.
	[3599f7b9ea09]

	* src/plugins/quota/quota-dict.c:
	quota: Avoid triggering quota recalc in dict transaction commit
	callback. This mainly causes trouble if it again does more dict
	accesses.
	[168ca81df3fe]

	* src/lib-sql/driver-pgsql.c:
	pgsql: Avoid crash in multi-command transaction if one of the
	queries couldn't be sent to server.
	[68dd32223db7]

	* src/indexer/master-connection.c:
	indexer: Use a slightly different session ID than the session that
	requested indexing. Required to avoid "duplicate session ID" errors
	in stats process.

	Alternative would have been to change the stats protocol a bit and
	always send the service name along with session ID, and use those
	two together as the primary key. Maybe this could be done in future
	if we get more of these kind of processes.
	[e94781b25c83]

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

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

	* src/lib-dict/dict.c, src/lib-settings/settings-parser.c:
	Don't try to pass through void function's return value I wish gcc or
	clang complained about these.
	[0ae88b2978e0]

	* src/plugins/push-notification/push-notification-driver-dlog.c,
	src/plugins/push-notification/push-notification-drivers.c,
	src/plugins/push-notification/push-notification-event-flagsset.c,
	src/plugins/push-notification/push-notification-event-
	messageappend.c, src/plugins/push-notification/push-notification-
	event-messageexpunge.c, src/plugins/push-notification/push-
	notification-event-messageread.h, src/plugins/push-notification
	/push-notification-events-rfc5423.c, src/plugins/push-notification
	/push-notification-events.c:
	push-notification: Added missing newlines to end of files to prevent
	compiler warnings.
	[aa23e99981d7]

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

	* src/lib-sql/driver-pgsql.c:
	pgsql: Fixed committing a single sql_update_get_rows() transaction.
	The rows weren't being set.
	[beb3b8496b7d]

	* src/lib-sql/driver-pgsql.c:
	pgsql: Fixed committing multiple transactions. This code is quite
	horrible and could use a larger redesign. But it appears to be
	working for now..
	[9ceeb1a5c492]

	* src/lib-sql/driver-sqlpool.c:
	lib-sql: sqlpool needs to change transaction queries' transaction
	pointer Otherwise query->trans points to the sqlpool's transaction,
	while our backends want it to point to the backend's transaction.
	[59e4fcaa0f76]

2015-09-23  Timo Sirainen  <tss@iki.fi>

	* src/dict/main.c:
	dict: Include PID in the log prefix.
	[b8d2cbd6583b]

	* src/lib-dict/dict-client.c:
	dict-client: Improved broken iterate reply logging.
	[471383fa1284]

	* src/lib-dict/dict-client.c:
	dict-client: If dict iteration was aborted, the rest of the
	connection state became broken. We never continued skipping over the
	rest of the iteration, instead the iteration replies were treated as
	replies to the following commands.
	[bc9b61338985]

	* src/lib-dict/dict-client.c:
	dict-client: Catch more invalid protocol replies.
	[7363b1c77795]

	* src/lib-dict/dict-client.c:
	dict-client: Disconnect from server on unexpected errors.
	[891ff25af7ce]

	* .hgsigs:
	Added signature for changeset 60057d955db3
	[6bacd85b1a2e]

	* .hgtags:
	Added tag 2.2.19.rc1 for changeset 60057d955db3
	[58be55e8b7aa]

	* NEWS, configure.ac:
	Released v2.2.19.rc1.
	[60057d955db3] [2.2.19.rc1]

	* src/plugins/virtual/virtual-sync.c:
	virtual: The virtual index may have sometimes been unnecessarily
	deleted. Due to uninitialized broken_r value.
	[8408209309ec]

	* doc/example-config/conf.d/20-imap.conf:
	example-config: Added imap_hibernate_timeout
	[fd83572bb229]

2015-09-23  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/anvil/anvil-connection.c, src/anvil/main.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-
	token.c, src/auth/auth-worker-client.c, src/auth/auth-worker-
	server.c, src/auth/checkpassword-reply.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/mech-cram-md5.c,
	src/auth/mech-digest-md5.c, src/auth/mech-gssapi.c, src/auth/mech-
	scram-sha1.c, src/auth/mech-winbind.c, src/auth/mech.c, src/auth
	/passdb-blocking.c, src/auth/passdb-cache.c, src/auth/passdb-dict.c,
	src/auth/passdb-ldap.c, src/auth/passdb-pam.c, src/auth/passdb-
	sql.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth
	/password-scheme-scram.c, src/auth/userdb-blocking.c, src/auth
	/userdb-dict.c, src/auth/userdb-ldap.c, src/auth/userdb-prefetch.c,
	src/auth/userdb-sql.c, src/auth/userdb-static.c, src/auth/userdb.c,
	src/config/config-connection.c, src/config/config-parser.c,
	src/config/doveconf.c, src/dict/dict-commands.c, src/dict/dict-
	connection.c, src/director/director-test.c, src/director/test-user-
	directory.c, src/doveadm/doveadm-auth.c, src/doveadm/doveadm-
	director.c, src/doveadm/doveadm-dsync.c, src/doveadm/doveadm-dump-
	index.c, src/doveadm/doveadm-kick.c, src/doveadm/doveadm-mail.c,
	src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-pw.c, src/doveadm
	/doveadm-replicator.c, src/doveadm/doveadm-stats.c, src/doveadm
	/doveadm-who.c, src/doveadm/doveadm.c, src/doveadm/dsync/dsync-ibc-
	stream.c, src/doveadm/dsync/dsync-mailbox-tree.c, src/doveadm/dsync
	/test-dsync-mailbox-tree-sync.c, src/imap-hibernate/imap-hibernate-
	settings.c, src/imap-login/client-authenticate.c, src/imap-login
	/imap-proxy.c, src/imap-urlauth/imap-urlauth-client.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-fetch.c, src/imap/cmd-select.c,
	src/imap/cmd-store.c, src/imap/imap-client.c, src/imap/imap-
	commands.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/main.c, src/indexer/indexer-client.c,
	src/lda/main.c, src/lib-auth/auth-client-request.c, src/lib-auth
	/auth-master.c, src/lib-auth/auth-server-connection.c, src/lib-
	compression/test-compression.c, src/lib-dict/dict-client.c, src/lib-
	dict/dict-db.c, src/lib-dict/dict-file.c, src/lib-fs/fs-posix.c, src
	/lib-fs/fs-randomfail.c, src/lib-fts/test-fts-tokenizer.c, src/lib-
	index/mail-cache-lookup.c, src/lib-index/mail-index-sync-ext.c, src
	/lib-index/mail-index-sync.c, src/lib-index/mail-index-transaction-
	sort-appends.c, src/lib-index/mail-index-transaction.c, src/lib-
	index/mail-index-view-sync.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-lda/duplicate.c, src/lib-lda/mail-
	send.c, src/lib-mail/istream-header-filter.c, src/lib-
	mail/rfc2231-parser.c, src/lib-mail/test-message-header-decode.c,
	src/lib-master/master-auth.c, src/lib-master/master-login-auth.c,
	src/lib-master/master-service-settings.c, src/lib-master/master-
	service.c, src/lib-master/test-master-service-settings-cache.c, src
	/lib-otp/otp-parse.c, src/lib-settings/settings-parser.c, src/lib-
	sql/driver-mysql.c, src/lib-sql/driver-pgsql.c, src/lib-sql/sql-
	api.c, src/lib-ssl-iostream/iostream-ssl.c, src/lib-storage/index
	/dbox-common/dbox-file.c, src/lib-storage/index/dbox-common/dbox-
	mail.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-storage-rebuild.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-sync-rebuild.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-storage.c, src/lib-storage/index/index-thread-finish.c, src
	/lib-storage/index/index-thread.c, src/lib-storage/index/maildir
	/maildir-copy.c, src/lib-storage/index/maildir/maildir-filename-
	flags.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-sync-index.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-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-sync-parse.c, src/lib-
	storage/index/mbox/mbox-sync.c, src/lib-storage/index/shared/shared-
	storage.c, src/lib-storage/mail-namespace.c, src/lib-storage/mail-
	search-build.c, src/lib-storage/mail-search-register-imap.c, src
	/lib-storage/mail-storage-service.c, src/lib-storage/mail-storage.c,
	src/lib-storage/mail-user.c, src/lib-storage/mailbox-header.c, src
	/lib-storage/mailbox-uidvalidity.c, src/lib-storage/mailbox-watch.c,
	src/lib-test/test-common.c, src/lib/abspath.c, src/lib/array.c,
	src/lib/backtrace-string.c, src/lib/compat.c, src/lib/data-stack.c,
	src/lib/env-util.c, src/lib/failures.c, src/lib/file-dotlock.c,
	src/lib/home-expand.c, src/lib/hostpid.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/mmap-anon.c,
	src/lib/module-dir.c, src/lib/net.c, src/lib/process-title.c,
	src/lib/rand.c, src/lib/randgen.c, src/lib/restrict-access.c,
	src/lib/test-array.c, src/lib/test-base32.c, src/lib/test-base64.c,
	src/lib/test-buffer.c, src/lib/test-data-stack.c, src/lib/test-
	hash.c, src/lib/test-istream-concat.c, src/lib/test-istream-
	seekable.c, src/lib/test-istream-tee.c, src/lib/test-llist.c,
	src/lib/test-numpack.c, src/lib/test-ostream-file.c, src/lib/test-
	priorityq.c, src/lib/test-seq-range-array.c, src/lib/test-
	strfuncs.c, src/lib/test-strnum.c, src/lib/test-timing.c, src/lib
	/test-unichar.c, src/lib/timing.c, src/lib/unlink-old-files.c,
	src/lib/var-expand.c, src/lmtp/main.c, src/log/log-connection.c, src
	/login-common/client-common.c, src/login-common/login-proxy.c, src
	/login-common/main.c, src/login-common/sasl-server.c, src/login-
	common/ssl-proxy-gnutls.c, src/master/main.c, src/master/sd-
	daemon.c, src/master/service-monitor.c, src/master/service-
	process.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-
	lookup-dict.c, src/plugins/acl/acl-plugin.c, src/plugins/acl/acl-
	storage.c, src/plugins/expire/expire-plugin.c, src/plugins/expire
	/expire-set.c, src/plugins/fts-solr/fts-solr-plugin.c, src/plugins
	/fts-squat/fts-backend-squat.c, src/plugins/fts-squat/squat-trie.c,
	src/plugins/fts/fts-plugin.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/mail-log
	/mail-log-plugin.c, src/plugins/notify/notify-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-plugin.c, src/plugins/quota/quota-util.c,
	src/plugins/quota/quota.c, src/plugins/replication/replication-
	plugin.c, src/plugins/trash/trash-plugin.c, src/plugins/virtual
	/virtual-search.c, src/plugins/virtual/virtual-storage.c,
	src/plugins/virtual/virtual-sync.c, src/plugins/zlib/zlib-plugin.c,
	src/pop3-login/client-authenticate.c, src/pop3/main.c,
	src/pop3/pop3-client.c, src/pop3/pop3-settings.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.c:
	Remove now-unnecessary direct stdlib.h #includes.
	[9e120590e0ef]

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

2015-09-22  Michael M Slusarz  <michael.slusarz@dovecot.fi>

	* configure.ac, dovecot-config.in.in, src/plugins/Makefile.am,
	src/plugins/push-notification/Makefile.am, src/plugins/push-
	notification/push-notification-driver-dlog.c, src/plugins/push-
	notification/push-notification-driver-ox.c, src/plugins/push-
	notification/push-notification-drivers.c, src/plugins/push-
	notification/push-notification-drivers.h, src/plugins/push-
	notification/push-notification-event-flagsclear.c, src/plugins/push-
	notification/push-notification-event-flagsclear.h, src/plugins/push-
	notification/push-notification-event-flagsset.c, src/plugins/push-
	notification/push-notification-event-flagsset.h, src/plugins/push-
	notification/push-notification-event-mailboxcreate.c, src/plugins
	/push-notification/push-notification-event-mailboxcreate.h,
	src/plugins/push-notification/push-notification-event-
	mailboxdelete.c, src/plugins/push-notification/push-notification-
	event-mailboxdelete.h, src/plugins/push-notification/push-
	notification-event-mailboxrename.c, src/plugins/push-notification
	/push-notification-event-mailboxrename.h, src/plugins/push-
	notification/push-notification-event-mailboxsubscribe.c, src/plugins
	/push-notification/push-notification-event-mailboxsubscribe.h,
	src/plugins/push-notification/push-notification-event-
	mailboxunsubscribe.c, src/plugins/push-notification/push-
	notification-event-mailboxunsubscribe.h, src/plugins/push-
	notification/push-notification-event-message-common.h, src/plugins
	/push-notification/push-notification-event-messageappend.c,
	src/plugins/push-notification/push-notification-event-
	messageappend.h, src/plugins/push-notification/push-notification-
	event-messageexpunge.c, src/plugins/push-notification/push-
	notification-event-messageexpunge.h, src/plugins/push-notification
	/push-notification-event-messagenew.c, src/plugins/push-notification
	/push-notification-event-messagenew.h, src/plugins/push-notification
	/push-notification-event-messageread.c, src/plugins/push-
	notification/push-notification-event-messageread.h, src/plugins
	/push-notification/push-notification-event-messagetrash.c,
	src/plugins/push-notification/push-notification-event-
	messagetrash.h, src/plugins/push-notification/push-notification-
	events-rfc5423.c, src/plugins/push-notification/push-notification-
	events-rfc5423.h, src/plugins/push-notification/push-notification-
	events.c, src/plugins/push-notification/push-notification-events.h,
	src/plugins/push-notification/push-notification-plugin.c,
	src/plugins/push-notification/push-notification-plugin.h,
	src/plugins/push-notification/push-notification-triggers.c,
	src/plugins/push-notification/push-notification-triggers.h,
	src/plugins/push-notification/push-notification-txn-mbox.c,
	src/plugins/push-notification/push-notification-txn-mbox.h,
	src/plugins/push-notification/push-notification-txn-msg.c,
	src/plugins/push-notification/push-notification-txn-msg.h:
	Added push-notification plugin
	[1afdeb1cae62]

2015-09-22  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-peer.c:
	lib-http: client: Tunneled https peer addresses were not compared
	properly. The https_name field was ignored in that case.
	[3a942625aaa0]

	* src/lib-http/http-client-peer.c, src/lib-http/http-client-request.c:
	lib-http: client: Fixed bug that caused queues to be duplicated over
	time when host has multiple IPs. The peer address comparison did not
	account for the fact that the initial queue address has no IP
	assigned.
	[1b1dbfaf7daa]

	* src/lib-http/http-client-peer.c:
	lib-http: client: Improved hash function for peer addresses.
	[b4a1e4d085e2]

2015-09-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-user.c, src/lib-storage/mail-user.h,
	src/plugins/stats/stats-plugin.c:
	lib-storage: If stats plugin is enabled, set
	fs_settings.enable_timings=TRUE.
	[8166cb1a32ba]

	* src/lib-fs/fs-api.c:
	lib-fs: debug and enable_timing settings weren't being permanently
	copied to fs->set
	[5ceab761d8d6]

	* src/lib/test-timing.c, src/lib/timing.c, src/lib/timing.h:
	lib: Added timing_get_sum()
	[a1c9e2cc574b]

2015-09-22  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/imap/imap-state.c:
	imap: Fix typo in error message.
	[13252c581016]

	* src/auth/auth-request.c:
	auth: Remove redundant if
	[c3dfdf9a17a3]

2015-09-22  Timo Sirainen  <tss@iki.fi>

	* src/lib/test-timing.c:
	Make static analyzer happier.
	[46e5f4a5282d]

	* src/plugins/quota/quota.c:
	quota: Make sure the limit return value is initialized when
	quota_get_resource() returns 0 Later on a debug log message in
	quota_over_flag_check_root() was accessing the limit, which wasn't
	necessarily initialized.

	Also initialized value return value just as well to be safe.
	[e6b3170648c7]

	* src/lib-master/master-auth.c:
	lib-master: Slightly improved "process_limit reached?" error
	message.
	[11c1a5cf41f8]

	* src/plugins/virtual/virtual-storage.c:
	virtual plugin: Disable caching via mailbox list indexes. Otherwise
	e.g. STATUS can give stale replies.
	[587226389203]

	* src/lib-http/http-client-request.c:
	lib-http: Optimized http_client_request_send_payload() fix Badly
	copy&pasted my original fix, instead of noticing that Stephan's fix
	was slightly different. Probably shouldn't have made actual
	difference other than for performance.
	[0d3a438c8928]

	* src/lib-http/http-client-request.c:
	lib-http: Avoid crashes on failing
	http_client_request_send_payload() calls It HTTP server connection
	died, ioloop might not have anything to do anymore:

	Panic: file ioloop-epoll.c: line 187 (io_loop_handler_run_internal):
	assertion failed: (msecs >= 0)
	[052d8d7654f6]

	* src/lib/Makefile.am:
	Makefile: Added missing sort.h
	[fa306ce6c02a]

2015-09-21  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-timing.c, src/lib/timing.c, src/lib/timing.h:
	lib: timings - added quantiles Just sub-sample the stream. On the
	assumption that the samples come from one distribution, then any
	randomly selected subset will share the same distribution. Therefore
	the quantiles should be at approximately the same value.

	However, that's a big assumption, as there will almost certainly be
	time dependency, and periodicity (24hrs, 7 days).

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[2f492fac75b7]

	* src/lib-imap-client/imapc-msgmap.c, src/lib-storage/index/pop3c
	/pop3c-sync.c, src/lib-storage/list/mailbox-list-index-sync.c,
	src/lib/sort.h, src/lib/strfuncs.h, src/lib/test-timing.c,
	src/plugins/fts-squat/squat-uidlist.c:
	lib: extract sort-helpers into separate sort.h file The macro
	definition was nothing to do with strings, and we can put trivial
	common-type comparators here. They didn't need to be static inline,
	as they can never be inlined anyway, being only used via function
	pointers, but that preserves the closest equivalent to the current
	code.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1a5a45c80687]

2015-09-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-mailbox-size.h:
	lib-storage: Forgot to add index-mailbox-size.h to e29d2f7fe53f
	[6377910c19e3]

	* src/indexer/indexer-client.c, src/indexer/indexer-queue.c,
	src/indexer/indexer-queue.h, src/indexer/master-connection.c,
	src/indexer/worker-connection.c, src/plugins/fts/fts-indexer.c,
	src/plugins/fts/fts-storage.c:
	fts: Send session ID to indexer and indexer-worker for logging
	purposes.
	[250d85e784d1]

	* src/plugins/quota/quota-count.c, src/plugins/quota/quota.c:
	quota: Added "count" backend, which simply sums up mailboxes'
	vsizes. In a way this is similar to the simple "dirsize" backend,
	but much more efficient. As long as mailbox_list_index=yes, the
	quota can typically be looked up only by reading the
	dovecot.list.index* files.

	This backend enforces using quota_vsizes=yes setting to keep the
	performance good, because physical sizes don't have a similar
	optimized vsize header. There's also no especially good reason why
	this backend should support physical sizes - they were originally
	mainly used to allow quickly stat()ing Maildir files.
	[f205f3d56093]

	* src/lib-storage/index/Makefile.am, 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-mailbox-size.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-sync-index.c, src/lib-
	storage/index/mbox/mbox-sync.c, src/plugins/quota/quota-storage.c:
	lib-storage: Update mailbox vsize header on save/copy/expunge. This
	allows always efficiently looking up maiboxes' vsizes after they're
	initially calculated.

	The expunge handling is unfortunately done currently in quota
	handling code, so it works only if quota is enabled. Ideally this
	would be solved in v2.3 with some lib-storage core changes.
	[e29d2f7fe53f]

	* src/plugins/quota/quota-count.c, src/plugins/quota/quota-private.h,
	src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c:
	quota: Added quota_vsizes=yes setting to count quotas using virtual
	sizes instead of physical sizes. This doesn't work with all the
	quota backends.
	[7f26cfb08fcd]

	* src/plugins/quota/quota-storage.c:
	quota: Commit expunge transaction instead of rolling back. This
	likely won't make much of a difference, since it should have
	accessed only expunged mails. But it's a bit cleaner this way.
	[7ea1b001a82e]

	* src/plugins/quota/quota-private.h, src/plugins/quota/quota.c:
	quota: Code cleanup - extract default init() handling to
	quota_root_default_init()
	[ff5c34d62daf]

	* src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-
	commands.c:
	imap: If client disconnects, log the in-progress commands'
	input/output bytes.
	[e937b8e7a6a3]

	* src/imap/imap-client.c:
	imap: If client disconnects, log how long the in-progress commands
	were running.
	[12dda0010920]

	* src/imap/imap-commands.c:
	Compiler warning fix.
	[e39e5867fa7b]

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

	* src/lib/ioloop-private.h, src/lib/ioloop.c, src/lib/ioloop.h:
	lib: Added io_loop_get_wait_usecs()
	[1076679adf9f]

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

2015-09-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h:
	lib-index: Added mail_index_sync_have_any_expunges() This can be
	used to quickly check before mail_index_sync_begin() if there are
	likely to be any expunges that will be synced.
	[91f68c1b9b36]

2015-09-20  Stephan Bosch  <stephan@rename-it.nl>

	* src/auth/auth-request-handler.c, src/auth/mech.c, src/auth/mech.h:
	auth: The mechanisms configured using the auth_mechanisms setting
	were not enforced. The login service would check whether the
	mechanism is supported by auth, but auth performed no such check of
	its own. This means that any implemented mechanism was accessible
	from a login, even though was presumably disabled.
	[d482a8097362]

2015-09-20  Timo Sirainen  <tss@iki.fi>

	* src/lib/file-lock.c:
	lib: file_wait_lock*(): Improve the panic log message on EDEADLOCK.
	[4f4243794ba1]

2015-09-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h:
	lib-fs: Fixed compiling with some OSes
	[7cf44f5f32bd]

	* src/lib-fs/fs-api.c:
	lib-fs: timing_deinit()s was called too late - fs was already freed.
	[a20b72fd97d6]

	* src/lib-sql/driver-cassandra.c:
	cassandra: With debugging, log also how many rows were iterated.
	[7fc709a7b5a5]

	* src/lib-sql/driver-cassandra.c:
	cassandra: With debugging, log also how long result was used for
	before it was freed. This includes the time spent on SELECT query's
	iterator.
	[ffb377cccd22]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Don't crash if connection to Cassandra failed.
	[7ddc7d2a3036]

	* src/lib-sql/driver-cassandra.c:
	cassandra: If log_level=debug, log also how long the queries take.
	[a72a65771d8c]

2015-09-16  Timo Sirainen  <tss@iki.fi>

	* src/lib/file-lock.c:
	lib: file_wait_lock_error() assert-crashes now on EDEADLOCK It's
	always a bug and a crash can help debug it.
	[19576fdbf950]

	* 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/istream-fs-stats.c, src/lib-
	fs/istream-fs-stats.h:
	lib-fs: Track operation timing statistics if enable_timing setting
	is set.
	[d8c27e220815]

	* src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib
	/test-timing.c, src/lib/timing.c, src/lib/timing.h:
	lib: Added a simple timing.h API for tracking min/max/avg for
	events.
	[9add45266550]

2015-09-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-cassandra.c:
	cassandra: Added delete_consistency parameter.
	[602efd349b5c]

2015-09-13  Timo Sirainen  <tss@iki.fi>

	* src/lib/file-create-locked.c:
	lib: file_create_locked() may have leaked memory on some race
	conditions.
	[9ce9bd7fba83]

2015-09-12  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-mailbox-metadata.c:
	doveadm mailbox metadata list: Fixed not giving the prefix
	parameter.
	[29249b209deb]

2015-09-11  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-mailbox-metadata.c:
	doveadm mailbox attribute list: Prefix parameter was ignored.
	[80a70ccadb85]

	* src/lib-storage/mailbox-attribute.c:
	lib-storage: Fixed iterating attribute prefix that matched the
	attribute itself. So if attribute key was "foo", iterating "foo"
	returned garbage because it skipped over the trailing \0.
	[d190ee84158b]

	* src/master/service-listen.c:
	master: systemd's sd_listen_fds() error handling was wrong.
	[179477c59392]

2015-09-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-notify.c:
	lib-storage: Fixed crash in mailbox list index notifying caused by
	fa979ccfa34c
	[390d55d627a8]

2015-09-08  Phil Carmody  <phil@dovecot.fi>

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

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8687e24d9019]

2015-09-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/cydir/cydir-save.c, src/lib-
	storage/index/cydir/cydir-sync.c, src/lib-storage/index/maildir
	/maildir-save.c, src/lib-storage/index/maildir/maildir-sync.c, src
	/lib-storage/index/maildir/maildir-uidlist.c:
	lib-storage: Replaced some unlink()s with i_unlink*()s where we
	could. This changes some mail_storage_set_critical() calls to
	i_error()s, but because these unlink() failures don't actually fail
	the operation it doesn't matter.
	[11e13b7df9f6]

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

	* src/auth/auth-token.c, src/doveadm/doveadm-sis.c, src/doveadm/dsync
	/dsync-brain.c, src/doveadm/dsync/dsync-ibc-stream.c,
	src/lda/main.c, src/lib-compression/test-compression.c, src/lib-fs
	/fs-posix.c, src/lib-imap-client/imapc-client.c, src/lib-imap-
	urlauth/imap-urlauth-connection.c, src/lib-index/mail-cache-
	compress.c, src/lib-index/mail-cache.c, src/lib-index/mail-index-
	strmap.c, src/lib-index/mail-index-transaction.c, src/lib-index
	/mail-index.c, src/lib-index/mailbox-log.c, src/lib-index/test-mail-
	transaction-log-append.c, src/lib-lda/duplicate.c, src/lib-lda/smtp-
	client.c, src/lib-mail/test-istream-attachment.c, src/lib-master
	/mountpoint-list.c, src/lib-storage/index/dbox-common/dbox-file-
	fix.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-single/sdbox-file.c, src/lib-storage/index/index-
	mail-binary.c, src/lib-storage/index/maildir/maildir-keywords.c, src
	/lib-storage/index/maildir/maildir-save.c, src/lib-
	storage/index/maildir/maildir-uidlist.c, src/lib-storage/index/pop3c
	/pop3c-client.c, src/lib-storage/mailbox-uidvalidity.c, src/lib
	/file-copy.c, src/lib/file-create-locked.c, src/lib/file-dotlock.c,
	src/lib/iostream-rawlog.c, src/lib/iostream-temp.c, src/lib/istream-
	seekable.c, src/lib/net.c, src/lib/safe-mkstemp.c, src/lib/test-
	istream-seekable.c, src/lib/test-ostream-file.c, src/lib/unlink-old-
	files.c, src/lmtp/commands.c, src/login-common/ssl-proxy-gnutls.c,
	src/master/main.c, src/master/master-settings.c, src/master/service-
	listen.c, src/plugins/acl/acl-backend-vfile-acllist.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-expunge-
	log.c, src/plugins/mail-filter/mail-filter-plugin.c,
	src/plugins/quota/quota-maildir.c, src/ssl-params/ssl-params.c:
	Replaced unlink() calls with i_unlink*() wherever possible.
	[fefaa6d09a81]

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

	* src/lib-storage/index/index-storage.c:
	lib-storage: Mailbox deletion shouldn't fail when trying to delete
	read-only attributes.
	[962ff5ebd807]

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

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

2015-09-08  Stephan Bosch  <stephan@rename-it.nl>

	* doc/example-config/conf.d/10-mail.conf, doc/example-
	config/conf.d/15-mailboxes.conf:
	example-config: 10-mail.conf: Added example configuration for the
	new settings relating to IMAP METADATA.
	[4b581d735292]

	* doc/example-config/conf.d/10-mail.conf, doc/example-
	config/conf.d/15-mailboxes.conf:
	example-config: Added more detailed documentation for mailbox
	settings.
	[14964e7e91b9]

	* src/lib/test-strnum.c:
	lib: strnum: Fixed test suite failure on 32 bit systems.
	[e4438e342208]

2015-09-08  Timo Sirainen  <tss@iki.fi>

	* src/plugins/acl/acl-backend.c:
	acl: Log which ACL groups are enabled with mail_debug=yes
	[500e8dd7a389]

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

2015-04-25  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-storage/mail-storage-settings.c, src/lib-storage/mail-
	storage-settings.h, src/lib-storage/mailbox-attribute-internal.c,
	src/lib-storage/mailbox-attribute-internal.h:
	imap: METADATA: Implemented mailbox and server comment entries and
	the server admin entry.
	[793bf4ab439f]

	* src/lib-storage/Makefile.am, src/lib-storage/mailbox-attribute-
	internal.c, src/lib-storage/mailbox-attribute-internal.h, src/lib-
	storage/mailbox-attribute.c:
	imap: Implemented /private/specialuse METADATA entry for SPECIAL-USE
	capability.
	[c4932f3f4acd]

2015-09-08  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/test-strnum.c:
	lib: Added some tests for the new strnum _hex() and _oct() function
	variants.
	[d85bf97ab8b7]

2015-09-08  Timo Sirainen  <tss@iki.fi>

	* src/lib/sendfile-util.c:
	lib: Added assert to Solaris sendfile() return value.
	[f6dd24658fb1]

	* src/doveadm/doveadm-print-tab.c:
	doveadm: Fixed hiding titles' tabs with tab formatter (-h -f tab)
	[b8f09586ab33]

	* src/config/config-request.c, src/lib-storage/mail-search-args-
	simplify.c:
	Make static analyzer happier.
	[06b884831f25]

	* src/lib-charset/charset-iconv.c:
	lib-charset: Added more asserts to checking iconv() results.
	[9fdbb3b220ec]

	* src/lib-charset/test-charset.c:
	lib-charset: Updated test-charset unit test to check for iconv()
	E2BIG result
	[93991734ae75]

	* src/lib-storage/list/mailbox-list-index-notify.c:
	lib-storage: Mailbox list notifications didn't work for INBOX.
	Because of some earlier optimizations that changes to INBOX aren't
	written to dovecot.list.index.log file.
	[f600285c3df2]

2015-09-07  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-notify.c, src/lib-storage/list/mailbox-list-index-
	notify.c, src/lib-storage/mailbox-list-notify.h:
	Mailbox list notify API changed to return multiple events at once.
	This fixes some issues where a single event could actually trigger
	multiple different kinds of events.
	[fa979ccfa34c]

	* src/imap/cmd-notify.c, src/imap/imap-notify.h:
	imap: NOTIFY (SUBSCRIPTIONS) assert-crashed when subscriptions
	hadn't been refreshed.
	[73acc7075146]

	* src/lib-storage/index/istream-mail.c, src/lib/istream-failure-at.c,
	src/lib/istream-hash.c, src/lib/istream-timeout.c:
	Various passthrough istreams didn't preserve readable_fd.
	[bb80b907a116]

2015-07-16  Sebastian Wiedenroth  <sebastian.wiedenroth@skylime.net>

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

2015-09-07  Timo Sirainen  <tss@iki.fi>

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

	* src/lib-storage/index/index-mail-binary.c:
	lib-storage: Fixed assert-crash when reading binary streams.
	[865405fce42e]

	* src/doveadm/doveadm-auth.c:
	doveadm: Added new "auth login" command to simulate an actual client
	login. This performs both passdb and userdb lookups and prints their
	results.
	[caaaa7c12edd]

	* src/auth/auth-request.c:
	auth: If userdb lookup was found from auth cache, don't clear the
	earlier userdb fields.
	[b7f7ad2bc4d0]

	* src/auth/auth-request.c:
	auth: If multiple userdbs are used, default_fields was ignored for
	all but the first one.
	[f3ed414944b8]

	* src/director/director-settings.c, src/director/director-settings.h,
	src/director/director.c:
	director: Added director_user_kick_delay setting. This replaces the
	hardcoded 2 seconds delay. This setting specifies how long to wait
	for after user has been kicked from all directors before letting the
	user login to the new server. This timeout should be large enough
	that the user's existing processes in the old backend should be
	finished.
	[3ebba506c2c7]

	* src/login-common/login-proxy-state.h, src/login-common/login-
	proxy.c, src/login-common/login-settings.c, src/login-common/login-
	settings.h:
	login proxy: Added delayed disconnection of clients on server mass-
	disconnect. login_proxy_max_disconnect_delay setting (default 0 =
	disabled) controls for how long time period the disconnections are
	spread to. The idea behind this is to avoid load spikes due to
	client reconnections when a backend server dies or is restarted.
	[2eeef1619161]

	* src/auth/auth.c:
	auth: Ignore first passdbs that contain skip=unauthenticated. They
	can never match anything.
	[757a566a0d1c]

	* src/lib-storage/mailbox-attribute.c, src/lib-storage/mailbox-
	attribute.h:
	lib-storage: Added mailbox_attribute_register_internals() Just for
	making it easier to register multiple attributes.
	[2e420ceaee1d]

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

	* src/lib-storage/index/index-attribute.c, src/lib-storage/mail-
	storage-private.h, src/lib-storage/mailbox-attribute.c:
	lib-storage: Allow set/get for Dovecot-private attributes via
	internal attributes. This allows registering attributes with
	MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT prefix and having them be
	get/set via dict, instead of failing them.
	[5d3c7d882bfb]

	* src/lib-storage/mailbox-attribute.c, src/lib-storage/mailbox-
	attribute.h:
	lib-storage: Added MAIL_ATTRIBUTE_INTERNAL_FLAG_CHILDREN This also
	adds the key to get() and set() functions, so they can know exactly
	what key is wanted to be accessed.
	[31f8e377b632]

2015-04-25  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-storage/mail-storage.c, src/lib-storage/mailbox-attribute-
	private.h, src/lib-storage/mailbox-attribute.c, src/lib-storage
	/mailbox-attribute.h:
	mail-storage: Added registration API for builtin mailbox attributes.
	[a2e28ee1a673]

2015-09-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-user.c, src/lib-storage/mail-user.h:
	lib-storage: mail_user_init() wasn't always expanding %h correctly
	to settings. This mainly affected users autocreated for accessing
	shared mailboxes.
	[ae159e69cb6f]

	* src/lib-storage/mailbox-attribute.h:
	lib-storage: Updated MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() to
	not allow private server attributes.
	[1a49a8d12fe0]

	* dovecot-config.in.in, dovecot.m4:
	dovecot.m4: Added LIBDOVECOT_ACL_INCLUDE
	[74fb129251e2]

	* src/auth/auth-request.c:
	auth: Fixed passdb skip_password_check / result_success=continue-
	fail handling If passdb returned success, but result_success
	=continue-fail, it means that the authentication didn't succeed. So
	we still want to check the password again and in general treat the
	request as unauthenticated (especially for the passdb { skip }
	setting).

	So the current logic means that there are 2 ways for the request to
	be treated as authenticated and skipping any password checking:

	1) passdb lookup succeeding, with result_success=continue, continue-
	ok, return or return-ok

	2) passdb lookup not succeeding, with result_failure=continue-ok or
	return-ok

	It's a bit questionable though if 2) should be allowed.
	[43723e4bf750]

	* src/lib-imap-storage/imap-metadata.c:
	imap: Don't allow IMAP METADATA to access Dovecot's private server
	attributes.
	[0ff2440bb1aa]

	* src/auth/auth-request.c:
	auth: Aborting auth request didn't abort a pending proxy DNS lookup.
	[a4c13ab4647b]

2015-09-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail-
	storage-service.c, src/lib-storage/mail-user.c, src/lib-storage
	/mail-user.h:
	lib-storage: Store pointer to mail_storage_service_user to mail_user
	if it exists.
	[e5527c5bee2f]

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	lib-storage: Added mail_storage_service_user_get_service_ctx()
	[5d583816b7c9]

2015-09-04  Timo Sirainen  <tss@iki.fi>

	* src/plugins/acl/Makefile.am:
	acl: Install most of the header files.
	[ef68e77f7e71]

	* src/plugins/acl/acl-api.c:
	acl: acl_object_list_next() should return -1 if acl refreshing
	failed earlier.
	[48684e4af247]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: If remote disconnects, log the last sent/recv state.
	[3abdcbde7f39]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: If we disconnect with I/O timeout, log the last sent/recv
	state.
	[3ab749f1ed71]

	* src/login-common/login-proxy.c:
	login proxy: Code cleanup - separate login_proxy_free_final()
	[574ba1f25346]

	* src/login-common/login-proxy.c:
	login proxy: Always keep proxy->state_rec available.
	[1a4445b58279]

	* src/login-common/login-proxy-state.c, src/login-common/login-
	proxy.c:
	login proxy: Added asserts to track that num_waiting_connections are
	correct.
	[c98fbc17fa4e]

	* src/login-common/login-proxy.c:
	login proxy: Small code cleanup
	[6b901abc1819]

2015-09-03  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Assert-crashfix Fixes:

	Panic: file mail-storage.c: line 1897 (mailbox_save_alloc):
	assertion failed: (!ctx->unfinished)
	[5c8be83ada6c]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Handle async queries internally - don't use sql pooling
	code. There's no need to create multiple Cassandra instances, since
	the single instance is capable of doing multiple asynchronous
	requests in parallel.
	[5d0bcb628c88]

	* src/lib-storage/index/index-storage.c:
	lib-storage: Another fix to using index_storage_mailbox_close()
	without an opened view. Calling mail_index_close() without
	mail_index_open() caused it to assert-crash.
	[edc402c28fe7]

	* src/dict/dict-commands.c, src/dict/dict-commands.h, src/dict/dict-
	connection.c, src/dict/dict-connection.h:
	dict: Various reference counting and other fixes related to using
	freed memory.
	[bed46aaaa769]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Crashfix in certain situation.
	[f116e41d868d]

	* src/lib-storage/index/index-storage.c:
	lib-storage: Allow index_storage_mailbox_close() to be called
	without an opened view. Some failing mailbox_open() call may leave
	it in such a state.
	[83fe8ab89c0e]

	* src/director/doveadm-connection.c, src/doveadm/doveadm-director.c:
	doveadm director update command added. The difference to "doveadm
	director add" is that if the IP doesn't already exist, it's not
	added.
	[7ac9ec913a39]

	* src/config/config-request.c, src/lib-settings/settings-parser.c, src
	/lib-settings/settings-parser.h, src/master/master-settings.c,
	src/replication/aggregator/aggregator-settings.c:
	Removed SET_IN_PORT_ZERO - SET_IN_PORT now always allows zeros as
	well. A zero in all the port settings means that the port is
	disabled, which is also the default. So it shouldn't be an error to
	explicitly set it to zero in the config file.
	[f17065f4f9f2]

2015-09-03  Phil Carmody  <phil@dovecot.fi>

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

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[29e0a3ea7497]

2015-08-31  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-sync.1.in:
	man: doveadm-sync.1: Added description for option `-T secs'.
	[f313cda93533]

2015-09-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-sql.c:
	dict-sql: Fixed iteration with blob fields.
	[da570231062f]

	* src/lib-dict/dict-sql-settings.c, src/lib-dict/dict-sql-settings.h,
	src/lib-dict/dict-sql.c:
	dict-sql: Implemented support for binary fields. Example:

	map { pattern = shared/blobtest/$key table = blobtest value_field =
	value value_hexblob = yes

	 fields { key = ${hexblob:key} } }

	Now you can access both field and value as hex data. For example:

	doveadm dict set proxy::sqldict shared/blobtest/746573746b6579
	7465737476616c7565

	This adds "testkey" and "testvalue" to key and value fields blobs.
	[0453c466c601]

	* src/lib-sql/driver-cassandra.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-private.h, src/lib-sql/sql-api.c, src
	/lib-sql/sql-api.h:
	lib-sql: Implemented sql_escape_blob()
	[113f4e32cb19]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Implemented support for binary values.
	[5119a85795f7]

	* src/doveadm/doveadm-dict.c:
	doveadm dict iter: Added -V parameter to return only keys.
	[d6d3bd868bd4]

	* src/lib-dict/dict-sql.c:
	dict-sql: Fixed iteration with DICT_ITERATE_FLAG_NO_VALUE
	[7ccff6d5dd1b]

	* src/lib-dict/dict-client.c:
	dict-client: Prefix relative socket paths with base_dir.
	[54c4e1ed387a]

	* src/dict/dict-settings.c:
	dict: Added dict-async service. This allows running separate dict
	processes with separate settings for async and non-async backends.
	[7378ab8e3b4d]

	* src/lib-dict/dict-sql.c:
	dict-sql: Added support for async operations.
	[0d04ac4d43ca]

	* src/dict/dict-commands.c, src/dict/dict-commands.h, src/dict/dict-
	connection.c, src/dict/dict-connection.h:
	dict: Use the new async APIs for everything. If the dict backend
	supports async operations, this means that dict service can now be
	configured with client_count>1.
	[3de8de46f4a8]

	* src/lib-dict/dict-client.c, src/lib-dict/dict-file.c, src/lib-dict
	/dict-fs.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:
	lib-dict: Added async API for lookup and iteration.
	[d40d7f24ffcf]

	* src/lib-dict/dict-sql.c:
	dict-sql: Code cleanup - added
	sql_dict_transaction_has_nonexistent()
	[dd083fddda5e]

	* src/lib-dict/dict-sql.c:
	dict-sql: Code cleanup - use a common sql_dict_transaction_free()
	[cb6d6d861ffa]

	* src/lib-dict/dict-sql.c:
	dict-sql: Fixed memory leak when committing/rollbacking unchanged
	transaction.
	[5c444f10cef9]

	* src/lib-dict/dict-sql.c:
	dict-sql: Code cleanup - separated SQL query building function from
	sending it.
	[46eb03d95feb]

	* src/lib-dict/dict-client.h:
	lib-dict: Code cleanup - give name for enum dict_protocol_cmd/reply
	[80f840616abb]

	* src/lib-sql/driver-cassandra.c:
	lib-sql: Mark Cassandra driver as pooled. Otherwise all the
	asynchronous operations will assert-crash, since all the auto-
	connecting code is in the sqlpool code.
	[3cf6441adf12]

	* src/lib-sql/driver-cassandra.c, src/lib-sql/driver-pgsql.c:
	lib-sql: Debugging help - Added assert before clearing
	sql_result.callback. If result is unrefed too many times, this still
	allows accessing the callback from a debugger.
	[0770ab82703d]

	* src/lib-sql/driver-cassandra.c, src/lib-sql/driver-pgsql.c:
	lib-sql: sql_result.free() should never be reached from the query
	callback. This code was probably added before sql_result
	refcounting.
	[97ff15e9a7fd]

2015-09-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: If connect() fails immediately, log an error and
	retry the next IP. Only if all IPs fail return a full failure. This
	is mainly intended to skip IPv6 addresses when IPv6 connectivity
	doesn't work.
	[e157d13efac9]

	* src/auth/auth-request.c:
	auth: Added ":protected" suffix to passdb and userdb field names.
	This means that if the field is set only if it hasn't already been
	set. Usually an earlier passdb/userdb would have set the field and
	this is setting a default (e.g. per-user settings override per-
	domain settings).
	[c0e61e4f47ec]

2015-08-31  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/Makefile.am, src/lib-fs/fs-api-private.h, src/lib-fs/fs-
	api.c, src/lib-fs/fs-dict.c:
	lib-fs: Added "dict" backend, which is a wrapper to using lib-dict.
	[6adcfddd354d]

	* src/imap-hibernate/imap-client.c, src/imap-hibernate/imap-client.h,
	src/imap-hibernate/imap-hibernate-client.c, src/imap/imap-client-
	hibernate.c, src/imap/imap-master-client.c:
	imap-hibernate: Use sockets' st_dev and st_ino to verify that the
	passed fd is correct.
	[55cab04ef2af]

	* src/lib/strnum.c, src/lib/strnum.h:
	lib: Added str_to_ino()
	[9dd0f155731c]

	* src/imap/cmd-notify.c:
	imap: NOTIFY SET STATUS didn't send HIGHESTMODSEQ in STATUS reponses
	when needed.
	[238a34ad1ab0]

	* src/login-common/sasl-server.c:
	*-login: mail_max_userip_connections=0 was broken by f8ab4f979e92
	[8f96bbd1691f]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Changed default consistency levels to local-quorum. It is
	a much safer default than "one".
	[7648b127ca37]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Split consistency setting to read_consistency and
	write_consistency.
	[c33868915764]

2015-08-31  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-filter-contractions.c, src/lib-fts/test-fts-
	filter.c:
	lib-fts: Add missing "j'" to French contractions.
	[7316c0b61cb9]

2015-08-31  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-settings/settings-parser.c:
	Earlier in_port_t fix was ineffective due to one small detail. The
	new SET_IN_PORT_ZERO did not actually use the new
	net_str2port_zero() function.
	[08b29b4b5e96]

2015-08-31  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Add UTF-8 unit test for lowercase filter.
	[b5dfafc0b235]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-contractions.c, src
	/lib-fts/fts-filter-private.h, src/lib-fts/fts-filter.c, src/lib-fts
	/fts-filter.h, src/lib-fts/test-fts-filter.c:
	lib-fts: Add prefixing contraction filter. Filters away prefixing
	contracted words, e.g. "l'homme" -> "homme". Tokens to be filtered
	must be lower case. Only supports French in this initial version.
	[4b8c7440cf4f]

2015-08-30  Timo Sirainen  <tss@iki.fi>

	* src/replication/aggregator/aggregator-settings.c:
	aggregator: Allow replicator_port=0 setting (fix to previous
	in_port_t changes)
	[e1c7fcd62813]

2015-08-30  Stephan Bosch  <stephan@rename-it.nl>

	* src/config/config-request.c, src/lib-settings/settings-parser.c, src
	/lib-settings/settings-parser.h, src/lib/net.c, src/lib/net.h,
	src/master/master-settings.c:
	Earlier in_port_t fix created problems with service listener
	configuration. Listeners are disabled with port=0, which was not
	allowed anymore.
	[c53ccafc4a8e]

2015-08-30  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service.c:
	lib-master: Compiler warning fix
	[512a4792d9f5]

2015-04-25  Stephan Bosch  <stephan@rename-it.nl>

	* 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-queue.c, src/lib-http/http-
	client-request.c, src/lib-http/http-client.h:
	http-client: Added support for using an HTTP proxy running on a unix
	socket.
	[8f8f768937f5]

2015-08-29  Stephan Bosch  <stephan@rename-it.nl>

	* configure.ac, src/anvil/anvil-connection.c, src/auth/checkpassword-
	reply.c, src/doveadm/doveadm-penalty.c, src/doveadm/doveadm-who.c,
	src/doveadm/dsync/dsync-ibc-stream.c, src/lib-dict/dict-file.c, src
	/lib-fs/fs-posix.c, src/lib-otp/otp-parse.c, src/lib-settings
	/settings-parser.c, src/lib-storage/index/dbox-common/dbox-file.c,
	src/lib-storage/index/dbox-common/dbox-mail.c, src/lib-
	storage/index/maildir/maildir-uidlist.c, src/lib-storage/mailbox-
	uidvalidity.c, src/lib/compat.c, src/lib/compat.h, src/lib/rand.c,
	src/lib/var-expand.c, src/log/log-connection.c, src/login-common
	/sasl-server.c, src/master/main.c, src/plugins/quota/quota-dict.c,
	src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-util.c,
	src/util/maildirlock.c:
	Removed all invocations of strtoll() and friends.
	[f8ab4f979e92]

	* src/lib/strnum.c, src/lib/strnum.h:
	strnum: Implemented many more numeric string parsing functions.
	Created macros for most of the implementation to avoid further code
	duplication.
	[de73e7121676]

	* src/auth/db-ldap.c, src/auth/mech-digest-md5.c, src/auth/passdb-
	blocking.c, src/dict/dict-connection.c, src/director/director-
	connection.c, src/doveadm/doveadm-dump-index.c, src/doveadm/doveadm-
	who.c, src/imap-login/client.c, src/lib-dict/dict.h, src/lib-master
	/master-service.c, src/lib-sql/driver-mysql.c, src/lib-sql/driver-
	pgsql.c, src/lib-storage/mail-storage-service.c,
	src/lmtp/commands.c, src/login-common/client-common-auth.c,
	src/master/main.c, src/util/script.c:
	Removed all invocations of atoi().
	[f78e38c7cba2]

	* src/auth/auth-request.c, src/auth/auth-request.h, src/auth/passdb-
	imap.c, src/config/config-request.c, src/director/director-
	connection.c, src/director/director-host.c, src/director/director-
	host.h, src/director/director-settings.c, src/director/director-
	settings.h, src/director/director-test.c, src/director/director.c,
	src/director/director.h, src/director/doveadm-connection.c,
	src/director/login-connection.c, src/director/main.c, src/doveadm
	/client-connection.h, src/doveadm/doveadm-auth.c, src/doveadm
	/doveadm-director.c, src/doveadm/doveadm-mail-server.c, src/doveadm
	/doveadm-settings.c, src/doveadm/doveadm-settings.h, src/doveadm
	/doveadm-util.c, src/doveadm/doveadm-util.h, src/doveadm/doveadm-
	zlib.c, src/doveadm/server-connection.c, src/imap-hibernate/imap-
	client.h, src/imap-hibernate/imap-hibernate-client.c, src/imap-
	login/client.c, src/imap-urlauth/imap-urlauth-worker-settings.c, src
	/imap-urlauth/imap-urlauth-worker-settings.h, src/imap/imap-client-
	hibernate.c, src/imap/imap-master-client.c, src/imap/imap-
	settings.c, src/imap/imap-settings.h, src/lib-auth/auth-client.h,
	src/lib-auth/auth-master.h, src/lib-dict/dict-memcached-ascii.c, src
	/lib-dict/dict-memcached.c, src/lib-dict/dict-redis.c, src/lib-http
	/http-client-connection.c, src/lib-http/http-server-connection.c,
	src/lib-http/test-http-server.c, src/lib-imap-client/imapc-client.h,
	src/lib-imap-urlauth/imap-urlauth-private.h, src/lib-imap-urlauth
	/imap-urlauth.h, src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-
	client.h, src/lib-lda/smtp-client.c, src/lib-master/master-service-
	haproxy.c, src/lib-master/master-service.h, src/lib-master/service-
	settings.h, src/lib-settings/settings-parser.c, src/lib-settings
	/settings-parser.h, src/lib-sql/driver-mysql.c, src/lib-
	storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc
	/imapc-settings.h, src/lib-storage/index/pop3c/pop3c-client.h, src
	/lib-storage/index/pop3c/pop3c-settings.c, src/lib-
	storage/index/pop3c/pop3c-settings.h, src/lib-storage/mail-storage-
	service.h, src/lib/connection.c, src/lib/connection.h, src/lib/fd-
	close-on-exec.c, src/lib/iostream-rawlog.c, src/lib/net.c,
	src/lib/net.h, src/lib/uri-util.c, src/lmtp/client.h,
	src/lmtp/commands.c, src/lmtp/lmtp-proxy.h, src/login-common/client-
	common-auth.c, src/login-common/client-common.h, src/login-common
	/login-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/master/master-settings.c,
	src/master/service-listen.c, src/master/service.c,
	src/pop3-login/client.c, src/replication/aggregator/aggregator-
	settings.c, src/replication/aggregator/aggregator-settings.h,
	src/replication/aggregator/replicator-connection.c,
	src/replication/aggregator/replicator-connection.h:
	Changed type of internet port values to in_port_t everywhere.
	Created special SET_IN_PORT setting type for internet port values.
	Created net_str2port() for parsing internet port values. Removed
	several atoi() invocations in the process.
	[aabfe48db1cf]

	* src/lib/ioloop-epoll.c:
	ioloop-epoll: Fix fatal epoll_wait() error occurring when there are
	only ios with no fd.
	[f7c1c1dac689]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Added proper handling of 408 response status. This
	is treated as a special server connection close event, rather than a
	response to the last issued request.
	[a8e01e385e90]

2015-08-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.c,
	src/lib-storage/mail-user.h:
	lib-storage: Added %{userdb:*} expansion to mail settings.
	[65b88128c7eb]

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	lib-settings: Added settings_var_expand_with_funcs()
	[224f0f61d03f]

	* src/lib/test-var-expand.c, src/lib/var-expand.c:
	lib: If var_expand_with_funcs() function returns NULL, it should be
	treated the same as "" The previous behavior was to return
	"%{foo:bar}" as "foo:bar}".
	[061c21b5c5e4]

	* src/login-common/client-common.c, src/login-common/client-common.h,
	src/login-common/sasl-server.c:
	*-login: Added %{passdb:*} fields to login_log_format_elements
	[170f2b9f4977]

2015-08-27  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Support giving multiple filename parameters.
	[17220b7e1378]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync
	/dsync-mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h:
	dsync: Include mailboxes' full path in debug messages.
	[7ecf4d436a46]

	* src/lib-storage/list/mailbox-list-index.c:
	imapc: Don't crash with mailbox_list_index=yes
	[a55208061542]

	* src/lib/Makefile.am, src/lib/ioloop-private.h, src/lib/ioloop.c,
	src/lib/test-ioloop.c, src/lib/test-lib.c, src/lib/test-lib.h:
	lib: Try fixing ec6e672a6e32 (ioloop timeout fixing) Previous code
	was broken at least when moving a timeout between ioloops. This is
	now tested and works.
	[5423ae859f15]

	* src/doveadm/doveadm-dsync.c:
	dsync: Fixed running with tcp/tcps destination.
	[84b45106e143]

	* src/doveadm/dsync/dsync-brain-mails.c:
	dsync: Fixed another crash with recent end-of-list changes.
	[d6df577504cf]

	* src/lib/Makefile.am, src/lib/ioloop-private.h, src/lib/ioloop.c,
	src/lib/test-lib.c, src/lib/test-lib.h:
	Reverted ec6e672a6e32 for now due to some bugs.
	[79ad598d7856]

	* src/doveadm/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, src/doveadm/dsync/dsync-mailbox-tree-sync.c,
	src/doveadm/dsync/dsync-mailbox-tree.h:
	dsync: Added -D parameter to disable mailbox renaming. The renaming
	logic is annoyingly complex and there are some bugs left in it. With
	this parameter renames are never even attempted, but instead a
	rename would be done (slowly) with mailbox delete + create + fill.

	Although with imapc protocol mailbox renames are rarely detected
	anyway.
	[3fc9658c9712]

	* src/doveadm/doveadm-dsync.c:
	dsync: Fixed again waiting for remote process wait to die. We can't
	rely on stderr getting closed. It doesn't happen if the remote
	process crashes. Now waiting for SIGCHLD in ioloop should solve this
	and still log all the error messages at exit.
	[42d4da9ee7a9]

2015-08-27  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/Makefile.am, src/lib/ioloop-private.h, src/lib/ioloop.c,
	src/lib/test-ioloop.c, src/lib/test-lib.c, src/lib/test-lib.h:
	ioloop: Delay actual start of a new normal timeout until the next
	io_loop_run() cycle. This makes sure that timeouts will not expire
	before they get a chance to run.
	[ec6e672a6e32]

2015-08-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-list.c, src/lib-
	storage/index/imapc/imapc-save.c, src/lib-storage/index/imapc/imapc-
	storage.c:
	imapc: Fixed handling escape-char The current code should now handle
	all kinds of mailbox names correctly, including:

	~/foo %7e/bar
	[f363a7665a14]

	* src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox-
	list.c:
	lib-storage: mailbox_list_[un]escape_name() can now be called
	globally
	[0147397d9504]

	* src/doveadm/dsync/dsync-brain-mails.c:
	dsync: Earlier end-of-list change broke single-process dsync.
	[ac062c048240]

	* src/doveadm/doveadm-dsync.c:
	dsync: Make sure we print all the stderr output from remote
	processes at deinit. Earlier the final messages may have been lost,
	especially if debug logging was enabled.
	[80efae622dc1]

	* src/doveadm/doveadm-dsync.c, src/doveadm/dsync/dsync-ibc-stream.c,
	src/doveadm/dsync/dsync-ibc.h:
	dsync: Added -T parameter to specify the I/O stall timeout.
	[11b107c8dc05]

	* src/doveadm/dsync/dsync-brain-mails.c:
	dsync: If mailbox export deinit failed, the failure state may not
	have reached mailbox importer. The "end of list" was sent to the
	importer side dsync before export noticed the failure. This could
	have caused import to complain about missing mails.
	[adb69a13bc66]

	* src/doveadm/dsync/dsync-brain-mails.c:
	dsync: Added assert to make sure end-of-list isn't sent when brain
	has already failed.
	[156aed1fc0fc]

2015-08-25  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-client-hibernate.c:
	imap: If mailbox state couldn't be exported for hibernation, log
	also the mailbox name.
	[5220d361871e]

	* src/login-common/client-common.c, src/login-common/client-common.h:
	login_log_format_elements: Added %{listener} variable to expand to
	the listener socket name.
	[a919414e68d2]

	* doc/example-config/conf.d/10-mail.conf:
	example-config: Updated mail_attribute_dict comment
	[5f843b7da393]

	* src/imap/imap-state.c:
	imap: Fail silently if selected mailbox format doesn't support
	GUIDs.
	[eeefd9b14eec]

	* src/imap/imap-client-hibernate.c:
	imap: Fixed hibernation to work with non-TCP connections. Mainly
	meaning UNIX socket connections from login processes, which are
	proxying TLS connections.
	[c3bea195a020]

	* src/lib-http/http-client-peer.c:
	lib-http: Added more debug logging. Patch by Stephan Bosch.
	[5ec09852704a]

	* src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc-
	connection.c, src/lib-imap-client/imapc-connection.h:
	lib-imap-client: Allow reconnecting to IMAP server even if there had
	been no idle moments.
	[feef967b10fe]

	* src/lib-imap-client/imapc-client-private.h, src/lib-imap-client
	/imapc-connection.c:
	lib-imap-client: Removed unused pending_box_command_count
	[e5bc6d90649b]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib-
	storage/index/imapc/imapc-mail.h:
	imapc: If FETCH commands fail, have imapc_mail_fetch() always return
	failure. Earlier it may have returned success and imapc would later
	complain about a missing FETCH field.
	[a98267f8a6e6]

	* src/lib/ioloop-notify-kqueue.c:
	lib: Fixed io_loop_extract_notify_fd() to compile with kqueue.
	[f3e6256d3762]

2015-08-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service.c:
	lib-master: struct master_service_connection.name must never be
	NULL, use "" instead. Fixes crash at least in auth process when
	there are inet_listeners without names.
	[acfe208a656d]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Compiler warning fix to previous change.
	[de8af4d857d3]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Fixed memory leaks when importing attributes whose values
	were in istreams.
	[d5cddaa5ca92]

	* src/doveadm/doveadm-dsync.c:
	doveadm backup: Fixed assert-crash due to duplicate 'R' in getopt
	args.
	[196c76bdc11a]

	* src/imap/imap-state.c:
	imap: Compiler warning fix to imap-hibernate commit
	[63ada4bc7508]

	* .hgignore, configure.ac, src/Makefile.am, src/imap-
	hibernate/Makefile.am, src/imap-hibernate/imap-client.c, src/imap-
	hibernate/imap-client.h, src/imap-hibernate/imap-hibernate-client.c,
	src/imap-hibernate/imap-hibernate-client.h, src/imap-hibernate/imap-
	hibernate-settings.c, src/imap-hibernate/imap-master-connection.c,
	src/imap-hibernate/imap-master-connection.h, src/imap-
	hibernate/main.c, src/imap/Makefile.am, src/imap/cmd-idle.c,
	src/imap/cmd-x-state.c, src/imap/imap-client-hibernate.c, src/imap
	/imap-client.c, src/imap/imap-client.h, src/imap/imap-commands.c,
	src/imap/imap-commands.h, src/imap/imap-common.h, src/imap/imap-
	master-client.c, src/imap/imap-master-client.h, src/imap/imap-
	settings.c, src/imap/imap-settings.h, src/imap/imap-state.c,
	src/imap/imap-state.h, src/imap/main.c, src/lib-storage/mail-user.c,
	src/plugins/imap-zlib/imap-zlib-plugin.c:
	Added imap-hibernate process for gathering IDLEing imap processes.
	imap_hibernate_timeout setting controls how quickly the connection
	is moved from imap process to imap-hibernate process.

	Some IMAP extensions like NOTIFY, SEARCH=CONTEXT and COMPRESS aren't
	supported yet.

	There's also a new X-STATE command, which can be used to export the
	current IMAP connection state to a string and later on imported to
	get back to the original state (a quick resync feature for IMAP
	clients). However, this command is disabled for now due to the
	current code being unoptimized for untrusted input.
	[64c73e6bd397]

	* src/lib-storage/mailbox-watch.c, src/lib-storage/mailbox-watch.h:
	lib-storage: Added mailbox_watch_extract_notify_fd()
	[4da6efa3fd91]

	* src/lib/ioloop-notify-inotify.c, src/lib/ioloop-notify-kqueue.c,
	src/lib/ioloop-notify-none.c, src/lib/ioloop.h:
	lib: Added io_loop_extract_notify_fd()
	[3083424cafcd]

	* src/lib-storage/mailbox-recent-flags.c, src/lib-storage/mailbox-
	recent-flags.h:
	lib-storage: Added mailbox_recent_flags_set_uid_forced() This allows
	adding recent flags to mails whose UID is lower than the existing
	recent mails.
	[4673b93b04c6]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: mail_storage_service_user_free() needs to update log
	prefix if current user is freed.
	[cf620b80c380]

	* src/lib-storage/mail-user.c:
	lib-storage: mail_user_var_expand_table() may not have returned
	%{auth_username} correctly
	[39710cec820b]

	* src/imap/imap-client.c, src/lib/connection.c, src/lmtp/client.c, src
	/login-common/client-common-auth.c, src/pop3/pop3-client.c:
	Use io_stream_get_disconnect_reason() instead of duplicating its
	code all over the place.
	[cd2c95d82d4c]

	* src/lib/Makefile.am, src/lib/iostream-private.h, src/lib/iostream.c,
	src/lib/iostream.h:
	lib: Added io_stream_get_disconnect_reason() to iostream.h
	[ca2f5d3575b3]

	* src/lib/connection.c:
	lib: connection_disconnect_reason() now returns the full iostream
	error string.
	[984ce015e9d0]

2015-08-20  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-select.c:
	imap: Fixed memory leak in SELECT QRESYNC error handling path.
	[9f815e781beb]

2015-08-19  Timo Sirainen  <tss@iki.fi>

	* src/imap/main.c:
	imap: Code cleanup Keep client_add_input() functionality separate
	from client_create_from_input(). Also this way temporary buffer
	doesn't need to be created to add the input in
	login_client_connected().
	[118594ed7d46]

	* src/lib/ioloop-notify-inotify.c, src/lib/ioloop-notify-kqueue.c:
	lib: Log notify IO leaks when ioloop is destroyed.
	[818c1a77c025]

	* src/lib/ioloop-notify-inotify.c, src/lib/ioloop-notify-kqueue.c,
	src/lib/ioloop-notify-none.c, src/lib/ioloop.h:
	lib: io_add_notify() wasn't setting struct io.source_linenum
	[d26178d0557a]

	* src/imap/imap-client.c:
	imap: If command has no imap_parser, don't crash when freeing the
	command. All the current commands have a parser though, so this
	doesn't actually fix anything.
	[637e005a5559]

	* src/lib/ioloop-notify-inotify.c:
	lib: inotify doesn't need to watch for IN_CLOSE This doesn't
	indicate that the file was modified. We don't care if some reader
	accessed a watched file.
	[84036f6687d5]

	* src/lib-storage/Makefile.am, src/lib-storage/index/Makefile.am, src
	/lib-storage/index/cydir/cydir-storage.c, src/lib-storage/index
	/dbox-common/dbox-storage.c, src/lib-storage/index/index-mailbox-
	check.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-storage.c, src/lib-
	storage/index/mbox/mbox-storage.c, src/lib-storage/mail-storage-
	private.h, src/lib-storage/mailbox-watch.c, src/lib-storage/mailbox-
	watch.h:
	lib-storage: Moved index/index-mailbox-check.c code to mailbox-
	watch.c This changes the API, but adds backwards compatibility
	macros.
	[f84c81ed5d09]

	* configure.ac, doc/example-config/conf.d/10-mail.conf,
	src/lib/Makefile.am, src/lib/ioloop-notify-dn.c, src/lib/ioloop-
	notify-fd.c, src/master/main.c:
	Removed support for dnotify. Everybody should be using inotify by
	now.
	[39255150d521]

	* doc/example-config/conf.d/20-pop3.conf, src/pop3/pop3-client.c:
	pop3: Added %{deleted_bytes} variable to pop3_logout_format
	[06351f47a15c]

	* src/pop3/pop3-client.c, src/pop3/pop3-client.h,
	src/pop3/pop3-commands.c:
	pop3: If transcation commit failed at QUIT, don't log any messages
	as expunged.
	[ff9a9ffcd2af]

	* src/lib/ioloop-notify-kqueue.c:
	lib: kqueue notification should trigger also on file renames. For
	example if dovecot.index.log is renamed to dovecot.index.log.2, we
	should notice that since there's now a new dovecot.index.log
	containing new changes.
	[412de6dea139]

	* src/lib-storage/index/index-mailbox-check.c, src/lib-storage/index
	/index-storage.h:
	lib-storage: Code cleanup - Don't keep a separate notify_ios list.
	[3a8af59b379d]

	* src/lib-storage/Makefile.am, 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-
	mail.c, src/lib-storage/index/index-rebuild.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.c, 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,
	src/lib-storage/index/mbox/mbox-file.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/lib-storage/mailbox-
	recent-flags.c, src/lib-storage/mailbox-recent-flags.h,
	src/plugins/virtual/virtual-sync.c:
	lib-storage: Moved most of the \Recent flag handling code to
	mailbox-recent-flags.c There are also some API changes, because
	functions were renamed and the recent_* fields were moved to struct
	mailbox. I'm not aware of any plugins using these though, except for
	index_mailbox_set_recent_seq() which for now is kept as a backwards
	compatibility macro.

	No changes were made to the actual code logic.
	[f78bd5be4e47]

	* src/login-common/main.c:
	*-login: Removed dead assignment to make static analyzer happy.
	[0f442376beae]

2015-08-18  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Flush Solr indexing HTTP requests every 1000 mails. This
	avoids the HTTP request from becoming too huge.
	[58f65e129b4d]

	* src/plugins/fts-solr/solr-connection.c:
	fts-solr: If HTTP request fails, log the status number as well.
	[ba4ac54e79a7]

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Fix to previous memory leak fix - second request was
	failing. Duplicated data was sent to Solr because string wasn't
	truncated.
	[4707f1e7602c]

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Fixed memory leak when indexing multiple mailboxes in one
	update context.
	[9765b87823df]

2015-08-18  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h, src/lib-http/http-client-request.c:
	lib-http: client: Fixed handling of request timeout. It was
	inappropriately active when the client needed to take action. This
	showed particularly with large payloads sent using
	http_client_request_send_payload().
	[a08e79a3707f]

2015-08-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/Makefile.am, src/lib-http/test-http-client.c:
	lib-http: Previous test-http-client safe_memset() change broke in
	some systems. Since there's no easy way to fix this in Makefile.am,
	just do it by actually using safe_memset()..
	[04be746494dc]

	* src/lib-http/Makefile.am:
	lib-http: test-http-client may have failed to load SSL library
	plugin. safe_memset() wasn't necessarily compiled into test-http-
	client. This is a bit kludgy way of just adding it. Another
	possibility could have been to use
	-Wl,--whole-archive with GNU ld, but it's a bit tricky here.
	[5be374f2b1d8]

	* src/lib-http/test-http-client.c:
	lib-http: test-http-client double-freed memory
	[4e6b44f371bd]

2015-08-18  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-url.c, src/lib-http/http-url.h:
	lib-http: url: Implemented http_url_clone_authority() to clone
	authority part of existing HTTP URL.
	[aa695f538fd0]

	* src/lib-http/http-url.c, src/lib-http/http-url.h:
	lib-http: url: Implemented functions to copy/clone URLs including
	the userinfo part (normally skipped).
	[c1ffec72a134]

	* src/lib-http/http-auth.c, src/lib-http/http-auth.h:
	lib-http auth: Implemented cloning/copying of credentials struct.
	[07ceb84bf899]

	* src/lib-http/http-client-request.c, src/lib-http/http-client.c, src
	/lib-http/http-client.h:
	lib-http client: Implemented proxy authentication using Basic
	scheme.
	[cdf9e584c1c7]

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	request.c:
	lib-http client: Added inline function to check whether request is
	directed at a proxy.
	[5c53d13a30ab]

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	request.c, src/lib-http/http-client.h, src/lib-http/test-http-
	client.c:
	lib-http client: Implemented simple authentication using Basic
	scheme.
	[58694b53e730]

	* src/lib-http/http-client-request.c:
	lib-http client: Removed useless assignment of request->authority in
	http_client_request_redirect(). It is assigned again in
	http_client_request_do_submit().
	[34f78bc1eed4]

	* src/lib-http/http-client-private.h:
	lib-http client: Minor whitespace cleanups in struct
	http_client_request.
	[5653b61d4c73]

	* src/lib-http/http-url.c:
	lib-http: url: Make sure destination url struct is cleared in
	http_url_copy().
	[1d5d4d469b2b]

	* src/lib-http/http-auth.c, src/lib-http/http-auth.h:
	lib-http auth: Implemented client-side handling of basic
	authentication scheme.
	[3e1ab97a392c]

	* src/lib-http/http-auth.c:
	lib-http auth: Fixed assertion on the validity of the token68
	encountered during conversion to string.
	[cc09fc9194d1]

	* src/lib-http/http-auth.c, src/lib-http/http-auth.h:
	lib-http auth: Made second argument of http_auth_create_challenges()
	const as it should be.
	[9d530e890669]

	* src/lib-http/http-auth.c:
	lib-http auth: Fixed segfault occurring in
	http_auth_challenge_copy() when there are no parameters.
	[f73ed907fe64]

2015-08-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/Makefile.am, src/lib-master/master-service-haproxy.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/service-settings.h,
	src/master/master-settings.c, src/master/service-process.c:
	lib-master: Added support for HAProxy protocol. Patch by Stephan
	Bosch - with some small changes.
	[4d7a83ddb644]

	* src/lib-master/master-service-private.h, src/lib-master/master-
	service.c, src/master/service-process.c:
	master: Changed passing of listener settings from master to process
	to be more flexible. This is needed to allow adding new listener
	settings, such as `haproxy'. Patch by Stephan Bosch - with some
	small changes.
	[52368e60177c]

2015-06-15  Stephan Bosch  <stephan@rename-it.nl>

	* src/lmtp/client.c, src/login-common/client-common.c, src/login-
	common/client-common.h, src/login-common/main.c:
	lmtp, *-login: Use ip/port values from struct
	master_service_connection instead of from the socket. This way, a
	proxy protocol like HAProxy can transparently override these
	addresses with what is seen by the proxy.
	[a0e8c6b88072]

	* src/lib-master/master-service.c, src/lib-master/master-service.h:
	lib-master: Added local and real IP addresses and ports to struct
	master_service_connection.
	[71f4b77c519f]

2015-08-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service-private.h, src/lib-master/master-
	service.c:
	lib-master: Moved connection accepting code to its own functions. No
	functional changes.
	[b9ccd6349654]

2015-08-17  Timo Sirainen  <tss@iki.fi>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge: If MAIL_FETCH_REFCOUNT fails because mail is expunged,
	ignore the error.
	[41fabc9aa4c7]

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge: If MAIL_FETCH_REFCOUNT fails, log the storage error.
	[c71c4dceee97]

	* src/lib-fts/fts-icu.c:
	lib-fts: Minor cleanup - initialize err with U_ZERO_ERROR instead of
	0. They're the same though.
	[6e89241d1995]

2015-08-17  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-common.h, src/lib-fts/fts-tokenizer-generic-
	private.h, src/lib-fts/fts-tokenizer-generic.c, src/lib-fts/test-
	fts-tokenizer.c:
	lib-fts: Add Unicode TR29 rule WB5a setting to tokenizer. Splits
	prefixing contracted words from base word. E.g. "l'homme" -> "l"
	"homme". Together with a language specific stopword list unnecessary
	contractions can thus be filtered away.

	This is disabled by default and only works with the TR29 algorithm.
	Enable by "fts_tokenizer_generic = algorithm=tr29 wb5a=yes"
	[f7f6ec738683]

	* src/lib-fts/fts-common.h:
	lib-fts: Add note about possible additional apostrophe.
	[0994a6619380]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Update comment on tr29 rules.
	[0381695e303f]

2015-08-17  Timo Sirainen  <tss@iki.fi>

	* src/indexer/worker-pool.c:
	indexer: Removed counting worker processes as service clients to
	prevent idle-kill. lib-master handles this internally now. Also if
	the max client count was reached, we assert-crashed:

	indexer: Panic: file master-service.c: line 672
	(master_service_client_connection_created): assertion failed:
	(service->master_status.available_count > 0)
	[622ce8582a8e]

	* src/lib-master/master-service.c:
	lib-master: If idle-die callback returns FALSE, notify master that
	we don't want to die. This avoids the master thinking that we're
	ignoring its idle-kill signal and logging an error.
	[ec912a6039f5]

	* src/lib-master/master-service.c:
	lib-master: Code cleanup - split master_status_update() to two
	functions. No functional changes.
	[10df63e74ed6]

2015-08-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-randomfail.c:
	lib-fs: Moved enum fs_op from fs-randomfail.c to fs-api-private.h
	These are useful for other purposes as well.
	[38c3d7b44dd5]

	* src/lib-fs/fs-api.c:
	lib-fs: Fix to earlier write_stream_finish() commit 2f1378beeef6
	accidentally reversed == and != check.
	[f04240346fa0]

	* src/lib-fs/fs-api.c:
	lib-fs: fs_copy*() didn't update metadata_changed correctly. It was
	supposed to be (only) set when the copying actually finished.
	[e8e838cb9663]

	* src/lib-fs/fs-api.c:
	lib-fs: Small code cleanup for handling write_stream_finish()
	[2f1378beeef6]

	* src/lib-fs/fs-api.c:
	lib-fs: fs_write() didn't update stats.write_count correctly. If
	backend implemented asynchronous write(), the write_count was
	updated multiple times. If backend didn't implement write(), then it
	was counted twice.
	[295fd771e02d]

2015-08-15  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: Fixed syncing a recursive delete of mailbox with children.
	For example if 1/2/3 exists in both sides and then 1/2/3, 1/2 and 1
	are deleted from one side, the next dsync would delete 1/2/3, but
	leave 1/2 and 1 undeleted.
	[1ed8418031b6]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: If mailbox is already deleted locally, don't attempt to
	delete it again. This only caused an unnecessary desync warning /
	exit code.
	[40e220761a41]

2015-08-12  Timo Sirainen  <tss@iki.fi>

	* src/pop3/pop3-commands.c, src/pop3/pop3-settings.c,
	src/pop3/pop3-settings.h:
	pop3: Added pop3_delete_type setting with values "default",
	"expunge" or "flag". This is related to pop3_deleted_flag setting.
	The main behefit here is that you can now hide messages from POP3 by
	setting pop3_deleted_flag, but without changing the actual deletion
	behavior by setting pop3_delete_type=expunge.
	[4fcf4d745a27]

2015-08-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/Makefile.am:
	lib-fts: Install headers on make install.
	[79b8efbbad96]

2015-08-10  Timo Sirainen  <tss@iki.fi>

	* src/util/rawlog.c:
	rawlog: Removed unnecessary/duplicate 'o' from getopt_args This
	caused assert-crash at startup after ff17864ba6e0.
	[6bebbf0e1ec8]

	* src/lda/main.c:
	lda: Removed unnecessary/duplicate 'k' from getopt_args This caused
	assert-crash at startup after ff17864ba6e0.
	[1890ab5a841f]

2015-08-09  Timo Sirainen  <tss@iki.fi>

	* doc/man/doveadm-import.1.in:
	man: doveadm-import -s description updated The previously mentioned
	subscriptions-file is specific to Maildir format.
	[e7cb20b4785a]

2015-08-07  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail.c:
	doveadm: Make sure we can't accidentally add duplicate getopt args.
	[00f306fc5bde]

	* src/lib-master/master-service.c, src/lib-master/master-service.h:
	lib-master: Make sure we can't accidentally add duplicate getopt
	args.
	[ff17864ba6e0]

	* src/stats/client-export.c:
	stats: Added session=<ID> filter to doveadm dump session|command
	[f611d66e56f6]

	* src/doveadm/doveadm-dsync.c:
	dsync: Renamed -F parameter to -O to avoid a conflict doveadm mail
	commands already had a generic -F parameter.
	[573118da2eaa]

	* src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr
	/fts-backend-solr.c:
	fts-solr: "highest UID for mailbox" lookup was actually returning
	"highest UID for user" If the default operator was OR instead of
	AND. This affected indexing mails in newly created mailboxes.
	[91005181b997]

	* src/lib/istream-timeout.c:
	lib: istream-timeout could have triggered timeout too early after
	long-running code.
	[c143d037fd54]

	* src/plugins/fts/fts-parser-tika.c:
	fts: If Tika returns 500, retry it a couple of times and then
	fallback to ignoring the problem.
	[35d3777cc4d2]

2015-08-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c:
	lib-storage: Make sure tryagain_r is never randomly set in
	mailbox_search_next_nonblock() This infinite looping in some fts
	plugin failure situations.
	[98158ef015f7]

	* src/plugins/stats/stats-plugin.c:
	stats: If process was used for multiple sessions, some of the fields
	weren't set correctly. For example the second user's disk_output was
	increased at startup by the same amount as what the previous user's
	last disk_output value was.
	[46c34f3a73a0]

2015-08-04  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-list.c:
	lib-storage: escape_char and broken_char settings weren't copied on
	mailbox_list_create()
	[233802591cfb]

2015-07-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-attribute.c:
	lib-storage: Another fix for doing multiple changes via
	mailbox_attribute_set/unset
	[32d72cb26f9e]

2015-07-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/message-part.c, src/lib-mail/test-message-part.c:
	lib-mail: Fixed message_part_to_idx()
	[012a355f9f8a]

	* src/plugins/pop3-migration/Makefile.am:
	pop3-migration: Compiling fix in some systems
	[a83cc1411205]

	* src/lib-storage/index/index-attribute.c:
	lib-storage: Fixed doing multiple changes via
	mailbox_attribute_set/unset() Only the last change was committed and
	the earlier changes were just leaking memory.
	[501ce127ae05]

2015-07-16  Timo Sirainen  <tss@iki.fi>

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Fetch physical sizes instead of virtual sizes so
	pop3c uses LIST 4bebfbb32410 caused the fetching to break entirely.
	[64568a033fc8]

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Use LIST instead of RETRs to get the messages'
	sizes.
	[4bebfbb32410]

	* src/lib-mail/test-message-header-parser.c:
	lib-mail: Updated test-message-header-parser unit test
	[f0148bae3d62]

	* src/plugins/pop3-migration/Makefile.am,
	src/plugins/pop3-migration/pop3-migration-plugin.c,
	src/plugins/pop3-migration/pop3-migration-plugin.h,
	src/plugins/pop3-migration/test-pop3-migration-plugin.c:
	pop3-migration: Truncate header if there's line containing only
	CR(s). This fixes matching IMAP <-> POP3 messages when the servers
	behave differently.
	[ab441df52e86]

2015-07-14  Timo Sirainen  <tss@iki.fi>

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Show the first message's number and UIDL which
	wasn't found from IMAP.
	[b51dfee18fd2]

2015-07-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-backend.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.h, src/lib-storage/list/mailbox-list-notify-tree.c:
	lib-storage: If mailboxes' vsizes are used, keep them updated also
	in mailbox list index. This allows looking them up quickly without
	opening the actual mailbox indexes.
	[46cbde67f50b]

	* src/plugins/quota/quota-count.c:
	quota: Use MAILBOX_METADATA_PHYSICAL_SIZE for recalculating
	mailbox's size.
	[421f595a0e93]

	* src/lib-storage/index/index-mailbox-size.c, src/lib-storage/index
	/index-status.c, src/lib-storage/index/index-storage.h, src/lib-
	storage/mail-storage.h:
	lib-storage: Added MAILBOX_METADATA_PHYSICAL_SIZE If backend always
	uses the same virtual and physical sizes, this is implemented via
	the MAILBOX_METADATA_VIRTUAL_SIZE code. Otherwise it searches all
	the messages and sums up their physical sizes.
	[84392ca460ab]

	* src/lib-storage/index/index-mailbox-size.c, src/lib-storage/index
	/index-storage.c, src/lib-storage/index/index-storage.h, src/lib-
	storage/mail-storage-private.h:
	lib-storage: Moved vsize_hdr_ext_id to struct mailbox for more
	global access.
	[8e47bb182a42]

	* src/lib-storage/index/index-mailbox-size.c, src/lib-storage/index
	/index-storage.c, src/lib-storage/index/index-storage.h, src/lib-
	storage/mail-storage-private.h:
	lib-storage: Renamed struct index_vsize_header to struct
	mailbox_index_vsize Also moved the struct to mail-storage-private.h
	for more global access.
	[7cdef26d857d]

	* src/lib-storage/index/Makefile.am, src/lib-storage/index/index-
	mailbox-size.c, src/lib-storage/index/index-status.c, src/lib-
	storage/index/index-storage.h:
	lib-storage: Moved mailbox vsize calculation code to its own file.
	No functional differences.
	[819649386f93]

2015-07-03  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/quota-count.c:
	quota: Even if quota counting fails, commit the mailbox transaction.
	The only changes in the transaction are changes to
	dovecot.index.cache file and we don't want to rollback those.
	[02088971322e]

	* src/plugins/quota/quota-count.c:
	quota: Fixed error handling in quota counting code. Errors weren't
	logged and some error checking was missing.
	[f3847ac93623]

2015-07-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Make sure rebuilding doesn't try to add a copy of the message
	too many times. Currently it just silently overflowed the 16bit
	refcount, which caused problems later.
	[ae19beafa55b]

2015-06-30  Timo Sirainen  <tss@iki.fi>

	* src/lib-compression/istream-zlib.c:
	istream-zlib: Don't overwrite parent istream's error on gz
	header/trailer read errors.
	[7a6452869981]

	* src/doveadm/doveadm-settings.c, src/doveadm/doveadm-settings.h,
	src/doveadm/server-connection.c:
	doveadm: Added doveadm_username to specify the username for
	authentication. The default is still "doveadm" and the server side
	doesn't currently support anything except "doveadm".
	[3bf5df6f63b2]

	* src/lib-compression/istream-bzlib.c, src/lib-compression/istream-
	lz4.c, src/lib-compression/istream-lzma.c, src/lib-compression
	/istream-zlib.c, src/lib-fs/istream-metawrap.c, src/lib-mail
	/istream-header-filter.c, src/lib-storage/index/mbox/istream-raw-
	mbox.c, src/lib/istream-limit.c, src/lib/istream-sized.c,
	src/lib/istream.c, src/plugins/mail-filter/istream-ext-filter.c:
	istream filters: If parent's i_stream_stat() fails, copy the
	stream_errno. This doesn't actually change any functionality yet,
	since most i_stream_stat() callers aren't using
	i_stream_get_error().
	[ac64c307d179]

	* src/lib/istream-file.c:
	lib: istream_file.stat() fails, set stream_errno and error string.
	For now we'll also keep logging the error since everybody isn't
	using i_stream_get_error().
	[d4422b0560fe]

	* src/master/service.c:
	master: When sending SIGTERM/SIGKILL to processes, log which
	services they were sent to.
	[5631687b52ef]

2015-06-29  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/client-authenticate.c, src/pop3-login/client.c:
	imap/pop3-login: If auth failure reason already begins with [resp-
	code], don't prefix it with another one.
	[86b75d360241]

	* src/lib/test-net.c:
	lib: Fixed unit test with big-endian CPUs. Patch by Michal Hlavinka
	/ Redhat
	[b268e186d029]

	* src/lib/wildcard-match.c:
	lib: Fixed read buffer overflow in wildcard_match*() Patch by Hanno
	B?ck.

	Note that input to wildard_match*() is always coming only from
	trusted sources, like config file or doveadm commands.
	[740935acc0f8]

	* src/indexer/indexer-queue.c:
	indexer: Properly fix crashing at deinit when there are pending
	requests.
	[85822087fe3d]

	* src/indexer/indexer.c:
	indexer: Reverted 5945ba000a45 - it didn't really help
	[1458276c0a07]

	* src/indexer/indexer.c:
	indexer: Fixed crash at deinit if there were still queued requests.
	[5945ba000a45]

2015-06-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Fixed check to see if prefix!="" in previous commit.
	[459cced0a15d]

2015-06-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-iter.c:
	lib-storage: Set MAILBOX_SELECT/NONEXISTENT for namespace prefix
	even if no flags are wanted. This fixes doveadm commands attempting
	to access such nonexistent mailbox prefixes.
	[e6cb25855abf]

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Don't return mailbox list entries that would result in
	name="". So basically don't return namespace prefix if
	imapc_list_prefix="".
	[563b93302831]

	* src/lib-storage/index/imapc/imapc-list.c, src/lib-
	storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc
	/imapc-storage.h:
	imapc: If login is aborted at deinit, don't log an error.
	[f06008be0d1d]

	* src/lib-storage/index/imapc/imapc-storage.c:
	imapc: Don't automatically login to IMAP server for list=no
	namespaces.
	[771254b34a42]

2015-06-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-request.c:
	lib-http: http_client_request_send() failure returned already-freed
	error string.
	[eddc7a17dd46]

2015-06-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-posix.c:
	fs-posix: Hide temporary files from fs_iter_*() Those could exist
	just because another process is just using them to create new files
	to the directory. Although they could also be older files caused by
	earlier crashes. It would probably be a good idea to have
	fs_iter_*() delete the old temporary files automatically.
	[7f7b77feb9ce]

	* src/plugins/virtual/virtual-sync.c:
	virtual: virtual_uids weren't always set to all mails, causing
	missing mails and crashes in search.
	[d609454bdf64]

	* src/plugins/virtual/virtual-sync.c:
	virtual: Added more asserts when DEBUG is enabled.
	[ac8fc3db0ef6]

	* src/plugins/virtual/virtual-storage.c:
	virtual: Added more asserts.
	[91d8f998bf83]

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Avoid sending too large queries to Solr due to listing
	wanted mailboxes. This is mainly a problem if there are a lot of
	mailboxes and "All Mails" virtual mailbox. For now hardcoded to send
	max 10 mailboxes in the query, afterwards it just returns matches in
	all the mailboxes and we'll filter out the unwanted mailboxes.
	[1e6f38e8d5d5]

	* src/plugins/fts-solr/solr-connection.c:
	fts-solr: Removed assert to fix indexing multiple mailboxes. fts
	plugin may want to do last-uid lookup for a new mailbox while we
	still have posting open for the previous one.
	[fec87fb9b071]

	* src/plugins/fts/fts-parser-tika.c:
	fts-tika: Fixed crashes when indexing larger attachments with fts-
	solr. We were mixing ioloops without switching back to the original
	ioloop in the middle. Also io_remove() at deinit caused another
	timeout to be added, so this needs to be done while original ioloop
	is active or we'll just leak the just-added timeout in
	io_loop_destroy() and crash later.
	[3ae8cf3f8320]

	* src/lib-fs/fs-posix.c, src/lib-fs/fs-randomfail.c, src/lib-fs/fs-
	sis.c:
	lib-fs: Removed redundant o_stream_nfinish() calls
	[343602625064]

	* src/lib-fs/fs-api.c:
	lib-fs: Call o_stream_nfinish() automatically for all backends in
	fs_write_stream_finish() Otherwise each backend needs to do it
	internally. fs-metawrap for example was missing this and causing
	assert-crashes.
	[21c0ffec1d2b]

2015-06-17  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-data-stack.c:
	lib: test-data-stack - simplify #if-ing out of DEBUG-only fatal test
	With no canaries, nothing can be tested, so just reduce this to a
	trivial 1-line return on the non-DEBUG case.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e7c896eff939]

	* src/lib/test-data-stack.c:
	lib: test-data-stack - ensure t_push() and t_pop() are balanced in
	fatal tests If the t_pop() unexpectedly succeeds, we won't want to
	do another one upon entering the function again.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[69b231fdf5d7]

2015-06-17  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Added allow_real_nets setting. The difference to allow_nets is
	that it matches against the connection's "real IP" rather than what
	the connection told was the original client's IP address (%{rip} vs
	%{real_rip})
	[9be3fbad33c5]

2015-06-16  Timo Sirainen  <tss@iki.fi>

	* src/lib/connection.c, src/lib/connection.h:
	lib: Added unix_client_connect_msecs setting to connection API.
	[697c6f04baca]

	* src/lib/test-ostream-failure-at.c:
	lib: Compiler warning fix for test-ostream-failure-at.
	[8076318a7b0e]

	* src/lib-fs/Makefile.am, src/lib-fs/fs-api-private.h, src/lib-fs/fs-
	api.c, src/lib-fs/fs-randomfail.c:
	lib-fs: Added "randomfail" driver. Using this in front of fs drivers
	allows randomly injecting failures. For example:

	mail_attachment_fs = randomfail:all=10,read=30,read-
	range=2000-3000:sis posix

	This means that all FS operations have a 10% chance of failing,
	except reads have a 30% chance of failing. If the read fails, it'll
	fail somewhere between offsets 2000-3000 (the default is 0, so it'll
	fail at the start of file).

	The supported operations are: wait metadata prefetch read write lock
	exists stat copy rename delete iter. "all" applies to all of them.

	The supported ranges are: read-range, write-range, iter-range.
	[c6ed48c7f2a0]

	* src/lib/Makefile.am, src/lib/ostream-failure-at.c, src/lib/ostream-
	failure-at.h, src/lib/test-lib.c, src/lib/test-lib.h, src/lib/test-
	ostream-failure-at.c:
	lib: Added o_stream_create_failure_at() to inject EIO at given
	offset in ostream
	[1c7288c054b1]

	* src/lib/Makefile.am, src/lib/istream-failure-at.c, src/lib/istream-
	failure-at.h, src/lib/test-istream-failure-at.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	lib: Added i_stream_create_failure_at() to inject EIO at given
	offset in istream.
	[99827acc1888]

	* src/doveadm/doveadm-dsync.c:
	dsync: If we stop because of a signal, log a warning about it.
	[80c1be850fdc]

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h:
	doveadm: Added doveadm_killed_signo()
	[a58b3e70fc8a]

	* src/lib-storage/mail-search.h, src/plugins/fts/fts-search-args.c:
	fts: Avoid expanding mail_search_args multiple times (for
	optimization & crash-avoidance) Primarily this fixes the crash:

	index-search-result.c: line 132 (index_search_result_update_flags):
	assertion failed: (result->search_args->args == &search_arg)

	It could be triggered by: a search return (update) body body seen b
	store 1 +flags \seen c store 1 -flags \seen
	[d255f8627d95]

	* src/lib-fs/fs-posix.c:
	fs-posix: fs_copy() didn't work with prefix= parameter
	[5450f9217b97]

2015-06-15  Phil Carmody  <phil@dovecot.fi>

	* src/lib-stats/stats.c:
	lib-stats: fix tristate-int vs. bool return value confusion
	-1 was being silently converted to true. However, this was an error
	condition.

	The callers don't need anything more complex than a bool, so kill
	the int.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[cac29b3a1e96]

	* src/lib-fts/fts-tokenizer.c:
	lib-fts: use NULL rather than 0 to shut up sparse Signed-off-by:
	Phil Carmody <phil@dovecot.fi>
	[d2a637585bfa]

	* src/director/director-connection.c:
	director: explicitly mark _disconnect() helper static to match proto
	No functional change, compiler would not have exported the symbol,
	this just shuts up sparse.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8bde19f080ad]

2015-06-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-metawrap.c:
	fs-metawrap: If written file unexpectedly shrinks, return error
	instead of assert-crash. This shouldn't be happening, but we can't
	fully control it so an error is better.
	[bd1dabfcfae3]

	* src/lib-fs/fs-metawrap.c:
	fs-metawrap: Don't assert-crash when writing an empty file.
	[db8877fdd39f]

2015-06-15  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-filter.h:
	lib-fts: Fix comment in fts-filter.h
	[cf99661dca25]

2015-06-15  Phil Carmody  <phil@dovecot.fi>

	* src/lib/Makefile.am, src/lib/test-failures.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	lib: test-failures - tests get/set handlers and the various log
	levels Also indirectoy tests the new lib-test test_expect* family.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[6d965c726810]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: test_expect_error_string() to match a single known message
	This gives us very fine control over what is acceptable as an
	expected warning. Alas you have to do it for each message
	individually.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8739d201898c]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: let tests invoke i_warning/i_error behaviour Error-
	handling paths should be testable too. Permit a test case to
	register that a known number of warnings/errors are to be expected,
	and to verify that those warnings did occur afterwards. Too many
	messages will fail the test exactly as it did in the past, they're
	unexpected messages. However, too few messages will also cause the
	test case to fail.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3275eee3613b]

	* src/lib-test/test-common.c:
	lib-test: flush test-assert failure messages Diagnostic output to
	stderr may overtake these stdout logs if the streams are combined by
	the shell or on the console. fflush() might help realign them.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b5608c537daa]

	* src/lib/array.h:
	lib: array - permit array_swap with uninitialised arrays Before
	initialisation, all fields are blank, so the element_size field is
	not the actual size, and the i_assert would fire.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[2ab0c5855548]

2015-06-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index.c, src/lib-index/mail-index.h:
	lib-index: Added mail_index_ext_register_resize_defaults()
	[9c90eba19aee]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Commit failures returned an already freed error string.
	[47fa4a6c6b9a]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Removed unnecessary data stack frames from test-fts-filter.
	They are already added by lib-test/test-common.c
	[d766dbdf871c]

	* src/config/config-parser-private.h, src/config/config-parser.c:
	config: Added hook_config_parser_end for plugins.
	[b9601cc46ace]

2015-06-12  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-mailbox.c:
	doveadm mailbox delete -r: Delete all mailboxes when empty mailbox
	name is given.
	[0e947c4dbb10]

	* src/lib-fts/fts-icu.c:
	lib-fts: Don't crash if fts_icu_*() are used after fts_icu_deinit()
	[a01dc6ef392d]

2015-06-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h, src
	/lib-storage/index/dbox-multi/mdbox-map.c:
	lib-index: Avoid writing tail offset update to transaction log if
	it's not necessary. This should avoid extra writes that do nothing
	but update the tail offset. mdbox's map requires this behavior, so
	disable it for it. For others it might cause the next sync to read
	more data unnecessarily, but it should be worth the extra cost of
	write most of the times.
	[03b3b97b84aa]

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added "refcount" field.
	[ffecdb676c53]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Error handling cleanup. Probably doesn't fix any actual
	bugs.
	[34fad121ec7b]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Minor code cleanup to make sure we don't try to access
	freed transaction memory.
	[34943b67e01f]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Don't access freed memory when doing an assert-check.
	[247c6ae2eae4]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete -R: More fixes to handling errors without
	crashing.
	[cf05939c3d09]

2015-06-10  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/commands.c:
	lmtp: Fixed assert-crash on anvil lookup failures. If
	anvil_client_query() fails, it immediately calls the callback and
	returns NULL. So we need to increase anvil_queries even before
	calling anvil_client_query()
	[457daf0bfbfa]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete -R: Fixed hang when some of the deletions failed.
	[3db134293be8]

	* src/lib-sql/driver-cassandra.c:
	cassandra: If log_level=debug/trace, log each query and its result.
	[539322434f9b]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Added extra asserts and sanity checks to make sure query
	errors are caught.
	[42cdfb0153d9]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Don't crash on failed queries.
	[0cf38b6b055d]

2015-06-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-sql.c:
	dict-sql: Don't try to optimize finding a matching map by using the
	previous match. In some setups multiple maps can match and it's
	important that the matching is done in the same order always,
	otherwise the results could become somewhat random.
	[1a778838d3e1]

2015-06-05  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* doc/man/doveadm-pw.1.in:
	man: doveadm-pw.1: Fix typo.
	[1cebb87f2f8f]

2015-06-04  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-pw.1.in:
	man: doveadm-pw.1: Added a note about quoting password hashes.
	[90210d09b83c]

2015-06-04  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-search.c, src/plugins/fts/fts-storage.c:
	fts: lib-fts search arg expansion wasn't done for non-TEXT/BODY
	searches when fts_enforced=no
	[ee82bdc63939]

	* src/plugins/fts/doveadm-fts.c:
	fts: Added "doveadm fts expand" to show lib-fts search query
	expanded.
	[7cb0bc84914d]

	* src/lib-storage/Makefile.am, src/lib-storage/mail-search-args-
	cmdline.c, src/lib-storage/mail-search.h:
	lib-storage: Added mail_search_args_to_cmdline() This isn't entirely
	correct yet, but it's only going to be used for debugging for now.
	[53824319afb5]

2015-06-03  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/Makefile.am, src/plugins/fts/doveadm-fts.c:
	fts: Added "doveadm fts lookup" command. This is mainly useful for
	debugging lib-fts. It doesn't perform any of the lib-fts
	tokenization / filtering so you can do raw lookups.
	[e222d1265e4e]

	* src/lib-fts/fts-tokenizer.c:
	lib-fts: fts_tokenizer_reset() didn't reset the entire state.
	[576267a41570]

	* src/indexer/indexer-queue.c, src/indexer/indexer-queue.h,
	src/indexer/indexer.c:
	indexer: Improved handling multiple indexing requests to the same
	mailbox. If a request arrives for a mailbox that we were already
	indexes, the previous code simply sent the indexing request to the
	existing worker process. This could have caused a lot of requests to
	be buffered to the same mailbox if the indexing took a long time,
	which could have taken a while to process even though they weren't
	really doing anything indexing work.

	The new code instead just keeps track in memory that when the
	earlier indexing is finished, it's done again once to finish any
	pending changes.
	[2f5799572a2f]

	* src/indexer/indexer.c:
	indexer: Try to always flush as many requests from queue as
	possible. I don't think this changes the behavior much. It's mainly
	a code cleanup.
	[a5d5d2dd6aea]

	* src/indexer/indexer-queue.c, src/indexer/indexer-queue.h:
	indexer: Use array.h API instead of writing our own. The space
	savings aren't worth the extra complexity.
	[165564cc0e0e]

	* src/plugins/fts/fts-storage.c:
	fts: If mail indexing fails, don't log a "BUG: Unknown internal
	error"
	[588e141980e2]

	* src/plugins/fts/fts-build-mail.c:
	fts: If reading mail fails, log an error.
	[9e7d1e2acd23]

2015-06-03  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-lda/mail-deliver.c:
	lib-lda: Fixed crash in mail_deliver_get_log_var_expand_table().
	Discovered by clang static analyzer. This caused crashes with older
	versions of Pigeonhole.
	[06505210b25d]

2015-06-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-english-
	possessive.c, src/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h,
	src/lib-fts/test-fts-filter.c:
	lib-fts: Added "english-possessive" filter.
	[c909977ec1a1]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Use UTF8_IS_START_SEQ()
	[ff79a2178fd4]

	* src/lib/unichar.h:
	lib: Added UTF8_IS_START_SEQ() helper macro
	[b95be677f483]

	* src/lib-fts/fts-filter-lowercase.c, src/lib-fts/fts-filter-
	normalizer-icu.c, src/lib-fts/fts-filter-private.h, src/lib-fts/fts-
	filter-stemmer-snowball.c, src/lib-fts/fts-filter-stopwords.c, src
	/lib-fts/fts-filter.c:
	lib-fts: fts-filter API changed to have a non-pointer vfuncs
	variable. The main benefit being that the fts-filter implementations
	can save a few lines of code.
	[11c181d51b54]

	* src/lib-fts/fts-filter-lowercase.c:
	lib-fts: fts-lowercase can now use the default destroy function.
	[932a0a83514b]

	* src/lib-fts/fts-filter.c:
	lib-fts: Implemented default create/destory functions for fts-
	filters.
	[6a710924df27]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-common.h, src/lib-fts/fts-
	tokenizer-generic.c:
	lib-fts: Moved IS_APOSTROPHE() to fts-common.h
	[a13ce2bce9cd]

2015-06-02  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/10-logging.conf:
	example-config: Updated deliver_log_format comments
	[8c5fce2ff6f8]

	* src/lib-lda/mail-deliver.c:
	lib-lda: Added %{to_envelope} to deliver_log_format
	[d79006a6ea65]

	* src/lib-fts/fts-filter.c:
	lib-fts: Compiling fix without libicu
	[357fe95d487f]

	* src/lib-fts/fts-filter-lowercase.c:
	lib-fts: Avoid compiler warning when building without libicu
	[1972b0acce17]

	* src/lib-storage/index/imapc/imapc-storage.c:
	imapc: If auth fails due to connection failure, don't treat it the
	same as failed login.
	[4f66f717fe87]

	* src/lib-fts/fts-filter-lowercase.c:
	lib-fts: Fixed compiling without libicu
	[75d7bf7560d3]

	* src/lib-fts/fts-language.c:
	lib-fts: Added more supported languages. This includes now all the
	ones that are currently supported by both snowball and exttextcat.
	[e3603730b2df]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Optimized truncation of partial trailing UTF-8 characters
	in tokenizers.
	[633ab1934f1f]

	* src/lib-fts/fts-filter-lowercase.c:
	lib-fts: Use fts_icu_lcase() for fts-filter-lowercase if possible.
	[f227c2318e02]

	* src/lib-fts/fts-filter-private.h:
	lib-fts: Added string_t *token to struct fts_filter This makes the
	work a bit easier for simple filters that don't need any state but
	want to use a string_t.
	[26d9a4fcb0d4]

	* src/lib-fts/fts-icu.c, src/lib-fts/fts-icu.h, src/lib-fts/test-fts-
	icu.c:
	lib-fts: Added fts_icu_lcase()
	[2bf5c51738d4]

	* src/lib-fts/fts-filter.c, src/lib-fts/fts-icu.c, src/lib-fts/fts-
	icu.h:
	lib-fts: Do all the ICU cleanup in fts_icu_deinit().
	[e2d42eab722f]

	* src/lib-fts/fts-filter-lowercase.c, src/lib-fts/fts-filter-
	normalizer-icu.c, src/lib-fts/fts-filter-private.h, src/lib-fts/fts-
	filter-stemmer-snowball.c, src/lib-fts/fts-filter-stopwords.c, src
	/lib-fts/fts-filter.c:
	lib-fts: Include fts-filter.h in fts-filter-private.h This avoids
	having to always include them both.
	[51194b531dd7]

	* src/lib-fts/fts-filter-lowercase.c:
	lib-fts: Renamed variable. This is a lowercase-filter, not a
	normalizer.
	[b8665bd3574b]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/fts-filter.h:
	lib-fts: Removed unnecessary array.h include from fts-filter.h
	[635e6747c41d]

	* src/lib-fts/fts-tokenizer-generic.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Fixed tr29 tokenizer to delete last character correctly
	when it's preceded by non-ASCII
	[97b5c5e88540]

	* src/pop3-login/client.c:
	pop3-login: Added support for Zimbra proxy's XOIP command.
	[0bcd3e9e77d4]

	* src/plugins/fts/fts-build-mail.c:
	fts: If we fail while indexing headers, return failure immediately.
	[dc4826a29990]

	* src/plugins/fts/fts-build-mail.c:
	fts: Error logging fix. 1) We were logging the error after it was
	already freed from data stack. 2) We were logging uninitialized
	error string when fts indexing was the one that failed.
	[f61345596ce6]

	* src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-solr
	/fts-solr-plugin.c, src/plugins/fts/fts-user.c:
	fts: Fixed memory leak at deinit when using multiple fts plugins at
	the same time using libfts.
	[77575024f874]

2015-06-02  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-filter-private.h:
	lib-fts: Correct comment in filter internal API.
	[e4f4cbc63b49]

	* src/lib-fts/fts-filter.c:
	lib-fts: Call libicu u_cleanup.
	[346da98eaa1a]

2015-06-01  Phil Carmody  <phil@dovecot.fi>

	* src/lib/str-sanitize.c, src/lib/unichar.c, src/plugins/fts-solr/fts-
	backend-solr-old.c, src/plugins/fts-solr/fts-backend-solr.c:
	various: use new uni_utf8_get_char*() interface No need for
	additional uni_utf8_char_bytes() calls if you can parse and know the
	size with one call.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[778b57788590]

2015-06-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Use new uni_utf8_get_char*() interface
	[3a5ea8cf2233]

	* src/lib/test-unichar.c:
	lib: Improved unit test for uni_utf8_get_char() return value check.
	[5f4742b69e7e]

2015-06-01  Phil Carmody  <phil@dovecot.fi>

	* src/lib/unichar.c, src/lib/unichar.h:
	lib: API change - have uni_utf8_get_char*() return _char_bytes Often
	the two functions are called in close proximity (both ways round).
	As _get_char*() calls _char_bytes() early on the success path, we
	may as well return that value to the caller for immediate use.

	The callers which call _char_bytes() first are simply rejecting the
	truncated case quickly - all other invalid cases still call both
	functions, and all other valid cases (which should be the fast path)
	likewise call both.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8b7be28bd518]

	* src/plugins/fts-solr/fts-backend-solr-old.c, src/plugins/fts-solr
	/fts-backend-solr.c:
	fts-solr: laxer check of uni_utf8_get_char_n() return value If
	uni_utf8_get_char*() were changed to return the number of bytes in
	the character on success, then all we care about is it being > 0
	(i.e. not error, not truncated).

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[7bd2f9be5493]

	* src/lib/test-unichar.c:
	lib: test-unichar - test invalid utf8 encodings Chop trailing
	characters off valid encodings, and watch them fail. (There's no
	need to do this on most of the test characters, as they're truncated
	to the same byte sequence - only do 1 in 64.)

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3468de815591]

	* src/lib/test-unichar.c:
	lib: test-unichar - streamline the unichars test It's doing 2 kinds
	of tests, split them into separate test cases.

	And the first part has started to get expensive, so just make sure
	all code paths are tested by skipping most values. Only 3 from each
	set of 64 (lowest 6 bits) are tested.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[aa2f464daa66]

2015-06-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/test-fts-tokenizer.c:
	lib-fts: Added unit testing for unicode apostrophe handling.
	[ff791143d1b4]

	* src/lib-fts/fts-tokenizer-generic-private.h, src/lib-fts/fts-
	tokenizer-generic.c, src/lib-fts/test-fts-tokenizer.c:
	lib-fts: tokenizers - Fixed removal of trailing character in
	truncated tokens. If the token is truncated, we don't want to remove
	the trailing character since it's not actually there.

	Also we don't want to remove trailing apostrophes from a truncated
	word, because they're not actually at the end of the (untruncated)
	token there. This doesn't make a big difference, but it's slightly
	more correct.
	[78d473873e12]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Optimize tokenizers - Rewrite of apostrophe handling. We
	parse through the UTF8 characters only once now, not twice.
	[b6510dfd396f]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: tr29 tokenizer - rename variable in preparation for the
	next patch
	[218c3988e105]

	* src/lib-fts/fts-tokenizer-generic.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: tokenizers - don't include removed apostrophes as part of
	the token size
	[e3f9e4c8a338]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: simple tokenizer minor cleanup - removed unnecessary token
	length > 0 check fts_tokenizer_generic_simple_current_token() will
	check it in any case.
	[f44961c66a48]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: tr29 tokenizer cleanup - Avoid unnecessary goto.
	[4a72ef26dbad]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: simple tokenizer optimization - don't check unicode word
	breaks for ASCII chars.
	[7e3f4fa82dfe]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: simple tokenizer cleanup - make prev_letter updating more
	explicit. It was now hidden inside one of the functions, which
	didn't make the prev_letter very consistent when a word break was
	found. It didn't actually matter what the prev_letter was at that
	point, but now the behavior is more consistent.
	[33547eaa0cac]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: simple tokenizer cleanup - removed unnecessary variables
	[b239f075147b]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: tr29 cleanup - consistently call valid chars "token" and
	"non-token" chars. Instead of word/token/text.
	[62b201a1ee06]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: tr29 cleanup - Avoid i++ in the for loop to avoid extra
	calculations
	[04ea590951c1]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: tr29 cleanup - token can never be empty by the time it's
	being returned.
	[c9b2d4e228f5]

	* src/lib-fts/fts-tokenizer-generic-private.h, src/lib-fts/fts-
	tokenizer-generic.c:
	lib-fts: Optimization for tr29 - we don't need to track last_size
	explicitly
	[3ff93cabcac3]

2015-06-01  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Correct internal helper function for tr29.
	[6e459e8c3a5b]

	* src/lib-fts/test-fts-tokenizer.c:
	lib-fts: Fix unit tests for TR29 full stop change.
	[1f609b2ad80c]

	* src/lib-fts/fts-tokenizer-generic-private.h, src/lib-fts/fts-
	tokenizer-generic.c:
	lib-fts: Change TR29 tokenizer to break at full stop (and others).
	Diverge from the TR29 rules and always break at MidNumLet letters.
	This fixes tokenizing first.last@domain.tld email addresses.
	[8973a5837b48]

2015-05-29  Timo Sirainen  <tss@iki.fi>

	* src/auth/Makefile.am, src/auth/auth-request-var-expand.c, src/auth
	/auth-request-var-expand.h, src/auth/auth-request.c, src/auth/db-
	checkpassword.c, src/auth/db-passwd-file.c, src/auth/passdb-imap.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-static.c,
	src/auth/passdb-template.c, src/auth/test-auth-request-var-expand.c,
	src/auth/userdb-dict.c, src/auth/userdb-ldap.c, src/auth/userdb-
	passwd-file.c, src/auth/userdb-sql.c, src/auth/userdb-template.c:
	auth: Added %{passdb:field} and %{userdb:field} variables The field
	expands to either the passdb or userdb extra field.

	You can also use %{passdb:field:defaultvalue} where if field doesn't
	exist, it's expanded to defaultvalue. Note that an empty value means
	that the field still exists and it's not expanded to defaultvalue.
	[bb1522e10108]

	* src/auth/Makefile.am, src/auth/test-auth-request-var-expand.c:
	auth: Added unit test for auth %variable expansion.
	[fa891f697005]

	* src/auth/auth-request-var-expand.c:
	auth: Make sure %{mech} and %{session} is escaped in %var expansion.
	%{mech} is already very trusted and %{session} should be only from
	trusted sources as well, so this doesn't fix any actual security
	holes. They are also unlikely to have ever even been used in
	anything that requires escaping.
	[f59b5a599cae]

	* src/auth/Makefile.am, src/auth/auth-request-var-expand.c, src/auth
	/auth-request-var-expand.h, src/auth/auth-request.c, src/auth/auth-
	request.h:
	auth: Moved var_expand() related code to its own file.
	[cb66b25060b7]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Added log_level parameter to connect_string. Available
	values are critical, error, warn (default), info, debug and trace.
	[315adb25e6b4]

	* src/lib-fs/fs-api.h:
	lib-fs: Updated fs_write_stream_*() comments related to ostream
	corking and nfinish.
	[83f1b9956788]

	* src/lib-fs/fs-api.c:
	lib-fs: fs_write_stream_abort() now ignores missing
	o_stream_nfinish() call
	[1a52baa9bf27]

	* src/plugins/fts/fts-storage.c:
	fts: If precaching fails, stop precaching the rest of the mails. If
	there are a lot of mails to be precached, this could mean that the
	precaching is attempted for a long time and every one of them fails
	the same way.
	[485ed5de2473]

	* dovecot.m4:
	dovecot.m4: If run-test.sh fails, print the failing command to
	stderr. Currently otherwise the way Dovecot tests are run it's not
	clearly visible.
	[5e523f0bbdf8]

	* dovecot.m4:
	dovecot.m4: If NOVALGRIND environment is set, don't run tests via
	valgrind in "make check"
	[2dd8308f5d57]

	* src/lib-fs/fs-api.c:
	lib-fs: fs_write_stream() now automatically corks the ostream and
	uncorks at _finish().
	[0c55e484914c]

	* src/plugins/fts/fts-storage.c:
	fts: If last-uid lookup fails, return "Internal error" instead of
	"BUG" to client.
	[492d638c52c6]

2015-05-25  Timo Sirainen  <tss@iki.fi>

	* src/lib/mkdir-parents.c:
	lib: Avoid race conditions in mkdir*() if directory is being deleted
	at the same time. Mainly this allows the call to return failure
	silently without logging unnecessary errors.
	[dd2015e1362f]

	* src/log/log-connection.c:
	log: read() errors weren't logged.
	[fdc03f6cc45d]

2015-05-25  Pascal Volk  <user@localhost.localdomain.org>

	* dovecot.service.in:
	systemd service: Fixed typos in the comment section. The settings
	for the file descriptor limit is LimitNOFILE. Removed quotes around
	the value infinity. Otherwise systemd will fail to parse that
	resource value.
	[b088511e1cdb]

2015-05-17  Pascal Volk  <user@localhost.localdomain.org>

	* dovecot.service.in:
	systemd: Small improvements to the unit configuration file:

	 * Added Documentation URIs
	   * Added ExecReload, to reload the config instead of restarting
	   * Added a comment for modifying/extending the unit file.
	[8dc79a437858]

2015-05-24  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-auth.c:
	doveadm user: Don't change privileges when looking up users. We
	don't need to and it might fail.
	[6fcaaaf13171]

	* src/lib-storage/mail-namespace.c:
	lib-storage: If no namespaces were defined, the autocreated
	namespace settings were a bit wrong.
	[00ef92771cd9]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: If session_id isn't given, generate a new one. This is
	useful for tracking logs written by services that aren't directly
	related to any specific user session.
	[5f95cc2bd7aa]

	* src/lib-index/test-mail-index-transaction-update.c:
	lib-index: Unit test fix.
	[2de3c7248922]

	* src/lib/file-lock.h:
	lib: file_lock_try_update() comment updated. It should possibly be
	removed entirely from the API.
	[c792d026d3fa]

	* src/lib/file-create-locked.c, src/lib/file-create-locked.h:
	lib: file_create_locked() lock method is now configurable
	[57f8c2a6209b]

	* src/lib/file-create-locked.c:
	lib: file_create_locked() was leaking fds and locks.
	[1d088dc567bd]

2015-05-23  Timo Sirainen  <tss@iki.fi>

	* src/lib/file-create-locked.c:
	lib: file_create_locked() no longer logs an error if temp file is
	deleted under it.
	[f98aad82ddda]

	* src/lib/file-create-locked.c:
	lib: file_create_locked() wasn't deleting the temp file after
	successful link()
	[350f11821be2]

	* src/lib/Makefile.am, src/lib/file-create-locked.c, src/lib/file-
	create-locked.h:
	lib: Added file_create_locked()
	[78bbfe4e4e8e]

2015-05-22  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Don't crash if trying to add password with TAB or LF to auth
	cache. This would happen only if the passwords were stored as
	plaintext in passdb and the valid password actually contained TAB or
	LF.
	[b23a19faf304]

	* src/lib-index/mail-index-transaction-export.c, src/lib-index/mail-
	index-transaction-update.c:
	lib-index: Added asserts to make sure invalid extension records
	aren't written to log.
	[fd8edab94849]

2015-05-21  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-storage.c:
	fts: Fixed fts_enforced=yes when it has to wait for indexing to
	finish
	[8906101589f9]

	* src/plugins/fts/fts-storage.c, src/plugins/fts/fts-storage.h:
	fts: Added fts_enforced setting to disable fallbacking to slow
	search on errors.
	[b29b48376fb4]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/test-fts-
	filter.c:
	lib-fts: ICU normalization changes some characters to spaces -
	remove them. We don't really want to add spaces to our index. It
	would be nice if the words between spaces were actually split to
	different tokens, but that's more of the fts-tokenizer's job and at
	filter stage that's probably not wanted anymore.
	[5aae57dc5ad6]

	* src/lib/connection.c:
	lib: Cork connection output while handling input
	[191eaf662c21]

	* src/lib-fts/fts-tokenizer-generic.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Fixed handling tokens that contain only apostrophes
	[5b902db0cabc]

2015-05-21  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-tokenizer-generic-private.h, src/lib-fts/fts-
	tokenizer-generic.c, src/lib-fts/test-fts-tokenizer.c, src/lib-fts
	/word-properties.pl:
	lib-fts: Fix simple tokenizer apostrophe handling. Apostrophes and
	quotation marks are now treated as word breaks, except U+0027
	between non-wordbrek characters. The characters U+2019 and U+FF07
	are transformed to U+0027 before processing.
	[6c655ce3b857]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Fix tr29 tokenizer apostrophe handling. U+0027, which is
	called Single Quote in tr29, was not properly handled as a word
	boundary.
	[5ca59cffbf2f]

2015-05-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/fts-filter-normalizer-icu.c:
	lib-fts: Partially reverted d097a9779c37 - don't use lib_atexit()
	Because fts is loaded as plugin lib_atexit() is called after the
	plugin is already unloaded, so it crashes.
	[45013c8cf69c]

	* src/director/director-connection.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/doveadm
	/doveadm-director.c:
	director: Added "up" vs "down" states and doveadm director up/down
	commands. These commands are intended to be used by automated
	watchdogs that detect if backends are up or down. This way the vhost
	count doesn't get forgotten after server goes down. It also means
	that admin can manually take down a server by setting its vhost
	count to 0 without the watchdog automatically bringing it back up.
	[0ee3e734249a]

	* src/lib-charset/test-charset.c:
	lib-charset: test-charset unit test - Don't use invalid UTF-8 text
	in source code
	[0d815b4db957]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Fixed memory leaks in test-fts-filter unit test
	[713476fa84af]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/test-fts-icu.c:
	lib-fts: Call u_clean() at deinit to free up all of libicu's memory.
	[d097a9779c37]

	* src/lib-fts/test-fts-icu.c:
	lib-fts: test-fts-icu memory leak fix
	[c2ce65bb1caf]

	* src/plugins/fts/fts-search-args.c:
	fts + lib-fts: Fixed crash with some search queries that contained
	uninitialized search args.
	[3d2bd49e6b4a]

	* src/lib-storage/mail-search.c, src/lib-storage/mail-search.h:
	lib-storage: Added mail_search_init/deinit_arg() For forcibly
	initializing/deinitializing search args.
	[eafbf9a13bbd]

	* src/lib-storage/index/index-search.c, src/lib-storage/mail-search-
	args-imap.c, src/lib-storage/mail-search.c, src/lib-storage/mail-
	search.h:
	lib-storage: Cleanup - separate search arg values that are set by
	mail_search_init()
	[e6513dd519d5]

2015-05-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/message-decoder.c:
	lib-mail: Make sure iconv state is reset between MIME parts.
	[9809f68aaa36]

2015-05-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-normalizer-icu.c,
	src/lib-fts/fts-icu.c, src/lib-fts/fts-icu.h, src/lib-fts/test-fts-
	filter.c, src/lib-fts/test-fts-icu.c:
	lib-fts: Rewrite ICU handling functions. Some of the changes:
	 - Use buffers instead of allocating everything from data stack.
	 - Optimistically attempt to write the data directly to the buffers
	without first calculating their size. Grow the buffer if it doesn't
	fit first.
	 - Use u_strFromUTF8Lenient() instead of u_strFromUTF8(). Our input is
	already supposed to be valid UTF-8, although we don't check if all
	code points are valid, while u_strFromUTF8() does check them and
	return failures. We don't really care about if code points are valid
	or not and u_strFromUTF8Lenient() passes through everything.

	Added unit tests to make sure all the functions work as intended and
	all the UTF-8 input passes through them successfully.
	[309863bb69cc]

	* src/lib/buffer.c, src/lib/buffer.h:
	lib: Added buffer_get_writable_size()
	[3deb3fd654c6]

	* src/plugins/fts/fts-build-mail.c:
	fts: Avoid excessive data stack usage with lib-fts
	[a7175a018348]

	* src/lib-charset/charset-iconv.c:
	lib-charset: Fixed compile warning caused by earlier commit. This
	UNICODE_REPLACEMENT_CHAR_UTF8 part of the change was actually
	supposed to be a separate commit..
	[5c905c8afb02]

	* src/lib/unichar.h:
	lib: Added UNICODE_REPLACEMENT_CHAR_UTF8
	[ee240e7e4b6e]

	* src/lib/strfuncs.c, src/lib/strfuncs.h:
	lib: Added p_memdup()
	[aa216b4f1e0e]

	* src/lib-charset/Makefile.am, src/lib-charset/charset-iconv.c, src
	/lib-charset/test-charset.c:
	lib-charset: Added a minimal unit test
	[dcaf508860ad]

	* src/imap/imap-fetch-body.c:
	imap: Fixed crash in FETCH RFC822* caused by earlier commit
	[1044c55fb4ef]

2015-05-15  Timo Sirainen  <tss@iki.fi>

	* src/plugins/replication/replication-plugin.c:
	replication plugin: s/transction/transaction/ in debug log messages
	[0b13bfe5d09b]

	* src/doveadm/doveadm-director.c:
	doveadm director flush: Unless -F parameter is used, do the flush by
	moving users. User moving causes the users to be properly kicked out
	of the old backends before new connections are made to the new
	backends. This way the user isn't accessed simultaneously by
	different backends.
	[2336a3127a0f]

	* src/lib-master/ipc-client.c:
	lib-master: Added data stack frames to handling IPC input.
	[5175f8e600e9]

	* src/director/doveadm-connection.c:
	director: Added HOST-RESET-USERS command to move users to their
	hash-assigned hosts.
	[618c8d76bc5d]

	* src/director/director-connection.c, src/director/user-directory.h:
	director: Moving a user to another host sometimes caused the move to
	fail. It could have given "User hash .. is being redirected to two
	hosts" error and afterwards moved the user back to its original
	host.
	[51ee438392c7]

	* doc/example-config/conf.d/20-imap.conf, src/imap/cmd-close.c,
	src/imap/cmd-copy.c, src/imap/cmd-expunge.c, src/imap/cmd-store.c,
	src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-
	expunge.c, src/imap/imap-expunge.h:
	imap: Added %{deleted}, %{expunged} and %{trashed} to
	imap_logout_format
	[e0a17714f0c9]

	* doc/example-config/conf.d/20-imap.conf, src/imap/imap-client.c,
	src/imap/imap-client.h, src/imap/imap-fetch-body.c, src/imap/imap-
	fetch.h:
	Added %{fetch_hdr/body_count/bytes} variables to imap_logout_format
	[93bba97afb2a]

	* src/lib-imap-storage/imap-msgpart.c, src/lib-imap-storage/imap-
	msgpart.h:
	lib-imap-storage: Added imap_msgpart_contains_body()
	[4cd9e46e0c78]

	* .hgsigs:
	Added signature for changeset 917d027836d0
	[c627a0f64719]

	* .hgtags:
	Added tag 2.2.18 for changeset 917d027836d0
	[9e2df74a37c7]

	* NEWS, configure.ac:
	Released v2.2.18.
	[917d027836d0] [2.2.18]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Fixed handling EAGAIN errors when writing to
	replication-pipe.
	[d46270397a2f]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Added debug logging when mail_debug=yes
	[7cf62f28fd62]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: A small optimization to check the user's
	"dsyncing" status only once.
	[6a40cb15e48f]

	* src/lib-sql/driver-pgsql.c:
	pgsql: Don't crash at disconnect/deinit if there's an unfinished
	query.
	[b19ca4214e63]

	* src/lib-sql/driver-pgsql.c:
	pgsql: Log a warning if DNS lookup takes too long. Don't include it
	in connect timeout.
	[db41043041cb]

	* src/config/Makefile.am, src/lib-dict/Makefile.am, src/lib-
	fts/Makefile.am, src/lib-sql/Makefile.am, src/lib-
	storage/register/Makefile.am, src/lib/Makefile.am,
	src/plugins/quota/Makefile.am:
	Reverted d592417ec815 which added unnecessary code to Makefiles. The
	original problem it tried to solve was properly fixed by
	46969c4cc57e. make will actually wait for processes to finish
	creating files before it continues to the next program that wants to
	access the file. As long as the dependencies are correct.
	[55bcb0e792fc]

	* src/plugins/quota/Makefile.am:
	quota: Fixed dependency tracking in Makefile The earlier fix attempt
	was done by creating a .tmp file first, but that didn't really solve
	anything.
	[46969c4cc57e]

	* src/lib-storage/index/dbox-single/sdbox-copy.c, src/lib-
	storage/index/dbox-single/sdbox-file.c:
	sdbox: When hardlink-copying a mail in alt storage, keep it within
	the alt storage. Also make sure that the alt-flag is set correctly
	no matter where we copy the mail.
	[9ad3f11617f1]

2015-05-14  Timo Sirainen  <tss@iki.fi>

	* src/lib/test-istream-unix.c:
	lib: Use /dev/zero instead of /dev/stderr in test-istream-unix unit
	test Some distros don't seem to allow opening stderr.
	[91bbd6753689]

	* src/lib-imap/imap-keepalive.c:
	lib-imap: Fixed crash in IDLE for non-TCP connections.
	[4c4eff229426]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Fixed test-fts-filter when building without libstemmer
	[d09429bdb340]

2015-05-14  Matti Hamalainen  <ccr@tnsp.org>

	* configure.ac:
	configure: Use consistent quotation for AC_DEFINEs as per autoconf
	recommendations. Also fix one minor typo.
	[a2c3a0f671a6]

2015-05-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-pgsql.c:
	pgsql: Include connect state string on connect failure errors.
	[a0dd9dad3b8c]

	* src/lib-lda/mail-deliver.h:
	lib-lda: Added missing include file. This fixes building Pigeonhole
	in some systems.
	[05e14a49507f]

	* src/director/main.c:
	director: UNIX auth sockets were wrongly detected as doveadm or ring
	sockets. A workaround would be to use login/director-auth socket
	name instead of login/director.
	[cc6b6d7c1574]

2015-05-13  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Removed dead code Found by Coverity
	[041b6b9921c5]

	* src/lib-fts/Makefile.am:
	lib-fts: Makefile compiling dependency fix
	[13787b077df4]

	* .hgsigs:
	Added signature for changeset 166106aaefc5
	[ce1aa9c639ab]

	* .hgtags:
	Added tag 2.2.17 for changeset 166106aaefc5
	[7e437ea0cc0f]

	* NEWS, configure.ac:
	Released v2.2.17.
	[166106aaefc5] [2.2.17]

	* src/lib-lda/lda-settings.c:
	lib-lda: Don't crash if postmaster_address is given as command line
	parameter.
	[25dc311a5faa]

	* src/lib-storage/index/mbox/mbox-sync-rewrite.c:
	mbox: If we notice our internal state is wrong, avoid further
	corruption by returning error.
	[1171265c3834]

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Fixed corruption in some usage patterns. Something like:
	 - first mail is being expunged
	 - other mails are being rewritten and they get their space from the
	expunged mail
	 - there's not enough space for the last mail to get space
	 - we add more space
	 - we'll now need to use up the space. We can't just decide to mark the
	mails dirty.
	[b6ea460e7cc4]

	* 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: Fixed memory leak at user deinit.
	[8973648dd361]

	* 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: Crashfixes
	[e6e04177374d]

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Don't update "last indexed UID" if we couldn't actually
	add the mails to Solr.
	[5483aeb1ce9b]

	* src/director/login-connection.c, src/director/login-connection.h,
	src/director/main.c:
	director: Added "authreply" socket type. This allows defining a
	socket, which receives auth replies. Director then adds the "host"
	field to it if it's missing and returns back the original string.
	The idea is that eventually a director ring could be running
	independently from Dovecot proxies.
	[52cdf321fa07]

	* src/director/main.c:
	director: Removed accidentally committed debug log message
	[c97d10467b62]

	* src/lib-master/master-service-settings.c:
	lib-master: If executing doveconf, use
	master_service_settings_input.service for filter Instead of
	hardcoding to the master_service->name, which may be different. This
	fixes reading protocol sieve {} settings when if managesieve was
	reading settings via doveconf (= executed from command line).
	[f8f0a782213b]

	* src/director/main.c:
	director: Cleanup for director socket type configuration. It's now
	possible to use any type of a socket for inet listeners by
	specifying the name for the listener. The available types are: auth
	(default), userdb, ring (= director<->director connection),
	admin/doveadm. This change should be backwards compatible with
	previous configuration. This setting also deprecates
	director_doveadm_port setting.
	[fea09ab164dc]

	* src/lib-master/master-service.c, src/lib-master/master-service.h:
	lib-master: Added master_service_get_socket_name()
	[5614bc437643]

	* src/director/auth-connection.c, src/director/auth-connection.h,
	src/director/login-connection.c:
	director: Minor code cleanup - allow access to auth connection's
	ostream directly.
	[d54dc360cd3c]

	* src/director/auth-connection.c, src/director/auth-connection.h,
	src/director/login-connection.c:
	director: Reverted previous e178413a905d commit after all - do it a
	bit differently.
	[67fdd6f962f5]

	* NEWS, configure.ac, src/plugins/Makefile.am, src/plugins/quota-
	clone/Makefile.am, src/plugins/quota-clone/quota-clone-plugin.c,
	src/plugins/quota-clone/quota-clone-plugin.h:
	Added quota-clone plugin.
	[f5749f22276b]

	* src/lib-sql/Makefile.am:
	lib-sql: sqlite and cassandra libs were mixed up in the Makefile
	[69dcc2c8cd9d]

	* src/director/auth-connection.c, src/director/auth-connection.h,
	src/director/login-connection.c:
	director: Added a new DIRECTOR-LOOKUP command that auth connections
	can use. The parameters are the same as what auth lookup would
	receive from auth process. So the idea is that a proxy could do an
	auth lookup, then forward the reply to director, which would return
	back the updated reply with the host field added.
	[e178413a905d]

	* src/director/director-connection.c:
	director: Don't send DIRECTOR command infinitely in loop if that
	director got disconnected.
	[b7aed6290e7e]

	* src/director/director-connection.c, src/director/director-request.c,
	src/director/director.h, src/director/main.c, src/director/user-
	directory.c, src/director/user-directory.h:
	director: Include useful statistics in process title.
	[502755a1af5f]

	* src/director/director-connection.c:
	director: Fixed crash if director sent invalid data too early.
	[1c268a7cc74a]

	* src/director/director-connection.c:
	director: If we disconnect a director, pass the reason all the way
	to deinit's debug logging.
	[27baf04f2b18]

	* src/director/director.c:
	director: Improved debug logging about connecting to another
	director.
	[f43adca71e15]

	* src/doveadm/doveadm-dict.c:
	Make static analyzer happier.
	[e899171adc14]

2015-05-12  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 2c1ce55de520
	[71d88e63b183]

	* .hgtags:
	Added tag 2.2.17.rc2 for changeset 2c1ce55de520
	[b93731b6bc98]

	* NEWS, configure.ac:
	Released v2.2.17.rc2.
	[2c1ce55de520] [2.2.17.rc2]

	* src/lib/connection.c, src/lib/connection.h:
	lib: connection API: Added delayed_unix_client_connected_callback
	setting. 092a51d80bad commit changed this functionality first to fix
	lib-http code, but it broke other code. 1fac17a2bc53 reversed the
	original behavior. This change allows either behavior optionally.
	[6f167f2e550d]

	* src/doveadm/doveadm-fs.c:
	doveadm fs: Improved error message logging.
	[c4bef3533ecd]

	* src/doveadm/doveadm-dict.c:
	doveadm dict iter: Added -1 parameter to enable
	DICT_ITERATE_FLAG_EXACT_KEY
	[04e169b3bfe6]

	* src/lib-dict/dict-sql.c:
	dict-sql: Fixed non-recursive iteration. If path has e.g.
	"a/$var/b/$var2" and we're iterating "a/", we shouldn't return
	anything under "a/*/b/".
	[fce3e3eef9f0]

	* src/lib-sql/driver-cassandra.c:
	cassandra: Leave consistency to default if it's not specified in
	config.
	[f0273ba240ae]

	* src/lib/connection.c:
	lib: connection API was unnecessarily delaying client_connected()
	calls for UNIX sockets.
	[1fac17a2bc53]

	* src/doveadm/doveadm.c:
	doveadm: Register builtin dict drivers always at init
	[2460008d50d1]

	* src/lib-dict/dict-register.c:
	lib-dict: Allow registering builtin dict drivers multiple times.
	[ac259cd62fbc]

	* src/lib-sql/driver-cassandra.c:
	lib-sql: Don't crash in Cassandra if connection to it failed.
	[d71fa3ae930f]

2015-05-12  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-filter-normalizer-icu.c:
	lib-fts: ICU normalizer code cleanup.

	Fold some long lines. Rename the internal struct to be more aligned
	with the other filters.
	[d09d2ea2c31a]

2015-05-12  Phil Carmody  <phil@dovecot.fi>

	* src/lib-fts/Makefile.am, src/lib-fts/word-boundary-data.sh, src/lib-
	fts/word-break-data.sh, src/lib-fts/word-properties.pl:
	lib-fts: autogenerate C arrays using perl

	The sh script had bashisms, the awk script crashed mawk, so let's
	try perl...

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[58d7234a6658]

2015-05-12  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fs-compress/Makefile.am:
	fs-compress: Added NOPLUGIN_LDFLAGS to Makefile for helping with
	linking
	[0cbb125046a5]

	* src/lib-fts/Makefile.am:
	lib-fts: .sh scripts weren't executable - changed them to be run via
	bash directly. Better to avoid relying on the executable bit.
	[e991baeb8bb7]

	* src/lib-fts/Makefile.am, src/lib-fts/word-boundary-data.awk, src
	/lib-fts/word-boundary-data.sh, src/lib-fts/word-break-data.awk, src
	/lib-fts/word-break-data.sh:
	lib-fts: Reverted e80969ea8684 which replaced .sh scripts with awk
	Bugs in older awk versions (used at least by Debian squeeze &
	wheezy) caused awk to crash while processing the script.
	[2cfb80f7785e]

2015-05-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/Makefile.am:
	Makefile: Fixed build concurrency issues with lib-fts
	[7d52d6595f5e]

	* src/lib-fts/Makefile.am, src/lib-fts/word-boundary-data.awk, src
	/lib-fts/word-boundary-data.sh, src/lib-fts/word-break-data.awk, src
	/lib-fts/word-break-data.sh:
	lib-fts: Replaced word-boundary/break-data.sh with more portable awk
	scripts Patch by Michael Grimm.
	[e80969ea8684]

	* configure.ac, src/lib-sql/Makefile.am, src/lib-sql/driver-
	cassandra.c:
	lib-sql: Added support for Cassandra CQL as lib-sql backend.
	Implemented using DataStax's cpp-driver.

	Many things are still unimplemented. Column name specific
	functionality isn't even supported by the Cassandra library. So this
	can currently mainly be used as one of the dict backends for some
	simple functionality.
	[3725c601dbaf]

	* src/lib-dict/dict-sql.c:
	dict-sql: If DICT_ITERATE_FLAG_EXACT_KEY is used, use only the first
	found map.
	[7abdcf42b63b]

	* src/lib-dict/dict-file.c, src/lib-dict/dict-fs.c, src/lib-dict/dict-
	sql.c, src/lib-dict/dict.h:
	lib-dict: Added DICT_ITERATE_FLAG_EXACT_KEY flag. This is mainly
	useful with SQL for iterating through a result that has multiple
	rows.
	[bb7d35fa9b43]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Fixed/improved test-fts-filter unit tests for previous
	changes.
	[44a87e17f988]

	* src/lib-fts/fts-filter-normalizer-icu.c:
	lib-fts: normalizer-icu no longer returns empty tokens.
	[d4541fd7a531]

	* src/lib-fts/fts-filter.c:
	lib-fts: Added assert to fts_filter_filter() to make sure input
	token isn't empty
	[cc59ac0f6a45]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Fixed assert-crash in fts-tokenizer-generic
	[aa3374b9ce0f]

	* src/lib-fts/test-fts-tokenizer.c:
	lib-fts: Test trailing "number." for TR29 in test-fts-tokenizer
	[2483039db977]

	* src/lib-fts/test-fts-tokenizer.c:
	lib-fts: Improved test-fts-tokenizer to run multiple text inputs
	[9f06c6054e3e]

	* src/lmtp/commands.c:
	lmtp: Earlier compiler warning fix broke compiling completely..
	[103f64df4e77]

	* src/lib-fts/fts-filter.c, src/lib-fts/fts-tokenizer.c:
	lib-fts: Added asserts to make sure we don't return empty tokens.
	[13461d146be0]

	* src/imap-urlauth/imap-urlauth.c, src/plugins/fts-lucene/lucene-
	wrapper.cc, src/pop3/main.c:
	Compiler warning fixes
	[9c4d1e1e252f]

	* src/lmtp/commands.c:
	lmtp: chdir() to base_dir shouldn't fail - log an error if it does
	[413962f2b7e7]

2015-05-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-map-hdr.c, src/lib-index/mail-index-map-
	read.c, src/lib-index/mail-index-private.h, src/lib-index/mail-
	index-sync-update.c:
	lib-index: If header is corrupted after syncing, log the reason why.
	[69630e6048fd]

	* src/plugins/fts/fts-build-mail.c:
	fts: Fixed crash when not using lib-fts
	[fddd3dbdf987]

	* src/lib-http/http-server-connection.c:
	lib-http: http-server now always creates a payload istream, even
	empty one. This simplifies the caller's logic so that it doesn't
	need to explicitly check if payload is NULL everywhere.
	[05ee9da60255]

2015-05-09  Timo Sirainen  <tss@iki.fi>

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Added more debug and error logging.
	[3903badc4ee0]

	* .hgsigs:
	Added signature for changeset da685736985a
	[8b20d717a3e9]

	* .hgtags:
	Added tag 2.2.17.rc1 for changeset da685736985a
	[8e9dfdfea3ce]

	* NEWS, configure.ac:
	Released v2.2.17.rc1.
	[da685736985a] [2.2.17.rc1]

	* configure.ac, src/lib-compression/Makefile.am, src/lib-compression
	/fs-compress.c, src/plugins/Makefile.am, src/plugins/fs-
	compress/Makefile.am, src/plugins/fs-compress/fs-compress.c:
	Moved fs-compress to a separate plugin directory. Mainly because I
	couldn't figure out how to make automake dependencies work on "make
	install" stage. It was trying to link fs-compress.so using
	-ldovecot-storage, but libdovecot-storage.so was also concurrently
	being installed.
	[7799886e017a]

	* src/lib-http/http-server-connection.c, src/lib-index/mail-
	transaction-log-file.c, src/lib-mail/ostream-dot.c, src/lib-
	storage/index/index-mail.c, src/lib-storage/index/maildir/maildir-
	uidlist.c:
	Make Coverity happier.
	[49f5131a502e]

	* src/plugins/quota/quota-dict.c:
	quota-dict: It wasn't possible to use multiple quota settings. Found
	by Coverity
	[8b452eb97422]

	* src/anvil/penalty.c:
	anvil: Penalty tracking was moving last checksums wrongly with
	memcpy(). Depending on the OS/etc this could have caused the
	checksum tracking to go wrong. Found by Coverity.
	[398d94f08407]

	* src/doveadm/server-connection.c:
	doveadm-server: Fixed potential crash if doveadm client disconnected
	Found by Coverity
	[e702b7a745e0]

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h:
	doveadm: Removed unused doveadm_mailbox_find_and_sync() function
	[cff670d68f69]

	* src/imap/cmd-append.c:
	imap: Don't crash if APPEND command is given with invalid
	parameters. Found by Coverity.
	[1c2e42bf8825]

	* src/lib-mail/istream-attachment-extractor.c:
	lib-mail: Improved istream-attachment-extractor error logging.
	[024fb73d7d62]

	* src/lib-mail/istream-attachment-extractor.c:
	lib-mail: Fixed crash in istream-attachment-extractor error handling
	path
	[d547eee8a8c7]

	* src/indexer/master-connection.c:
	indexer-worker: Don't crash if we failed to get mailbox path. Found
	by Coverity
	[a982d64d1727]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer-
	generic.c, src/lib-fts/fts-tokenizer-private.h, src/lib-fts/fts-
	tokenizer.c, src/lib-fts/fts-tokenizer.h, src/lib-fts/test-fts-
	tokenizer.c, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-
	search-args.c:
	lib-fts: Changed fts_tokenizer_next/final() to return error string.
	The current tokenizers can't fail, but if we're doing tokenization
	via external services they could fail.
	[7f151aca47ac]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer-
	generic.c:
	lib-fts: Minor code cleanup - avoid functions always returning same
	value Makes it clearer to see in the code that the function can't
	return any failures.
	[fa55a06ffae2]

	* src/lib-fts/fts-language.c, src/lib-fts/fts-language.h, src/lib-fts
	/test-fts-language.c, src/plugins/fts/fts-user.c:
	lib-fts: fts_language_list_init() API changed to return errors.
	[1fc7ae2640b0]

	* src/plugins/virtual/virtual-save.c:
	virtual: Don't crash if trying to save mail to a virtual mailbox
	without configured save-mailbox. Found by Coverity
	[0a1726e7015b]

	* src/lib-fs/fs-metawrap.c:
	lib-fs: Minor code cleanup Both temp_output and super_output are
	NULL so it doesn't matter which we use, but this change makes it use
	the intended variable.
	[24c2adaded28]

	* src/lib-compression/Makefile.am:
	lib-compression: Fixed dependency tracking in Makefile
	[ceb9c13eb3c0]

2015-05-09  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/Makefile.am, doc/man/doveadm-acl.1.in, doc/man/doveadm-
	altmove.1.in, doc/man/doveadm-batch.1.in, doc/man/doveadm-
	deduplicate.1.in, doc/man/doveadm-expunge.1.in, doc/man/doveadm-
	fetch.1.in, doc/man/doveadm-flags.1.in, doc/man/doveadm-force-
	resync.1.in, doc/man/doveadm-fts.1.in, doc/man/doveadm-import.1.in,
	doc/man/doveadm-index.1.in, doc/man/doveadm-mailbox.1.in, doc/man
	/doveadm-move.1.in, doc/man/doveadm-purge.1.in, doc/man/doveadm-
	quota.1.in, doc/man/doveadm-search.1.in, doc/man/doveadm-sync.1.in,
	doc/man/option-F-file.inc, doc/man/option-u-user.inc,
	doc/man/sed.sh:
	man: Added description of option `-F file'.
	[c469d8f4cde7]

2015-05-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/test-fts-tokenizer.c:
	lib-fts: Various improvements to test-fts-tokenizer
	[e4b62ba0fb5a]

	* src/lib-fts/fts-tokenizer.c, src/lib-fts/fts-tokenizer.h,
	src/plugins/fts/fts-search-args.c:
	lib-fts: Added fts_tokenizer_final() as a convenience wrapper.
	[7542e3be6721]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Fixed token truncation.
	[dd04199a689f]

	* src/lib-fts/fts-filter-normalizer-icu.c:
	lib-fts: Fixed compiling without libicu
	[99ad974a3828]

	* src/lib-storage/mail-storage-hooks.c:
	lib-storage: Run each storage hook inside its own data stack frame.
	[de8561d67b38]

	* src/plugins/fts/fts-user.c:
	fts: Renamed filter and tokenizer specific setting keys. Having the
	plural in the name didn't make a lot of sense, so all the settings
	are now:

	 fts_filters = name1 name2 fts_filters_<lang> = name3 name 4
	fts_filter_<name> = key1=value1 fts_filter_<lang>_<name> =
	key2=value2

	 fts_tokenizers = name1 name2 fts_tokenizer_<name> = key1=value1

	So this also removes the confusion in settings if there existed a
	filter with one of the language names.
	[f5cebd75975f]

	* src/plugins/fts/fts-user.c:
	fts: Simplify error messages a little bit to be more consistent with
	other such errors. Only the setting name is really important.
	[cfe29a5d66ed]

	* src/plugins/fts/fts-user.c:
	fts: Use key=value instead of "key value" settings for tokenizers
	and filters.
	[82831550757b]

	* src/plugins/fts/fts-user.c:
	fts: If fts_filters setting doesn't exist, use built-in defaults.
	[461bb302bd03]

	* src/plugins/fts/fts-user.c:
	fts: Prefer language-specific filter settings over global
	fts_filters setting.
	[b0ac652f9e2f]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/fts-filter.c,
	src/lib-fts/fts-filter.h, src/lib-fts/fts-tokenizer-address.c, src
	/lib-fts/fts-tokenizer-generic-private.h, src/lib-fts/fts-
	tokenizer.c, src/lib-fts/fts-tokenizer.h:
	lib-fts: Minor code cleanups
	[7bd196b84518]

	* src/lib-fts/fts-tokenizer-generic-private.h, src/lib-fts/fts-
	tokenizer-generic.c:
	lib-fts: fts-tokenizer-generic-private.h had content that didn't
	really belog there.
	[00240870d0bd]

	* src/lib-fts/fts-filter-lowercase.c, src/lib-fts/fts-filter-
	normalizer-icu.c, src/lib-fts/fts-filter-private.h, src/lib-fts/fts-
	filter-stemmer-snowball.c, src/lib-fts/fts-filter-stopwords.c:
	lib-fts: Removed supports() function from filter API I think the
	original idea was that this could be used to automatically create
	filters for many languages, but this probably won't be needed or
	wanted.
	[e2a0b43e73ef]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer-
	generic.c, src/lib-fts/fts-tokenizer.h, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Removed tokenizer name macros from fts-tokenizer.h The
	tokenizers can be directly accessed via their class structs.
	[12aeb1ac8f0d]

	* src/lib-fts/fts-tokenizer.c:
	lib-fts: Store pointers to fts_tokenizer classes instead of copying
	the data. The same reason as for doing this for fts-filter.
	[5937f4d505c5]

	* src/lib-fts/test-fts-tokenizer.c:
	lib-fts: test-fts-tokenizer cleanup - moved tokenizers_init/deinit()
	to be done globally
	[cd376c0ac132]

	* src/lib-fts/fts-filter-lowercase.c, src/lib-fts/fts-filter-
	normalizer-icu.c, src/lib-fts/fts-filter-stemmer-snowball.c, src
	/lib-fts/fts-filter-stopwords.c, src/lib-fts/fts-filter.h, src/lib-
	fts/test-fts-filter.c:
	lib-fts: Removed filter name macros from fts-filter.h The filters
	can be directly accessed via their class structs.
	[055666aaba5a]

	* src/lib-fts/fts-filter.c:
	lib-fts: Store pointers to fts_filter classes instead of copying the
	data. Doesn't really matter, but it's a bit cleaner when
	fts_filter_find() returns the same pointer as the fts_filter class
	originally was.
	[307fe289f1b7]

	* src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-user.c,
	src/plugins/fts/fts-user.h:
	fts: Lowecase non-human language input while indexing.
	[fcc20dce3c83]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-lowercase.c, src
	/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h, src/lib-fts/test-
	fts-filter.c:
	lib-fts: Added "lowercase" filter. For now it handles only ASCII
	characters, but that's enough for our use.
	[75b4b312ea09]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-normalizer-simple.c,
	src/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h:
	lib-fts: Removed "simple" normalizer. It translated input to
	titlecase, which wasn't suitable for snowball stemming that wanted
	lowercase input. Since that doesn't work, there's probably no good
	for the existence of this (perhaps in future it's replaced by
	unicode-aware lowercaser).
	[1963690280b7]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Minor unit test cleanups
	[b2f9e4cf17db]

	* src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-search-args.c:
	fts: Reset tokenizers before using them This is mainly needed if the
	previous tokenization had failed.
	[d2e0e9aed81c]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer-
	generic.c, src/lib-fts/fts-tokenizer-private.h, src/lib-fts/fts-
	tokenizer.c, src/lib-fts/fts-tokenizer.h, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Added fts_tokenizer_reset()
	[2dca6925bd88]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: fts-tokenizer-address didn't reset state properly when
	input ended.
	[363397c3701e]

	* src/lib-fts/fts-tokenizer-generic.c, src/plugins/fts/fts-user.c:
	fts: When tokenizing a search word, give "search" parameter to all
	the tokenizers.
	[eff53aa9cb58]

	* src/plugins/fts/fts-search-args.c:
	fts: Don't crash if search arg string expands to empty token list.
	[162668a63045]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Use case-sensitive settings comparisons in fts-tokenizer
	Dovecot in general doesn't allow case-insensitive settings.
	[3bcd04bf5635]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Minor unit test fix - use case sensitive checks for word
	comparison.
	[6c284e61013f]

	* src/lib-storage/mail-search.c, src/lib-storage/mail-search.h:
	lib-storage: mail_search_arg_dup() is now a public function.
	[eb6fbab30cf6]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Implemented "search" parameter to fts-tokenizer-address.
	[60f07e741c57]

	* src/plugins/fts/fts-search-args.c:
	fts: If filtering fails during search arg expansion, fail the fts
	search.
	[07597666aa29]

	* src/lib-fts/fts-filter-normalizer-icu.c:
	lib-fts: Compiler warning fix when building without libicu
	[3363fadc2e13]

	* src/lib-fts/fts-tokenizer-address.c:
	lib-fts: Minor fts-tokenizer-address cleanups
	[ac6ae1b9f5c4]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Removed explicit no_parent setting from fts-address-
	tokenizer It was used only by unit tests and we can check it without
	the setting as well.
	[7c1fe66e8855]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-tokenizer-address.c:
	lib-fts: Use rfc822-parser in fts-tokenizer-address instead of
	duplicating its code.
	[f4b2aa500cde]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Don't treat empty domains as valid addresses. This actually
	pretty much reverts the previous patch and just fixes the original
	code's chars_after_at() to work correctly. Also renamed the function
	to make it a bit clearer what was intended.
	[bcfe4c592427]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Removed unnecessary code from fts-address-tokenizer.
	chars_after_at() was only used to check if local-part was empty, but
	it was checked at a state where it never could have been empty.
	[b9f85e125639]

	* src/lib-fts/fts-filter-stopwords.c:
	lib-fts: Various fixes and cleanups to stopwords filter. Most
	importantly words added to hash table needs to be allocated from the
	pool and not data stack.
	[adf9eb277499]

	* src/lib-fts/fts-filter-stemmer-snowball.c, src/lib-fts/fts-filter-
	stopwords.c, src/lib-fts/fts-language.h, src/lib-fts/test-fts-
	filter.c:
	lib-fts: Assume that fts_language.name is always lowercased and has
	two letters. Anything else just unnecessarily complicates the code.
	[92ee245b1406]

	* src/lib-fts/fts-filter.c, src/lib-fts/test-fts-filter.c:
	lib-fts: Fixed test-fts-filter unit test to handle errors a bit
	better.
	[e1d2702eea84]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/fts-filter-
	normalizer-simple.c, src/lib-fts/fts-filter-private.h, src/lib-fts
	/fts-filter-stemmer-snowball.c, src/lib-fts/fts-filter-stopwords.c,
	src/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h:
	lib-fts: Changed filter's internal APIs to return error_r directly.
	It's not very safe to store strings allocated from data stack to any
	permanent structs.
	[cfa35069876b]

	* src/lib-fts/fts-filter-stemmer-snowball.c:
	lib-fts: Snowball's sb_stemmer_stem() can only fail because it runs
	out of memory.
	[7de648f42bc0]

2015-05-09  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-fts/fts-tokenizer-generic.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Improve using max_length in tr29 tokenizer
	[b0a934361563]

	* src/lib-fts/fts-tokenizer-generic.c, src/lib-fts/test-fts-
	tokenizer.c:
	lib-fts: Fixed using max_length setting in simple tokenizer
	[2048dade16e7]

	* src/lib-fts/fts-tokenizer-generic.c:
	lib-fts: Default to simple tokenizer algorithm
	[8d445959df03]

	* src/lib-fts/fts-filter-stopwords.c, src/lib-fts/test-fts-filter.c:
	lib-fts: Delay stopwords filter full initialization until it's
	needed.
	[6a6ce51597f7]

	* src/lib-fts/fts-filter-stemmer-snowball.c:
	lib-fts: Delay snowball filter initialization until it's needed.
	[a45a328c5019]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/fts-filter-
	private.h, src/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h, src
	/lib-fts/test-fts-filter.c, src/plugins/fts/fts-build-mail.c,
	src/plugins/fts/fts-search-args.c:
	fts: Improve filter error handling.

	In lib-fts: Move error storage to the generic filter struct level.
	Change make_utf8 helper to void also.

	In fts: Add the error argument to _filter() calls.
	[230698a51fbb]

	* src/lib-fts/fts-filter-normalizer-icu.c:
	lib-fts: Removed make_uchar() return value. It was already de facto
	meaningless, so best we remove it.
	[8c33d375c73e]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/test-fts-
	filter.c:
	lib-fts: normalizer-icu now delays initialization of libicu. This
	way the normalizer can be quickly created even if it's never even
	used.
	[3ae8ae7f1022]

	* src/lib-fts/fts-filter-normalizer-icu.c, src/lib-fts/fts-filter-
	normalizer-simple.c, src/lib-fts/fts-filter-private.h, src/lib-fts
	/fts-filter-stemmer-snowball.c, src/lib-fts/fts-filter-stopwords.c,
	src/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h, src/lib-fts
	/test-fts-filter.c, src/plugins/fts/fts-build-mail.c,
	src/plugins/fts/fts-search-args.c:
	fts: Change filter API to be able to return errors

	Modify fts_filter_filter() to return integer status codes. It
	returns 1 if a token was returned, 0 if it was filtered away and -1
	on error.
	[95a827d97e5b]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer-
	generic.c, src/lib-fts/fts-tokenizer-private.h, src/lib-fts/fts-
	tokenizer.c, src/lib-fts/fts-tokenizer.h, src/lib-fts/test-fts-
	tokenizer.c, src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-
	search-args.c:
	fts: Change tokenizer API to be able to return errors

	Modify fts_tokenizer_next() to return integer status codes. It
	returns 1 if a token was returned in *token_r, 0 if more input is
	needed and -1 on error.
	[7fe766887394]

	* src/plugins/fts/fts-user.c:
	fts: Replace '-' with '_' in tokenizer-specific fts_tokenizers_*
	settings
	[cebe8be92034]

	* src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer.c,
	src/lib-fts/fts-tokenizer.h, src/lib-fts/test-fts-tokenizer.c,
	src/plugins/fts/fts-api-private.h, src/plugins/fts/fts-build-mail.c,
	src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-search-args.c,
	src/plugins/fts/fts-storage.c, src/plugins/fts/fts-user.c,
	src/plugins/fts/fts-user.h:
	fts: Create tokenizers differently

	Create tokenizers earlier. Create separate tokenizers for search and
	indexing. Enable configuration of tokenizers. Add some helpers in
	fts-tokenizer.h api. Change tokenizer unit tests to match those
	changes.

	lib-fts: Refactor lib-fts settings a bit

	Turned address tokenizer settings into "boolean" values. Changed
	have_parent to "no_parent" and added "search" setting. Added
	documentation in fts-tokenizer.h. Change unit tests accordingly.
	[ae0458c63761]

	* src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-search-args.c,
	src/plugins/fts/fts-user.c, src/plugins/fts/fts-user.h:
	fts: Create filters earlier

	This builds on the assumption that early initialization will be made
	less costly, in a coming change.
	[abbd71252175]

2015-05-08  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-search-args.c:
	fts: Fixed handling NOT when using lib-fts
	[6ec2073bbf5c]

	* src/doveadm/doveadm-dsync.c, src/doveadm/doveadm-mail.c, src/doveadm
	/doveadm-mail.h:
	dsync: Stop running if SIGINT/SIGTERM is received.
	[60e48bb43f19]

	* src/lib-compression/Makefile.am, src/lib-compression/fs-compress.c,
	src/lib-fs/Makefile.am, src/lib-fs/fs-compress.c:
	Moved fs-compress from lib-fs to lib-compression. This solves build
	ordering issues.
	[f2a8e1793718]

2015-05-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-
	compress.c:
	lib-fs: Fixed fs-compress code to actually build and run. It's a
	plugin (because it depends on extra compression libraries). We want
	to register it only when it's explicitly attempted to be used, not
	before.
	[7516211ff7e6]

	* src/lib-fs/Makefile.am, src/lib-fs/fs-api-private.h, src/lib-fs/fs-
	api.c, src/lib-fs/fs-compress.c:
	lib-fs: Added fs-compress wrapper. Future TODO could include
	automatically detecting the format of the input file, but this
	should be optional.
	[4c8fc477d68a]

	* src/lib-storage/list/mailbox-list-maildir.c:
	lib-storage: Fixed LAYOUT=imapdir to work again Patch by Jason
	Gunthorpe
	[c45fe041ccfb]

	* src/director/doveadm-connection.c:
	director: Fixed "doveadm director status <user>" lookup to return
	"Current" correctly.
	[04ac1a15e6e4]

	* doc/example-config/conf.d/20-lmtp.conf:
	example-config: s/Recipient:/Received:/
	[7a972218b15e]

	* doc/example-config/conf.d/20-lmtp.conf:
	exmaple-config: Added lmtp_hdr_delivery_address setting.
	[6417e972a602]

	* src/auth/auth-worker-client.c:
	auth: Added assert to make sure previous change is correct.
	[d3332ee1d26a]

	* src/auth/auth-worker-client.c:
	auth: Fixed credentials lookups via auth-workers when no actual
	password was returned. For example LDAP lookup with auth_bind=yes
	should still return any extra fields.
	[8a3da4ef590f]

	* src/auth/passdb-ldap.c:
	ldap auth: If password is already verified (e.g. master user login),
	skip LDAP auth binding. This happens only if auth_bind_userdn isn't
	set, i.e. it only makes sense if the LDAP DN lookup also returns
	some extra fields.
	[5dc00179dd60]

	* src/lib-storage/index/mbox/mbox-sync-rewrite.c:
	mbox: Added an extra assert
	[34b5abf6b9b7]

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Fixed crash/corruption in some situations when the first mail
	was expunged. This could be reproduced with default mbox settings,
	IMAP session that does
	 - STORE 1 +FLAGS \DELETED
	 - EXPUNGE

	With mbox containing:

	=== From root@example.com Tue Jan 13 10:18:16 2015

	a

	From root@example.com Tue Jan 13 10:18:20 2015

	a

	===
	[94bd895721d8]

2015-05-06  Timo Sirainen  <tss@iki.fi>

	* configure.ac, src/imap/imap-client.c:
	imap: Don't advertise SPECIAL-USE if there are no such mailboxes
	configured.
	[18b71db74d31]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync/test-
	dsync-mailbox-tree-sync.c:
	dsync: Don't try to rename namespace roots. It'll just cause an
	assert-crash.
	[6612d20f2fb8]

	* src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c:
	doveadm: Changed -U to -F Otherwise -U collides with doveadm sync -U
	parameter. -F isn't currently used by anything.
	[13c933ed6371]

	* src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c,
	src/doveadm/doveadm-mail.h:
	doveadm: Added -U <file> parameter for executing the command for all
	the users in the file. This is similar to -A parameter, but instead
	of getting the list of users from userdb they are read from the
	file. The file contains one username per line.
	[14eae320322c]

	* src/doveadm/doveadm-mail-mailbox-status.c, src/doveadm/doveadm-mail-
	mailbox.c, src/doveadm/doveadm-mail.h:
	doveadm-server: Invalid parameters for some commands caused crash at
	deinit handlers. deinit() can be called even if init() was never
	called.
	[5fce0eaa75d6]

	* src/util/script.c:
	script: Another comment update about protocol - the previous one was
	wrong.
	[956e152467de]

	* src/util/script.c:
	script: Updated comment to describe the current script protocol.
	[cf9e0cbf55a9]

2015-05-05  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Fixed function return type
	[2a2b3897dfe1]

	* src/lib-storage/mailbox-list.c:
	lib-storage: After mailbox_list_init_fs() is finished, notify fs
	about it. Creating a separate fs_init_finish() would perhaps have
	been clearner, but it's a lot more work and usually isn't even
	necessary for most backends. So I simply chose to use
	fs_get_properties() which is a fast call in all fs backends and the
	few ones that actually care about the initialization finish can then
	do their work in there.
	[5c80c7309635]

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Removed lazy initialization code. This is no longer
	needed after the previous fts commit.
	[25f29613908f]

	* src/plugins/fts/fts-plugin.c, src/plugins/fts/fts-storage.c,
	src/plugins/fts/fts-storage.h:
	fts: Initialize fts backend in mail_namespaces_added(), not in
	mailbox_list_created() This way the storage has already been created
	by the time fts initialization starts, which simplifies things.
	[eee937dc9438]

	* src/lib-storage/mailbox-list.c:
	lib-storage: mailbox_list_fs_get_list() shouldn't crash if fs wasn't
	created by mailbox_list_init_fs()
	[164d4d499069]

	* src/auth/auth-request.c:
	auth: If passdb has non-matching allow_nets, don't fail the other
	passdb lookups also. We might want to use e.g.:

	passdb { driver = static args = password=secretmasterpass
	allow_nets=10.1.2.3 } passdb { ... }

	If allow_nets didn't match in the first passdb, we should just
	ignore it and continue to the next passdb.
	[5e445c659f89]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Another attempt at fixing recursive deletion. I'm
	not entirely sure anymore what the original infinite looping was,
	but this fixes all the potential problems that I see.
	[a46620d6e0ff]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Reverted last two patches - they were all
	completely wrong..
	[9b2b3c609367]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Recent changes broke it completely.
	[5d67814a596d]

2015-05-04  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-attribute.c, src/lib-storage/mailbox-
	attribute.h:
	lib-storage: Fixed setting/getting server metadata. Also added a
	MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() macro to make it a bit
	easier to check if a key should be accessible to a user or not.
	[986cbdfb887d]

2015-05-04  Stephan Bosch  <stephan@rename-it.nl>

	* 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-attribute-private.h, src/lib-storage/mailbox-
	attribute.c, src/lib-storage/mailbox-attribute.h:
	mail-storage: Moved mailbox attributes API to separate module.
	[5f43c88e2c87]

2015-05-04  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api.c:
	lib-fs: Forgot to initialize refcount in previous commit
	[6403ccd2f5f9]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-
	api.h:
	lib-fs: Added fs_ref() and fs_unref() for reference counting.
	[0b297bc94746]

	* src/imap/imap-fetch-body.c, src/lib-imap-storage/imap-msgpart.c, src
	/lib-imap-storage/imap-msgpart.h:
	imap: FETCH BODY.PEEK[HEADER.FIELDS (..)] didn't set wanted_headers
	optimization. Primarily this fixes imapc's prefetching.
	[8c49fb6d789b]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib-
	storage/index/imapc/imapc-mail.c:
	imapc: Various optimization fixes to fetching messages' virtual
	size.
	[d350a23207c2]

	* src/lib-storage/index/imapc/imapc-mail.c:
	imapc: imapc-features=rfc822.size didn't work for fetching mail's
	virtual size. Physical and virtual sizes are the same for imapc.
	[8f20aa806bcc]

	* configure.ac:
	configure: When compiling with sqlite3, don't forcibly link with
	zlib. Looks like -lz was originally added when it was copy&pasted
	from some other code. Hopefully this isn't actually needed by any
	(current) system.
	[e4ad83ed88c9]

	* doc/man/doveadm-sync.1.in:
	man: Fixed -Dv parameter position in doveadm-sync.1
	[e9cf0ac3a629]

2015-05-03  Timo Sirainen  <tss@iki.fi>

	* src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-global-
	file.c, src/plugins/acl/acl-global-file.h:
	acl: Log more debug info with mail_debug=yes
	[a0b2217b1eab]

	* src/lib-mail/quoted-printable.c, src/lib-mail/quoted-printable.h,
	src/lib-mail/test-quoted-printable.c:
	lib-mail: Removed quoted_printable_decode*()
	quoted_printable_q_decode() was still left in quoted-printable.h,
	but maybe it should be moved to qp-decoder.c as well.
	[780a8f4544ec]

	* src/lib-mail/Makefile.am, src/lib-mail/message-decoder.c, src/lib-
	mail/test-message-decoder.c:
	lib-mail: Switched message-decoder to use qp-decoder. This probably
	doesn't fix any actual bugs, but allows getting rid of the
	quoted_printable_decode*()
	[b10aebbb42df]

	* src/lib-mail/Makefile.am, src/lib-mail/istream-qp-decoder.c, src
	/lib-mail/test-istream-qp-decoder.c:
	lib-mail: Fixed various istream-qp-decoder bugs by switching to qp-
	decoder API
	[a8e9fdcb17c5]

	* src/lib-mail/Makefile.am, src/lib-mail/qp-decoder.c, src/lib-mail
	/qp-decoder.h, src/lib-mail/test-qp-decoder.c:
	lib-mail: Added qp-decoder, which is a rewritten
	quoted_printable_decode() The main benefit is that qp-decoder allows
	feeding data to it in smaller pieces. It can also give better error
	reporting.
	[a9f8a617dc02]

2015-04-29  Timo Sirainen  <tss@iki.fi>

	* src/director/login-connection.c:
	director: Log error if auth sends invalid lip/lport/port parameter.
	This also fixes compiler warnings.
	[333533e2d231]

	* src/lib/test-net.c:
	lib: Added unit test for net_ip2addr() and fixed net_is_in_network()
	test.
	[009648acd7fb]

	* src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib
	/test-net.c, src/lib/test-network.c:
	lib: Renamed test-network to test-net Since network.c had been
	renamed to net.c some time ago.
	[334bb95f27d4]

	* src/lib/net.c:
	lib: net_addr2ip() sets the family now only after address is
	successfully converted.
	[4903ab967807]

	* src/lib-imap/imap-utf7.c:
	lib-imap: imap_utf7_to_utf8() returns failure now for encoded NULs.
	All the callers change the string to NUL-terminated string, so the
	earlier behavior was just truncating the string at the encoded NUL.
	It's a bit safer to just return failure so in future if the callers
	didn't convert the string to NUL-terminated string it wouldn't be
	handled inconsistently in different places.
	[46065d7276ab]

	* src/auth/auth-request.c, src/director/login-connection.c:
	director: Implemented director_proxy_maybe passdb extra field. This
	allows running director and backend in the same Dovecot instance. It
	was implemented into director instead of login-common to allow
	doveadm and lmtp proxying to work as well (although currently lmtp
	can't handle mixed proxying and non-proxying destinations, which
	makes this a bit less useful).
	[c5cdf42e398a]

2015-04-25  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/uri-util.c, src/lib/uri-util.h:
	uri-util: Added the possibility of only checking the URI without
	parsing any of the data.
	[49bcc3954799]

	* src/lib-http/http-url.c, src/lib-imap/imap-url.c, src/lib/uri-
	util.c:
	uri-util: Improve errors about invalid characters in URI by
	reporting the component where the offending character is located.
	[5ae8cd8e42f7]

	* src/lib-http/http-url.c, src/lib-imap/imap-url.c, src/lib/uri-
	util.c:
	uri-util: Allow empty host name in the generic URI syntax as
	specified in RFC 3986.
	[9024d226b813]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Fixed memory leak in CONNECT tunnel support.
	Forgot to dereference streams once tunnel was completed and passed
	to the new connection object.
	[63224afb8c02]

	* src/lib/connection.c:
	lib: connection: Connect to unix socket asynchronously if connected
	callback is set. Prevents problems in lib-http unix socket support.
	[092a51d80bad]

2015-04-29  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-user.c:
	fts: Do not deinit uncreated fts context Fixes crash with fts-lucene
	and fts-solr when lib-fts wasn't used. Patch by Teemu Huovila
	[1081d57b524e]

	* src/plugins/trash/trash-plugin.c:
	trash plugin: Count more correctly the number of bytes/messages
	needed to get under quota. If there already were some messages
	saved, those weren't counted when figuring out how many/much mails
	are still needed to be expunged.

	Patch by Alexei Gradinari
	[8898c5ea38f2]

	* src/plugins/trash/trash-plugin.c:
	trash plugin: Fixed handling unlimited quota limits. Patch by Alexei
	Gradinari
	[2dbee58a1a0d]

	* src/plugins/quota/quota.c:
	quota: Don't assume mail is too large if a quota root has mail count
	limit but not size limit. Based on patch by Alexei Gradinari
	[e00f9e93a9a3]

2015-04-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/istream-header-filter.c, src/lib-mail/test-istream-
	header-filter.c:
	lib-mail: Fixed modifying headers with i_stream_header_filter_add()
	If the stream was read twice, the second time the callback wasn't
	called and the header wasn't modified.
	[aa8786771490]

	* src/login-common/ssl-proxy-openssl.c:
	*-login: Don't try to flush SSL output if SSL handshake fails. This
	fixes a crash on failed handshakes on some OpenSSL builds.
	[86f535375750]

2015-04-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap/imap-keepalive.c, src/lib/istream-unix.c:
	Forgot to include year 2015 in earlier new files' Copyright lines.
	[a2d342257b25]

	* src/log/log-connection.c:
	log: Don't confuse process sending a partial log line to process
	sending logs too fast. If it's a partial line we don't want to show
	the "service too fast" error in ps title.
	[211099aefe77]

	* src/lib/connection.c:
	lib: Fixed crash in connection API if input streams aren't used
	(only input fd).
	[1b3224f0135f]

	* src/lib/test-istream-unix.c:
	lib: Fixed test-istream-unix to not send uninitialized bytes. Fixes
	Valgrind errors in make check.
	[2c5b0ad65885]

	* src/imap/cmd-idle.c, src/lib-imap/Makefile.am, src/lib-imap/imap-
	keepalive.c, src/lib-imap/imap-keepalive.h:
	imap: Code cleanup: Moved IDLE keepalive timer calculation to lib-
	imap.
	[25c848f10517]

	* src/lib/Makefile.am, src/lib/istream-file-private.h, src/lib
	/istream-file.c, src/lib/istream-unix.c, src/lib/istream-unix.h,
	src/lib/test-istream-unix.c, src/lib/test-lib.c, src/lib/test-lib.h:
	lib: Added istream-unix for reading fd sockets via istream.
	[21a2ce6f8f37]

	* src/lib/numpack.c, src/lib/numpack.h:
	lib: Added numpack_decode32()
	[1c275f718758]

2015-04-24  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts-solr
	/fts-solr-plugin.c, src/plugins/fts/fts-user.c, src/plugins/fts/fts-
	user.h:
	fts: Fixed infinite looping at deinit. fts_mail_user_deinit() was
	calling itself. Now the fts backend is responsible for calling it at
	deinit.
	[008632bdfd2c]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete -R: Fixed infinite looping when deleting a lot of
	files with some backends. After file was deleted, we closed it. Then
	later on we tried to delete it all over again.
	[17b93a5ae095]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete -R: When deleting directories, include "/" suffix
	in the name.
	[98c111d5bd76]

	* src/lmtp/commands.c, src/lmtp/lmtp-settings.c, src/lmtp/lmtp-
	settings.h:
	lmtp: Added lmtp_hdr_delivery_address=final|original|none setting.
	This controls what username is used for logging Delivered-To: header
	and the "for user@domain" in Received: header. The default "final"
	is the regular username as earlier, "original" logs the RFC822
	address received via ORCPT parameter or fallbacks to username,
	"none" logs nothing.
	[df0eba01d105]

	* src/doveadm/doveadm-mail.c:
	doveadm-server: Fixed returning command input stream when its data
	was already in the input stream.
	[daa426965e5a]

	* 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: fts_solr=use_libfts send data to Solr via space-separated
	tokens. In this case Solr should be configured to not do any kind of
	filtering and use only WhitespaceTokenizerFactory.
	[9974c748f72a]

	* src/plugins/fts/fts-build-mail.c:
	fts: Minor error messagage prefix change.
	[066db31d4dea]

	* src/plugins/fts-lucene/fts-lucene-plugin.c, src/plugins/fts/fts-
	plugin.c, src/plugins/fts/fts-user.c, src/plugins/fts/fts-user.h:
	fts: Don't always try to initialize lib-fts. Require backend to
	explictly do it now.
	[6d5240e7d344]

	* src/plugins/fts/Makefile.am:
	fts: Install fts-user.h header
	[9905ebbf8395]

	* src/plugins/fts/fts-user.c:
	fts: Replace '-' with '_' in filter-specific fts_filters_* settings.
	So for example using fts_filters_normalizer_icu instead of
	fts_filters_normalizer-icu.
	[26d37653d247]

	* src/lib-fs/fs-api.c:
	lib-fs: Use the new t_str_replace() instead of doing it ourself.
	[cf3c7bcbbdd9]

	* src/lib/strfuncs.c, src/lib/strfuncs.h, src/lib/test-strfuncs.c:
	lib: Added t_str_replace() to replace one character with another one
	[90298bc1a481]

2015-04-23  Timo Sirainen  <tss@iki.fi>

	* src/dict/dict-commands.c:
	dict: Fixed unescaping strings from lib-dict. This may potentially
	break backwards compatibility with someone, but it's probably pretty
	rare that anybody is yet using dict proxy with multi-line fields.
	Also even though the current behavior happens to work, it's very
	much non-ideal and can be potentially dangerous.
	[3905d7fce3ba]

	* src/auth/auth-request.c:
	auth: Don't assert-crash if master user login attempts to use empty
	login username.
	[65f825a8cd0b]

	* src/lib-storage/mail-search-args-simplify.c, src/lib-storage/test-
	mail-search-args-simplify.c:
	lib-storage: mail_search_args_simplify() handles now
	SEARCH_HEADER*/TEXT/BODY These are especially useful with lib-fts,
	where stemming and other filtering can produce duplicates. There's
	some internal deduplication, but it doesn't catch all of these.
	[c5751819176f]

	* src/lib-storage/mail-search-args-simplify.c, src/lib-storage/test-
	mail-search-args-simplify.c:
	lib-storage: mail_search_args_simplify() handles now
	SEARCH_SMALLER/LARGER
	[b2c20d9ff296]

	* src/lib-storage/mail-search-args-simplify.c, src/lib-storage/test-
	mail-search-args-simplify.c:
	lib-storage: mail_search_args_simplify() handles now
	SEARCH_BEFORE/ON/SINCE
	[f2756661f594]

	* src/lib-storage/mail-search-args-simplify.c, src/lib-storage/test-
	mail-search-args-simplify.c:
	lib-storage: mail_search_args_simplify() merges now seqsets and
	uidsets.
	[25974d8e5b5f]

	* src/lib-storage/mail-search-args-simplify.c, src/lib-storage/test-
	mail-search-args-simplify.c:
	lib-storage: If mail_search_args_simplify() merges flags, check
	again if any SUBs can be removed. The subquery may have been
	replaced with a single SEARCH_FLAGS parameter.
	[dcad04c2bab0]

	* src/lib-storage/Makefile.am:
	lib-storage: Makefile fixes for previous test programs
	[447b82d4ecb1]

	* src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc-
	client.h, src/lib-storage/index/imapc/imapc-search.c:
	imapc: Don't write SEARCH YOUNGER/OLDER queries if server doesn't
	support WITHIN extension
	[3654b56b6fd2]

	* src/lib-storage/Makefile.am, src/lib-storage/mail-search-args-
	simplify.c, src/lib-storage/mail-search.c, src/lib-storage/test-
	mail-search-args-simplify.c:
	lib-storage: Moved mail_search_args_simplify() to its own file and
	added unit tests. No functional changes.
	[faa7d6c473f7]

	* src/lib-storage/index/imapc/imapc-search.c:
	imapc: Use mail_search_arg_to_imap() to write IMAP SEARCH
	parameters. This also fixes a few bugs, since some of the search
	parameters weren't written entirely correctly.
	[de60c42e6ad6]

	* src/lib-storage/Makefile.am, src/lib-storage/mail-search-args-
	imap.c, src/lib-storage/mail-search.h, src/lib-storage/test-mail-
	search-args-imap.c:
	lib-storage: Added mail_search_args_to_imap() Useful for writing
	IMAP SEARCH parameters from struct mail_search_arg.
	[fdd0f4d50256]

	* src/lib-storage/mail-thread.c, src/lib-storage/mail-thread.h:
	lib-storage: Added mail_thread_type_to_str()
	[3d7b8a09d85d]

	* src/lib-imap/imap-date.c, src/lib-imap/imap-date.h:
	lib-imap: Added imap_to_date()
	[274b42b7d0de]

	* src/lib-storage/list/mailbox-list-index-iter.c:
	lib-storage: Fixed assert-crash with mailbox_list_index=yes if root
	mailbox name was empty. This happened if the index was used for a
	non-listable namespace whose prefix started with the namespace
	separator (e.g. prefix="/expunged/")
	[b4a81e123f1a]

	* src/lib-storage/index/imapc/imapc-storage.c:
	imapc: After auth failed, return failure immediately when opening a
	mailbox. Instead of trying to re-authenticate which again will most
	likely fail. Based on patch by Michael M Slusarz
	[d64fbe56a742]

	* src/lib-storage/index/index-mail-binary.c:
	lib-storage: Small code cleanup for index_mail_get_binary_stream()
	stream_r is always non-NULL here. Also move unreferencing cache
	istream to be last in case it might fix data.stream=NULL being here
	in some situations.
	[de2023e630cb]

	* src/lib/iostream-rawlog.c:
	lib: Fixed reference counting in iostream-rawlog if either i/ostream
	wasn't used.
	[c3acdfc64a0b]

	* src/lib/iostream-rawlog.c:
	lib: iostream_rawlog_create_from_stream() now allows input or output
	to be NULL.
	[49dd781d8f26]

	* src/lib-storage/list/subscription-file.c:
	lib-storage: Fixed subscription file reading when file was (nearly)
	empty. Broken by the earlier changes.
	[fedd88ce9315]

2015-04-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/subscription-file.c:
	lib-storage: Added support for subscriptions file version 2 format.
	The v2 format's main benefit is that it doesn't write the hierarchy
	separator to the subscriptions file, which allows the separator to
	be changed without breaking subscriptions. This mainly affects
	LAYOUT=INDEX, which doesn't have a native hardcoded separator.

	The plan is to start writing v2 subscription files in Dovecot v2.3.
	So for now we simply read such files and if we find v2 file we also
	modify it in v2 format, but we never create new v2 format files or
	convert v0 to v2.
	[faafabb58036]

2015-04-21  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Fix to earlier commit: Header names must be indexed
	without libfts, not with.
	[7a0d3453600a]

	* 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: Optionally use lib-fts instead of CLucene's own
	analyzers. fts_lucene = use_libfts enables this.
	[1ba63410b902]

	* src/plugins/fts/fts-build-mail.c:
	fts: If backend has FTS_BACKEND_FLAG_TOKENIZED_INPUT set, index also
	the header name. We were sending the hdr_name to the backend without
	tokenizing it or filtering it, so the backend couldn't have done
	anything useful about it.
	[3f24c8cab32d]

	* src/lib-fs/fs-posix.c:
	lib-fs: Fixed fs-posix to work with fs_iter_init(path="") when fs
	prefix wasn't set.
	[5b8959b2ff5e]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-normalizer-simple.c,
	src/lib-fts/fts-filter.c, src/lib-fts/fts-filter.h:
	lib-fts: Added normalizer-simple for doing normalization without
	libicu.
	[9aaacd260a7d]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Fixed test-fts-filter to work again after previous
	normalizer changes.
	[782594d44002]

	* src/lib-fts/Makefile.am, src/lib-fts/fts-filter-normalizer-icu.c,
	src/lib-fts/fts-filter-normalizer.c, src/lib-fts/fts-filter.c, src
	/lib-fts/fts-filter.h:
	lib-fts: Renamed normalizer to icu-normalizer, including the source
	code.
	[41abc9c7eca2]

	* configure.ac, src/lib-fts/Makefile.am, src/lib-fts/fts-filter-
	normalizer.c:
	configure: s/normalizer/libicu/ since we it could be used for
	something else as well.
	[b179bbd226e5]

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Include in log messages how long it took to deliver the
	mail. In multi-RCPT TO sessions it's a bit unreliable to split the
	single DATA reply's times to multiple lines, so instead each line
	just says "(2/3 at 123 ms)" meaning that the second mail was
	delivered at the time when 123 milliseconds had elapsed since the
	delivery was started.
	[b64bcee2ffa0]

	* src/lda/main.c, src/lib-lda/mail-deliver.c, src/lmtp/commands.c:
	lib-lda: Assume that the caller sets delivery_time_started This is
	required because parts of the delivery time may be done at the time
	the user is being initialized, so it needs to be set before the user
	init is done.
	[7ef1722d8f7a]

	* src/lib-lda/mail-deliver.c:
	lib-lda: mail_deliver_log() now updates the %{delivery_time} instead
	of using the first cached value. The first time the cached values
	are set the transaction isn't committed and the mailbox isn't
	synced.
	[6ecca5308232]

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h:
	lib-lda: Added lmtp-client to track timestamps when various events
	happen.
	[860af8c30c59]

	* src/imap/cmd-select.c:
	imap: Finishing previous commit by removing now-unnecessary code.
	[881ab9a0dc2e]

	* src/imap/cmd-select.c, src/imap/imap-search.c, src/imap/imap-
	search.h:
	imap: Removed separate time counting from SELECT and SEARCH
	commands.
	[b651fba04408]

	* src/imap/imap-client.c, src/imap/imap-client.h, src/imap/imap-
	commands.c:
	imap: Include in tagged reply how much running time each IMAP
	command takes. The running time doesn't include time spent waiting
	for the client on ioloop.
	[abf2727d469a]

	* src/imap/cmd-append.c, src/imap/imap-client.c, src/imap/imap-
	commands.c:
	imap: Small code cleanup. Removed all the checks of
	CLIENT_COMMAND_STATE_DONE to command_exec() itself.
	[7a09ddcd62b4]

	* src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h,
	src/lmtp/client.h, src/lmtp/commands.c:
	lda, lmtp: Added delivery_time and session_time variables to
	deliver_log_format session_time is meaningful only with LMTP. The
	delivery_time is separate for each mail delivery. The results are in
	milliseconds now. If needed we could add a new %modifier that
	converts it into secs.millisecs.
	[3ea5becbb56c]

	* src/stats/mail-command.c:
	stats: num_cmds was always 0 in global stats
	[4f95a2b5a154]

	* src/lib-fts/Makefile.am:
	lib-fts: Added udhr_fra.txt to EXTRA_DIST
	[9196358b6779]

2015-04-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-fts/Makefile.am:
	lib-fts: Added PropList.txt to EXTRA_DIST
	[a2f45d31d1c5]

	* configure.ac, src/lib-fts/fts-language.c:
	lib-fts requires libexttextcat actually - don't even try to use
	textcat for it. I'm also not sure yet if some libexttextcats are too
	old for it.
	[50ef619ce58a]

	* src/lib-fts/stopwords_fi.txt, src/lib-fts/stopwords_fr.txt:
	lib-fts: Updated Finnish/French stopword lists from Lucene code.
	Most importantly they added the licensing info to the files.
	[5b7e0fbd2565]

	* src/lib-fts/Makefile.am:
	lib-fts: Fixed using FTS_NORMALIZER_CFLAGS/LIBS.
	[aa0424c40ced]

	* src/lib-fts/test-fts-filter.c:
	lib-fts: Don't crash in test-fts-filter if libstemmer support isn't
	built in
	[eff8774c6473]

	* src/lib-fts/fts-filter-normalizer.c, src/lib-fts/fts-filter-stemmer-
	snowball.c, src/lib-fts/test-fts-filter.c:
	lib-fts: Fixed some wrong macro name checks. Forgot to change these
	ones while renaming them..
	[197c703f32da]

	* src/lib-fts/Makefile.am, src/lib-fts/stopwords_fi.txt:
	lib-fts: Added missing stopwords_fi.txt
	[0ad7f8da2471]

	* src/lib-fts/Makefile.am, src/lib-fts/test-fts-language.c:
	lib-fts: Fixed test-fts-language to use TEXTCAT_DATADIR This may
	still make too many assumptions about what data exists where.. So we
	may need to remove this test from "make check". But for now leave it
	there.
	[9b777c7ede0d]

	* configure.ac:
	configure: Fixed building without textcat.
	[56228757382d]

	* configure.ac:
	configure: Added Debian Wheezy workaround for finding textcat.h
	[e06740c8515a]

	* configure.ac, src/lib-fts/fts-language.c:
	lib-fts: Fixed default textcat datadir paths.
	[cf04173f3f69]

	* configure.ac:
	configure: Fixed linking with libexttextcat when it was found via
	pkg-config
	[b93306938a88]

	* src/plugins/fts/Makefile.am, src/plugins/fts/fts-api-private.h,
	src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-plugin.c,
	src/plugins/fts/fts-search-args.c, src/plugins/fts/fts-search-
	args.h, src/plugins/fts/fts-storage.c, src/plugins/fts/fts-user.c,
	src/plugins/fts/fts-user.h:
	fts: Added FTS_BACKEND_FLAG_TOKENIZED_INPUT, which is implemented
	via lib-fts.
	[914bdca67d1f]

	* .hgignore, configure.ac, src/Makefile.am, src/lib-fts/Makefile.am,
	src/lib-fts/fts-filter-normalizer.c, src/lib-fts/fts-filter-
	private.h, src/lib-fts/fts-filter-stemmer-snowball.c, src/lib-fts
	/fts-filter-stopwords.c, src/lib-fts/fts-filter.c, src/lib-fts/fts-
	filter.h, src/lib-fts/fts-language.c, src/lib-fts/fts-language.h,
	src/lib-fts/fts-tokenizer-address.c, src/lib-fts/fts-tokenizer-
	generic-private.h, src/lib-fts/fts-tokenizer-generic.c, src/lib-fts
	/fts-tokenizer-private.h, src/lib-fts/fts-tokenizer.c, src/lib-fts
	/fts-tokenizer.h, src/lib-fts/stopwords_en.txt, src/lib-
	fts/stopwords_fr.txt, src/lib-fts/test-fts-filter.c, src/lib-fts
	/test-fts-language.c, src/lib-fts/test-fts-tokenizer.c, src/lib-
	fts/udhr_fra.txt, src/lib-fts/word-boundary-data.sh, src/lib-fts
	/word-break-data.sh:
	Initial import for lib-fts. Parts of what this code does was already
	implemented internally by fts-lucene. lib-fts is intended to be
	usable for all the FTS backends. The APIs are still going to change
	a bit, but hopefully not after v2.2.17 release.

	Mostly written by Teemu Huovila.
	[81e5b977e5c5]

	* configure.ac, src/plugins/fts-lucene/Makefile.am, src/plugins/fts-
	lucene/lucene-wrapper.cc:
	configure: Fixed/improved finding and using libexttextcat.
	libexttextcat wasn't actually being used at all by fts-lucene. Now
	we'll first prefer finding it via pkg-config, next finding
	exttextcat and only last look up textcat.
	[68c5e0db61db]

	* configure.ac, src/plugins/fts-lucene/Makefile.am, src/plugins/fts-
	lucene/fts-lucene-plugin.c, src/plugins/fts-lucene/lucene-
	wrapper.cc:
	configure: Stemmer and textcat checks are now done even if CLucene
	isn't used. They'll be useful for other FTS backends as well. This
	patch doesn't change any actual functionality.
	[1c516f905152]

	* src/plugins/fts/fts-build-mail.c:
	fts: Code cleanup to do all index updates via fts_build_data() This
	doesn't actually change the behavior.
	[14e6d5289a87]

2015-04-17  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete -R: Don't add extra '/' chars in the middle of
	paths
	[3215ef3e3031]

	* dovecot-config.in.in:
	dovecot-config: Added lib-stats to LIBDOVECOT_INCLUDE
	[87ec8d53c9fa]

2015-04-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: fs_class_register() can now be called externally.
	[4ced4305d960]

	* src/doveadm/doveadm-mail-mailbox-metadata.c:
	doveadm mailbox metadata: The keys must always be lowercased. The
	keys need to be case-insensitive in IMAP, so the IMAP code always
	also lowercases them.
	[0f4b010b78b6]

	* src/stats/mail-stats.h:
	stats: Fixed compiling with some OSes. struct timeval wasn't
	necessarily already defined by existing includes.
	[736730cf45f0]

2015-04-16  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-array.c:
	lib: test-array build warnings on Solaris 10 Solaris cc doesn't
	think I've read N1570 6.7.9p11, 6.5.16.1p2, and 6.3.1.3p2, and wants
	to save me from myself.

	Reported-by: Juergen Obermann
	<http://www.dovecot.org/list/dovecot/2015-April/100427.html> Signed-
	off-by: Phil Carmody <phil@dovecot.fi>
	[7c90285a72a6]

2015-04-15  Timo Sirainen  <tss@iki.fi>

	* 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, src/lib-
	storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc
	/imapc-settings.h:
	imapc: Added imapc_features=zimbra-workarounds Zimbra (at least
	v5.0.18_GA_3011.RHEL4_64) can return different headers depending on
	whether the whole message body was fetched or only (partial)
	headers. This probably happens only for invalid characters that are
	translated into '?'. With this workaround enabled we don't use FETCH
	BODY.PEEK[], but we do FETCH (BODY.PEEK[HEADER] BODY.PEEK[TEXT]) and
	merge the results together. This way the results are always
	consistent and headers don't suddenly change.
	[1c17f06d5e52]

2015-04-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-file.c:
	dict-file: Use tabescaping for keys and values to allow LFs in them.
	Although this makes the format slightly incompatible, it's doubtful
	anybody is using dict values containing \001 characters.
	[93dab55ae36e]

2015-04-13  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: If passdb/userdb changes the username, add the changed
	username also to the cache.
	[635f9c7d5991]

	* src/auth/auth-request.c:
	auth: Setting userdb fields from cache didn't set handle any special
	fields. The special fields were relatively rarely used though.
	[08b2f79e8212]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Don't crash for users who don't have replication
	enabled.
	[631cd10e62b2]

2015-04-08  Timo Sirainen  <tss@iki.fi>

	* src/lib/Makefile.am, src/lib/json-tree.c, src/lib/json-tree.h,
	src/lib/test-json-tree.c, src/lib/test-lib.c, src/lib/test-lib.h:
	lib: Added json-tree API for parsing JSON input into a tree
	structure. This makes it easier to access complicated JSON structs
	that can fit into memory.
	[6bde7868cffd]

2015-04-06  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-transaction-log-scan.c, src/lib-index/mail-
	index-modseq.c, src/lib-index/mail-index-sync-update.c, src/lib-
	index/mail-index-sync.c, src/lib-index/mail-index-view-sync.c, src
	/lib-index/mail-transaction-log-view.c, src/lib-index/mail-
	transaction-log.h, src/lib-index/test-mail-transaction-log-view.c,
	src/lib-storage/mailbox-get.c, src/lib-storage/test-mailbox-get.c:
	lib-index: Added reason_r parameter to
	mail_transaction_log_view_set() This is used to improve some of the
	error messages about index corruption.
	[8146fdc0de34]

	* src/util/rawlog.c:
	rawlog: Flush output to disk every second instead of only when
	buffer is full.
	[ee001c131952]

2015-04-03  Timo Sirainen  <tss@iki.fi>

	* configure.ac:
	configure: Added --with-textcat parameter
	[33685b996cf2]

2015-04-02  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-dsync.c:
	dsync: Improved error message when remote dsync-server couldn't be
	started.
	[9e85aeb92fa8]

2015-04-01  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Don't try to use the new "finish" state with old dsync
	versions.
	[89cbb9347de7]

2015-03-28  Timo Sirainen  <tss@iki.fi>

	* src/Makefile.am:
	Makefile: Build lib-dovecot before lib-compression Because lib-
	compression depends on it.
	[00477ec143b9]

2015-03-27  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/quota.c:
	quota: Added debug information for quota_over_flag handling.
	[750d46c4c111]

2015-03-25  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* configure.ac:
	configure: Add missing (auto) to autodetected options.
	[11f7bbed333e]

2015-03-27  Timo Sirainen  <tss@iki.fi>

	* src/lib-compression/Makefile.am:
	lib-compression: Use libdovecot.so as dependency. Don't include
	liblib.a itself!
	[8be26d22925a]

	* src/lib-storage/index/imapc/imapc-sync.c:
	imapc: Don't assert-crash when trying to sync a mailbox with
	MAILBOX_FLAG_SAVEONLY. We can just skip the sync, because we don't
	do anything except save mails.
	[ee8934a2a7f4]

	* src/plugins/quota/quota.c:
	quota: When reporting quota value/limit in kilobytes, round the
	value upwards. Most importantly this doesn't truncate <1024 values
	to 0, which also in quota limit means unlimited.
	[c34724e1c08b]

	* src/auth/auth-request-handler.c:
	auth: Don't add original_user or auth_user to passdb reply if they
	already exist. This allows passdb to override their values cleanly.
	[0540c2834f68]

2015-03-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-mailbox.c:
	imapc: Fix to previous change - labels are strings and not atoms.
	Allow also atoms just in case
	[acb0590787a0]

	* src/lib-storage/index/imapc/imapc-mailbox.c:
	imapc: Ignore \Muted GMail label
	[41985233e1e8]

2015-03-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-list-private.h, src/lib-storage/mailbox-
	list.c, src/lib-storage/mailbox-list.h:
	lib-storage: Added mailbox_list_fs_get_list() Using
	mailbox_list_init_fs() now sets the mailbox_list pointer to root fs,
	which allows the fs backends to lookup the list. Although this can't
	be done in the init() function since the list is set only
	afterwards.
	[0bbdc413285e]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: Added support for module_contexts in fs. They could also be
	added to fs_file if needed, but for now I didn't bother adding it.
	[66689aaa85de]

	* src/lib-fs/fs-api.c:
	lib-fs: When autoloading fs plugins with '-' in the name, translate
	them to '_' It's not possible for the function names to contain '-'
	in any case. Also Dovecot in general uses '-' instead of '_' in the
	configuration names. This change actually allows using either of
	them.
	[35a4828d11f7]

	* src/lib-charset/Makefile.am, src/lib-dovecot/Makefile.am, src/lib-
	mail/Makefile.am:
	Cleanup for libcharset's iconv linking. Linking libcharset.la now
	automatically links with the necessary iconv libraries.
	[36ca0e03bd06]

2015-03-20  Timo Sirainen  <tss@iki.fi>

	* src/lib/module-dir.c:
	lib: Fixed potential build error when building without modules.
	[1bbde199a6e3]

	* src/lib-dict/dict-client.c:
	lib-dict: Fixed crash when transaction failed due to dict server
	disconnection.
	[d8f24038d3cb]

	* src/lib/ostream-rawlog.c:
	lib: o_stream_create_rawlog_from_stream() should preserve the output
	stream fd. ostream-rawlog is just a passthrough stream after all.
	[ebc2672a30f6]

	* 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.c:
	doveadm: Added -h parameter to hide header line from tab and table
	formatter output.
	[b84f4b881b88]

	* src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib-
	storage/mailbox-list.c, src/master/main.c:
	Removed mountpoint checking and updating code. After a few years it
	seems like it has just caused more problems than it has actually
	fixed. The only thing it's been used for is to make sure that
	Dovecot can't create empty user directories when the user's mail
	filesystem isn't mounted. But that's supposed to be normally
	prevented already if the mount root directory permissions are only
	writable by root.

	For now the mountpoint listing code and doveadm mount code still
	exists just in case people have some scripts using those. Those
	could be removed in v2.3.

	If we somehow figured out which mountpoints existed (not so easy
	because they could be only visible in userdb lookups for different
	users), we could maybe create some kind of a script that checks the
	permissions at startup. This would work with Linux at least:

	mkdir test mount / -o bind test ls -ld test/var/mail # assuming
	/var/mail mountpoint umount test
	[ef1a64509d68]

2015-03-19  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Fixed returning wrong mail_error in some remote dsync.
	[cf74e2179dce]

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Don't wait for login to succeed at mailbox list creation. The
	failure will be visible in the next command. This wait was here
	mainly for imap, but cbdfca7d24a6 implements the wait in imap
	process directly. Other (current) protocols don't need such wait at
	all.

	Most importantly this change allows doveadm to handle imapc login
	failures by seeing them as MAIL_ERROR_PERM errors when listing
	mailboxes or opening a mailbox. This allows it to return a different
	exit code from temporary failure (which it is not).
	[9c7c345f2b2a]

	* src/lib-storage/index/imapc/imapc-storage.c:
	imapc: Don't crash in mailbox_is_inconsistent() with unopened
	mailbox.
	[995df5989e56]

	* src/imap/main.c:
	imap: If mailbox list is unusable at startup, return failure
	immediately. This is currently used only by imapc when login fails.
	[cbdfca7d24a6]

	* src/doveadm/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-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-tree-fill.c,
	src/doveadm/dsync/dsync-mailbox-tree.h:
	dsync: Use storage's mail_error to choose the doveadm exit code.
	Instead of always assuming that all errors are EX_TEMPFAIL.
	[b900b50085fc]

	* src/lib-storage/index/imapc/imapc-list.c, src/lib-
	storage/index/imapc/imapc-storage.c, src/lib-storage/index/imapc
	/imapc-storage.h:
	imapc: If authentication fails, preserve the error message as
	storage/list error. This isn't very helpful yet, because the mailbox
	list creation itself fails.
	[b28de884c470]

	* src/lib-storage/mailbox-list.c:
	lib-storage: mailbox_list_mailbox() now copies the mailbox_exists()
	error. Instead of assuming it has to be an internal error.
	[fca7232724dd]

2015-03-18  Phil Carmody  <phil@dovecot.fi>

	* src/lib/buffer.c:
	lib: buffer - paranoid compile-time check for struct sizes At the
	moment, nothing guarantees that the public struct is big enough to
	contain the private struct.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3ed51d56e2a3]

	* src/lib/bits.h:
	lib: bits - improve bits_required to recurse downwards, not sideways
	Ooops.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[30953774f034]

	* src/lib/bits.h:
	lib: bits - Add macro for '1 << i' It's used all over the place. It
	feels weird not having access to such a macro.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[305f5c2cf13e]

2015-03-18  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-build-mail.c:
	fts: Fixed assert-crash if fts-parser was created for a body part
	that backend didn't want to index.
	[128115b3807c]

2015-03-17  Timo Sirainen  <tss@iki.fi>

	* src/auth/db-ldap.c:
	auth ldap: Crashfixes for earlier changes. Hopefully works correctly
	now
	[3546457ae3fb]

	* src/auth/db-ldap.c:
	auth ldap: Fixed crash when handling invalid SSL option.
	[a4acf88b0c91]

	* src/auth/db-ldap.c, src/auth/db-ldap.h:
	auth ldap: Fixed assert-crash when both passdb ldap and userdb ldap
	was used
	[870cb73e5960]

2015-03-16  Timo Sirainen  <tss@iki.fi>

	* src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c,
	src/auth/userdb-ldap.c:
	auth ldap: Start LDAP connection only after auth process
	initialization is finished. This way even if connecting to LDAP
	takes a while it won't cause the master process to kill the auth
	process due to it not sending the startup "I'm ok" notification
	early enough.
	[0a17875f0ece]

	* src/auth/db-ldap.c:
	auth ldap: Make sure config file path is included in all fatal error
	messages.
	[d9a0d4f4f4b6]

	* src/auth/db-ldap.c:
	auth ldap: If any tls_* settings are given when they're not
	supported, fail with fatal instead of just warning. These may be
	important for intended security, especially tls_cipher_suite. We
	shouldn't allow setting them and then somewhat silently just ignore
	them.
	[ec2e7ae958c5]

	* src/auth/db-ldap.c:
	auth ldap: Call ldap_init*() already at db_ldap_init(). ldap_init*()
	doesn't start connecting yet, but this way we can verify that all
	the settings are correct.
	[804dc641f448]

	* src/auth/db-ldap.c, src/auth/db-ldap.h:
	auth ldap: More concentration of i_fatal() calls to db_ldap_init()
	[b3fd99432298]

	* src/auth/db-ldap.c:
	auth ldap: Moved more LDAP fatal checks to db_ldap_init()
	[226d34f3a54a]

	* src/auth/db-ldap.c:
	auth ldap: Improved ldap_initialize() failure's error logging.
	[8c77d80e014c]

	* src/auth/db-ldap.c:
	auth ldap: Include LDAP config path in all fatal errors. Also moved
	all such error checks to db_ldap_init().
	[fe05443b3cd6]

	* src/plugins/stats/stats-plugin.c:
	stats: Don't allow stats_refresh setting to be set too large.
	[3d8a054a93a9]

	* src/plugins/stats/stats-plugin.c:
	stats: Initial stats refresh timeout callback wasn't set. This broke
	after the ioloop change that caused stats_io_deactivate() not to be
	called immediately anymore.
	[d88af513a942]

2015-03-13  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-
	brain-private.h, 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: Added an extra "finish" state to allow slave-dsync to report
	error to master-dsync. I'm not sure if that's actually necessary,
	but just trying to follow the different possibilities on how dsync
	run can finish made me unsure about it. This should make it at least
	clear that if a slave-dsync has a failure flag set at deinit master-
	dsync will know about it before it returns success.
	[b4dbe64c0032]

	* src/doveadm/dsync/dsync-mailbox-export.c:
	dsync: Added an extra assert.
	[e86211e8d728]

	* src/lib-storage/index/imapc/imapc-mail.c:
	imapc: If reconnect fails during syncing, don't treat all mails as
	expunged in error handling code.
	[6efdf22c96f1]

	* src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc-
	client.h, src/lib-imap-client/imapc-connection.c:
	lib-imap-client: If we get disconnected and reconnect, log it as
	warning instead of as error.
	[cf60180695ac]

	* src/plugins/fts/fts-parser.c:
	fts: fts-parser doesn't need to be asked about all the known-
	plaintext content-types.
	[c82e9e5832a0]

	* src/plugins/fts-solr/solr-connection.c, src/plugins/fts/fts-parser-
	tika.c:
	fts-tika, fts-solr: Added timeouts to requests so they aren't
	attempted infinitely.
	[4f8bfc6673a3]

	* src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-parser-html.c,
	src/plugins/fts/fts-parser-script.c, src/plugins/fts/fts-parser-
	tika.c, src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h:
	fts: If fts-parser fails, stop indexing instead of ignoring the
	error and continuing. This is especially important in case there's
	just some temporary error.
	[f409deb63c40]

	* src/config/Makefile.am, src/lib-dict/Makefile.am, src/lib-
	sql/Makefile.am, src/lib-storage/register/Makefile.am,
	src/lib/Makefile.am, src/plugins/quota/Makefile.am:
	Makefile: Avoid make race conditions when generating files that are
	used as dependencies. The file creation needs to be atomic,
	otherwise another process can start trying to use an unfinished
	file. So we first create .tmp file and then mv it into the final
	one.
	[d592417ec815]

2015-03-12  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/istream-header-filter.c, src/lib-mail/istream-header-
	filter.h:
	lib-mail: Added HEADER_FILTER_CRLF_PRESERVE flag to istream-header-
	filter.
	[308a97126244]

	* .hgsigs:
	Added signature for changeset 0f8f0d8ee607
	[34862aea421d]

	* .hgtags:
	Added tag 2.2.16 for changeset 0f8f0d8ee607
	[3589aab3ac25]

	* NEWS, configure.ac:
	Released v2.2.16.
	[0f8f0d8ee607] [2.2.16]

	* src/util/rawlog.c:
	rawlog: Updated -i -> -I also in usage string.
	[aed1e8340ea7]

	* src/util/rawlog.c:
	rawlog: Changed -i to -I parameter We can't use -i, because it's
	handled by lib-master for instance selection.
	[cd5fc6ff8027]

	* configure.ac, src/lib-dict/Makefile.am:
	dict: cdb support should be available only to dict process. Because
	otherwise we need to link libcdb into pretty much all Dovecot
	binaries, which is part of what having the dict proxy tries to
	avoid.

	We could implement the direct linking optionally as well, but that
	would need to be done in a bit more generic way rather than just
	hardcoding it only to cdb support.
	[16ff063e3588]

	* src/doveadm/doveadm-print-table.c:
	doveadm: Fixed table formatter for UTF-8 output. Based on patch by
	Hardy Flor
	[8780ca0fbf22]

	* src/plugins/fts/fts-build-mail.c, src/plugins/fts/fts-storage.c:
	fts: Added missing error logging/setting.
	[65e55166c794]

	* src/doveadm/doveadm-mail-deduplicate.c, src/doveadm/doveadm-mail-
	expunge.c, src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-
	mail-iter.c, src/doveadm/doveadm-mail-mailbox-metadata.c,
	src/doveadm/doveadm-mail-mailbox-status.c:
	doveadm: Added several missing error logging calls.
	[072170010eac]

2015-03-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-mail-fetch.c:
	imapc: Prefetching wasn't done for headers if there weren't also
	other fields.
	[910727378a16]

	* src/lib-master/anvil-client.c:
	lib-master: Crashfix to earlier anvil query timeout change.
	[83662ff4d93d]

	* 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-
	settings.c, src/lib-storage/index/imapc/imapc-settings.h, src/lib-
	storage/index/imapc/imapc-storage.c:
	imapc: Added throttling settings to imapc_features=throttle:a:b:c
	This change could be reverted once good settings are found.
	[1bccf90e54ca]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Implemented a bit more complicated [THROTTLING]
	behavior. The throttling is now more continuous and decreases more
	slowly.
	[bac6a6a444d3]

	* src/lib-storage/index/imapc/imapc-mailbox.c, src/lib-
	storage/index/imapc/imapc-storage.h, src/lib-storage/index/imapc
	/imapc-sync.c:
	imapc: If imapc_features has gmail-migration, fetch X-GM-MSGID at
	startup and cache it. This works only if index files haven't been
	disabled.
	[3effe57f223d]

	* src/lib-storage/index/imapc/imapc-mail.c:
	imapc: Use GUIDs from cache.
	[f32ddc04fce7]

	* src/lib-storage/index/imapc/imapc-mail.c:
	imapc: Add prefetched GUIDs to cache.
	[946be805b3cc]

	* src/lib-storage/index/imapc/imapc-mail.c:
	imapc: Removed Exchange-workaround for ignoring missing BODY[]
	replies. This causes data loss if server was actually returning a NO
	temporary error that would have succeeded later on.
	[06362f6d26ca]

	* src/lib-master/anvil-client.c:
	lib-master: Timeout anvil queries after 5 seconds.
	[ae12cfc7e064]

	* src/lib-master/anvil-client.c:
	lib-master: If write() to anvil fails, reconnect to it.
	[f7b3c923cf4d]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c:
	imapc: Don't flush prefetch FETCH command before it has
	mail_prefetch_count number of mails.
	[f8f57dde247d]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib-
	storage/index/imapc/imapc-mail.h:
	imapc: Make sure we don't flush prefetch FETCH command unneededly.
	[d21f71ab9f28]

	* src/doveadm/doveadm.c:
	doveadm: Initialize logging. Most importantly so that
	LOG_STDERR_TIMESTAMP can be used to prefix each line with a
	timestamp.
	[878e9d914339]

	* src/lib-master/master-service.c:
	lib-master: Get log timestamp prefix from LOG_STDERR_TIMESTAMP
	environment.
	[13021170e269]

2015-03-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-metawrap.c:
	lib-fs: Optimized fs_stat() for fs-metawrap after writing a file.
	[fa42da3cc614]

	* src/lib-fs/fs-posix.c:
	fs-posix: Don't close fd after successful write. 5bd6e2eee650 should
	have been done only on failures.
	[4a80d3bbf14d]

	* src/lib-fs/fs-posix.c:
	fs-posix: Implement fs_stat() with fstat() if fd is already open.
	[2def20c622a6]

	* src/lib-fs/fs-posix.c:
	fs-posix: Don't try to unlink() the temp file twice after failure.
	[5bd6e2eee650]

	* src/lib/module-dir.c:
	lib: And another module_dir_load() bugfix..
	[4d19d56e09fb]

	* src/lib/module-dir.c:
	lib: Small error logging improvements for module_dir_load()
	[d978da323d44]

	* src/lib/module-dir.c:
	lib: Recent module_dir_load() changes broke error logging. If there
	was a required list of modules, the error was properly returned. But
	when loading all plugins, the errors weren't logged.
	[8cb9f50f5b40]

	* src/indexer/master-connection.c:
	indexer-worker: Added missing error logging.
	[00d40bf9c289]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Fixed GMail [THROTTLED] detection. It's not a resp-
	text-code, but appended at the end of line.
	[c28d8e2ae6a9]

	* src/lib-fs/fs-posix.c:
	fs-posix: Don't close file fd after its writing is finished. This
	allows reading the file after writing without having to re-open the
	file (which in turn might fail in some situations).
	[08aa1949227b]

	* src/lib-fs/fs-posix.c:
	fs-posix: Make sure the file isn't attempted to be opened for
	reading while it's being written. Also if the write failed, the read
	should fail.
	[966680fbe2a9]

2015-03-06  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset a3c27cec4112
	[1f0428d0fece]

	* .hgtags:
	Added tag 2.2.16.rc1 for changeset a3c27cec4112
	[222d7d7c5491]

	* NEWS, configure.ac:
	Released v2.2.16.rc1.
	[a3c27cec4112] [2.2.16.rc1]

	* src/lib-mail/test-message-part.c:
	lib-mail: Unit test fix to make static analyzer happier
	[e4c9a9be1627]

	* src/lmtp/commands.c:
	lmtp: Fixed lmtp_user_concurrency_limit=0 to actually mean unlimited
	[9c69c197b527]

	* src/lda/main.c, src/lib-lda/mail-deliver.h, src/lib-lda/mail-send.c,
	src/lmtp/commands.c:
	lda/lmtp: Added a hardcoded LDA_SUBMISSION_TIMEOUT_SECS=30 timeout
	for SMTP client. Maybe we could have a new setting if needed later
	on, but we've been working pretty successfully without any timeout
	for a long time..
	[73e013bc64a4]

	* src/lib-lda/smtp-client.c, src/lib-lda/smtp-client.h:
	lib-lda: Added smtp_client_deinit_timeout() to give a session
	timeout.
	[bf2dbc8ec74b]

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h:
	lib-lda: lmtp client now supports checking for timeouts internally.
	The default is still to have no timeout.
	[9a384f83b2a3]

	* src/lib-fs/fs-api.h:
	lib-fs: struct fs_stats comment updates
	[0effbc9afeee]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: Minor code cleanup: Merge read_counted & prefetch_counted
	into read_or_prefetch_counted
	[03d9e1e6caaa]

	* src/lib-master/anvil-client.c, src/lib-master/anvil-client.h:
	lib-master: Added anvil_client_query_abort()
	[03931c3b43b5]

	* 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,
	src/lmtp/main.h:
	lmtp: Added lmtp_user_concurrency_limit setting. This allows
	limiting the number of concurrent deliveries to a single user.
	Useful in case one user is receiving a lot of mails and causing
	other deliveries to be delayed. If the limit is reached, Dovecot
	returns temporary failure error at DATA stage.
	[0e657cfb3f98]

	* src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Changed rcpt_to array to contain pointers to struct
	mail_recipient This allow storing the pointers so they don't change.
	[c1403c1eb3e9]

	* src/pop3-login/client.c:
	pop3-login: Disconnect client on 3rd invalid command (not 11th).
	[2589f9c5cc04]

	* src/lib/test-wildcard-match.c:
	lib: Minor improvement to test-wildcard-match unit test.
	[91852459f388]

	* src/plugins/quota/quota-private.h, src/plugins/quota/quota-
	storage.c, src/plugins/quota/quota.c, src/plugins/quota/quota.h:
	quota: If overquota-flag in userdb is wrong, execute a configured
	script. The idea here is that a quota_warning script could set
	user's overquota-flag to e.g. LDAP where MTA could reject mails
	already at RCPT TO stage. The quota_warning scripts however have
	race conditions that are difficult (or impossible) to fix, so
	sometimes the overquota-flag could become wrong and might require
	manual intervention to fix it. This feature is supposed to solve the
	issue by comparing the overquota-flag's status to the actual current
	quota usage and execute a script to fix up the situation if needed.
	This script is of course racy as well, but there's always the next
	login that can fix the situation. Also it's pretty rare that user's
	quota is jumping just around the limit.

	The overquota-flag name in userdb must be "quota_over_flag". There
	are two settings to configure what to do:

	plugin { # If quota_over_flag=TRUE, the overquota-flag is enabled.
	Otherwise not. quota_over_flag_value = TRUE

	 # Any non-empty value for quota_over_flag means user is over quota.
	# Wildcards can be used in a generic way, e.g. "*yes" or "*TRUE*"
	#quota_over_flag_value = *

	 # Service script to execute if overquota-flag is wrong. Configured
	the # same as quota_warning scripts. The current quota_over_flag's
	value is # appended as the last parameter. quota_over_script =
	quota-warning mismatch %u }
	[a54408ed4767]

2015-03-05  Timo Sirainen  <tss@iki.fi>

	* configure.ac, src/Makefile.am, src/lib-dovecot/Makefile.am, src/lib-
	stats/Makefile.am, src/lib-stats/stats-parser.c, src/lib-stats
	/stats-parser.h, src/lib-stats/stats.c, src/lib-stats/stats.h, src
	/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/plugins
	/imap-stats/Makefile.am, src/plugins/imap-stats/imap-stats-plugin.c,
	src/plugins/stats/Makefile.am, src/plugins/stats/mail-stats-fill.c,
	src/plugins/stats/mail-stats.c, src/plugins/stats/mail-stats.h,
	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/mail-command.c, 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-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:
	stats process/plugin redesign to be more modular. The visible
	functionality doesn't actually change with this patch yet, but it
	allows other plugins/services to add their own fields to stats
	process. For example auth process could send auth success/failures
	or auth cache hits/misses.
	[a9952ceeac61]

	* src/lib/ioloop-private.h, src/lib/ioloop.c:
	lib: Don't call ioloop context deactivate() if activate() hasn't
	been called yet. This could have happened immediately after the
	callback was registered.
	[c98991820dde]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-
	api.h:
	lib-fs: Track how many different operations have been done on the
	fs.
	[18721584583b]

	* src/lib-fs/fs-api.c, src/lib-fs/fs-api.h:
	lib-fs: Added fs_get_parent() and fs_get_driver() These can be used
	to iterate through fs wrappers and see what they are.
	[422b5a01d18e]

2015-03-03  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	doveadm backup: Try to avoid crashing on unexpected destination
	changes. It's a bit difficult to reproduce this bug.. But at least
	this change should change the assert, if nothing else.
	[fdc7a0a2b18d]

	* src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync
	/dsync-brain.c, src/doveadm/dsync/dsync-mailbox-tree-fill.c:
	dsync: Open mailboxes with readonly-flag whenever possible. There
	shouldn't be any actual functional difference though.
	[06c4c42549a7]

	* src/doveadm/dsync/dsync-brain-mailbox.c:
	doveadm backup -R: Open the mailbox as readonly, so with imapc
	EXAMINE is used.
	[ef0bfe110ed9]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Get capabilities again after reconnection to
	server. This is needed most importantly if we're not using plaintext
	authentication to log in.
	[31c0b82250b6]

	* src/lib-fs/fs-api.h:
	lib-fs: Added FS_ITER_FLAG_NOCACHE
	[e270bf24491c]

2015-03-02  Timo Sirainen  <tss@iki.fi>

	* src/util/rawlog.c:
	rawlog: Removed double '.' chars from log filenames
	[63338685c25e]

	* src/lib-dict/dict-redis.c:
	dict-redis: Added support for changing the Redis database. Adding
	:db=N to the dict string specifies the database.
	[62e4062302de]

	* src/lib/istream-seekable.c:
	lib: Added assert to i_stream_create_seekable*() to have non-zero
	max_buffer_size. This size is used for the created fd istream and it
	can't be zero.
	[98302e52074e]

	* src/lib/istream-seekable.c:
	lib: Give a name for istream-seekable's temporary fd istream.
	[7b2275ae8c19]

2015-03-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Allow up to 255 chars in a single mailbox hierarchy
	name. This also reduces the max number of hierarchy levels, but 16
	should still be enough for normal uses.
	[6e3cb68b274d]

2015-02-27  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Fixed lookups from virtual mailboxes with over 32
	physical mailboxes.
	[7f67e5c86af9]

2015-02-26  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-dsync.c:
	dsync: If we get disconnected from remoset server, exit with
	EX_TEMPFAIL Instead of 1000, which gets truncated to 232.
	[6d788397444e]

2015-02-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: Added an assert. It seems to be triggering later on, but
	not sure how it's happening.
	[e7c65fa3ffa9]

	* src/doveadm/doveadm-mail-server.c:
	doveadm: If command going through multiple users fails with user-
	specific error, don't stop.
	[c398321df8f5]

	* src/doveadm/doveadm-auth.c, src/lib-auth/auth-master.c, src/lib-auth
	/auth-master.h:
	lib-auth: auth_master_pass/user_lookup() now returns -2 for user-
	specific errors. Compared to -1 which are about a more generic error
	with auth process communication. If -2 is returned the lookup could
	still succeed for another user.
	[bcad7792a0fc]

2015-02-24  Timo Sirainen  <tss@iki.fi>

	* src/plugins/expire/expire-plugin.c:
	expire plugin: If expire_cache=yes, cache the dict db value in
	dovecot.index file. This avoids all of the dict lookups when mails
	are being saved to a mailbox that is tracked for expiring. The only
	downside is that if the dict is externally modified, the changes
	won't reflect the cached value. This isn't normally a problem
	(except maybe in initial testing stages).
	[c2e46b4df488]

2015-02-21  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: Debug logging was attempting to read already freed memory.
	[466596200825]

2015-02-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-backend.c:
	LAYOUT=index: Reversed d977a746819d - use storage's list_index_*()
	callbacks after all. Just because we have all the mailbox
	information in the mailbox list index doesn't mean that we
	necessarily trust the folder mail counts and such to be correct.
	Setting mailbox_list_index_very_dirty_syncs=yes pretty much reverts
	to the earlier behavior.
	[18c24e201697]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: Added more debug output for mailbox renaming.
	[52016e4cb3db]

2015-02-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-rebuild.c:
	lib-storage: Index rebuilding (for [sm]dbox) caused it to reset
	dovecot.index.cache file Although in some situations this might be
	wanted, usually it's not needed and simply makes the performance
	worse. If caching is explicitly unwanted the dovecot.index.cache
	file can be deleted manually for now. Perhaps there could be a
	separate doveadm force-resync parameter to do it as well.
	[4f3db8aec0a1]

	* Makefile.am:
	Makefile: Added run-test.sh to be cleaned by distclean
	[98eeca072492]

	* src/lib/test-istream.c:
	lib: Make static analyzer happier
	[8d95e460094d]

	* src/lib/test-data-stack.c:
	lib: Another test_assert() -> i_assert() change to avoid static
	analyzer warnings.
	[ca7441fc784e]

	* src/lib/test-data-stack.c, src/lib/test-printf-format-fix.c:
	lib: Replaced two test_assert()s checking for NULLs with i_assert()s
	These can never happen anyway, and keeping them as test_assert()s
	cause static analyzer to give warnings.
	[c8aeb0cb4a6e]

	* src/lib-fs/fs-posix.c:
	fs-posix: Removed the FS_PROPERTY_DIRECTORIES after all. We could
	have kept it if we removed the auto-rmdir()-parents feature in
	fs_delete(), but SIS code already somewhat relies on it so it's
	better not to change it for now at least.

	The downside here though is that directories are rmdir()ed only if
	fs_settings.root_dir is set. So for example "doveadm fs delete -R"
	doesn't ever rmdir() any directories. But that's probably not a real
	problem.
	[faed0c7403f8]

	* Makefile.am:
	Makefile: Removed run-test.sh from EXTRA_DIST since it's now
	generated by configure
	[86d382b0c4d8]

2015-02-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-posix.c:
	lib-fs: fs-posix needs to return FS_PROPERTY_DIRECTORIES
	[87b22053f4cb]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete -R: Delete the root directory also.
	[d7d35fd179e8]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: When recursively deleting files, delete
	directories with "/" prefix. Some backends require this to properly
	delete the file. Those that don't can ignore it easily.
	[359bc38c5e90]

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Removed unused code.
	[f30bc964ac34]

	* src/lib-fs/fs-api.h, src/lib-fs/fs-metawrap.c:
	lib-fs: Added FS_METADATA_OBJECTID macro.
	[a27eed623099]

	* src/lib-fs/fs-api.c, src/lib-fs/fs-api.h:
	lib-fs: Added flag for iteration returning object IDs. The flag is
	only allowed to be used if FS_PROPERTY_OBJECTIDS is set (to avoid
	writing extra code for backends that don't support this).
	[29bd2bcd56d6]

	* 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 STATUS_FIRST_RECENT_UID to return the (mostly) correct
	UID.
	[f13c6f9e0174]

2015-02-15  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/Makefile.am, src/doveadm/doveadm-mail-save.c,
	src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h:
	doveadm: Added "save" command to directly save mail to specified
	mailbox. The mail is read from stdin.
	[d3bb7541ca5e]

	* src/doveadm/doveadm-dsync.c, src/doveadm/doveadm-mail-server.c,
	src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h, src/doveadm
	/server-connection.c, src/doveadm/server-connection.h:
	doveadm: Added support for mail commands to read an input stream
	(from stdin) This is done by calling doveadm_mail_get_input() from
	the command's init() function. Currently it reads the entire input
	into a seekable istream with hardcoded 5 minute timeout. The input
	stream sending works also through doveadm proxying.

	This could probably be used by dsync at some point to support
	proxying over doveadm proxies, but that would require some more
	work. Especially a flag for commands to specify that they allow non-
	blocking input streams.
	[22a5eda76490]

	* src/lib-mail/ostream-dot.c, src/lib-mail/ostream-dot.h, src/lib-mail
	/test-ostream-dot.c:
	lib-mail: ostream-dot API changes The dot-line sending is now done
	when o_stream_flush() is called. This should be used instead of
	relying on close() doing it, because it still needs to write a few
	bytes and there are no guarantees that the parent stream allows
	sending them.

	Also added force_extra_crlf parameter, which specifies whether CRLF
	should always be written before the dot-line, even when it already
	contained CRLF. This is useful if the input is read with
	i_stream_create_dot(send_last_lf=FALSE), since it allows sending a
	stream that doesn't have to end with LF.
	[ca24e6d34345]

	* src/lib-mail/istream-dot.c:
	lib-mail: istream-dot should have immediately returned error if dot-
	line was missing at EOF.
	[42b3ac799f2f]

	* src/lib/istream.c:
	lib: If i_stream_read() sets stream_errno even if it didn't return
	-1, make sure we set eof=TRUE
	[d76d4351762b]

	* src/lib/istream-seekable.c:
	lib: If istream-seekable's parent stream returns error, make sure we
	set eof=TRUE
	[20babbc0dc24]

2015-02-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Improved error message a bit if server disconnects.
	[9ecf16e01a87]

2015-02-13  Timo Sirainen  <tss@iki.fi>

	* configure.ac:
	configure: Removed unnecessary lines left by the previous commit.
	[9bd6ed657cb3]

	* configure.ac, src/lib-storage/Makefile.am:
	Link all libstorage.la dependencies into the library itself instead.
	Instead of keeping a lot of different libraries in
	LIBDOVECOT_STORAGE, which have circular dependencies and may cause
	linking issues.
	[3ac5933082c4]

	* Makefile.am, dovecot.m4:
	dovecot-config: Added DOVECOT_INSTALLED parameter. Also added
	dovecot_installed_moduledir to dovecot.m4

	These can be used by external plugins to access some headers and
	libraries that don't already have existing DOVECOT_* parameters in
	dovecot-config.
	[16c21c12e21f]

2015-02-12  Timo Sirainen  <tss@iki.fi>

	* dovecot-config.in.in, dovecot.m4:
	dovecot-config: Added LIBDOVECOT_NOTIFY_INCLUDE
	[f10725a5eed8]

	* dovecot-config.in.in:
	dovecot-config: Added lib-storage/index/imapc also to
	LIBDOVECOT_IMAPC_INCLUDE
	[524098f35b3b]

	* dovecot-config.in.in, dovecot.m4:
	dovecot-config: Added LIBDOVECOT_IMAPC_INCLUDE and
	LIBDOVECOT_FTS_INCLUDE
	[f5f9ce55eca3]

	* src/plugins/fts/fts-parser-html.c:
	fts: Fixed memory leak in HTML parsing
	[8b44a5a14704]

2015-02-11  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/doveadm-fts.c:
	fts: Fixed error printing if fts wasn't enabled for user's default
	namespace.
	[2a262816191d]

2015-02-10  Timo Sirainen  <tss@iki.fi>

	* dovecot-config.in.in:
	dovecot-config: Added lib-sasl path into LIBDOVECOT_INCLUDE.
	[51d04f935e61]

	* .hgignore, configure.ac, dovecot.m4, run-test.sh:
	dovecot.m4: External plugins can now more easily run their tests via
	Valgrind. DC_DOVECOT macro automatically adds RUN_TEST variable to
	Makefiles, which can be used to call any test programs. If valgrind
	exists, the tests are run through it. This is done by writing run-
	test.sh to the build directory, so the original run-test.sh in hg is
	no longer needed.
	[d938a49c2045]

2015-02-10  Phil Carmody  <phil@dovecot.fi>

	* src/lib/istream.h:
	lib: istream create helpers for common cases Several clients want to
	create streams from buffer_t and string_t, we may as well make it
	easy for them

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[43a61a8bf9c5]

2015-02-09  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync/test-
	dsync-mailbox-tree-sync.c:
	dsync: Don't try to rename namespace prefixes.
	[1a0ece9b39e5]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: Fixed assert-crash when the two mailbox trees differed only
	by their directory names.
	[0eb8d396949a]

	* src/doveadm/doveadm-mail-copymove.c, src/doveadm/doveadm-mail-
	import.c:
	doveadm copy/move/import: Delay initializing source user until run()
	This fixes using them with doveadm proxying.
	[b4662ccd0b5e]

	* src/doveadm/doveadm-mail.h:
	doveadm: Added comments to struct doveadm_mail_cmd_vfuncs
	[111f19992c06]

	* src/doveadm/doveadm-mail.c:
	doveadm: Reverted changeset 3b89f2f4ffb3, which avoided calling
	init() for proxied commands. The init() is required for all commands
	that print something, because otherwise the doveadm_print_header*()
	isn't called and the commands crash.

	The reason for the original change was that some commands' init()
	attempted to do too much work on the proxy, which ended up failing.
	So looks like the proper fix is to just remove this kind of extra
	work from init().
	[acebb486714e]

	* src/log/log-connection.c, src/log/log-connection.h, src/log/main.c,
	src/master/service-process.c:
	log: If too much logging data is sent, show it in process title.
	[8f7dee2e7e05]

2015-02-07  Timo Sirainen  <tss@iki.fi>

	* src/log/log-connection.c:
	log: Log a warning if some connection is logging faster than we can
	write.
	[dec13d8f524c]

	* src/log/log-connection.c:
	log: Don't spend more than 100 msecs at a time logging one
	connection.
	[787ce1ab9f85]

	* src/log/log-connection.c:
	log: Small cleanup: Include log connection prefix when logging
	read() errors.
	[46e28c6ef002]

	* src/log/log-connection.c:
	log: Minor cleanup: Update ioloop_timeval whenever reading input
	from log client.
	[2f15ae9bc1b3]

2015-02-06  Timo Sirainen  <tss@iki.fi>

	* src/lib/module-dir.c:
	lib: Accidentally committed a nonexistent function call in previous
	commit.
	[3ae5d3a2a7d7]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Use module_dir_try_load_missing() to load user plugins.
	[f64cf4d075c8]

	* src/lib/module-dir.c, src/lib/module-dir.h:
	lib: Added module_dir_try_load_missing() that returns error instead
	of logging it. Also module_names now can be given for it without
	i_fatal() being called.
	[88b09d5912c0]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Previous log prefix changing code started accessing
	freed memory.
	[280246f95e74]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Set the user log prefix earlier when initializing user.
	So the full prefix with session and other useful information is
	included in the log message as early as possible. Some fatal/panic
	errors wouldn't even have shown the username.
	[6be98d5d829a]

	* src/lib/failures.c, src/lib/failures.h:
	lib: Added i_get_failure_prefix()
	[89c42f824f84]

2015-02-05  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: Fixed crash in earlier patch if node didn't have a namespace.
	This shouldn't have happened except in test-dsync-mailbox-tree-sync,
	but easier and safer to fix it here.
	[d7defdcfe039]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c, src/doveadm/dsync/test-
	dsync-mailbox-tree-sync.c:
	dsync: Added assert to make sure namespace prefix isn't attempted to
	be renamed. This can happen, I'm just not sure how exactly.. The
	previous behavior caused assert-crashes also, this change just makes
	it happen earlier.
	[560043558dd6]

	* src/doveadm/dsync/dsync-mailbox-tree-fill.c:
	dsync: Don't assert-crash in configs where INBOX doesn't have a
	parent namespace. The inbox=yes namespace of course exists, but if
	there is no prefix="" or prefix=INBOX/ namespace, then INBOX doesn't
	clearly belong to any namespace.
	[00a57ac1b9fa]

2015-02-03  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox-tree.c:
	dsync: Make sure when fixing mailbox names we don't try to change
	the namespace prefix. Although in normal installations this it
	wouldn't have happened in any case.
	[6a74968f7978]

	* src/lib-storage/mail-storage.c:
	lib-storage: Avoid assert-crashing on mailbox_verify_*_name() with
	invalid namespace prefix.
	[9bec5721d277]

	* src/lib-storage/index/imapc/imapc-search.c:
	imapc: Fixed modseq search for previous imapc_features=search change
	[bb92d04e5f71]

	* src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc-
	client.h, src/lib-storage/index/imapc/Makefile.am, src/lib-
	storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/imapc
	/imapc-search.c, src/lib-storage/index/imapc/imapc-search.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, src/lib-storage/index/imapc/imapc-storage.h:
	imapc: Added imapc_features=search support for sending SEARCH
	commands. Currently requires the remote server to support ESEARCH
	(but this would be easy to avoid). This is only minimally tested for
	now, so bugs may exist (especially related to sub-queries).
	[405959839f48]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Implemented support for GMail [THROTTLED] resp-
	text-code. If we receive it, start throttling future commands by
	waiting exponentially longer until we no longer receive [THROTTLED].
	Max wait time is currently 16 seconds.
	[6c2ea1d6ab58]

2015-02-02  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-request.c:
	lib-http: client: Fixed double unref of request when error occurs
	during http_client_request_try_retry(). Much like when the request
	is first submitted, any errors that occur while attempting a retry
	from within the callback are now delayed in a zero timer.
	[5205f3bd1a27]

2015-02-02  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-array.c:
	lib: array - test count/isempty/nonepty Signed-off-by: Phil Carmody
	<phil@dovecot.fi>
	[90e1829ba80e]

	* src/lib/array.h:
	lib: array - two helpers to avoid wasteful array_count There's no
	need to dereference array->element_size and perform a division when
	all you care about is the boolean isempty/nonempty predicate:

	$ git grep 'array_count(.*) > 0' | wc -l 77 $ git grep
	'array_count(.*) == 0' | wc -l 95

	Changing 6 of them has the following impact on the code:

	$ size src/lib-imap-client/imapc-connection.o text data bss dec hex
	filename 20879 0 4 20883 5193 src/lib-imap-client/imapc-connection.o
	$ size src/lib-imap-client /imapc-connection.o text data bss dec hex
	filename 20796 0 4 20800 5140 src/lib-imap-client/imapc-
	connection.o

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b0ac11ef7f51]

2015-01-31  Timo Sirainen  <tss@iki.fi>

	* src/replication/replicator/replicator-queue.c:
	replicator: Previous "last successful sync" timestamp change wrote
	data wrong to replicator.db Patch by Matthew Via / Rackspace
	[ad04a5e6a766]

2015-01-30  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-getmetadata.c:
	imap: If GETMETADATA fails for some mailbox, don't send the error
	message mixed in the METADATA reply line.
	[6e3b90370ad4]

	* src/imap/imap-client.c:
	imap: Dynamic capabilities weren't being added correctly when
	imap_capability setting was used. They were supposed to be added
	when '+' prefix was used in imap_capability and not added when it
	wasn't. But the behavior was exactly the opposite.
	[2ef1371e0b77]

	* src/lib/str-sanitize.c, src/lib/str-sanitize.h:
	lib: str_sanitize*() max_len parameter renamed to max_bytes to
	describe it more accurately.
	[081c7da83d8f]

	* src/lib/str-sanitize.c, src/lib/test-str-sanitize.c:
	lib: Various fixes to str_sanitize*()
	 - UTF-8 sequences could have been truncated to become partial
	sequences
	 - Truncation may not have happened at all to text containing UTF-8
	 - str_sanitize_append() might have truncated string beyond what we
	were appending, although that happened only if max_len was very
	small
	[ee12ce691bd3]

	* src/doveadm/doveadm-replicator.c, src/replication/replicator
	/doveadm-connection.c, src/replication/replicator/replicator-
	brain.c, src/replication/replicator/replicator-queue.c,
	src/replication/replicator/replicator-queue.h:
	replicator: Remember last successful sync and show it in "doveadm
	replicator status" Patch by Matthew Via / Rackspace
	[58466077dff9]

2015-01-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-ssl-iostream/iostream-openssl.c, src/lib-ssl-iostream
	/istream-openssl.c:
	lib-ssl-iostream: Don't set EPIPE/ECONNRESET error to istream when
	connection is closed. Several istream users verify at EOF that
	stream_errno=0 and fail if it isn't.
	[1d1a310bb488]

2015-01-27  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-build-mail.c:
	fts: When indexing address headers, don't add MISSING_MAILBOX or
	MISSING_DOMAIN.
	[93851d1ca12d]

	* src/plugins/fts/fts-expunge-log.c:
	fts: Added back fts_expunge_log_uid_count() This was accidentally
	removed by commit 5091f03d70e1
	[eaa37c259891]

2015-01-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/Makefile.am:
	lib-mail: Test program wasn't linked with libiconv, causing linking
	failures.
	[0f337ba2bc08]

2015-01-24  Phil Carmody  <phil@dovecot.fi>

	* src/lib/array.h, src/lib/test-array.c:
	lib: array - helper to swap array buffer ownership Currently there's
	no simple way to create a replacement for an array, and then
	atomically switch in that replacement. With this helper, you can
	just exchange ownership of the two lists and then free the new list
	(which now contains the old buffer).

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[7557234ac0f4]

2015-01-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-mail.c, src/lib-
	storage/index/imapc/imapc-mailbox.c, src/lib-storage/index/imapc
	/imapc-settings.c, src/lib-storage/index/imapc/imapc-settings.h, src
	/lib-storage/index/imapc/imapc-sync.c:
	imapc: Merged gmail-pop3 and gmail-labels-keyword features into a
	single gmail-migration feature There's really no other reason to use
	them except for migration.
	[111dcc2ca272]

	* src/lib-storage/index/imapc/imapc-sync.c:
	imapc: With gmail-labels-keyword feature add the $GMailHaveLabels
	only to \All mailbox This is primarily intended for migration, and
	with this behavior dsync can be run just once so it's faster.
	[f2fac7c857f2]

2015-01-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-single/sdbox-copy.c:
	sdbox: Fixed assert-crash when copying mails due to earlier change.
	[e30e9b2b0e37]

2015-01-21  Phil Carmody  <phil@dovecot.fi>

	* src/plugins/fts/fts-expunge-log.c:
	plugins/fts: use common guid_128 helpers Signed-off-by: Phil Carmody
	<phil@dovecot.fi>
	[991a6b7a9385]

	* src/plugins/fts/fts-expunge-log.c, src/plugins/fts/fts-expunge-
	log.h:
	plugins/fts: expunge-log - query function to lookup GUID/UID
	Constant time hash lookup for GUID. Log time lookup in seq_range
	array.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[91b00535e1f9]

	* src/plugins/fts/fts-expunge-log.c, src/plugins/fts/fts-expunge-
	log.h:
	plugins/fts: expunge-log - create flattened in-RAM log with no
	backing storage Combine each record in a source expunge log. This
	source log does not get deleted afterwards.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e1b50803e5d4]

	* src/plugins/fts/fts-expunge-log.c:
	plugins/fts: expunge-log - pull mailbox finding/creating into a
	helper There will be more clients than just this one.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8b4693c01cce]

	* src/plugins/fts/fts-expunge-log.c, src/plugins/fts/fts-expunge-
	log.h:
	plugins/fts: expunge-log - permit append helpers to have no log to
	write to This is for creating an in-RAM, later queriable, structure
	which you do not want to be written to backing storage. As when
	you've finished with one, there's no concept of a "commit", provide
	an alternative "abort" way out. These are identical apart from the
	call to the write() routine, so refactor the two.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[5091f03d70e1]

	* src/plugins/fts/fts-expunge-log.c:
	plugins/fts: expung-log - add the concept of not unlinking at the
	end No behavioural differences, the default is to unlink.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[2e756ad0ffcf]

	* src/lib/seq-range-array.c, src/lib/seq-range-array.h, src/lib/test-
	seq-range-array.c:
	lib: seq-range-array - add range changes Pull the _add_range() guts
	into a private helper function, and add a new _add_range_count()
	helper which also returns the number of SEQs added.

	Expand the tests to test this new functionality.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[230f3579c9b7]

	* src/lib/data-stack.c:
	lib: data-stack - fix pointer arithmetic compiler warning Clang's
	-fsanitize=unsigned-integer-overflow barfs as follows:

	data-stack.c:477:29: runtime error: negation of 8 cannot be
	represented in type 'unsigned long' data-stack.c:495:15: runtime
	error: negation of 8 cannot be represented in type 'unsigned long'

	Which is of course complete bollocks. There is no 8, there's only an
	8ul, and the negation of 8ul is 0xfffffff8ul (or a wider
	equivalent). That's the law.

	However, the pointer arithmetic which follows the negation, whilst
	almost certainly working in practice, is probably bogus, so just
	make the thing signed before the negation, and both problems go
	away.

	Reported-by: Teemu Huovila <teemu.huovila@dovecot.fi> Signed-off-by:
	Phil Carmody <phil@dovecot.fi>
	[3ef7f3d53d17]

2015-01-21  Timo Sirainen  <tss@iki.fi>

	* src/master/master-settings.c:
	master: Fixed a check to see if login directory has any unix
	listeners.
	[e9a8fc0e21c9]

2015-01-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-mail.c, src/lib-
	storage/index/imapc/imapc-mailbox.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, src/lib-
	storage/index/imapc/imapc-sync.c:
	imapc: Implemented imapc_features=gmail-pop3 that also migrates
	pop3_deleted_flag. This also caused gmail-pop3-uidl feature to be
	renamed to simply gmail-pop3, which includes both the features.
	[df92d09acc63]

	* src/lib-imap-client/imapc-client.h, src/lib-imap-client/imapc-
	connection.c:
	lib-imap-client: Added imapc_command_get_tag()
	[034cb24bc590]

	* 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 imapc_features=gmail-pop3-uidl This allows imapc to
	generate GMail POP3 compatible UIDL so that pop3-migration plugin
	isn't needed.
	[38c70f8ac3dd]

	* src/doveadm/dsync/dsync-mailbox-tree-fill.c:
	dsync: Allow -m parameter to specify \Special-use mailboxes.
	Similarly to how -x parameter allows them.
	[ba0b94f11cea]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Crashfix to -F parameter handling.
	[b505739970e7]

	* src/lib-storage/index/imapc/imapc-mailbox.c, src/lib-
	storage/index/imapc/imapc-settings.c, src/lib-storage/index/imapc
	/imapc-settings.h, src/lib-storage/index/imapc/imapc-sync.c:
	imapc: Added imapc_features=gmail-labels-keyword This is a bit
	kludgy feature mainly intended for migrations from GMail.
	Unfortunately I couldn't figure out any nicer way to do this for
	now. GMail's "All Mail" folder contains all messages in all folders,
	but it also contains some messages that don't exist in other
	folders. For migrations we want to copy only those messages that
	don't exist elsewhere. This can now be achieved with something like:

	doveadm -o imapc_features='gmail-labels-keyword ...' \ backup -F
	'-$GmailHaveLabels' mdbox:~/mdbox

	Note that dsync can't handle inserting mails into folders, so if
	doveadm backup is already run once and one of the existing mails
	loses all labels, doveadm backup will delete the whole folder and
	start again.
	[c18b2ffeb882]

	* src/doveadm/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-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-
	stream.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync-
	mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h:
	dsync: Added -F parameter to sync only mails with[out] specific
	flag.
	[35e4a6ae8d85]

	* src/doveadm/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-ibc-pipe.c, src/doveadm/dsync/dsync-ibc-
	stream.c, src/doveadm/dsync/dsync-ibc.h, src/doveadm/dsync/dsync-
	mailbox-import.c, src/doveadm/dsync/dsync-mailbox-import.h:
	dsync: If same GUID already exists in storage, try to copy it
	instead of recreating the mail. This way most mailbox backends can
	reduce disk space by only doing a reference count update.

	This feature isn't enabled by default. A virtual "All Mails" mailbox
	needs to be configured using the virtual plugin. Then you need to
	give this mailbox as -a parameter, e.g.: doveadm sync -a
	"Virtual/All Mails" ...

	Currently this is implemented by reading through all the GUIDs in
	the virtual mailbox. This of course isn't very efficient for things
	like incremental replication. An upcoming conversation plugin will
	keep track of all the mails' GUIDs, so in future replication should
	be able to have this functionality efficiently as well.
	[39d00448490f]

	* src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual-
	storage.c, src/plugins/virtual/virtual-storage.h,
	src/plugins/virtual/virtual-sync.c:
	virtual plugin: Read virtual index header when opening virtual
	mailbox. This allows doing some mailbox accessing without actually
	syncing the mailbox. For example MAIL_FETCH_MAILBOX_NAME can be used
	without crashing.
	[e83c50fda315]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Added more debug logging.
	[dbf3a0701810]

2015-01-19  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/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-ibc-stream.c, src/doveadm/dsync/dsync-ibc.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:
	dsync: Added -t <timestamp> parameter to save only mails newer than
	<timestamp> If one side has old mails that don't exist on the other
	side, they are ignored (not synced and not deleted).
	[f393f63764e0]

	* src/lib-storage/mail-search-register-human.c, src/lib-storage/mail-
	storage.c, src/lib-storage/mail-storage.h:
	lib-storage: Added mail_parse_human_timestamp() to parse human-
	writable timestamps. This isn't really the ideal location for the
	function, but since it uses both lib-settings and lib-imap, there's
	not any good location for it that I can think of..
	[b0fb4113fbbe]

	* src/doveadm/doveadm-mail-deduplicate.c, src/doveadm/doveadm-mail-
	mailbox-metadata.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-
	mail.h, src/doveadm/doveadm-mailbox-list-iter.c:
	doveadm: Added missing error handling to various mail commands. This
	fixes assert-crash that happened when the commands failed, because
	they hadn't set any exit_code.
	[f2a0dd55ad37]

	* src/lib-storage/mailbox-list-iter.h:
	lib-storage: Comment updates to mailbox_list_iter_*()
	[e6d8d7e56828]

	* src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-mail.c,
	src/doveadm/doveadm-mailbox-list-iter.c:
	doveadm: If mailbox list iteration fails, log the error reason.
	[322afa8ca547]

	* src/lib-imap-urlauth/imap-urlauth-backend.c:
	imap-urlauth: If mailbox list iteration fails, log the error.
	[fb2549cdf316]

	* src/plugins/virtual/virtual-config.c:
	virtual plugin: If mailbox list iteration fails, log the error.
	[d4e9c940fb7f]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: Removed caching body snippet while message is being
	saved. This broke saving mails with dbox, because it attempts to
	open the mails too early. Also the generation was a bit costly
	operation to do if it wasn't actually wanted to be cached.

	So in future we'd first want to check if body snippet is actually
	wanted. If it is, then generate the potential snippets while the
	message is being parsed (always generate the snippet for the best
	found MIME part, replacing existing snippets when needed). This
	requires the message_snippet_generate() API to support sending input
	as partial message_blocks.
	[861c9985e7c2]

	* src/lib-storage/index/index-mail.c:
	lib-storage: MAIL_FETCH_BODY_SNIPPET should seek the mail stream
	back to original position.
	[50514ef4f138]

	* src/lib-storage/index/dbox-multi/mdbox-save.c, src/lib-storage/index
	/dbox-single/sdbox-file.h, src/lib-storage/index/dbox-single/sdbox-
	save.c:
	dbox: Added asserts to make sure the mail body isn't tried to be
	read too early while saving. If the mail headers are still being
	written, the opening will just fail thinking the mail is corrupted.
	[b03b1369410d]

	* src/plugins/fts/fts-parser-html.c:
	fts: Fixed assert-crash in HTML parsing, broken by the earlier
	changes.
	[89163656c0f5]

2015-01-17  Timo Sirainen  <tss@iki.fi>

	* 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:
	lib: iostream-rawlog now writes to ostreams instead of directly to
	fds.
	[c02f29ca104d]

	* src/lib/ostream.c, src/lib/ostream.h:
	lib: Added o_stream_create_passthrough() for creating simple wrapper
	ostreams
	[071e46b032c8]

	* src/lib/iostream-private.h, src/lib/iostream.c, src/lib/istream.c,
	src/lib/ostream.c, src/lib/ostream.h:
	lib: Added o_stream_add_destroy_callback()
	[4723cecff76c]

	* src/auth/auth-request.c, src/auth/auth-request.h, src/auth/passdb.c:
	auth: Changed passdb { continue-ok } handling for credentials
	lookups. If the last passdb after it doesn't return credentials, use
	the first passdb's credentials. This allows implementing plugins
	that modify the passdb result without actually changing the
	credentials.
	[20acc7cc5b11]

	* src/lib-storage/mail-user.c, src/lib-storage/mail-user.h, src/lib-
	storage/mailbox-list.c:
	lib-storage: Added mail_user_init_fs_settings() Also changed
	mailbox_list_init_fs() to use it internally.
	[a6e51d9098bc]

	* src/doveadm/doveadm-auth.c:
	doveadm user: If username is changed by userdb lookup, return it.
	[ec0518476003]

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added body.snippet field.
	[48d2bc84e047]

	* 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.h:
	lib-storage: Added MAIL_FETCH_BODY_SNIPPET.
	[a76507bc3f36]

	* src/plugins/fts/Makefile.am, src/plugins/fts/fts-parser-html.c,
	src/plugins/fts/html-entities.h:
	fts: Parse HTML MIME parts using lib-mail's mail-html2text.
	[08afd516a622]

	* src/lib-mail/Makefile.am, src/lib-mail/message-snippet.c, src/lib-
	mail/message-snippet.h, src/lib-mail/test-message-snippet.c:
	lib-mail: Added message_snippet_generate() to produce a short text
	snippet of a mail.
	[5211234206ea]

	* src/lib-mail/Makefile.am, src/lib-mail/html-entities.h, src/lib-mail
	/mail-html2text.c, src/lib-mail/mail-html2text.h, src/lib-mail/test-
	mail-html2text.c:
	lib-mail: Added mail-html2text API What makes it mail-specific is
	that it allows skipping over data inside <blockquote>. This code
	probably doesn't parse HTML perfectly, but hopefully good enough for
	HTML emails.
	[d59753d9f5e9]

2015-01-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/message-decoder.h:
	lib-mail: Forgot to commit .h file for
	message_decoder_current_content_type() change.
	[3d612ade5d75]

	* src/lib-mail/message-decoder.c, src/lib-mail/test-message-decoder.c:
	lib-mail: Added message_decoder_current_content_type()
	[55555824f636]

	* src/lib-mail/message-decoder.c, src/lib-mail/test-message-decoder.c:
	lib-mail: message-decoder now always sets output->size=0 when
	headers are returned.
	[7250ccf9ab4c]

	* src/lib-mail/message-decoder.c:
	lib-mail: Fixed crash in message-decoder with unknown charsets.
	Caused by earlier changes.
	[38e807433e2f]

	* src/lib-mail/message-decoder.c:
	lib-mail: Replaced MAX_TRANSLATION_BUF_SIZE with the new
	CHARSET_MAX_PENDING_BUF_SIZE
	[e49a2e800650]

	* src/lib-charset/charset-iconv.c, src/lib-charset/charset-utf8.c, src
	/lib-charset/charset-utf8.h:
	lib-charset: Added CHARSET_MAX_PENDING_BUF_SIZE macro and asserts
	for it.
	[3d9ec121dc81]

	* src/lib-charset/charset-utf8.c, src/lib-charset/charset-utf8.h:
	lib-charset: Added charset_utf8_to_utf8_begin() wrapper function.
	It's never supposed to fail, so it makes it nicer for the callers
	who need to use it.
	[0e74934072e0]

	* src/lib/test-unichar.c, src/lib/unichar.c, src/lib/unichar.h:
	lib: Fixed NUL-handling in uni_utf8_*strlen*() uni_utf8_strlen()
	could have skipped over the ending NUL byte and caused read buffer
	overflows with invalid input.

	uni_utf8_strlen_n() and uni_utf8_partial_strlen_n() now allow NUL
	bytes in the input and they're treated as regular control
	characters. Previously the size was actually treated as max_size
	with early NUL byte termination. Technically this is an API change,
	but I'm not aware of anything using these functions in an
	incompatible way.
	[e645ee117fa9]

	* 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-human.c, src/lib-storage/mail-search.h:
	lib-storage: Added "oldestonly" search arg to stop searching after
	the first non-match. This parameter works only for doveadm search
	queries. It's not fully exact currently, because if
	mailbox.search_next_update_seq() skips over non-matching messages we
	don't stop if the next message matches. So this parameter is mainly
	useful for optimization of commands like:

	doveadm expunge -u user@domain mailbox inbox savedsince 30d
	oldestonly

	Where the timestamps should be ascending all the time anyway and
	there's no point in continuing to search for more mails after the
	first timestamp is too high.
	[14bf136959bc]

2015-01-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/Makefile.am, src/lib-mail/message-decoder.c, src/lib-
	mail/test-message-decoder.c:
	lib-mail: message-decoder no longer skips lib-charset for UTF8 ->
	UTF8 translations. With the previous lib-charset fix this makes
	message-decoder handle partial UTF-8 text in input blocks correctly.
	[e3640ccaa76d]

	* src/lib/test-unichar.c, src/lib/unichar.c, src/lib/unichar.h:
	lib: Added uni_utf8_partial_strlen_n()
	[f191dbcaec5f]

	* src/lib-charset/charset-iconv.c, src/lib-charset/charset-utf8.c, src
	/lib-charset/charset-utf8.h:
	lib-charset: UTF-8 -> UTF-8 translation was never returning
	CHARSET_RET_INCOMPLETE_INPUT Instead the incomplete input was just
	being modified into broken output.
	[7459c0891a85]

2015-01-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Compiler warning fixes
	[55184e2a689f]

	* src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc-
	client.h, src/lib-imap-client/imapc-connection.c, src/lib-
	storage/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/mail-storage.c:
	imapc: Added imapc_sasl_mechanisms setting The first supported SASL
	mechanism is used, otherwise the login fails entirely.
	[fba6355ddb8a]

	* src/lib-imap-client/Makefile.am, src/lib-imap-client/imapc-
	connection.c:
	lib-imap-client: Use lib-sasl to perform the AUTHENTICATE command
	handling.
	[ee135359faa4]

2015-01-07  Timo Sirainen  <tss@iki.fi>

	* src/lib/guid.h:
	lib: Defined array type for guid_128_t
	[51e8bbc82edd]

2015-01-06  Timo Sirainen  <tss@iki.fi>

	* src/lib/ipwd.c:
	lib: Remove OpenBSD workaround in i_getpw*() Originally added in
	801714cba91b. It was requested to be removed now that 1) it's fixed
	in OpenBSD v5.6+ and 2) The workaround caused nonexistent users to
	not work correctly (process running out of memory I guess?)
	[dbd1dbd968ac]

2015-01-05  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/plugins/fts/fts-parser.c:
	fts: Correct returned value to match type signature.
	[e23f1f333ada]

2015-01-05  Phil Carmody  <phil@dovecot.fi>

	* doc/man/doveadm-acl.1.in, doc/man/doveadm-altmove.1.in, doc/man
	/doveadm-auth.1.in, doc/man/doveadm-batch.1.in, doc/man/doveadm-
	deduplicate.1.in, doc/man/doveadm-director.1.in, doc/man/doveadm-
	dump.1.in, doc/man/doveadm-exec.1.in, doc/man/doveadm-expunge.1.in,
	doc/man/doveadm-fetch.1.in, doc/man/doveadm-flags.1.in, doc/man
	/doveadm-force-resync.1.in, doc/man/doveadm-fts.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-proxy.1.in, doc/man/doveadm-
	purge.1.in, doc/man/doveadm-pw.1.in, doc/man/doveadm-quota.1.in,
	doc/man/doveadm-replicator.1.in, doc/man/doveadm-search-query.7,
	doc/man/doveadm-search.1.in, doc/man/doveadm-sync.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, 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-cache-key.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-scram-sha1.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/test-db-dict.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-cmd.c,
	src/doveadm/doveadm-dict.c, src/doveadm/doveadm-director.c,
	src/doveadm/doveadm-dsync.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-fs.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-batch.c, src/doveadm/doveadm-mail-
	copymove.c, src/doveadm/doveadm-mail-deduplicate.c, src/doveadm
	/doveadm-mail-expunge.c, src/doveadm/doveadm-mail-fetch.c,
	src/doveadm/doveadm-mail-flags.c, src/doveadm/doveadm-mail-import.c,
	src/doveadm/doveadm-mail-index.c, src/doveadm/doveadm-mail-iter.c,
	src/doveadm/doveadm-mail-mailbox-metadata.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-replicator.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/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-
	mailbox.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-getmetadata.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-setmetadata.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-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-lz4.c, src/lib-compression/istream-
	lzma.c, src/lib-compression/istream-zlib.c, src/lib-compression
	/ostream-bzlib.c, src/lib-compression/ostream-lz4.c, src/lib-
	compression/ostream-lzma.c, src/lib-compression/ostream-zlib.c, src
	/lib-compression/test-compression.c, src/lib-dict/dict-cdb.c, src
	/lib-dict/dict-client.c, src/lib-dict/dict-db.c, src/lib-dict/dict-
	file.c, src/lib-dict/dict-fs.c, src/lib-dict/dict-memcached-ascii.c,
	src/lib-dict/dict-memcached.c, src/lib-dict/dict-redis.c, src/lib-
	dict/dict-register.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-metawrap.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/istream-fs-file.c, src/lib-fs/istream-
	metawrap.c, src/lib-fs/ostream-cmp.c, src/lib-fs/ostream-metawrap.c,
	src/lib-http/http-auth.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-queue.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-header.c, src/lib-http
	/http-message-parser.c, src/lib-http/http-parser.c, src/lib-http
	/http-request-parser.c, src/lib-http/http-response-parser.c, src
	/lib-http/http-server-connection.c, src/lib-http/http-server-
	request.c, src/lib-http/http-server-response.c, src/lib-http/http-
	server.c, src/lib-http/http-transfer-chunked.c, src/lib-http/http-
	url.c, src/lib-http/test-http-auth.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-request-parser.c, src/lib-
	http/test-http-response-parser.c, src/lib-http/test-http-server.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-metadata.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-quote.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-part.c, src/lib-
	mail/message-search.c, src/lib-mail/message-size.c, src/lib-mail
	/ostream-dot.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-message-part.c, src/lib-mail/test-ostream-dot.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-master
	/test-master-service-settings-cache.c, src/lib-sasl/dsasl-client.c,
	src/lib-sasl/mech-login.c, src/lib-sasl/mech-plain.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.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-deleted-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-list-index.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/base32.c, src/lib/base64.c, src/lib/bits.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/hmac.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-callback.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-
	hash.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-timeout.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-hash.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/rand.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-table.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-base32.c, src/lib/test-base64.c, src/lib
	/test-bits.c, src/lib/test-bsearch-insert-pos.c, src/lib/test-
	buffer.c, src/lib/test-crc32.c, src/lib/test-data-stack.c, src/lib
	/test-guid.c, src/lib/test-hash-format.c, src/lib/test-hash-
	method.c, src/lib/test-hash.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-istream.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-printf-format-fix.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-str-table.c, src/lib/test-str.c, src/lib
	/test-strescape.c, src/lib/test-strfuncs.c, src/lib/test-strnum.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/test-wildcard-match.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-attributes.c, src/plugins/acl/acl-backend-vfile-acllist.c,
	src/plugins/acl/acl-backend-vfile-update.c, src/plugins/acl/acl-
	backend-vfile.c, src/plugins/acl/acl-backend.c, src/plugins/acl/acl-
	cache.c, src/plugins/acl/acl-global-file.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-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/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-tika.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/last-login
	/last-login-plugin.c, src/plugins/lazy-expunge/lazy-expunge-
	plugin.c, src/plugins/listescape/listescape-plugin.c, src/plugins
	/mail-filter/istream-ext-filter.c, src/plugins/mail-filter/mail-
	filter-plugin.c, src/plugins/mail-filter/ostream-ext-filter.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-status.c, src/plugins/quota/quota-storage.c,
	src/plugins/quota/quota-util.c, src/plugins/quota/quota.c,
	src/plugins/quota/test-quota-util.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/dsync-client.c,
	src/replication/replicator/notify-connection.c,
	src/replication/replicator/replicator-brain.c,
	src/replication/replicator/replicator-queue-auth.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-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:
	global: freshen copyright Robomatically: git ls-files | xargs perl
	-p -i -e 's/(\d+)-201[0-4]/$1-2015/g;s/ (201[0-4]) Dovecot/ $1-2015
	Dovecot/'

	Happy 2015 everyone!

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3009a1a6f6d5]

	* src/lib/guid.h, src/lib/test-guid.c:
	lib: guid - centralise a 'reset to the empty value' helper function
	This helper just ensures that the caller never has to get the
	sizeof() right. (Were a guid passed as a function parameter,
	mistakes could happen.)

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[ff30ec13fcb7]

	* src/lib/guid.h:
	lib: guid - declare some functions as pure As the functions aren't
	inline, the compiler can't know if they can be optimised away, so
	give it a helping hand.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[4f0f1e10cb53]

	* src/lib/array.h:
	lib: array - explain implications of ARRAY_TYPE() in comment If you
	use ARRAY_TYPE() to pass an array around, then you must also use
	ARRAY_TYPE() to define the array itself, ARRAY() will no longer do.

	Reported-by: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no> Signed-off-
	by: Phil Carmody <phil@dovecot.fi>
	[17ec2a11cf44]

	* src/lib/test-array.c:
	lib: test-array - test new lsearch helper Just piggy-back on to the
	current reverse test, as that's got an array nicely set up for us
	already.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[fa815914dce6]

	* src/lib/array.c, src/lib/array.h:
	lib: array - new linear search helper There are large numbers of
	array_foreach loops which do nothing but search for the first
	element which matches some key. This can be abstracted out into a
	helper.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1bbec03202e0]

2014-12-26  Timo Sirainen  <tss@iki.fi>

	* configure.ac:
	configure: Don't break when using --without-shared-libs and CC with
	'/' chars.
	[6078354e6238]

2014-12-17  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Don't crash if master user login is attempted without
	master=yes passdbs
	[dd2eebe35a3a]

	* src/lib/array.c:
	lib: Small optimization / unnecessary code removal from array_*()
	functions.
	[0d870753d9ab]

2014-12-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-mail.c, src/lib-storage/index/index-
	mail.h, src/lib-storage/index/index-search.c:
	lib-storage: Mail prefetching was still not working right. I wonder
	if it ever actually worked (except for SEARCH TEXT).
	[6dd190bd6dcb]

	* src/doveadm/doveadm-mail.c:
	doveadm: Avoid calling init() in doveadm binary if the command is
	sent to doveadm-server. The init() is still always called when -A or
	-u *wildcards* are used though. I'm not sure if that can be delayed.
	At least all commands should be verified that they don't rely on the
	current init() location.
	[3b89f2f4ffb3]

	* src/doveadm/doveadm-mail-server.c:
	doveadm: Support changing proxy destination username with "user" and
	"destuser" passdb field.
	[7c834633922c]

	* src/auth/auth-request.c:
	auth: Don't allow changing username to an empty string. This is most
	likely always accidental and Dovecot in general hasn't been designed
	to support empty usernames.
	[a3ac6d5e5915]

	* src/plugins/fts/Makefile.am:
	fts: Install some of the header files that other external plugins
	might want to use.
	[9b7fdacccf99]

	* src/plugins/fts/fts-indexer.h:
	fts: Compiler warning fix when using fts-indexer.h directly
	[94c8db49fe59]

2014-12-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-redis.c:
	dict-redis: Use timeout_msecs parameter also for transaction commit
	waits.
	[61b789a5e2c7]

	* src/lib-dict/dict-redis.c:
	dict-redis: Use EXPIRE also after INCRBY commands.
	[668068a45447]

2014-12-01  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-array.c:
	lib: test-array - really really really stop gcc optimising away
	fatal tests Gcc 4.6 also was determined to optimise away the calls
	that should crash. We therefore have to do *something*, no matter
	how stupid, with the return values. This should do it. (please, oh
	please, oh please, ...)

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[096d233acb7d]

2014-12-01  Timo Sirainen  <tss@iki.fi>

	* src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/quota/quota-
	dict.c, src/plugins/quota/quota-fs.c, src/plugins/quota/quota-
	maildir.c, src/plugins/quota/quota-private.h,
	src/plugins/quota/quota.c, src/plugins/quota/quota.h:
	quota: Added "hidden" option to hide the quota root from IMAP
	GETQUOTAROOT command.
	[831f7e40546d]

2014-11-28  Phil Carmody  <phil@dovecot.fi>

	* src/lib/array.h:
	lib: array - array_foreach_idx is just a generic ptr_to_idx helper
	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[67b46a7f4ed2]

	* src/lib/array.h, src/lib/test-array.c:
	lib: test-array - remove possibility to optimise out tests (void) on
	a call to a "pure" function was causing some compilers (gcc 4.8) to
	not reach the assert within the pure function. Technically it's not
	a pure function, as (in the assert fail case) it has effects other
	than its return value. However, simply removing the void cast (and
	then actually using the return value) also prevents this
	optimisation.

	An additional fatal test was added - there's a difference between an
	access outside the allocated range and outside the initialised
	range.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8a4b536705ad]

	* src/lib-test/test-common.c:
	lib-test: more delicate *assert() behaviour when doing fatal tests
	We shouldn't be i_asserting ourselves when we're in the state of
	wanting a test to fail. Therefore instead test_assert to get the
	assert message, and ensure that the success flag is cleared to get
	the FAILED at the end.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[247f3742a3c2]

2014-11-25  Phil Carmody  <phil@dovecot.fi>

	* src/lib/array.h:
	lib: array - additional compile-time checks to array_append The new
	two-array helper macro works in this context too.

	Note: array_copy doesn't have any protection currently, it isn't
	obvious how to wrap that with some safety without breaking
	interfaces. It only seems to have one internal user, lib/aqueue.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b7074256cc65]

	* src/lib/test-array.c:
	lib: test-array - fix off-by-one in test_reverse i is not used as an
	index, but as a count. Therefore, it can attain the array size in
	the loop without causing any buffer overflows.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e9ac32255ef1]

	* src/lib/test-array.c, src/lib/test-lib.c, src/lib/test-lib.h:
	lib: test-array - fatal tests Tests both of the i_asserts which
	aren't already protected by TYPEOF compile-time checks.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9141a16aff4e]

	* src/lib/test-array.c:
	lib: test-array - new equality testers One using strings that get
	dereferenced, the other using the context pointer to pass in
	external data.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[5522d5ce87a5]

	* src/lib/array.c, src/lib/array.h:
	lib: array - element-wise comparison via callback 2 are provided -
	with and without a context pointer.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b8ac4e5a1002]

	* src/lib/test-array.c:
	lib: test-array - test array_cmp() Signed-off-by: Phil Carmody
	<phil@dovecot.fi>
	[a45ee7e221b0]

	* src/lib/guid.c, src/lib/guid.h:
	lib: guid - turn uint8_t * parameters into guid_128_t As we expose
	the type's internals, there's no concrete difference between the
	two, but it might help static code checkers to detect misuse of the
	library, or sloppy typing.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[88e985e7f2b6]

2014-11-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-redis.c:
	dict-redis: Small error handling fix to previous change.
	[fd43098e23d0]

	* src/lib-dict/dict-redis.c:
	dict-redis: Added support for expire_secs=n parameter. It performs
	EXPIRE command for the added keys immediately after the SET.
	[5ee74bc88f18]

	* src/lib-storage/index/index-mail.c, src/lib-storage/index/index-
	mail.h, src/lib-storage/index/index-search.c:
	lib-storage: Don't fetch wanted_fields for messages that don't match
	the search query. For example "doveadm fetch text subject foo" was
	opening all the mails, even though only a few matched the subject
	(that was hopefully already in cache file).

	The behavior still isn't perfect though. The wanted_fields should
	probably be split into search_wanted_fields and fetch_wanted_fields,
	but the current behavior is likely good enough for now.
	[2553f3aae9bb]

2014-11-21  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/commands.c:
	lmtp: Added TLS security information to Received: header when
	STARTTLS was used.
	[1d811ffd1832]

2014-11-20  Timo Sirainen  <tss@iki.fi>

	* src/stats/client-export.c:
	stats: Removed extra TAB from global stats exporting.
	[5de5be00b369]

	* src/lib-index/mail-transaction-log-file.c, src/lib-index/mail-
	transaction-log.c:
	lib-index: If transaction log is unexpectedly recreated while it was
	locked, log a nice error. Instead of just assert-crashing.
	[df1d0c0e7ae2]

	* src/auth/auth-worker-server.c:
	auth: Increase timeout for multi-line auth-worker replies to 30
	minutes. This should help with running long-running doveadm -A
	commands.
	[c3736d065d54]

2014-11-19  Timo Sirainen  <tss@iki.fi>

	* 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-sync-parse.c, src/lib-
	storage/index/mbox/mbox-sync-private.h, src/lib-storage/index/mbox
	/mbox-sync-rewrite.c, src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Added more (and earlier) detection for errors in mbox
	istreams.
	[80ed82a93c1a]

	* src/lib-storage/index/mbox/istream-raw-mbox.c:
	mbox: istream_raw_mbox_seek() needs to reset all corruption errors.
	We now reset all errors, but it doesn't really matter.
	[31262a892ba7]

2014-11-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api.h:
	lib-fs: Added FS_PROPERTY_ASYNC.
	[8973329d1ceb]

2014-11-15  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/Makefile.am, src/lib/base32.c, src/lib/base32.h, src/lib
	/test-base32.c, src/lib/test-lib.c, src/lib/test-lib.h:
	Added support for base32 encode/decode.
	[1663b76430e1]

	* src/lib-mail/Makefile.am, src/lib-mail/ostream-dot.c, src/lib-mail
	/ostream-dot.h, src/lib-mail/test-ostream-dot.c:
	Implemented dot output stream. This outputs data in the dot-escaped
	format needed for the SMTP data command. The sequence CRLF.CRLF is
	sent upon closing the stream.
	[2866a692ec47]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Removed connection code that is already in
	src/lib/connection.c.
	[8eaaff8e2c63]

	* src/lib/connection.c:
	lib: connection: Now uses io_add_istream() instead of io_add().
	[7ef360d3fb09]

	* dovecot-config.in.in, src/imap/Makefile.am, src/imap/cmd-
	getmetadata.c, src/imap/cmd-setmetadata.c, src/imap/imap-metadata.c,
	src/imap/imap-metadata.h, src/lib-imap-storage/Makefile.am, src/lib-
	imap-storage/imap-metadata.c, src/lib-imap-storage/imap-metadata.h:
	lib-imap-storage: Created new METADATA API.
	[a350812e07bf]

2014-11-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api.c, src/lib-fs/fs-api.h:
	lib-fs: Added fs_lookup_metadata() wrapper to fs_get_metadata()
	[372de41933c0]

	* src/lib-master/master-service-ssl.c:
	lib-master: Don't even attempt to initialize SSL context if ssl=no
	[ef8b7e44e96c]

	* src/lib-ssl-iostream/iostream-openssl.c:
	lib-ssl-iostream: Close the plain iostreams when ssl-iostream is
	destroyed.
	[2d87ec863b76]

2014-11-15  Phil Carmody  <phil@dovecot.fi>

	* src/lib/array.h, src/lib/hash.h:
	lib: array/hash - enable typof checks for more compilers We have a
	HAVE_TYPEOF macro from autoconf, we may as well make use of it.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[77638cc62ca8]

	* src/lib/array.h, src/lib/hash.h:
	lib: array/hash - protect macro parameters If a pointer parameter p
	is ``ptr + offset'', then sizeof(*p) becomes sizeof(*ptr + offset),
	which isn't what was wanted. sizeof(*(p)) is the safe expression to
	use instead. Ditto for just ``*data'' in array.h.

	The macros in hash.h which have been changed have been reindented
	for better readability and consistency.

	The bracketting of elem in (elem)++ in both of the array_foreach*
	macros isn't actually useful, as elem participates in token-pasting
	elsewhere. However, the two macros have been made more similar to
	each other for better parallelism.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[922ac3245e17]

2014-11-14  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-namespace.c, src/lib-storage/mail-storage-settings.c,
	src/lib-storage/mail-storage-settings.h:
	imap: namespace { order } parameter now specifies the order returned
	in NAMESPACE reply. This is relevant only if there are multiple
	visible namespaces with the same type. The default order depends
	primarily on the length of the prefix because of internal sorting
	(the order of equal length prefixes can't really be relied on).
	[19b9ecfffb39]

	* src/imap/imap-commands-util.c, src/imap/imap-commands-util.h:
	imap: Added client_disconnect_if_inconsistent() to remove code
	duplication. Based on patch by Stephan Bosch
	[0f81d0ea3a48]

2014-11-13  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-server.c:
	doveadm: If passdb lookup returns port, use it to override the
	doveadm_port setting.
	[2fff557c9837]

2014-11-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-metawrap.c:
	lib-fs: fs-metawrap now supports adding more metadata fields while
	file is being saved. This potentially adds yet another temporary
	file write though.
	[3eba1442493d]

	* src/lib/iostream-temp.c, src/lib/iostream-temp.h:
	lib: Added iostream_temp_create_named()
	[4e10ca59e907]

2014-11-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-cache-fields.c:
	lib-index: Make sure dovecot.index.cache parsing doesn't go to
	infinite loop. Although we guarantee this only for files generated
	with Dovecot v2.2+ because it's too much trouble to check for older
	versions.
	[8565c72f73ec]

	* src/lib-storage/mail-namespace.c:
	lib-storage: If storage creation fails, destroy all the already
	created namespaces/storages.
	[fab74a2b7468]

	* src/lib-storage/mail-namespace.c:
	lib-storage: Fixed crash if mail_namespaces_init_add() failed due to
	invalid settings. Normally the invalid settings were caught by
	config process already.
	[02f705783387]

	* src/lib/ostream.c:
	lib: ostream.stream_errno is now exactly the same as
	last_failed_errno. There's a lot of code that checks only for
	stream_errno instead of last_failed_errno at the flush time where
	the stream_errno might have already been cleared.

	I'm not sure why these were separated in the first place. I don't
	think there are any stream errors which just correctly go away by
	retrying the operation. Perhaps some code could have attempted
	seeking and try to handle the ESPIPE error, but that kind of code
	paths are rare and they could clear the errors themselves if needed.
	[4d8a52f5839a]

	* src/lib/ostream-file.c:
	lib: ostream-file checks "sendfile() not supported" a bit better.
	There are other reasons why stream_errno=EINVAL could have been set,
	at least in theory.
	[24d2d52d5355]

	* src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail-
	user.h:
	lib-storage: Added "creator" for mail_user. This allows fixing stats
	plugin to update stats also for shared mailboxes. That's a bit
	complicated change though, so I'm not sure how soon it'll happen.
	But at least this change makes it possible more easily later on.
	Might have other uses too.
	[ba74ec089370]

	* src/lib/istream.c:
	lib: Never implicitly clear istream's stream_errno. I'm not really
	sure why these were added in the first place. At some point the
	stream_errno was cleared in more places, such as just before
	reading, but those were also removed already. I don't see any
	benefit for these, just potential problems.
	[e3b52d11d038]

	* src/lib-mail/message-search.c:
	lib-mail: message_search_msg() shouldn't clear istream's
	stream_errno. If the input stream failed, retrying the operation
	without cached message_parts is unlikely to help. This also loses
	the original error message.
	[dc593d4dbeb3]

	* src/doveadm/dsync/dsync-mailbox-export.c:
	dsync: Set MAILBOX_TRANSACTION_FLAG_SYNC also for exporter. This
	doesn't really do much because exporter shouldn't be writing
	anything, but it allows plugins to find out if transactions is
	coming from dsync.
	[8456ebd4fa80]

	* 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,
	src/lmtp/lmtp-proxy.h:
	lmtp: Added support for DSN ORCPT parameter. If the parameter is
	specified, it's used as the original recipient address in Sieve. The
	ORCPT parameter is also proxied to destination LMTP server if used
	(without checking if it supports it). We don't currently advertise
	DSN extension, so this feature won't be enabled automatically.
	[3db5fbb216d3]

	* src/plugins/imap-stats/imap-stats-plugin.c:
	imap-stats: Fixed truncation of command args.
	[6c69fe41d553]

	* src/plugins/imap-stats/imap-stats-plugin.c, src/plugins/stats/stats-
	connection.c, src/plugins/stats/stats-plugin.c, src/plugins/stats
	/stats-plugin.h, src/stats/client-export.c, src/stats/mail-
	session.c, src/stats/mail-stats.h:
	stats: Use the same session ID string for stats tracking as
	everywhere else. Generate a new ID only if there is no session ID
	assigned.
	[0694bfec140a]

	* src/ssl-params/Makefile.am:
	ssl-params: Removed duplicate lib-ssl-iostream.la linking
	[f348e669546c]

	* src/stats/mail-session.c, src/stats/mail-stats.h:
	stats: Use the new str-table API to reduce memory usage for service
	strings. There are only a couple of services, while there can be a
	lot of sessions.
	[688da3675901]

	* src/lib/Makefile.am, src/lib/str-table.c, src/lib/str-table.h,
	src/lib/test-lib.c, src/lib/test-lib.h, src/lib/test-str-table.c:
	lib: Added str-table API for keeping reference counted strings in a
	hash table.
	[4c956747c36f]

	* src/stats/client-export.c, src/stats/mail-domain.c, src/stats/mail-
	stats.c, src/stats/mail-stats.h, src/stats/main.c:
	stats: Added support for "global" stats type.
	[9c2bcafcf121]

2014-11-12  Timo Sirainen  <tss@iki.fi>

	* 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/doveadm-connection.c,
	src/director/login-connection.c, src/director/mail-host.c,
	src/director/mail-host.h, src/director/main.c, src/doveadm/doveadm-
	director.c:
	director: Added support for backend cluster "tags". This allows
	using a single director ring for multiple backend clusters. By
	default everything has an empty tag. A passdb lookup can return
	"director_tag" field containing the wanted tag name. If there aren't
	any backend servers with the wanted tag, it's treated the same as if
	there aren't any backend servers available (= wait for 30 secs for a
	backend and then return temporary failure).

	Tags can be added to configuration by adding @tag suffix to
	IPs/hosts. For example:

	director_mail_servers = 10.0.0.100-10.0.0.110@name1 10.0.0.120@name2

	"doveadm director add" can also add tags either with @tag suffix or
	with -t parameter. "doveadm director status user@domain" requires
	giving the user's correct tag with -t parameter or the results won't
	be correct (empty tag's results are shown). Tags can't currently be
	changed for an existing host without removing it first.
	[a7e830b9b967]

	* src/director/main.c:
	director: Don't restart request timeout when director state changes.
	If the state keeps changing all the time we'll never return timeouts
	for the requests.
	[26679856fbd5]

	* src/director/director-connection.c, 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/mail-host.c, src/director/mail-
	host.h:
	director: Added director_consistent_hashing setting. This should
	have been the default since the beginning. I didn't thik it was
	worth the trouble originally because in theory it shouldn't matter
	much if users jump between multiple backends. But this makes caching
	behavior worse, especially for systems which are using local cache
	files.
	[b9df3d654710]

	* src/director/director.c:
	director: When logging a warning about ring being synced again, log
	how many seconds it took
	[389f084b3d2a]

	* src/director/director-connection.c:
	director: Always log a message when director handshake finishes.
	[91c525000811]

	* src/director/director-connection.c, src/director/director-
	connection.h, src/director/doveadm-connection.c, src/doveadm
	/doveadm-director.c:
	doveadm director ring status shows now more information
	[ade6dcace5cd]

	* src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Show more information in process title. Most importantly show
	the username while messages are being delivered.
	[aca0b7142046]

	* src/doveadm/Makefile.am, src/doveadm/client-connection.c,
	src/doveadm/main.c:
	doveadm: Support running non-mail commands via doveadm server. There
	are still some commands that print their output via printf though,
	so they need to be fixed separately.
	[a4fbe94952ea]

	* src/doveadm/Makefile.am, src/doveadm/doveadm-cmd.c, src/doveadm
	/doveadm-cmd.h, src/doveadm/doveadm.c, src/doveadm/doveadm.h:
	doveadm: Moved commands related code to doveadm-cmd.[ch] Commands
	are already split for command line-only commands and commands that
	can be run via doveadm-server also.
	[c54b6bbf215a]

	* src/doveadm/doveadm-who.c:
	doveadm who: If parameters are invalid, print help text for who
	command instead of the whole doveadm usage.
	[e4a3e8554663]

	* src/doveadm/client-connection.c, src/doveadm/doveadm.c:
	doveadm: Code cleanups to prepare server code for non-mail commands.
	[b8a7fec1beeb]

2014-11-11  Timo Sirainen  <tss@iki.fi>

	* src/lib/file-lock.c:
	lib: Compiler warning fix in 32bit systems to previous change
	[062230bdbc4d]

	* src/lib/file-lock.c:
	lib: file_wait/try_lock() treats EINTR differently now for timeouts
	and for actual signals.
	[4cc4d7b03b3b]

2014-10-31  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index.c:
	lib-storage: Mailbox list index now detects duplicate mailbox names.
	With LAYOUT=index the duplicates are renamed.
	[e5cf0209bc9e]

2014-11-05  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm.c:
	doveadm: Removed duplicate subcommands from list of commands. For
	example don't show "mailbox ..|metadata|metadata|metadata|.."
	[8fe127697587]

2014-11-04  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-getmetadata.c:
	imap: If GETMETADATA with wildcards can't open some mailbox, don't
	assert-crash. Just send an untagged NO for the mailbox.
	[46b1b81ad90d]

2014-10-31  Timo Sirainen  <tss@iki.fi>

	* src/ssl-params/Makefile.am, src/ssl-params/ssl-params-openssl.c, src
	/ssl-params/ssl-params.c, src/ssl-params/ssl-params.h:
	ssl-params: Use lib-ssl-iostream's ssl_iostream_generate_params()
	instead of OpenSSL directly
	[8b3ae8a07f31]

	* src/lib-ssl-iostream/iostream-openssl-params.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 dh_length parameter to
	ssl_iostream_generate_params() This is an API change, but nobody was
	actually using this function.
	[f7ebc677fdb9]

	* src/lib-ssl-iostream/iostream-openssl-context.c, src/lib-ssl-
	iostream/iostream-openssl-params.c, src/lib-ssl-iostream/iostream-
	openssl.h:
	lib-ssl-iostream: Support non-1024bit DH parameters in ssl-
	parameters.dat.
	[6efd7ab25b71]

2014-10-30  Timo Sirainen  <tss@iki.fi>

	* src/lib-ssl-iostream/iostream-ssl.c:
	lib-ssl-iostream: Destroy SSL module later in the atexit-callbacks.
	[267bca7a62fb]

	* src/lib/lib.c, src/lib/lib.h:
	lib: Added lib_atexit_priority()
	[54eb3436c83b]

	* src/imap-login/client.c, src/lib-master/master-auth.h:
	*-login: Also increase MASTER_AUTH_MAX_DATA_SIZE and add a check to
	make sure it's large enough.
	[53613f102450]

	* src/imap-login/client.c, src/login-common/client-common.h,
	src/pop3-login/client.c:
	*-login: And actually make the previous changes work.
	[0a5bd3b09ca5]

2014-10-29  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/client.c:
	imap-login: Added "x-session-ext-id" parameter for ID command. It's
	exactly the same as "x-session-id", but this one can be safely used
	by external software without having to worry about causing error
	messages in older versions about too long session-id.
	[865456b37bc2]

	* src/lib-master/master-login.c, src/lib-master/master-login.h:
	lib-master: Removed fixed length limit for session-id.
	[fbc969e1543b]

	* src/lib/connection.c:
	lib: connection_switch_ioloop() should switch also input stream's
	ioloop.
	[f21d7614ac0d]

	* src/lmtp/Makefile.am, src/lmtp/client.c, src/lmtp/client.h,
	src/lmtp/commands.c, src/lmtp/commands.h, src/lmtp/main.c:
	lmtp: Added support for STARTTLS command.
	[297192cfbd37]

2014-10-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-connection.c:
	lib-http: Make sure we don't access already freed client connection
	in payload-destroyed callback.
	[0393f550fd82]

	* src/lib/ioloop.c:
	lib: io_remove() should finish closing the io before unreferencing
	its istream. This is because the istream unreferencing may close the
	fd.
	[1632ae08c986]

2014-10-28  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-queue.c:
	lib-http: client: Fixed assertion failure in
	http_client_queue_fail(). Don't explicitly clear the request array
	after looping through all requests, since new requests may be added
	during the loop, not only removed.
	[d92214db89ac]

2014-10-27  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream-timeout.c:
	lib: istream-timeout logs how long the stream was open if parent
	read fails with ECONNRESET/EPIPE.
	[aa5dde56424f]

	* src/lib-http/http-transfer-chunked.c:
	lib-http: If there's an error reading chunked http stream, set the
	error to the istream. Previously the error string was set, but it
	was never read by anything.
	[f08b79e8d22e]

2014-10-28  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-dsync.c:
	dsync: Fixed notifying replicator (-U parameter) if it didn't answer
	instantly.
	[8a91b47d5a46]

2014-10-27  Timo Sirainen  <tss@iki.fi>

	* src/lib/ostream.c:
	lib: Make sure ostream.last_failed_errno is always set when
	stream_errno is set.
	[39e2455a5e2d]

	* src/lib/ostream.c:
	lib: o_stream_uncork() could also cause write errors. Make sure
	last_failed_errno is updated. This caused some write errors not to
	be detected, such as in code like:

	o_stream_cork() o_stream_nsend(..) o_stream_uncork() if
	(o_stream_nfinish() < 0) { // error not detected because
	last_failed_errno was 0 }
	[3402a3d19f40]

2014-10-27  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-index/mail-index-sync-update.c:
	lib-index: Remove assert that can never happen.
	[56dca338f46b]

2014-10-27  Timo Sirainen  <tss@iki.fi>

	* src/master/service-log.c:
	master: Don't send broken BYE notifications to log process.
	[03889e81929e]

	* src/log/log-connection.c:
	log: Don't crash if master sends a negative service_fd number.
	[c77d602d4be4]

	* src/master/service-process.c:
	master: Added an assert to catch duplicate fork() PIDs. This really
	shouldn't be happening, but apparently it does sometimes. This
	should make it easier to debug.
	[f97ca2bde414]

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: Recent change broke deleting mailboxes with
	LAYOUT=index
	[78f24e681302]

2014-10-26  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-server-connection.c:
	lib-http: server: Fixed a hang occurring sometimes when response is
	sent for a request that had payload. Forgot to always trigger
	sending response when processing request payload finishes.
	[c7629d149d7a]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Removed asssert in
	http_client_connection_is_ready(). There is no reason why the input
	stream couldn't be full.
	[69af57dcd274]

	* src/lib-http/http-client-connection.c:
	lib-http: client: The asserts recently added to
	http_connection_check_idle() are bogus.
	[583215301ba7]

2014-10-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-posix.c:
	fs-posix: fs_copy() no longer fails if destination exists and
	FS_OPEN_MODE_REPLACE is used
	[d50151444c9a]

	* src/lib-http/http-server-response.c:
	lib-http server: If i/ostream fails, don't return wrong "stream
	input size changed" error. Also handle the real case in a bit nicer
	way.
	[5cd30ecff35d]

2014-10-25  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/global-options-formatter.inc, doc/man/global-options.inc:
	man: Global options includes: Added back the newline at end of
	files.

	They were accidentally removed in the previous commit.
	[e5c58f244c5b]

	* doc/man/global-options-formatter.inc, doc/man/global-options.inc:
	man: Global options includes: Added description of `-o
	setting=value'.
	[e9607c048f1d]

2014-10-26  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream.c:
	lib: If i_stream_seek() works by reading forward and read() fails,
	don't override the error message.
	[503b4b1b7aa1]

	* src/master/service-monitor.c:
	master: Don't start new processes while shutting down.
	[d35288713625]

2014-10-25  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Added debug logging for attribute importing
	[4155055df7a9]

	* .hgsigs:
	Added signature for changeset e8b793f2c409
	[096706c5b616]

	* .hgtags:
	Added tag 2.2.15 for changeset e8b793f2c409
	[7f031e43def3]

	* NEWS, configure.ac:
	Released v2.2.15.
	[e8b793f2c409] [2.2.15]

	* src/lmtp/commands.c:
	lmtp: Use mail_log_prefix while mails are being delivered.
	[e861c21875cc]

	* src/lmtp/commands.c:
	lmtp: Added missing session_id to mail_user
	[380b723f37ef]

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: LAYOUT=index now first creates the backend mailbox and
	only then adds it to list index. This avoids any race conditions
	with mailbox creation and opening it.
	[004b9a36c92f]

	* src/lib-storage/list/mailbox-list-index-status.c:
	lib-storage: Don't update mailbox list index status fields when
	deleting a mailbox.
	[2b964521f5ab]

	* src/lib-storage/mail-storage.c:
	lib-storage: When mailbox is deleted, reset its cached paths. If
	mailbox is still later on recreated, the paths may have changed.
	[5e4a7fd9782c]

	* src/lib-storage/index/index-storage.c:
	lib-storage: Fully unreference indexes when deleting mailboxes.
	[5c15c7f57253]

	* src/lib-index/mail-index-sync-update.c:
	lib-index: Don't assert-crash if expunge event handling finds that
	everything is already expunged.
	[1886e0616ab5]

	* src/plugins/quota/quota-fs.h:
	quota: Fixed including the right system quota.h with NetBSD Patch by
	Manuel Bouyer.

	I guess the quota.h could be renamed to something at some point..
	[eb3ab11bcd86]

	* src/plugins/quota/quota-fs.c:
	quota: Fixed NetBSD quota I guess it's because quota is refreshed
	only at quota_open() time. Based on patch by Manuel Bouyer
	[221f3f59901f]

	* src/auth/auth-master-connection.c:
	auth: Some unsuccessful passdb lookups weren't returned as failures
	to passdb lookups. These lookups were only being done internally, so
	it usually didn't matter. Also this only affected things like
	allow_nets checking and some non-common passdb {?result_* }
	settings.
	[3a8b417b0b80]

	* src/auth/auth-request.c:
	auth: allow_nets=local matches now connections without any IP
	address
	[d1aefed4589b]

	* src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-
	sync.c:
	virtual plugin: Fixed assert-crash when backend mailbox was auto-
	closed while it had pending expunges.
	[37a3c6c001b7]

2014-10-25  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c:
	lib-http: client: Handle situation in which server sends response
	before request payload is fully sent.
	[4dc3c0cacd25]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h:
	lib-http: client: Fixed handling of requests aborted while still
	sending payload to server.
	[cffa8349f167]

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	request.c:
	lib-http: client: Fixed conflict between request abort and request
	delayed error.
	[84b5e075c62c]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Fixed cleanup of remaining waiting requests at
	connection destroy. Forgot to dereference the requests for the
	reference that the connection itself holds for each waiting request.
	[d913fe3a926a]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Aborted requests were not counted as finished in
	the connection's response receive loop. This caused a hang.
	[9c6318786455]

2014-10-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api.c:
	lib-fs: Improved error logging
	[d4570546b51c]

	* src/director/notify-connection.c, src/lib-imap-storage/imap-
	msgpart.c, src/lib-settings/settings-parser.c, src/lib-storage/index
	/index-search.c, src/lib-storage/index/mbox/mbox-save.c, src/lib-
	storage/mail-copy.c, src/lib-storage/mail-storage.c, src/plugins/fts
	/fts-indexer.c, src/plugins/fts/fts-parser-script.c:
	Use i_stream_get_error() wherever possible instead of %m
	[7681fcd1ba43]

	* src/lib-storage/mail-storage.c, src/lib-storage/mail.c:
	lib-storage: Added data stack frames for most calls. So neither the
	callers nor the implementations need to worry about those so much.
	[ce4ec584e756]

	* src/lib/istream-seekable.c:
	lib: Added "istream-seekable: " error message prefixes.
	[277dd641c533]

	* src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync
	/dsync-mailbox-tree.c, src/doveadm/dsync/dsync-mailbox-tree.h:
	dsync: Added some debugging output for mailbox trees.
	[3dda0b301c20]

	* src/doveadm/dsync/dsync-brain-mails.c, src/doveadm/dsync/dsync-
	brain.c:
	dsync: Removed in/out state from debugging. This was initially added
	for debugging hangs, but those haven't existed for a long time now.
	Maybe we should eventually make debug categories configurable, but
	for now nobody wants to see these messages.
	[2c8d458f120f]

	* src/login-common/login-proxy.c:
	login proxy: If proxy_timeout is set, try to reconnect until the
	timeout is reached. This allows quickly restarting/upgrading backend
	servers without returning login failures.
	[52ad54b23e24]

2014-10-23  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/Makefile.am, src/doveadm/doveadm-mail-mailbox-
	metadata.c, src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h:
	doveadm: Added metadata set/unset/get/list commands.
	[4fe5b4e121a4]

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Use doveadm_print_istream()
	[89cbc0e91a77]

	* src/doveadm/doveadm-print.c, src/doveadm/doveadm-print.h:
	doveadm: Added doveadm_print_istream() for easily printing istreams.
	[5d3898cacf8b]

2014-10-23  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h:
	lib-http: client: Fixed proxied client connect timeout. Timeout
	didn't cause requests to be aborted with error.
	[43728039836c]

	* 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: client: Implemented maximum for connection backoff time.
	Without a maximum, the backoff time grows exponentially to enormous
	values, because it isn't reset until the connection succeeds. This
	causes recovery from connection failures to become very slow.
	Current maximum is one minute.
	[44fd142fac1e]

	* src/lib-http/http-client-queue.c:
	lib-http: client: Assertion in http_client_queue_fail() was wrong.
	It is not guaranteed that all queue lists are empty, because new
	requests can be submitted from the callbacks. Changed this into a
	proper invariant check, which asserts tbat the number of requests in
	sub-queues add up to the total number in the main queue.
	[e479bce0633b]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Clear req->conn when request is finished. This
	prevents a spurious assert failure.
	[bce536c20d32]

2014-10-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: Detect broken log_file_tail_offset updates without
	assert-crashing.
	[575dcd85b4be]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Fixed assert-crash / memory leak on error handling path.
	[d92c1c666bc3]

	* src/lib-storage/list/mailbox-list-index.c:
	lib-storage: Make sure mailbox names are valid UTF-8 with
	LAYOUT=index
	[b534125f8baf]

2014-10-22  Timo Sirainen  <tss@iki.fi>

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Use low priority for mail copying operations.
	[c373aa97644c]

	* src/lib/Makefile.am, src/lib/test-guid.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	lib: Added unit tests for guid_128_*()
	[07c709075598]

	* src/lib/guid.h:
	lib: Added guid_128_copy()
	[40cca8d452f5]

2014-10-21  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-peer.c:
	lib-http: client: If peer is unlinked from queue and no other links
	remain, close any pending connections. Those pending connections
	would no longer serve any purpose.
	[df5be9847b13]

2014-10-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: LAYOUT=index no longer keeps list index locked while
	creating mailbox. Mailbox opening can be slow and complicated and
	could even try to lock the list index again. So it's a bit more racy
	now, but all mailbox formats can already handle races with mailbox
	creation.
	[0de24ac413c4]

	* src/lib-storage/list/mailbox-list-index-backend.c, src/lib-
	storage/list/mailbox-list-index-sync.c, src/lib-storage/list
	/mailbox-list-index-sync.h:
	lib-storage: Partially reverted previous change. Added
	mailbox_list_index_sync_delete() instead.
	[d9f49ebe5e78]

	* src/lib-storage/list/mailbox-list-index-backend.c, src/lib-
	storage/list/mailbox-list-index-sync.c, src/lib-storage/list
	/mailbox-list-index-sync.h:
	lib-storage: Added mailbox_list_index_delete_entry()
	[c92472804eb8]

	* src/lib/test-buffer.c:
	lib: test-buffer was randomly crashing with SIGFPE
	[a9503b723f8c]

2014-10-20  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	request.c, src/lib-http/http-client.c:
	lib-http: client: Created list of all submitted requests. Currently
	only needed to improve debugging of hanging requests.
	[3a1d89b45c12]

	* src/lib-http/http-client-peer.c:
	lib-http: client: Fixed behavior of connection backoff timer when
	multiple IPs are returned for hostname. Peer backoff data was lost
	because peer was destroyed quickly. Now the peer object is retained
	during the backoff period, so that new connection attempts adhere to
	the backoff period.
	[1ddc6c86de78]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Connection erroneously indicated that it was ready
	while SSL handshake was not yet completed.
	[7d3325713356]

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	queue.c:
	lib-http: client: Fixed behavior for max_connect_attempts with fewer
	IPs than attempts. This was broken by earlier 'fix'.
	[c9ea647cba87]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h:
	lib-http: client: Fixed handling of connection timeouts. A timeout
	caused an assert failure, because the connection status was altered
	before the peer_connection_failure handler was called.
	[c5f81685571f]

2014-10-19  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-altmove.1.in, doc/man/doveadm-auth.1.in, doc/man
	/doveadm-batch.1.in, doc/man/doveadm-deduplicate.1.in, doc/man
	/doveadm-expunge.1.in, doc/man/doveadm-flags.1.in, doc/man/doveadm-
	mailbox.1.in, doc/man/doveadm-move.1.in, doc/man/doveadm-
	search.1.in, doc/man/doveadm-sync.1.in, doc/man/doveconf.1.in:
	man: Reworked some formatting requests.

	On some systems, for example SunOS 5.10, the example commands were
	cut off.
	[dcfb0baba621]

2014-10-19  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-client.c, src/lmtp/client.c, src/pop3/pop3-client.c:
	imap, pop3, lmtp: If client gets disconnected due to iostream error,
	log the full error.
	[086c70441f26]

2014-10-18  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: If istream reading fails, log a better error message.
	[cd5dba84d8de]

	* src/lib-storage/index/istream-mail.c:
	lib-storage: When logging about corrupted cached message size, log
	the filename also.
	[b0bc1fac94a3]

	* src/lib-storage/index/istream-mail.c:
	lib-storage: If we detect a broken cached message size, log more
	information about it. Also try to include one of the cached headers
	in the message, which could allow detecting if the cached data
	pointed to a completely different message.
	[babddd4c9ca9]

2014-10-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/duplicate.c:
	lib-lda: And fixed the earlier commit.
	[6142d6b2ae98]

	* src/lib-lda/duplicate.c:
	lib-lda: duplicate_flush() now unlocks the duplicate database even
	if nothing had changed.
	[f1deba7bc3e3]

2014-10-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: LAYOUT=index doesn't reserve '~' as internal separator
	anymore. The index doesn't reserve any character as hierarchy
	separator, so the internal separator can change at any time. Use the
	namespace's configured hierarchy separator as the internal separator
	to avoid reserving any characters. If namespace separator isn't
	configured, fallback to the original '~' so this change shouldn't
	break anything.
	[30b84781a363]

	* src/config/doveconf.c:
	doveconf: Changed _doveconf_comment symbol suffix to
	_doveconf_banner That describes its behavior better.
	[470ec616ba74]

2014-10-15  Timo Sirainen  <tss@iki.fi>

	* src/config/doveconf.c:
	doveconf: Allow settings plugins to print comments to the output
	header. If plugin contains <plugin name>_doveconf_comment string,
	it's written as part of the doveconf output. The idea mainly being
	that the major plugins (such as Pigeonhole) could print their
	version number there to avoid having to ask for it separately.
	[e9a05136fff2]

2014-10-14  Timo Sirainen  <tss@iki.fi>

	* src/plugins/imap-zlib/imap-zlib-plugin.c:
	imap-zlib: Removed check for disallowing COMPRESS to be used with
	TLS compression. Clients shouldn't be doing this in any case, and
	this check doesn't work properly with proxies.

	We could solve the check properly for Dovecot proxies by having them
	send the TLS compression state to backends, but it would still leave
	non-Dovecot proxies broken. Although we could just not advertise
	COMPRESS=DEFLATE extension if TLS compression is enabled and non-
	Dovecot proxies at least wouldn't cause failures. Still, overall
	seems like a lot of work for such a small and probably unnecessary
	extra check.
	[e3b9cd19c33d]

	* src/lib-ssl-iostream/iostream-openssl-common.c:
	lib-ssl-iostream: Allow commas also in ssl_protocols setting.
	[9ce9e00cc997]

	* src/lib-storage/list/mailbox-list-index.h:
	Compiling fix for some systems.
	[93a3335ec0d5]

	* src/auth/auth-request.c:
	auth: Minor fix to previous commit.
	[544945b6c3a5]

	* src/auth/auth-request.c:
	auth: Check for empty username after doing all the username changes.
	[4dc3f6103c48]

	* .hgsigs:
	Added signature for changeset 6dad1f6e8930
	[b37e57304344]

	* .hgtags:
	Added tag 2.2.14 for changeset 6dad1f6e8930
	[7caa4657a147]

	* NEWS, configure.ac:
	Released v2.2.14.
	[6dad1f6e8930] [2.2.14]

	* 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:
	lib-storage: Added X-REAL-UID search parameter.
	[98b5ccc539b5]

	* src/lib-http/http-client.h:
	Compiler warning fix
	[c8fd499023ef]

	* src/lib/istream.c:
	lib: i_stream_read_next_line() now sets a better error message if
	line is too long.
	[a2c5aabc49a9]

2014-10-13  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-worker-server.c:
	auth: Fix to earlier commit: Don't try to resume already finished
	user iteration.
	[e54bd2e1a767]

	* src/lib-index/mail-index-transaction-export.c:
	lib-index: Automatically grow header size on header updates. This
	fixes assert-crashes when it didn't happen.

	For example an old Maildir index could have had a header size 24.
	Dovecot crashed then when trying to update it, because the new
	header size is 36 and there wasn't an explicit
	mail_index_ext_resize_hdr() call.
	[931ab6f3357b]

	* src/lib/module-dir.c:
	Compile fix for systems without dlopen()
	[ca6f330781e6]

2014-10-12  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-host.c, src/lib-http/http-client-private.h,
	src/lib-http/http-client-request.c, src/lib-http/http-client.c:
	lib-http: client: Moved delayed failed requests from host to client
	object.
	[0086d1e38c7a]

	* src/lib-http/http-client-queue.c:
	lib-http: client: With the recent addition of a connection attempt
	limit, connection failures weren't always handled correctly.
	[b254b7dc717f]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Fixed segfault caused by earlier change.
	[871a5b807ad0]

2014-10-11  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-master-connection.c, src/auth/auth-master-
	connection.h:
	auth: Make sure userdb iteration is destroyed if worker connection
	disconnects.
	[c4e587d1e8ac]

	* src/auth/auth-worker-server.c:
	auth: Userdb iteration optimization. Don't keep re-creating the
	timeout after iterating each user.
	[a36fe1250606]

2014-10-11  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-dns/dns-lookup.c:
	lib-dns: The dns_lookup() call caused a crash upon a connect error,
	because dns_client_disconnect() can indirectly call itself
	recursively. Solved by dropping the list of lookups from the client
	object before the lookups are destroyed.
	[d15da5f1731e]

2014-10-10  Timo Sirainen  <tss@iki.fi>

	* src/auth/userdb-blocking.c:
	auth: If userdb iteration client disconnects early, make sure we
	don't get stuck.
	[99dc3e3a3f75]

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Don't limit uidlist line lengths to 4096 bytes. Although
	this always indicates corruption, the current code doesn't handle
	that very nicely. One fix would be to just ignore such long lines,
	but this is easier to implement..
	[4a401e9853ee]

2014-10-10  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-request.c:
	lib-http: client: Fixed assert crash occurring when DNS lookup fails
	immediately during request submission. In that situation, the
	request was not dropped from the queue immediately, triggering the
	assert crash.
	[6c341dcec32a]

2014-10-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/smtp-client.c:
	lib-lda: Compiler warning fix
	[86b1860c8deb]

	* src/lib-storage/index/mbox/mbox-lock.c:
	mbox: Removed obsolete code that also wasn't compiling because of
	previous commit.
	[8c1a2f5b0a67]

2014-10-09  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-acl.1.in:
	man: doveadm-acl.1: Corrected description of default output
	formatter.
	[fa0726178312]

2014-10-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-private.h, src/lib-index/mail-index.c:
	lib-index: Removed dovecot.index locking related code, which is no
	longer used.
	[71c00e501179]

	* src/lib/ostream.h:
	lib: Updated comment to o_stream_send_istream()
	[af382aaad0e8]

	* src/lib/ostream.c:
	lib: Fixed assert-crash in o_stream_send_istream() if input stream
	was the one that failed.
	[c36cfd735d60]

	* src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h, src
	/lib-storage/index/maildir/maildir-sync-index.c:
	lib-index: Added mail_index_sync_no_warning() to prevent "long
	transaction lock" warnings. Use it with Maildir to prevent double-
	warning.
	[193c82411d73]

	* src/lib-index/mail-index-fsck.c, src/lib-index/mail-index-sync.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/mail-
	transaction-log.h, src/lib-index/test-mail-transaction-log-append.c:
	lib-index: Include reason string in warnings about keeping
	transaction log locked for too long.
	[fce66ec2ac1c]

	* src/lib-index/mail-transaction-log-file.c, src/lib-index/mail-
	transaction-log.c:
	lib-index: Replaced some automatic transaction log unlocks with
	asserts. Some earlier Dovecot versions were read-locking transaction
	logs and this was useful there. But now we only do exclusive locking
	for the log head, so it's an error not to explicitly unlock the
	files.
	[623a9f46c747]

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: If locking transaction log times out, show the PID which
	has it locked.
	[ec1fd3dc0a74]

	* src/lib-storage/index/maildir/maildir-sync.h:
	maildir: Use MAIL_TRANSACTION_LOG_LOCK_WARN_SECS as threshold for
	logging a "long sync" warning. This is because the index syncing
	keeps the log locked, and other processes trying to lock the log
	will start logging warnings as well.
	[1c3dcade6f02]

	* src/lib-index/mail-index.h, src/lib-index/mail-transaction-log-
	private.h:
	lib-index: Moved MAIL_TRANSACTION_LOG_LOCK_WARN_SECS as part of
	public API.
	[568f817804b3]

	* src/lib/ostream-file.c:
	lib: o_stream_send_istream() shouldn't ignore EINTRs for file
	ostreams. Also added extra asserts to make sure that either we
	return an error or we write everything from input stream to output
	stream. This should make it safe to write to files using just:

	if (o_stream_send_istream(ostream, istream) < 0) { // failed } else
	{ // everything in istream was written to ostream }
	[00115d4930d4]

	* src/lib/ostream.c:
	lib: o_stream_send_istream() should return -1 if there was an error
	reading input stream.
	[5e53b6d55f63]

	* src/lib/file-lock.c, src/lib/file-lock.h:
	lib: Added file_lock_find() to find which process has a file locked.
	[d162eabd72cc]

	* src/lib-storage/mail-storage.h:
	lib-storage: Small comment update
	[0221a504683c]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: If uncached header unfolding fails, panic instead of
	returning error. This really shouldn't be happening. This also makes
	it clear that return value -1 means some kind of I/O error instead
	of corruption.
	[43f17a91c6e5]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: Fixed header parsing when there were multiple same
	header names. For example if a mail had:

	Name1: a Name1: b Name2: c

	If the Name1: was initially added to cache and Name2: not, but later
	on both were attempted to be added to cache, the Name2: lookup would
	have been added with "b" instead of "c" value.
	[0e1a3c909a13]

	* src/lib-lda/smtp-client.c, src/lib-lda/smtp-client.h:
	lib-lda: Added smtp_client_abort()
	[90fbf199ebda]

2014-10-08  Timo Sirainen  <tss@iki.fi>

	* src/lda/main.c, src/lmtp/commands.c:
	lda, lmtp: Use mail_deliver_context.tempfail_error first if it
	exists (instead of storage error).
	[10d11d9c0c98]

	* src/lib/net.c:
	lib: Compiling fix for FreeBSD Patch by Eero H?nninen
	[f0015ab0efb1]

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: LAYOUT=index small code cleanup
	[57aa5f0f9b91]

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: Fixed earlier LAYOUT=index change to refresh index
	before opening a view to it. Fixes an assert-crash.
	[6252183ada83]

2014-10-07  Pascal Volk  <user@localhost.localdomain.org>

	* .hgignore, doc/man/Makefile.am, doc/man/doveadm-proxy.1.in,
	doc/man/doveadm.1.in:
	man: Added doveadm-proxy.1.
	[71b010a63bae]

2014-10-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-backend.c, src/lib-
	storage/list/mailbox-list-index.c, src/lib-storage/list/mailbox-
	list-index.h:
	lib-storage: Fixed some race condition crashes with LAYOUT=index
	[96f79038038f]

	* src/lib-storage/index/index-mail.c:
	lib-storage: Fixed assert-crash when BODYSTRUCTURE parsing fails due
	to broken mail size.
	[2b84c33d5d11]

	* src/lib-mail/message-parser.c:
	lib-mail: Added asserts
	[64e59ebcfe25]

	* src/lib-index/mail-cache.c:
	lib-index: Fixed assert-crash in some cache locking race conditions.
	If mail_index_map() is being called, we can't refresh the index or
	it'll crash. It wouldn't help anyway, since the index was just
	refreshed.
	[51233ae4af26]

2014-10-07  Phil Carmody  <phil@dovecot.fi>

	* src/lib-fs/fs-api-private.h:
	lib-fs: struct fs_file's write_pending is a flag Signed-off-by: Phil
	Carmody <phil@dovecot.fi>
	[66842b55d2de]

2014-10-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-cache-compress.c, src/lib-index/mail-cache-
	transaction.c, src/lib-index/mail-cache.h, src/lib-index/mail-index-
	sync.c, src/lib-storage/index/index-rebuild.c:
	lib-index: Delay unlocking cache compression until changes to
	transaction log are committed. This should fix race condition with
	two processes compressing the file at the same time with same
	file_seq and becoming confused.
	[51f5680d4108]

	* src/lib-index/mail-index-private.h, src/lib-index/mail-index-
	write.c, src/lib-index/mail-index.c:
	lib-index: Added path parameter to mail_index_create_tmp_file() This
	allows using it for creating any kind of a new index file with
	proper file permissions.

	Some of the old code should probably be changed to use this. Maybe
	even move this function to public mail-index.h
	[0a34975b2dcc]

	* src/lib-index/mail-cache-compress.c:
	lib-index: Try to minimize race conditions while compressing cache.
	There are some unavoidable race conditions, but try to keep their
	time window as small as possible.
	[bd55bdba0e75]

	* 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: mail_cache_lock() partial rewrite. require_same_reset_id
	is no longer needed, if it ever was. If we're locking the cache
	file, we always want the latest one. The logic of locking in general
	was somewhat confusing and it probably didn't always successfully
	lock when it should have, because the reset_id happened to match an
	old file.
	[8c84b69e7f69]

	* src/lib-index/mail-cache.c:
	lib-index: Code cleanup - avoid code duplication.
	[a10eea380073]

	* src/lib-index/mail-cache.c, src/lib-index/mail-cache.h, src/lib-
	index/mail-index.c:
	lib-index: Fixed cache file creation race condition. If two
	processes are creating the index files at the same time, don't have
	one of them delete the dovecot.index.cache that the other one just
	created. This means we never should be calling mail_cache_create(),
	so it was removed entirely.
	[6aeb2a7e5303]

	* src/lib-index/mail-cache-private.h, src/lib-index/mail-cache-sync-
	update.c, src/lib-index/mail-cache-transaction.c:
	lib-index: Don't keep cache file locked for as long while syncing
	index. The earlier code was required for updating the cache offsets,
	but this code no longer exists. Now we just need to update the
	record counts in the header, which can be done quickly at the end of
	the sync.
	[d6e08d98a170]

2014-10-06  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-sync.1.in:
	man: Fixed broken syntax in doveadm-sync.1.
	[f5e4566f1e03]

2014-10-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-file.c:
	lib-dict: Fixed race condition in mkdir()ing dict file's parent
	directory.
	[721089f22ae4]

	* src/lib-storage/index/dbox-single/sdbox-file.c:
	sdbox: Fixed race condition when two processes mkdir() the same
	directory
	[3e9fda96a205]

	* src/lib/failures.c:
	Minor code cleanup to previous change. No need to have a data stack
	frame here.
	[1b66c30fd421]

	* src/lib/failures.c, src/lib/failures.h, src/log/log-connection.c:
	log_timestamp setting supports now %{usecs} This is mainly useful
	for debugging.
	[e0f37f309685]

2014-10-05  Pascal Volk  <user@localhost.localdomain.org>

	* .hgignore, doc/man/Makefile.am, doc/man/doveadm-replicator.1.in,
	doc/man/doveadm.1.in:
	man: Added doveadm-replicator.1.
	[da3edfc529bb]

	* doc/man/doveadm.1.in:
	man: Forgot to update doveadm.1 in previous commit (fec91a386bb0).
	[cee8255aca62]

	* .hgignore, doc/man/Makefile.am, doc/man/doveadm-backup.1, doc/man
	/doveadm-sync.1.in, doc/man/dsync.1, doc/man/dsync.1.in:
	man: Reworked dsync.1 and renamed it to doveadm-sync.1.
	[b57fe99a69c0]

2014-10-06  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Debug logging improvements and comment clarifications.
	[bf086c6f6e4a]

	* src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c:
	dsync: Fixed potential crash when deleting mailbox.
	[d2fbe6b6c53e]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	doveadm backup: Don't unnecessarily delete mailbox when handling
	expunges
	[68e5eaecc8b4]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	doveadm backup: Local mailbox was deleted also when there were just
	new messages.
	[124a7fc23706]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	doveadm backup: When deleting a mailbox, log a warning, not just a
	debug message. Because we're also returning temporary failure in any
	case, so there needs to be some kind of a warning/error logged.
	[d7ac3056ed7c]

2014-10-05  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/Makefile.am:
	dsync: Fixed linking with some systems.
	[768073f6fccf]

	* src/doveadm/doveadm-dsync.c:
	doveadm sync/backup: Updated usage string
	[4d07c32012ff]

2014-10-04  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/net.c, src/lib/net.h:
	lib: Added support for connecting UDP sockets.
	[95ac50948e39]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h, src/lib-http/http-client-request.c:
	lib-http: Fixed detecting disconnection when ioloop is running only
	intermittently. This fix only applies to ioloops created and run by
	lib-http itself.
	[77c4b78a4fa2]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	host.c, src/lib-http/http-client-private.h, src/lib-http/http-
	client-queue.c, src/lib-http/http-client-request.c, src/lib-http
	/http-client.c, src/lib-http/http-client.h:
	lib-http: client: Added support for absolute request timeout.
	Requests cannot survive beyond this deadline.
	[4f175c27bea5]

	* src/lib-http/http-client-request.c, src/lib-http/http-client.h:
	lib-http: client: Added support for delaying requests in
	milliseconds.
	[c6431fb17158]

	* src/lib-http/http-client-queue.c:
	lib-http: client queue: Start using new timeval_cmp_margin function
	for delay handling.
	[94ba0150905b]

	* src/lib/ioloop.c:
	lib: Fixed io_loop_move_timeout() to retain the next_run time, so
	that the timeout is not implicitly reset. This problem became with
	timeout_add_absolute(), since resetting an absolute timeout causes
	it to fire immediately (msecs == 0).
	[312dd5c349f5]

	* src/lib/ioloop.c:
	lib: ioloop: Fixed absolute timeout removal. Absolute timeouts fire
	only once, so the timeout should be removed from the priority queue
	once it fires.
	[9ce4d8d394cc]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h:
	lib-http: client: Fixed problem occuring when a nested ioloop was
	run inside a request callback using the same client. If requests in
	the nested ioloop would use the same connection as the one that
	called the callback, the requests would (in the best scenario) all
	be doomed to time out.
	[ecb0ba0ce02f]

2014-10-04  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-posix.c:
	fs-posix: Compile fix for systems without flock()
	[dd25099bd633]

2014-10-03  Timo Sirainen  <tss@iki.fi>

	* src/auth/passdb-static.c, src/doveadm/doveadm-dict.c,
	src/plugins/virtual/virtual-config.c:
	Make static analyzer happier
	[dfef14b27eea]

	* src/lib-lda/smtp-client.c:
	lib-lda: smtp client may have crashed if remote returned a permanent
	error.
	[bc0629daf4d4]

	* .hgsigs:
	Added signature for changeset 34e52cbeb837
	[a7b885c94295]

	* .hgtags:
	Added tag 2.2.14.rc1 for changeset 34e52cbeb837
	[d1c95ddc5936]

	* NEWS, configure.ac:
	Released v2.2.14.rc1.
	[34e52cbeb837] [2.2.14.rc1]

	* doc/example-config/conf.d/10-ssl.conf:
	example-config: Added ssl_options setting.
	[7c77918587bc]

	* src/imap/cmd-getmetadata.c:
	imap: GETMETADATA was returning mailbox name as UTF-8 instead of
	mUTF-7
	[5446d1877c7e]

	* src/lib-fs/fs-posix.c:
	fs-posix: Added prefix parameter that is prefixed to all paths.
	[554b021d6a3f]

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lib-lda
	/smtp-client.c, src/lmtp/lmtp-proxy.c:
	lib-lda, lmtp: Separate internal errors from remote errors. LMTP
	proxy shouldn't log remote errors with error level, because the
	proxy itself didn't have any failure.

	This is an API change, but I'm not aware of any plugins actually
	using the lmtp-client.h directly.
	[f21d82a32ca8]

	* src/master/service-monitor.c:
	master: If log process crashes, restart it immediately. The regular
	service_monitor_listen_start() doesn't work for it, because the log
	fds aren't in the listeners.
	[026cf7ee272c]

2014-10-02  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Debug message fix
	[01ba94a2d4c5]

	* src/lib-storage/mail-user.c:
	lib-storage: Added %{session} to mail_user_var_expand_table()
	[ddde8c6a5b70]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Improved debug logging.
	[c3ef6f19d518]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Added more debug logging.
	[0b4352d6dfdb]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	doveadm backup: Fix to earlier commit - don't try to delete an
	already empty mailbox.
	[8aea6edb29d3]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	doveadm backup: Locally expunged mails weren't always added back.
	[c02918434721]

2014-10-01  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-peer.c, src/lib-http/http-client-private.h:
	lib-http: client: Fixed recovery after connection failure. If a
	parallel already connected connection was active, the queue wasn't
	notified of the failure. Only pending connections should be
	considered in this case and not established ones.
	[548cb71d63da]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	request.c:
	lib-http: client: Fixed aborting request in the middle of sending
	payload. If the request payload is so big that it cannot be sent all
	at once, the caller may at some point abort the request when it is
	still being sent. The bug occurred when the request finally finished
	sending. It erroneously advanced the state to WAITING rather than
	remaining ABORTED, thus 'reviving' the request unexpectedly.
	[adcf35ac5432]

2014-10-01  Timo Sirainen  <tss@iki.fi>

	* src/lib/ioloop.c:
	lib: Fixed earlier timeout_add_absolute() commit. I removed too much
	from Stephan's patch.
	[df53b5ccc2ba]

2014-10-01  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/time-util.c, src/lib/time-util.h:
	lib: Created timeval_cmp_margin(). It's identical to timeval_cmp(),
	except that it ignores tv_usec differences smaller than a specified
	margin.
	[e45dda2d7cd6]

	* src/lib/time-util.h:
	lib: Added support for adding milliseconds to struct timeval time
	values.
	[bad8e61e2e88]

	* src/lib/ioloop-private.h, src/lib/ioloop.c, src/lib/ioloop.h:
	lib: Added support for setting timeouts at absolute time, rather
	than relative to current time.
	[d80395660f27]

2014-09-30  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-queue.c:
	lib-http: client: The http_client_queue_fail() function aborted
	requests in an unsafe manner. Copied queues before freeing the
	requests, because the destroyed requests modify the queue.
	[b7678ce561c1]

	* src/lib-http/http-client-queue.c, src/lib-http/http-client-
	request.c:
	lib-http: client: Fixed crash occurring sometimes when delay timeout
	expired. Forgot to drop destroyed requests from delay queue.
	[3773fec28b4d]

	* src/lib-sasl/dsasl-client.c:
	lib-sasl: Added reference counting to lib-sasl initialization.
	[4c18abbf8b94]

2014-09-29  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream-file.c:
	lib: Improved istream-file's failing read()/pread() error message.
	[18fc72a4a318]

	* src/lib/istream.c:
	lib: If i_stream_default_seek_nonseekable() can't seek, set a more
	readable error message.
	[ee9cebb11e0e]

	* src/lib-lda/smtp-client.c:
	lib-lda: smtp_client_deinit() may have returned NULL error strings.
	[d7c05be052a3]

	* src/lib-http/http-client-connection.c:
	lib-http: Fixed assert-crash when
	http_client_connection_disconnect() is called multiple times.
	[475ff24ac365]

	* 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,
	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:
	dsync: Added DSYNC_BRAIN_FLAG_NO_MAIL_PREFETCH to avoid opening
	mails unnecessarily.
	[d2e1b3f6d13b]

2014-09-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-mail.c:
	lib-storage: Don't assume that we must read the whole message to get
	its virtual size. This is true only with mbox format. All the other
	formats have various metadata available where it's stored.
	[35c3194900b7]

2014-09-25  Timo Sirainen  <tss@iki.fi>

	* src/imap/main.c:
	imap: die-callback didn't set log prefixes correctly for client
	handlers Calling mail_storage_service_io_activate_user()
	unfortunately doesn't set the ioloop context itself, so timeouts
	weren't inheriting it. It seemed a bit difficult to change this, so
	for now I just moved the call to the timeout handler.
	[abc434a32140]

	* src/lib/file-lock.c:
	lib: If file_wait_lock*() fails, try to include the current pid
	holding the lock in error message. This is currently supported via
	fcntl(F_GETLK) and also via Linux /proc/locks.
	[6ed1eee94d31]

	* 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: Show user's proper log prefix when deinitializing users
	at exit.
	[576da94fd669]

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	lib-storage: Allow calling storage service's ioloop
	activate/deactivate functions manually.
	[a3352c6c483e]

	* src/lib-storage/mail-storage-service.c, src/lib/ioloop.c,
	src/lib/ioloop.h, src/plugins/stats/stats-plugin.c:
	lib: Code cleanup - check io_loop_context_add/remove_callbacks()
	callback parameters.
	[e588792b4f20]

	* src/lib-http/http-server-request.c, src/lib-index/mail-cache-
	lookup.c:
	Mark more memory pools as growing
	[33c434858f41]

	* src/auth/auth-request.c, src/auth/db-dict.c, src/auth/db-ldap.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-dovecot-token.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-scram-sha1.c, src/auth
	/mech-skey.c, src/auth/mech-winbind.c:
	auth: Mark memory pools as growing and use the same sizes for all
	mechanisms. Mainly to have DEBUG log fewer warnings.
	[569d41d21ec3]

	* src/config/config-filter.c, src/config/config-parser.c, src/config
	/config-request.c, src/config/doveconf.c, src/doveadm/dsync/dsync-
	brain-mailbox.c, src/doveadm/dsync/dsync-ibc-pipe.c, src/lib-master
	/master-instance.c, src/lib-master/master-service-settings.c, src
	/lib-settings/settings-parser.c, src/lib-storage/mail-storage-
	service.c, src/lib-storage/mail-user.c, src/master/service.c:
	Avoid logging warnings about increasing memory pool/data stack with
	DEBUG on. These could have a minor effect on memory usage, but
	shouldn't be much.
	[90891ca867f3]

	* src/lib/file-lock.c, src/lib/file-lock.h:
	lib: Added file_wait_lock_error() and file_try_lock_error()
	[87f10e2fac95]

	* src/lib-fs/fs-posix.c:
	fs-posix: fs_read_stream() now returns an istream that can live even
	after the fs_file is closed.
	[65963be31ceb]

	* src/lib-storage/index/index-rebuild.c, src/lib-storage/mail-storage-
	private.h, src/lib-storage/mail-storage.c:
	lib-storage: Added mailbox_get_index_path() and caching of the index
	path. This solves some potential assert-crashes on race conditions
	when opening a mailbox while it's being deleted.
	[936435377584]

	* src/lib-storage/index/index-mail-headers.c, src/lib-storage/index
	/index-mail.h:
	lib-storage: Headers were sometimes added to dovecot.index.cache
	with wrong line number value. This happened if the header parsing
	was done multiple times for the same mail. The end result being that
	when fetching multiple headers as a stream, the headers could have
	been returned in the wrong order. This messed up at least dsync's
	header hash comparisons.
	[6d4e7ccb24ea]

	* src/lib-storage/index/imapc/imapc-storage.c:
	imapc: Fixed potential crash when trying to send NOOP before mailbox
	was fully opened.
	[47ffe55be1ed]

	* src/lib-imap-client/imapc-client.h, src/lib-imap-client/imapc-
	connection.c, src/lib-storage/index/imapc/imapc-list.c:
	imapc: If connection isn't in selected state when deleting mailbox,
	don't try to UNSELECT it.
	[d467f4c20abb]

2014-09-24  Pascal Volk  <user@localhost.localdomain.org>

	* .hgignore, doc/man/Makefile.am, doc/man/doveadm-fts.1.in,
	doc/man/doveadm.1.in:
	man: Added doveadm-fts.1.
	[e1cc249ad417]

	* .hgignore, doc/man/Makefile.am, doc/man/doveadm-acl.1.in,
	doc/man/doveadm.1.in:
	man: Added doveadm-acl.1.
	[07cb8ad8b063]

2014-09-23  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-sync.c:
	imap: Don't send MODSEQ in untagged FETCH reply if IMAP client
	didn't enable CONDSTORE/QRESYNC. We should have been checking
	client->enabled_features, not mailbox_get_enabled_features(). The
	former contains the features enabled by the IMAP client, while the
	latter contains also some automatically added features.
	[4fc0fbed97f9]

2014-09-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-instance.c:
	lib-master: Increased instances file's dotlock timeout to 2 seconds.
	The 1 second would have been enough, except the current dotlocking
	code uses second-level precision in checking timeouts, so it could
	end up trying the lock only once.

	A better fix would be to fix the dotlocking code to use millisecond-
	level precision (internally), but since this is the only user so far
	where it would have mattered, it's not really worth the effort
	(yet).
	[a25880e35b09]

2014-09-22  Phil Carmody  <phil@dovecot.fi>

	* src/lib/bsearch-insert-pos.h:
	lib: bsearch - make BINARY_NUMBER_SEARCH more widely usable This
	template is more widely usable if we do not hard-code into it the
	method of accessing the value being compared. For the default case
	we already use, this accessor is just a simple array dereferencing
	macro.

	As rewriting with the array access happens in the preprocessor, the
	code generated is completely unchanged.

	Expected future use:

	: #define MY_GETTER(array, index) ((array)[(index)].index_field) :
	#define MY_BINARY_SEARCH(data, count, value, idx_r) \ :
	BINARY_NUMERIC_SEARCH(MY_GETTER, data, count, value, idx_r);

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[12015689471c]

2014-09-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-fs.c:
	lib-dict: dict-fs implements now minimal iteration support.
	[979e5a007248]

	* src/doveadm/doveadm-dict.c:
	doveadm dict iter: Use recursion flag only if -R parameter is
	specified.
	[9b65f3f583a3]

	* src/lib-fs/fs-posix.c:
	fs-posix: When deleting a directory, automatically fallback to
	rmdir()ing it
	[677cdc451031]

2014-09-16  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Using modseq-based syncing while mailbox was open didn't
	handle expunges correctly. The expunges were handled only after
	EXPUNGE command was given, which should have been done only for
	mails that no longer matched the search query but still existed.
	[21757e66053f]

	* src/plugins/quota/quota-private.h, src/plugins/quota/quota.c:
	quota: Quota recalculation didn't include INBOX in some
	configurations. If one inbox=yes and another inbox=no namespace
	shared the same mail location, and the inbox=no namespace was first,
	only it was used to list all mailboxes.
	[2baf1377f57a]

2014-09-16  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-var-expand.c:
	lib: test-var-expand - disambiguate tests Two test cases had the
	same name.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8a969c11e1af]

	* src/lib/hash-format.c:
	lib: hash-format - fix leak on _init() failure path If any of the
	analysis/parse helpers return failure, then the whole pool will
	leak.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[4374e04f6aae]

2014-09-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-search.c:
	lib-storage: SEARCH_MAILBOX* value is now also compared to to the
	(virtual) mailbox name. This fixes for example "doveadm fetch uid
	mailbox virtual/all"
	[ad16c74f4f36]

	* src/plugins/fts-solr/fts-backend-solr.c, src/plugins/fts/fts-api-
	private.h, src/plugins/fts/fts-api.c:
	doveadm fts rescan: For virtual namespaces just mark the last
	indexed UID to 0.
	[8c2cb7d01a78]

	* src/plugins/fts/fts-expunge-log.c:
	fts: dovecot-expunges.log wasn't closed at deinit
	[e82ad7f1c58f]

2014-09-16  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-strnum.c:
	lib: test-strnum - fix format size mismatch Signed-off-by: Phil
	Carmody <phil@dovecot.fi>
	[56b565986dd3]

	* src/lib/test-strnum.c:
	lib: test-strnum - add size-oblivious str_to/parse_uintmax tests
	Test a value of every bit-length. Also test the 10/9*MAX corner
	case. And due to crappy helper functions, test lots of leading
	zeroes too!

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[c58aaa79d647]

	* src/lib/test-strnum.c:
	lib: remove uintmax tests from uint64 tests These log a warning on
	OSX with clang.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[138fd3ccc9da]

	* src/lib/strnum.c:
	lib: strnum - ensure str_to_uintmax doesn't return a value on error
	It was clobbering the _r parameter even though the spec says it
	shouldn't.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9899cc178d0d]

2014-09-16  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/Makefile.am, src/doveadm/doveadm-dsync.c, src/doveadm
	/doveadm-dsync.h, src/doveadm/doveadm-mail.c, src/doveadm/doveadm.c,
	src/doveadm/dsync/Makefile.am, src/doveadm/dsync/doveadm-dsync.c,
	src/doveadm/dsync/doveadm-dsync.h:
	dsync: Moved doveadm-specific code to doveadm directory.
	[fc79ac9cc378]

	* src/lib-fs/fs-metawrap.c:
	fs-metawrap: Fixed iteration wrapping, broken by earlier changes.
	[d080dc2e1280]

	* src/doveadm/dsync/Makefile.am:
	Makefile: Fixed linking libdovecot-dsync
	[a49c4e0d351a]

	* src/lib-storage/mail-namespace.c:
	Compiler warning fix
	[0ce514f5f899]

	* src/lib-fs/fs-metawrap.c:
	lib-fs: fs-metawrap now fully wraps fs_iter_* to fix tracking struct
	fs.iters
	[1010f2ba9f2d]

	* src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h:
	lib-storage: Added mail_namespaces_init_add/finish() to manually
	initializing namespaces.
	[98f937eed2e5]

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.c,
	src/lib-storage/mail-user.h:
	lib-storage: Added mail_user_dup()
	[9c673534ae93]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: Keep track of all fs_iters in fs.
	[59b920848699]

2014-09-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: Added wait_ioloop/prev_ioloop helpers to struct fs.
	[784883cc0be6]

	* Makefile.am, configure.ac, dovecot-config.in.in, dovecot.m4,
	src/doveadm/Makefile.am, src/doveadm/dsync/Makefile.am:
	Install libdovecot-dsync.so library, which can be used separately.
	[3675d156b309]

	* 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-mailbox-tree.c:
	dsync: Moved all doveadm-specific code to doveadm-dsync.c
	[eff79a80e0c9]

2014-09-15  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-server-connection.c, src/lib-http/http-server-
	private.h, src/lib-http/http-server-request.c:
	lib-http: server: Fixed connection reference counting. Connection
	often still got destroyed too early. Particularly submitting
	responses would potentially destroy the connection, which is often
	unexpected. Sending responses is now postponed until handled by the
	stream output handler, which is explicitly triggered when necessary.
	[25fd54c05522]

2014-09-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-posix.c:
	fs-posix: Fixed fs_iter_deinit() when opendir() had failed.
	[7d609a1c0a3e]

2014-09-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-server-response.c:
	lib-http server: Keep output stream referenced to avoid accessing it
	after destroy.
	[736a3f6bd5a8]

	* src/lib-fs/fs-metawrap.c:
	fs-metawrap: Add FS_PROPERTY_COPY_METADATA property for wrapped fs
	backends. This is because if we simply use the parent copy the
	metadata gets copied as well.
	[1daf1e2fefb9]

	* src/lib-fs/fs-posix.c:
	fs-posix: Fixed memory leak in fs_iter_deinit()
	[73f806838456]

2014-09-12  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service-private.h, src/lib-master/master-
	service-settings.c, src/lib-master/master-service.c:
	lib-master: Earlier config file path fix broke reusing existing
	config socket lookups.
	[ccc5701dae72]

2014-09-11  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Recent optimizations had broken fast mailbox syncing. We
	wrongly assumed that all_mails array could have been accessed using
	vseqs. Broken by 8abf7eea2966
	[2171b0e47055]

	* src/lib-mail/message-decoder.c:
	lib-mail: Message decoder now runs normalizer also for unknown
	charsets.
	[bbf760c25a9e]

	* src/plugins/fts-lucene/fts-backend-lucene.c, src/plugins/fts-lucene
	/lucene-wrapper.cc:
	fts-lucene: No .. the rebuilding warning was still in the wrong
	place.
	[ef55b00eef2a]

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Include the mailbox name also in the rebuilding warning.
	[73eb8be089a5]

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Log a warning when rebuilding index because of settings
	changes
	[f3df2eb2ce8e]

2014-09-10  Timo Sirainen  <tss@iki.fi>

	* doc/man/doveadm-director.1.in:
	man: Forgot to remove XXX prefixes from doveadm-director.1.in
	[4016a491e958]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Actually, use empty mail_replica as "replication
	is disabled".
	[c1c67bdc8752]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Added replication_disabled setting.
	[95c2f5916958]

2014-09-10  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-director.1.in:
	man: doveadm-director man page updated
	[ee3db95744f5]

	* doc/man/doveadm-auth.1.in:
	man: doveadm-auth man page updated
	[03653943b6ad]

	* doc/man/doveadm-dump.1.in:
	man: doveadm-dump man page updated
	[6848068151bf]

2014-09-10  Phil Carmody  <phil@dovecot.fi>

	* src/lib-test/test-common.c:
	lib-test: don't use 0 for old size in realloc call We have the real
	size, use it.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[cf08c2614979]

	* 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:
	lib-index: test suite memory leak cleanup So that memory leak
	checkers can be active while running the test suites, ensure that
	the suite itself doesn't leak.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f0701f84ca01]

	* src/lib/test-seq-range-array.c:
	lib: test-seq-range-array - clean up array after use Removes noise
	when memory-leak debugging during unit tests.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[c749a40eda0a]

	* src/lib/test-aqueue.c:
	lib: test-aqueue - clean up the test queue each time round the loop
	Helps keep noise out of memory leak debugging during unit tests.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e1eaf5d06769]

	* src/lib/test-istream-concat.c:
	lib: test-istream-concat - clean up our test-istreams This reduces
	noise when memory leak debugging the unit tests.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e5028f632d1c]

2014-09-10  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Reset I/O timeout every time when receiving input. This could
	have caused unwanted I/O timeouts when receiving large mails.
	[647162da8423]

2014-09-09  Michael M Slusarz  <slusarz@curecanti.org>

	* src/pop3/pop3-commands.c:
	pop3: Optimize POP3 UIDL processing when duplicate renaming is not
	active.
	[be21e17813d4]

2014-09-10  Stephan Bosch  <stephan@rename-it.nl>

	* 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: client: Implemented support for connection failure
	backoff.
	[4412508cbc59]

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	queue.c, src/lib-http/http-client.c, src/lib-http/http-client.h:
	lib-http: client: Added support for attempting a single IP several
	times. Also limits the number of attempts when there are many IPs.
	[650629de6a73]

	* src/lib-http/http-client-connection.c:
	lib-http: client: Tunnel connection failure would cause segfault.
	That happened because it tried to retry waiting requests, which
	makes no sense for a CONNECT tunnel.
	[bf371c4fed6e]

	* src/lib-http/http-server-private.h, src/lib-http/http-server-
	request.c, src/lib-http/http-server-response.c, src/lib-http/http-
	server.h:
	lib-http: server: Added support for authentication.
	[5ab0ab678497]

	* src/lib-http/Makefile.am, src/lib-http/http-auth.c, src/lib-http
	/http-auth.h, src/lib-http/http-parser.c, src/lib-http/http-
	parser.h, src/lib-http/test-http-auth.c:
	lib-http: Implemented HTTP auth (RFC 7235).
	[2121057f994b]

	* src/lib-http/http-server-connection.c:
	lib-http: server: Added assert to connect callback which makes sure
	request is either responded to or referenced. Earlier change added
	this only to callback for normal requests, but CONNECT should be
	handled the same in this respect.
	[b7c29e47b0f6]

	* src/lib-http/http-server-connection.c:
	lib-http: server: Fixed delayed request destruction. Destruction was
	actually delayed indefinitely, because the delay flag was not reset.
	Obviously, this caused a memory leak.
	[0f1878544d3b]

	* src/lib-http/http-server-request.c:
	lib-http: server: Made sure destroy callback is called only once.
	[4e339d81e1d2]

	* src/lib-http/http-server-connection.c:
	lib-http: server: Fixed segfault occurring in connection input
	handler. Request handlers could close and destroy the connection
	early. Fixed by holding a reference in the input handler.
	[7ccf5dd98be8]

	* src/lib-http/http-server-connection.c:
	lib-http: server: Fixed handling of disconnection while request is
	being handled. This would cause an assert failure.
	[992f17769cca]

2014-09-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service-settings.c:
	lib-master: Fixed -c & -i command line parameters when config socket
	was readable. The config socket was always being read, even if
	another config file was attempted to be used.
	[8b5664bce4a0]

2014-09-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/pop3c/pop3c-client.c:
	pop3c: Added missing support for pop3c_ssl=starttls
	[bf1faf8ab847]

	* COPYING.LGPL:
	COPYING.LGPL: Updated FSF mailing address. Also some whitespace and
	line wrapping changes. Used the same file as
	http://www.gnu.org/licenses/lgpl-2.1.txt
	[a41089e5bd8e]

	* src/lib-storage/index/pop3c/pop3c-client.c, src/lib-
	storage/index/pop3c/pop3c-storage.c:
	pop3c: If base_dir isn't set, lookup pop3c_host with regular
	blocking DNS lookup.
	[0953e6c5d931]

2014-09-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-settings.c:
	lib-storage: Compile fix to previous change The original patch was
	correct, my copy&pasting by hand just sucked. :)
	[58738244dc34]

	* src/lib-storage/mail-storage-settings.c:
	lib-storage: Fixed off-by-one memory allocation in dynamic settings
	allocation code. This didn't actually affect normal Dovecot builds,
	because there were always some storages with
	get_setting_parser_info=NULL that added the necessary padding.

	Patch by Michael M Slusarz
	[3d9f233f5b77]

2014-08-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-fs.c:
	fs layout: Absolute paths as mailbox names shouldn't return index
	with INDEX=MEMORY
	[d136c0869774]

	* src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h, src
	/lib-index/mail-transaction-log-file.c, src/lib-storage/index/index-
	sync.c, src/lib-storage/mail-storage-private.h, src/lib-storage
	/mail-storage.c:
	lib-index, lib-storage: Fixed race conditions with deleting mailbox.
	Now only one process can successfully finish
	mailbox_mark_index_deleted().
	[6980c53bf7d7]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: Keep a linked list of all files within fs to help debugging.
	[2324dea38a03]

2014-08-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-sync-index.c, src/lib-
	storage/list/mailbox-list-delete.c, src/lib/compat.h:
	Added UNLINK_EISDIR() helper macro.
	[0ff8d85a6893]

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Handle unlink()=EPERM failure the same as EISDIR. EPERM is
	POSIX, while EISDIR is Linux-specific.
	[3bc106fd69d3]

	* src/lib-fs/fs-metawrap.c:
	lib-fs: Fixed metawrap_fs.copy() to work with
	FS_PROPERTY_COPY_METADATA backends. This is done by simply copying
	the entire file with the metadata included instead of rewriting it.
	[48aa40ae3039]

	* src/lib-storage/index/index-attribute.c, src/plugins/last-login
	/last-login-plugin.c, src/plugins/quota/quota-dict.c,
	src/plugins/quota/quota.c:
	Replaced dict_init() with dict_init_full() in various places.
	[866bb1354e85]

	* src/lib-dict/dict-file.c, src/lib-dict/dict.h:
	lib-dict: file backend now expands ~/ paths if home_dir setting is
	set.
	[58c3676c116c]

	* src/lib-dict/dict-client.c, src/lib-dict/dict-file.c, src/lib-dict
	/dict-fs.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:
	lib-dict: Changed dict.init() API to take struct dict_settings and
	added dict_init_full(). This allows giving more settings to dict in
	future as needed. Unfortunately it also breaks the internal dict
	API, but there aren't really any plugins widely using it, so it's
	not a big problem.
	[77e71a45a475]

	* src/dict/dict-settings.c, src/dict/dict-settings.h:
	dict: Renamed struct dict_settings to dict_server_settings.
	[d91b43496e72]

2014-08-27  Timo Sirainen  <tss@iki.fi>

	* src/auth/passdb-ldap.c:
	auth ldap: Compile fix to previous change.. Looks like on my local
	build system ldap wasn't enabled..
	[9b5a197f5da2]

	* src/auth/passdb-ldap.c:
	auth ldap: Don't require password field to exist for passdb lookups
	when auth_bind=yes. This should fix lmtp/doveadm proxy lookups with
	auth_bind=yes
	[4136f64146d0]

2014-08-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-request.c, src/lib-http/http-client.h:
	lib-http: Added http_client_request_get_method()
	[4a11d88a280a]

	* src/auth/passdb-ldap.c:
	auth: Allow passdb credentials lookup also with auth_bind=yes
	Although we probably can't lookup the password itself, we're also
	doing passdb lokups for proxying and other purposes. These lookups
	will still work as long as pass_attrs & pass_filter is specified.
	[a2e0e89bc27d]

2014-08-21  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm.c:
	doveadm exec: Show help if binary name wasn't given.
	[787ebba12684]

	* src/doveadm/doveadm-director.c:
	doveadm ring status: Help text was shown for wrong command.
	[f82f8409334c]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Compiling fix for earlier change.
	[9e825d5b0dd0]

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Don't crash when index building fails but we were still
	planning to optimize the index.
	[b0c301f2d616]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: When deleting corrupted lucene-indexes/ directory, don't
	rmdir it. This at least avoids errors with NFS when some of the
	files are still open inside it by other processes.
	[58eaff87a81b]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Automatically close index after 2 minutes of idling.
	[9cdf42df4c4b]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Make sure Lucene indexes are always closed at deinit to
	avoid memory leaks. At least optimize leaked memory.
	[5f8cff646417]

	* src/lib-dict/dict-redis.c:
	redis: Added support for path=/unix/socket/path parameter instead of
	host/port.
	[5832a9ed3ece]

2014-08-20  Timo Sirainen  <tss@iki.fi>

	* src/pop3/pop3-client.c:
	pop3: Fixed potential assert-crash on disconnect.
	[d14f30ccd118]

	* src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Put back the deduplication code. Too dangerous after all to
	change it in the middle of v2.2.x. It's also not causing that much
	trouble even when it breaks..
	[f0f19e5580f0]

	* src/auth/auth-master-connection.c, src/auth/auth-postfix-
	connection.c:
	auth: protocol-specific username settings weren't used for userdb
	lookups. The username was set before the service-specific settings
	were looked up, so global settings were always used. This affected
	auth_default_realm, auth_username_translation and
	auth_username_format settings.
	[c3da5ffaa0f2]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: If whitespace_chars was set, we may have ended up
	indexing some garbage words. The final \0 was replaced with space,
	so everything beyond that was also being indexed.
	[febedba15c7e]

	* src/lib-dict/dict-memcached-ascii.c, src/lib-dict/dict-redis.c:
	lib-dict: Hide internal ioloop from async commit callbacks. (Redis &
	memcached fix)
	[a7a5e0737d53]

	* src/plugins/last-login/last-login-plugin.c:
	last-login plugin: Added ABI version check.
	[4f6a812817c4]

	* src/plugins/last-login/last-login-plugin.c:
	last-login: Fixed timeout leak at user deinit.
	[f08d6cf8bdd4]

	* src/lib-storage/mail.c:
	lib-storage: Added data stack frame to mail_prefetch().
	[9ee7381056d5]

	* src/config/doveconf.c:
	doveconf: local and remote net/bits addresses were printed with
	/bits twice.
	[8d3895feb931]

	* src/indexer/indexer-settings.c, src/ipc/ipc-settings.c,
	src/replication/replicator/replicator-settings.c, src/stats/stats-
	settings.c:
	Several services weren't enforcing their process_limit=1
	requirement.
	[0b86058d4e5e]

2014-08-19  Timo Sirainen  <tss@iki.fi>

	* src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib
	/test-wildcard-match.c:
	lib: Added unit tests for wildcard_match()
	[d1d4beff99f7]

	* src/lib/wildcard-match.c:
	lib: wildcard_match() should have matched "*" wildcard against an
	empty "" string also. This fixes global ACL "*" matching the root
	namespace when creating new mailboxes.
	[2ca346d91310]

2014-08-18  Timo Sirainen  <tss@iki.fi>

	* src/director/doveadm-connection.c:
	director: Log a warning when using "director host flush" for all
	hosts.
	[bd381e882485]

	* src/lib/istream-chain.c:
	istream-chain: Fixed crash caused by earlier io_add_stream() support
	change.
	[3d30ae287699]

2014-08-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-server-response.c:
	lib-http server: Use io_add_istream() to wait for the payload
	istream. This way the stream doesn't necessarily have to have a fd.
	[74e5657964d3]

	* src/lib-http/http-server-response.c:
	lib-http: Added asserts to make sure CR or LF can't be added
	accidentally to HTTP headers.
	[8e6d2afb14c5]

	* src/lib/istream-chain.c:
	istream-chain: Support using io_add_istream() for the chain stream.
	The callback is notified whenever new streams are added to the
	chain.

	It's currently not possible to have nonblocking istreams added to
	the chain and the callback being called when they have new data, but
	it would be possible to implement as well if needed at some point.
	[664afffb22a3]

	* src/lib/ioloop.c:
	io_add_istream(): Allow the istream to be added even if it doesn't
	have fd.
	[7985461cf21c]

2014-08-15  Phil Carmody  <phil@dovecot.fi>

	* src/pop3/pop3-commands.c:
	pop3: satisfy some strict parsing rules in RFC 1939 "Commands in the
	POP3 consist of a case-insensitive keyword, possibly followed by one
	or more arguments. All commands are terminated by a CRLF pair.
	Keywords and arguments consist of printable ASCII characters.
	Keywords and arguments are each separated by a single SPACE
	character."

	"A server MUST respond to an unrecognized, unimplemented, or
	syntactically invalid command by responding with a negative status
	indicator."

	Therefore the following commands must be rejected: LIST 2600Hz LIST
	99 red balloons TOP 1 2 buckle-my-shoe

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[a45147ddd655]

	* src/pop3/pop3-commands.c:
	pop3: fix msgnum/size parsers The outer if()s are completely
	unnecessary, and permit `num' to remain uninitialised. Spotted by
	clang's static analysis.

	Bug introduced in changeset: 17563:2ed2ab04b63d

	Note that the lack of a parameter from a broken client is no longer
	treated as "0". Before the bug was introduced: DELE
	  -ERR There's no message 0. After this patch: DELE
	  -ERR Invalid message number:

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[88d95b8f8a19]

2014-08-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-error.h:
	Compiling fix for previous change..
	[5dbd8a63aeb0]

	* src/doveadm/doveadm-mail.c, src/imap/imap-commands-util.c,
	src/lda/main.c, src/lib-storage/index/imapc/imapc-storage.c, src
	/lib-storage/index/maildir/maildir-copy.c, src/lib-
	storage/index/maildir/maildir-save.c, src/lib-storage/index/mbox
	/mbox-storage.c, src/lib-storage/mail-error.c, src/lib-storage/mail-
	error.h, src/lib/compat.h, src/lmtp/commands.c, src/plugins/quota
	/quota-storage.c, src/plugins/snarf/snarf-plugin.c,
	src/pop3/pop3-client.c:
	Handle "out of disk space" and "out of user quota" as separate
	cases. "Out of disk space" is a temporary error that should be
	logged as error and the failure should be sent to user as "Internal
	server error".

	Obsolete the use of MAIL_ERROR_NOSPACE and MAIL_ERRSTR_NO_SPACE. Use
	the clearer MAIL_ERROR_NOQUOTA and MAIL_ERRSTR_NO_QUOTA instead.
	[286da24ada43]

	* src/auth/db-ldap.c:
	ldap: Treat "No such object" errors to search the same as if no
	results were returned. Trying to look up a nonexistent base returns
	this error.
	[5e818f1b376d]

	* src/auth/auth-request.c:
	auth: Internal passdb failures were always failing the request even
	if another passdb succeeded later.
	[14082c2d81dd]

2014-08-13  Phil Carmody  <phil@dovecot.fi>

	* src/lib-http/http-server-private.h, src/lib-http/http-server-
	request.c:
	lib-http: server_request/connection - improve encapsulation It just
	feels a bit dirty having the request mess around with the
	connection's internals, have the connection manage its linked lists
	itself. No functional changes.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[c810e288aaed]

2014-08-13  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-sync.c:
	virtual plugin: Optimized memory allocation. Patch by Teemu Huovila.
	[e7c5944ba16b]

2014-08-12  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c:
	Compiler warning fix
	[0150ca67d7f7]

	* src/plugins/virtual/virtual-sync.c:
	virtual plugin: Handle physical mailbox deletion while virtual
	mailbox is open.
	[0ff4dde5490a]

	* src/lib-storage/list/mailbox-list-index-status.c:
	mailbox_list_index=yes: Make sure storage error doesn't change when
	updating STATUS info.
	[8948c0d91369]

	* src/lib-storage/mail-storage-private.h, src/lib-storage/mail-
	storage.c, src/lib-storage/mail-storage.h:
	lib-storage: Added mail_storage_last_error_push/pop()
	[3e461af4f0ff]

	* src/plugins/virtual/virtual-sync.c:
	virtual plugin: Optimized syncing a large number of physical
	mailboxes. Especially when the number of mails was large the old
	code took a lot of CPU time. Based on patch by Teemu Huovila.
	[8abf7eea2966]

	* src/stats/client-export.c, src/stats/mail-domain.c, src/stats/mail-
	domain.h, src/stats/mail-ip.c, src/stats/mail-ip.h, src/stats/mail-
	session.c, src/stats/mail-stats.h, src/stats/mail-user.c, src/stats
	/mail-user.h:
	stats: Added num_connected_sessions for domains and IPs.
	[f78d4b2bb6c3]

	* src/lib-http/http-server-connection.c, src/lib-http/http-server-
	private.h, src/lib-http/http-server-request.c:
	lib-http server: Delay calling the request's destroy callback until
	handle_request() callback is finished. This simplifies the code in
	the handle_request() so it doesn't need to keep track of whether the
	response is already submitted or not.
	[40b07d1f7f6a]

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: If lucene-indexes dir is unexpectedly lost, rescan when
	expunge log update fails. This mainly fixes a repeating error about
	failing to open the expunge log. It should happen only if
	dovecot.index thinks that the mailbox is indexed while in reality
	the entire lucene-indexes directory doesn't exist.
	[37eff3debe38]

2014-08-11  Timo Sirainen  <tss@iki.fi>

	* src/lib/ostream-buffer.c:
	ostream-buffer: Allow modifying the buffer outside ostream, unless
	o_stream_seek() is used. Now we'll just append to the end of the
	buffer instead of forcibly trying to write at the offset where the
	last ostream write ended.
	[4968b36d9ac8]

	* src/lib/istream-callback.c, src/lib/istream-callback.h:
	istream-callback: Added i_stream_callback_get_buffer().
	[4cca68644428]

	* src/lib/Makefile.am, src/lib/istream-callback.c, src/lib/istream-
	callback.h:
	lib: Added istream-callback API
	[1b76af8a8ded]

	* src/lib/ostream-file.c:
	Compiler warning fix
	[2ce864f0176a]

	* src/lib-http/http-server-connection.c, src/lib-http/http-server.h:
	lib-http server: Comment updates
	[531aad735130]

	* src/lib/iostream-temp.c, src/lib/ostream-file.c, src/lib/ostream-
	private.h, src/lib/ostream.c:
	lib: io_stream_copy() no longer attempts to read full block sizes
	from input. Although that may be more efficient for writing (to
	files), it causes unnecessary work for the input stream. The writing
	part should also be optimized anyway if the caller corks the output
	stream.
	[e593dce9468d]

	* src/lib-http/http-server-request.c, src/lib-http/http-server.h:
	lib-http server: Added http_server_request_is_finished() This is
	intended mainly to be used in asserts and such checks.
	[0e04f9c171fc]

	* src/lib-http/http-server-request.c:
	lib-http: Call the destroy callback also when request is aborted.
	[33346832b1c2]

	* src/lib-http/http-server-connection.c:
	lib-http: Don't leak memory if HTTP client disconnects unexpectedly.
	http_server_connection_disconnect() has several cleanup calls, which
	weren't done because closed=TRUE was set explicitly and that skipped
	the cleanup.
	[9f4529061c5d]

	* src/lib-http/http-server-private.h, src/lib-http/http-server-
	request.c, src/lib-http/http-server.h:
	lib-http server: Call request destroy callback immediately after
	response is finished sending. Regardless of any other references to
	the request.
	[0098ed2b4b50]

	* src/lib-mail/message-parser.h:
	lib-mail: Added comments to message-parser.h
	[051a96b3960f]

	* src/lib-mail/message-parser.c:
	lib-mail: Message parser now always returns block->data=NULL when
	it's not supposed to be used.
	[f41d3c771627]

2014-08-09  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs put: Added -h <hash> parameter to specify the file's
	hash. The hash (in hex) is automatically detected to be either MD5
	or SHA256 based on its size. If the fs backend doesn't support the
	hash it'll fail. Otherwise it'll make sure that the written file
	matches the given hash.
	[73aedf57e311]

2014-08-08  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-storage.c:
	fts: fts_no_autofuzzy shouldn't disable fuzzying when FUZZY search
	parameter is set.
	[1ea3da40ea8f]

	* 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-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,
	src/plugins/fts/fts-storage.c, src/plugins/fts/fts-storage.h:
	fts: Added fts_no_autofuzzy setting to require exact matches for
	found results. This is done by using the FTS search results as only
	filters on which the regular non-FTS search is done.
	[cdf4edcc6256]

	* src/doveadm/doveadm-mail-search.c:
	doveadm search: If mailbox GUID lookup fails, print an error.
	[f206042d6286]

	* src/plugins/virtual/virtual-config.c:
	virtual: Allow "*" to match inbox=yes namespace if there's otherwise
	no prefix="" namespace.
	[4db555d87a54]

	* src/plugins/virtual/virtual-config.c:
	virtual: Make sure virtual mailbox doesn't try to access itself as a
	backend mailbox.
	[056dfefd81b9]

	* src/lib-storage/mail-storage.c:
	lib-storage: mailbox_get_*status(STATUS_HIGHESTMODSEQ) now enables
	CONDSTORE feature. This makes sure that the highestmodseq is added
	to the mailbox list index if not already there.
	[48506e8e1c7a]

	* src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-
	sync.c:
	virtual: Make sure modseqs are always enabled for backend mailboxes.
	mailbox_get_status() wasn't adding a missing highestmodseq otherwise
	to the mailbox list index.
	[d733aecb00d5]

2014-08-06  Timo Sirainen  <tss@iki.fi>

	* src/auth/passdb-static.c:
	auth: passdb static assumed that missing "password" field meant
	empty password Missing password should be an error unless nopassword
	is set. If an empty password is wanted then "password=" can be used.
	[0fe379f28af9]

2014-08-05  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-server-private.h, src/lib-http/http-server-
	request.c:
	lib-http: server: Fixed server waiting for payload of already failed
	request.
	[72db5dc3d402]

2014-08-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-server-connection.c, src/lib-http/http-server.h:
	lib-http server: Require handle_request() to either send a response
	or reference the request. This should make it more difficult to
	accidentally forget to send a response and cause a hang.

	Currently this assert-crashes, although it would have been possible
	to make it return some internal error instead also.
	[6785b41831d3]

	* src/lib-http/http-server-private.h, src/lib-http/http-server-
	request.c, src/lib-http/http-server.h:
	lib-http server: Made http_server_request_[un]ref() public. Also
	http_server_request_unref() now returns if this was the last
	reference or not.
	[beaee1a2ad61]

	* src/lib-http/http-server-connection.c:
	lib-http server: Create a new data stack frame for all the
	callbacks.
	[7e084d643e59]

	* src/lib-http/http-server-request.c, src/lib-http/http-server-
	response.c, src/lib-http/http-server.h:
	lib-http server: Added http_server_request_get_response() Also make
	sure that only a single response can be created for a request.
	[c9151da3a9b3]

	* src/lib-http/http-server-connection.c:
	lib-http server: Removed extra "return;" that was never called.
	[8bb726d6c5db]

	* src/lib-http/http-server-connection.c, src/lib-http/http-server-
	request.c, src/lib-http/http-server-response.c, src/lib-http/http-
	server.h:
	lib-http server: Removed "bool close" parameters in favor of
	_close() functions. Most callers don't want to close the connection
	so it's an extra parameter usually. Also it's difficult to remember
	what the TRUE/FALSE means so it's easy to cause bugs by copy&pasting
	the code.

	http_server_request_fail() will also now forcibly close the
	connection if conn->input_broken is set.
	[898d4cce2aa9]

2014-08-04  Timo Sirainen  <tss@iki.fi>

	* src/plugins/expire/expire-plugin.c:
	expire plugin: Fixed crash at deinit if expire_dict initialization
	failed.
	[cac32684b3d6]

2014-08-01  Timo Sirainen  <tss@iki.fi>

	* src/imap-urlauth/imap-urlauth-worker.c:
	imap-urlauth: Error message typofix. Patch by Jelmer Vernooij
	[417a984e91f3]

2014-07-31  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/rfc822-parser.c:
	lib-mail: rfc822_parse_dot_atom() didn't return error if "." wasn't
	followed by ATEXT It simply skipped over the invalid character and
	continued.
	[9e769da78c9a]

2014-07-30  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-data-stack.c, src/lib/test-lib.c, src/lib/test-lib.h:
	lib: test-data-stack - add some fatal tests. Extra caution is
	necessary as data-stack is such a fundamental component. All of the
	brokenness that we add must be undone as soon as possible, or there
	will be an endless loop of catastrophic errors. In order to avoid
	that, at least try to detect some issues, and abort as quickly as
	possible.

	Alas, due to the reliance of these tests on DEBUG code, if that's
	not set, this test is a no-op.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[8e990ad4db0e]

	* src/lib/test-lib.c, src/lib/test-lib.h, src/lib/test-printf-format-
	fix.c:
	lib: test fatal cases for printf_format_fix Signed-off-by: Phil
	Carmody <phil@dovecot.fi>
	[84ead9b26d59]

	* src/lib/test-lib.c, src/lib/test-lib.h, src/lib/test-mempool-
	alloconly.c:
	lib: test-lib - add a real fatal test for mempool-alloconly Crazily
	huge memory allocation must fail.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[16761cdb2537]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: permit tests of fatal conditions Some functions have no
	mechanism of reporting an error, and mustn't continue, so fatality
	is the only way out. (E.g. memory allocation failures.)

	This addition is for those situations. Semantics of failure tests
	are very different from normal tests:

	- The test function must have the following prototype: enum
	fatal_test_state test_fatal_things(int index);
	- The index it will be called with starts at 0, and increments each
	time.
	- It must call test_start() at the start of its first call.
	- Apart from its final call, it must call a function it expects to
	trap the fatal error handler. If that fails to trap, it must return
	FATAL_TEST_FAILURE
	- After returning FATAL_TEST_FAILURE, it will continue to be called as
	normal.
	- When there are no more tests to perform, it must clean up, call
	test_end() and return FATAL_TEST_FINISHED. It will not be called
	again.
	- If it detects errors in this protocol, it must not i_assert(), as
	that will be treated as an expected fatal, it must return
	FATAL_TEST_ABORT. It will then not be called again. It must not call
	test_end() in this case.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[aeb6520c0ae9]

2014-07-29  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/quota-maildir.c:
	quota: Avoid assert-crash in Maildir++ quota if backend doesn't
	support control dirs. We'll delay looking up the control dir until
	we've checked that the storage is Maildir.
	[b5b243739b67]

	* src/lib-ssl-iostream/iostream-openssl.c, src/login-common/ssl-proxy-
	openssl.c:
	libressl fix: Fixed compiling with SSL compression disabled. Patch
	by Pascal Stumpf
	[256411741f0a]

	* src/lib-ssl-iostream/iostream-openssl-context.c, src/login-common
	/ssl-proxy-openssl.c:
	libressl fix: Check for SSL_CTRL_SET_ECDH_AUTO macro instead of
	OpenSSL version number Patch by Hanno B?ck
	[e01a298adbe4]

	* src/lib-storage/index/mbox/istream-raw-mbox.c:
	mbox: Fixed infinite looping and other incorrectness in istream-raw-
	mbox. This was caused by the recent istream invalidation checks in
	i_stream_get_data().
	[53d5039ed212]

	* configure.ac, src/plugins/Makefile.am:
	last-login plugin: Added missing configure and Makefile entries.
	[122d512248e7]

2014-07-28  Phil Carmody  <phil@dovecot.fi>

	* src/lib-http/http-server-connection.c:
	lib-http: http-server-connection - don't resume closed connections
	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b6da2718131e]

	* src/lib-imap/imap-utf7.c:
	lib-imap: imap-utf7 - only encode in-range 7-bit values 0x01-0x1F
	and 0x7f-... must be mBASE64 encoded.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[65c61f2d0e75]

	* src/lib-imap/imap-utf7.c:
	lib-imap: imap-utf7 - reject encoded simple ASCII "Modified BASE64
	MUST NOT be used to represent any printing US-ASCII character which
	can represent itself."

	"The character "&" (0x26) is represented by the two-octet sequence
	"&-""

	Therefore any mBASE64 sequence containing any character between 0x20
	and 0x7e is invalid.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[0c0559782618]

	* src/lib-imap/imap-utf7.c:
	lib-imap: imap-utf7 - reject bogus characters in the mUTF7 Only
	0x20..0x7e are permitted, as "All other characters (octet values
	0x00-0x1f and 0x7f-0xff) are represented in modified BASE64, ...".

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[6abfa33c73a8]

	* src/lib-imap/test-imap-utf7.c:
	lib-imap: test-imap-utf7 - comprehensive test suite Several MUST
	NOTs or other standards violations were not being trapped.

	test_imap_utf7_unnecessary() tests: Modified BASE64 MUST NOT be used
	to represent any printing US-ASCII character which can represent
	itself.

	test_imap_utf7_bad_ascii() tests: All other characters (octet values
	0x00-0x1f and 0x7f-0xff) are represented in modified BASE64, ...

	test_imap_utf7_non_utf16() tests that data containing a single
	straggling octet is trapped.

	test_imap_utf7_by_example() and test_imap_utf7_ucs4_cases() are just
	the previous test suite split into 2 smaller tests.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[6dbce666f8d3]

	* src/lib-imap/test-imap-utf7.c:
	lib-imap: test-imap-utf7 - migrate to test_assert_idx Signed-off-by:
	Phil Carmody <phil@dovecot.fi>
	[cfaeb58a0fbf]

	* src/lib/test-str-sanitize.c:
	lib: test-str-sanitize - tighten tests Check that the identical
	string is returned in the no-change case, not just a copy.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e5157203e96d]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: make internal helpers static These functions should only
	be called from within test_run(), as some of the test-suite sanity
	checks can be subvirted if these are exposed.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[ec534d652137]

	* src/lib-test/test-common.c:
	lib-test: quieten the random seed printfs We only need to know the
	seed once.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9f765c38fd79]

	* src/lib/buffer.c, src/lib/buffer.h:
	lib: compile time checks for buffer creation Ensure the data buffer
	has as much space as the size parameter claims. This uses the
	strictest test GCC provides - the smallest containing object, and
	returning 0 for unknown size.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[5601d3e9d2a3]

	* src/lib/data-stack.c:
	lib: data-stack - start sentry checks immediately after the reserved
	buffer Our sentries are written with byte-precision, no need to
	round up before doing the checks.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9bf0c6d936ef]

	* src/lib/data-stack.c:
	lib: data-stack - add DEBUG size and sentry updating to
	t_try_realloc Without this, t_pop() will report errors.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e33102604242]

	* src/lib/test-data-stack.c:
	lib: test-data-stack - add realloc tests These will fail noisily
	with a DEBUG build until the realloc/DEBUG bug is fixed.
	[5d290af2d1da]

	* src/lib/data-stack.c:
	lib: data-stack - fix incorrect pointer comparison in t_try_realloc
	in DEBUG builds When trying to work out if it's a valid realloc, we
	need to remember that in DEBUG builds, we have hidden a size value
	(in a MEM_ALIGNED space) before the pointer we return.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[27ceef4cbd10]

	* src/lib/data-stack.c:
	lib: data-stack - fix realloc/lowwater bug If DEBUG is enabled, then
	it can try to look past the low-water mark as the low-water mark
	wasn't moved during successful reallocs. This condition is detected,
	and causes a panic.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3856ea7037db]

	* src/lib/data-stack.c:
	lib: data-stack - t_try_realloc get alloc size right in DEBUG builds
	Also introduce a helper variable for the common expression for
	readability.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[beb56c7124ab]

	* src/lib/data-stack.c:
	lib: data-stack - helper for last alloc ends at block.data+(size-
	left) Less to read, and less noisy.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[5567eedee0c2]

	* src/lib/data-stack.c:
	lib: data-stack - add vital sanity-preserving assert to t_pop If
	something has re-ordered those two offsets, the following memset
	will explode.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[90a8729d81c8]

	* src/lib/data-stack.c:
	lib: data-stack - pull common code out of if/else branches in
	t_malloc_real Once the new block is set up nicely empty for use, it
	can be used exactly like an old block that has enough space - so
	just merge the code paths. (This changeset best viewed ignoring
	whitespace.)

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[87629dec23f1]

	* src/lib/data-stack.c:
	lib: data-stack - reorder full current block code Make the "enough
	space" and "block is full" branches in t_malloc_real have the same
	code structure for parallelism. The 'block' variable is only needed
	very locally, so shrink its scope, and avoid its use once it is
	assigned to current_block, use that instead. Compacter readable
	expressions have been favoured at the expense of longer lines (which
	will soon shrink).

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[76136a4ee1a3]

	* src/lib/data-stack.c:
	lib: data-stack - helper macro for requested/allocated size Rather
	than #if/#else/#endif around such calculations, or even having the
	possibility to mistype such expressions, just extract the
	calculation into a helper macro defined appropriately for the DEBUG
	mode.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[38c7901e9ff6]

	* src/lib/data-stack.c:
	lib: data-stack - disambiguate sizes in t_pop_verify In DEBUG mode,
	the allocated size is bigger than the requested size, so rename the
	variable to reflect its real meaning, and move it into a tighter
	scope in the process.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9d85b31dfb74]

	* src/lib/Makefile.am, src/lib/test-data-stack.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	lib: test-data-stack - too important a library not to be thrashed
	hard OK, it's thrashed a bit by other tests such as aqueue, str,
	etc., but these tests attempt to probe all corner cases given
	detailed knowledge of the limits of the block/frame implementation.

	At the moment, no realloc functionality is tested, as with DEBUG
	builds they would fail very noisily.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1778c2e77cfa]

	* src/lib/data-stack.c:
	lib: data-stack - simplify expressions in
	data_stack_last_buffer_reset Noisy expression used more than once,
	give it a meaningful name.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3e7dbf85d034]

	* src/lib/data-stack.c:
	lib: data-stack - enable tighter sanity checks on stack_block
	allocations The canary doesn't have to be NULL. That's only
	effective if it will be read and dereferenced as a pointer. If used
	as an integer, it's a perfectly boring one, and not likely to draw
	attention to itself.

	Once the canary is in place, at least in debug mode, we can check it
	in every function as a sanity check.

	Make our poison stand out from other poison used elsewhere in the
	code.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b4eec0a20bba]

	* src/lib/data-stack.c, src/lib/data-stack.h, src/lib/imem.c, src/lib
	/mempool-alloconly.c, src/lib/mempool-system.c, src/lib/mempool.h:
	lib: cosmetic - whitespace cleanup in allocator/memory-related code
	Indentation used spaces. Some trailing whitespace found.

	$ git diff -w $

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[a5f479be46b9]

	* src/lib/data-stack.c:
	lib: add rudementary statistics gathering to data-stack debugging
	These currently just enhance the overly-large alloc_size warning
	message in t_malloc_real() to show what the history of allocations
	is. New warnings look like this: Warning: Growing data stack by
	32768 as 'test_run_funcs' reaches 16416 bytes from 202 allocations.

	Future possible directions: t_malloc_real() could be further
	modified to identify badly-behaved regions of code that allocate
	lots of smaller blocks as it happens (which might be noisy). t_pop()
	could be modified to detect such code after it exits its block (so
	just one warning per instance of misbehaviour).

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[d3914e9ffba3]

	* src/lib/data-stack.c:
	lib: add markers to data-stack debug prints Only the DEBUG code will
	have access to the frame's marker.
	[9251b51dda54]

	* src/lib/data-stack.c, src/lib/data-stack.h, src/lib/ioloop.c:
	lib: add identifying markers to data-stack frames Add a string
	parameter to t_push() so that in DEBUG mode, misbehaviour inside a
	stack level can be blamed on someone.

	Default the T_BEGIN macro to automatigally use __FUNCTION__ or
	__FILE__:__LINE__ as that identifier, therefore no clients of those
	macros need to change.

	ioloop used t_push() directly as it wanted customised diagnostic
	strings. To preserve this friendliness, also introduce a
	t_push_named() which takes a format string with paramters.

	Apart from the unused paramter, a non-DEBUG build should see no
	changes.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[6ea0584e3861]

2014-07-28  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/Makefile.am, src/doveadm/doveadm-dict.c,
	src/doveadm/doveadm.c, src/doveadm/doveadm.h:
	doveadm: Added dict commands to access lib-dict via command line.
	For debugging and data dumping purposes.
	[098725138469]

	* src/lib-storage/mailbox-list.c:
	lib-storage: Don't allow '/' for filesystem based mailbox list
	backends if their internal separator isn't '/'. Basically this means
	that Maildir++ shouldn't be allowed to create mailboxes with '/' in
	the name.
	[4b8a098a70b7]

2014-07-25  Timo Sirainen  <tss@iki.fi>

	* src/plugins/last-login/Makefile.am, src/plugins/last-login/last-
	login-plugin.c, src/plugins/last-login/last-login-plugin.h:
	last-login plugin added. It updates user's login timestamp to
	configured dict. Example config:

	plugin { last_login_dict = redis:host=127.0.0.1:port=6379
	#last_login_key = last-login/%u # default }
	[2d2d75ac6715]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Set mail_user->session_id before calling
	mail_user_init()
	[023c6a6af008]

2014-07-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/Makefile.am:
	lib-http: Fixed linking test programs.
	[e07f504f1040]

2014-07-21  Stephan Bosch  <stephan@rename-it.nl>

	* TODO, src/lib-http/Makefile.am, src/lib-http/http-server-
	connection.c, src/lib-http/http-server-private.h, src/lib-http/http-
	server-request.c, src/lib-http/http-server-response.c, src/lib-http
	/http-server.c, src/lib-http/http-server.h:
	lib-http: Added initial support for server-side HTTP API.
	[edcbd75b76ba]

2014-07-21  Timo Sirainen  <tss@iki.fi>

	* src/util/rawlog.c:
	rawlog: Added -i parameter to include the remote IP address in the
	filename.
	[fbf434ad2485]

2014-07-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-status.c:
	mailbox_list_index=yes: Don't update INBOX's STATUS information to
	index. This should reduce disk I/O
	[fd0616d553b0]

	* src/auth/userdb-prefetch.c:
	auth: If userdb prefetch is configured wrong, return temporary
	failure instead of "user not known"
	[535562da7b29]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h, src/lib-http/http-client-request.c:
	lib-http: Debug log now includes where HTTP requests spent their
	time on.
	[b162e39909d7]

	* src/lib/macros.h:
	lib: Added fd=-1 assert to i_close_fd() macro. This way we'll see
	clearly where it fails, instead of just seeing assert in
	close_keep_errno() without an easy way to see where it crashed.
	[94cdc5bcb308]

	* src/lib/ioloop-epoll.c:
	lib: ioloop-epoll didn't correctly check if there were any IO
	events. Alternatively we could have checked for
	array_count(&ctx->events) > ctx->deleted_count, but this code is a
	bit more understandable.

	This change doesn't actually fix any proper bugs, it just causes the
	process to crash instead of going to infinite wait loop.
	[410f263e6fc3]

	* src/lib/file-lock.c:
	lib: file_*_lock() with flock() timeouts should have returned
	errno=EAGAIN (Instead of EINTR.)
	[abc7ebe1dad9]

2014-07-10  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/commands.c:
	lmtp: Remove <> from Delivered-To: header. This annoyingly changes
	Dovecot behavior in the middle of v2.2.x series, but the earlier
	value was definitely wrong.. Perhaps we still need to provide a
	setting for this, but that's pretty annoying as well.
	[70486f364ce0]

	* src/lib/test-istream-tee.c:
	lib: Compiler warning fixes for 32bit systems
	[a366ae9b182f]

2014-07-10  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-istream-tee.c:
	lib: test-istream-tee - randomise which tee stream lags behind the
	others Just in case there's something special about the start or the
	end of the list of children, make each file be the one that lags
	behind the others.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[4f56f24b5bb2]

	* src/lib/test-istream-tee.c:
	lib: test-istream-tee - more randomisation to the tests Signed-off-
	by: Phil Carmody <phil@dovecot.fi>
	[cba6877471ca]

	* src/lib/test-istream-tee.c:
	lib: test-istream-tee - verify _read returns correct values after
	_set_size() Previously, only an increase of 1 in the size was
	tested. This ensures that 0 and numbers > 1 are also tested.

	Also add _idx to the asserts, so we know where in the loop it
	failed.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f87c9ca897a5]

	* src/lib/test-istream-concat.c:
	lib: test-istream-concat - add simultanious limit streams back into
	the mix Return to the previous complex nested stream-type case.

	1 time in 10, it tests the simple case of:

	test_stream \ test_stream -}- concat_stream test_stream / (2-11 of
	these)

	9 times in 10, it tests this configuration instead:

	test_stream \ / limit_stream test_stream -}- concat_stream {-
	limit_stream test_stream / \ limit_stream (2-11 of these) (1-9 of
	these)

	Since 31efe2d04793 lib: istream-concat read() returned -2 too
	early., all tests pass every time.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[4583a0c2e368]

	* src/lib/test-istream-concat.c:
	lib: test-istream-concat - test only concat, not simultanious limit
	streams Test just concat functionality in this unit test.
	Simultanious access of limit streams can be tested elsewhere.

	Without the fix in: 31efe2d04793 lib: istream-concat read() returned
	-2 too early. The failure previously seen in test-istream- concat
	would be still reproducable: test-istream-concat.c:84: Assert
	failed: size >= TEST_MAX_BUFFER_SIZE istream concat random
	................................................ : FAILED test:
	random seed #1 was 1403118493

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9280679be21e]

2014-07-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-
	api.h:
	lib-fs: Added FS_PROPERTY_COPY_METADATA and fs_set_metadata()
	tracking.
	[2fada3a76d10]

2014-07-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c:
	lib-fs: Added username and session_id to struct fs directly.
	[27d269bbbdf0]

	* src/lib-fs/fs-api.h, src/lib-storage/mailbox-list.c:
	lib-fs: Added fs_settings.username and .session_id
	[3f84f9cb7460]

	* src/lib-storage/index/shared/shared-storage.c, src/lib-storage/mail-
	storage-service.c, src/lib-storage/mail-user.h:
	lib-storage: Added struct mail_user.session_id
	[23f0f5f6a365]

2014-07-09  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c:
	lib-http: Made sure that connections that are still connecting to
	the server aren't marked as idle.
	[320a224ad353]

2014-07-07  Timo Sirainen  <tss@iki.fi>

	* 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-transaction-log-append.c, src/lib-index/mail-transaction-
	log-file.c, src/lib-index/mail-transaction-log.h, src/lib-index
	/test-mail-transaction-log-append.c:
	lib-index: Don't update log_file_tail_offset unnecessarily. Update
	it only if we're already writing to transaction log anyway or if
	we're required to update the offset because mail_index_sync_commit()
	has increased it past non-external transactions (this is especially
	important with mdbox map index).
	[16d4cf2c0d65]

	* src/lib-storage/index/istream-mail.c:
	lib-storage: Minor code cleanup to istream-mail. eof=TRUE shouldn't
	be possible with ret=-2, so this just makes it clearer what the
	code's intention is.
	[6b512716b37e]

	* src/lib/istream.c:
	lib: i_stream_read_copy_from_parent() needs to update access counter
	also when returning -2 This finishes the 467a4d19f873 fix.
	[1a38a85d952e]

2014-07-06  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-mail.c, src/plugins/virtual/virtual-
	save.c, src/plugins/virtual/virtual-storage.c:
	virtual: Fixed assert-crashes where trying to open an already opened
	backend mailbox.
	[f1d29866e147]

2014-07-04  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream-tee.c:
	lib: istream-tee wasn't returning data correctly always. This fixes
	an assert-crash in istream-tee.c. (Hopefully it was always assert-
	crashing instead of returning corrupted data.)
	[dffc6dd2be0d]

2014-07-04  Phil Carmody  <phil@dovecot.fi>

	* src/lib/failures.c:
	lib: failures - cosmetic write_full cleanup Error message should
	have a trailing newline. Use the POSIX macro for stderr's file
	number, rather than its numeric value.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[189f97de7ffa]

	* src/config/config-parser.c:
	config: parser - trivial error message typo Signed-off-by: Phil
	Carmody <phil@dovecot.fi>
	[aee2ce74afa8]

2014-07-04  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Small code cleanup
	[16d30ea1e692]

	* src/imap/imap-fetch-body.c:
	imap: If FETCH fails because mail has already been expunged, don't
	log an error.
	[d0d9f79a71eb]

	* src/lib-storage/index/index-mail-headers.c, src/lib-storage/index
	/index-mail.c:
	lib-storage: Bodystructure parsing flags weren't updated correctly
	on error conditions. This fixes an assert-crash sometimes when mail
	parsing failed.
	[cea7c4540ed0]

	* src/lib-storage/index/index-mail.c, src/lib-storage/index/index-
	mail.h, src/lib-storage/index/istream-mail.c:
	lib-storage: istream-mail updates mail->expunged if it notices
	ENOENT from parent stream.
	[c95577fbbe5a]

	* 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:
	lib-storage: Log mail istream read failures in one place. Also
	handle ENOENT errors by checking if the mail has already been
	expunged, and if so don't log an error, just return "mail is already
	expunged" error to client.
	[0902eded882f]

	* src/lib-fs/fs-posix.c, src/lib-imap-storage/imap-msgpart.c, src/lib
	/iostream-temp.c:
	When creating istream-error, give an error string whenever possible.
	[82c9a9b7e6e6]

	* src/lib-storage/index/index-mail.c:
	lib-storage: If mail body reading failed, the error message may have
	contained only minimal errno string. Even though the istream could
	have had a much better internal error message. So show it.
	[9f482e0fc965]

	* src/lib-dict/dict-file.c:
	lib-dict: Removed NFS flushing from dict-file backend.
	[b2f3b9f5d7cc]

2014-07-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: If GUID lookup fails because mbox_min_index_size skipped
	indexes, say so in error message.
	[0343869d47cf]

	* src/plugins/acl/acl-global-file.c:
	acl: Global ACLs now support "patterns with spaces inside quotes"
	[40dc5774aa69]

	* src/plugins/acl/acl-mailbox.c:
	acl: Oops, ignore_acls check was reversed.
	[a372391290a3]

	* src/lib-compression/ostream-bzlib.c, src/lib-compression/ostream-
	lzma.c, src/lib-compression/ostream-zlib.c:
	lib-compression: Compression ostreams may have caused parent ostream
	to use too much memory.
	[00b3aa3842b7]

	* src/lib/ostream-private.h, src/lib/ostream.c:
	lib: Added o_stream_flush_parent_if_needed() for wrapper ostreams.
	[5740cb57d02c]

	* src/plugins/acl/acl-mailbox.c:
	acl: Create struct acl_mailbox also for shared root namespace
	mailboxes. This fixes crashes where imap_acl code attempts to access
	ACLs for nonexistent mailboxes inside shared root namespace.
	Alternatively the imap_acl plugin could have checked the
	nonexistence of ACLs but this is probably easier and more guaranteed
	to work.
	[5f21c78cd7b2]

	* src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Removed code that attempts to deduplicate mail files by
	copying them between user mailboxes. This sometimes started failing
	if the mail that was being used for copying was deleted by the user.
	There's no good way for lmtp code to fix that situation.

	If deduplication is needed, it could be implemented in a more
	generic way inside mailbox_copy() where after initial copy it would
	store the destination struct mail to src_mail->last_copy_dest_mail.
	If another mail is copied, the last_copy_dest_mail could be
	attempted to be used for the copying and if that doesn't work it
	would fallback to regular copying. This should probably be attempted
	only for lda/lmtp processes as it would just cause extra overhead
	for others.
	[51274bf2a47d]

	* src/lib-ssl-iostream/iostream-openssl-context.c, src/login-common
	/ssl-proxy-openssl.c:
	Compile fix for old systems without SSL_OP_NO_COMPRESSION
	[4c4db2d76137]

	* src/plugins/fts-lucene/fts-backend-lucene.c:
	fts-lucene: Delay initialization to fix assert-crash with mbox
	[120b2a1645d8]

2014-07-03  Phil Carmody  <phil@dovecot.fi>

	* src/lib-master/master-service-ssl-settings.c, src/lib-master/master-
	service-ssl-settings.h, src/lib-master/master-service-ssl.c, src
	/lib-ssl-iostream/iostream-openssl-context.c, src/lib-ssl-iostream
	/iostream-ssl.h, src/login-common/ssl-proxy-openssl.c:
	openssl: optionally disable TLS compression Make ssl compression
	optional, but enabled by default. Other ssl options might be
	tweakable in the future, so have a single ssl_options string, and
	explode it into individual flags. (Compare postfix configuration.)
	Based on an idea by Andreas Schulze <sca@andreasschulze.de>

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[cea292767b95]

2014-07-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-subscriptions.c, src/lib-storage
	/mail-namespace.c, src/lib-storage/mail-namespace.h, src/plugins/acl
	/acl-mailbox.c:
	lib-storage: Added mail_namespace_is_shared_user_root() and used it
	where useful. Most importantly this should fix a crash in ACL plugin
	where type=shared namespace was used without any kind of per-user
	prefix/location (i.e. it probably should have been a type=public
	namespace instead).
	[7a60541913e9]

	* src/plugins/acl/acl-shared-storage.c:
	acl: Compile fix caused by previous change
	[ec22ade1f101]

	* 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-private.h:
	lib-storage: Move "shared" storage name to mail-storage-private.h
	where it can be used.
	[9bb653472f16]

	* src/lib-storage/mail-namespace.c:
	lib-storage: Minor parsing fix to namespace types: Use strcmp()
	instead of strncmp().
	[ee568c83319d]

	* 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:
	virtual: Never keep more than specified number of physical mailboxes
	open. This should make virtual mailboxes work for users who have a a
	ton of mailboxes with a ton of mails. Earlier code would likely have
	failed either with "Too many open files" or crashed with "Out of
	memory".

	You can change the max number of open mailboxes with:

	plugin { virtual_max_open_mailboxes = 64 }

	The default is 64.
	[251747c3afe5]

	* src/lib-index/mail-index.c:
	lib-index: Fixed error handling in mail_index_open()
	[092137bd092b]

	* src/lib-index/mail-index-alloc-cache.c, src/lib-index/mail-index-
	alloc-cache.h, src/lib-index/mail-index.c:
	lib-index: Index cache could have kept too many indexes open. If a
	lot of indexes were allocated and then later on they were opened and
	closed, the alloc-cache simply kept all the indexes open even after
	they should have been closed.
	[8944983786cc]

	* src/lib/llist.h, src/lib/test-llist.c:
	lib: DLLIST*_REMOVE*() no longer breaks the linked list if we try to
	remove item that doesn't exist there. Hopefully there wasn't any
	code that actually did this, but it's safer this way anyway. Perhaps
	it could be even made to assert-crash if it happens.
	[46e47e4082d8]

	* src/lib-storage/index/index-status.c:
	lib-storage: mailbox_get_metadata() now opens the mailbox only if
	it's necessary.
	[af665736536c]

	* src/plugins/virtual/virtual-storage.c:
	virtual: Recent flags dropping wasn't working as intended. In the
	old code '+' meant that \Recent flags were dropped also when the
	virtual mailbox was EXAMINEd. SELECTing a mailbox always dropped
	\Recent flags regardless of the '+' flag.

	What should have happened (and does in new code) is that the \Recent
	flags are dropped only on SELECT and only if '+' flag is set.
	[abf049058125]

	* src/plugins/fts/fts-expunge-log.c:
	fts: If we detect corrupted fts expunge log, unlink it. This avoids
	the same error repeating forever.
	[9c6643daae98]

2014-07-03  Phil Carmody  <phil@dovecot.fi>

	* src/lib-imap/test-imap-url.c:
	lib-imap: test-imap-url - cosmetic whitespace cleanup Only
	whitespace changes. All trailing space removed, reindented: $ grep
	'[[:space:]]$' src/lib-imap/test-imap-url.c $ git diff -w $

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[140619879047]

	* src/lib-imap/test-imap-url.c:
	lib-imap: test-imap-url - quieten successful sub-tests Every sub-
	component of a URL doesn't need its own successful log, so use the
	only-print-on-error test_out_quiet() function instead. All failures
	are just as explicit as before.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[55bf79d2e69d]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: test-common - add test_out_quiet() to reduce verbosity
	Like test_out() but only prints anything if success is false. This
	makes it quite much like test_assert(), except that it doesn't print
	the code fragment, it prints a custom string. However, it still
	counts as a test in the total count, unlike test_assert*()s.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[36d07648cec8]

	* src/lib-imap/test-imap-url.c:
	lib-imap: test_imap_url didn't compare port numbers It only compare
	them when they were unset, and defaulting both to 0.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[636b10a03e95]

2014-07-03  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/quota-util.c, src/plugins/quota/test-quota-util.c:
	quota: Quota count tracking still was still incorrect in over-quota
	conditions.
	[6fcf8199b079]

2014-07-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-strmap.c:
	lib-index: Recent idx->seq change in strmap forgot to initialize
	uid_lookup_seq in one place.
	[d25443778208]

	* src/plugins/quota/Makefile.am:
	test-quota-util: Link to quota-util.lo instead of .o Hopefully fixes
	dependency tracking to work correctly?
	[f2f9181f42b1]

	* src/plugins/quota/Makefile.am, src/plugins/quota/quota-util.c,
	src/plugins/quota/test-quota-util.c:
	quota: Fixed quota_transaction_is_over() to handle "user is already
	over quota" case. If size=0 we didn't return failure. This change
	also fixes various potential integer overflows in the check. Added
	unit test for the function.
	[76d573ec5045]

	* src/plugins/quota/Makefile.am, src/plugins/quota/quota-private.h,
	src/plugins/quota/quota-util.c, src/plugins/quota/quota.c:
	quota: Moved some functions to quota-util.c
	[0d4de84a54f0]

	* src/lib/bits.h, src/lib/test-bits.c:
	lib: Added UINT64_SUM_OVERFLOWS() Maybe the unit tests are kind of
	unnecessary since the macro is so simple, but at least it's now a
	well tested simple macro :)
	[d77d880c1385]

2014-07-02  Phil Carmody  <phil@dovecot.fi>

	* src/pop3/pop3-commands.c:
	pop3: pop3-commands - harden integer parsers against integer
	overflow In get_msgnum(), the invalid input "4772185884" (2^32*10/9)
	would be parsed as being valid.

	In get_size(), the invalid input "204963823041217240178" (2^64*10/9)
	would be parsed as being valid.

	We have helpers now, so use them.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[2ed2ab04b63d]

	* src/lib/strnum.c, src/lib/strnum.h:
	lib: strnum - add permissive str_parse_uint() helper Signed-off-by:
	Phil Carmody <phil@dovecot.fi>
	[2051de7285c4]

	* src/lib/uri-util.c:
	lib: uri-util - hardern uri_parse_dec_octet() against overflow
	Invalid input 284 (2^8*10/9) is incorrectly parsed as valid. 28 * 10
	+ 4 = 284 == 28 (mod 2^8), so the wrap detection fails.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[439bba739c49]

	* src/lib-http/test-http-url.c:
	lib-http: test-http-url - add some tricky invalid numeric hostname
	URLs Try to get the numeric octet parser to fail. The RFCs specify
	that we should fall back onto parsing them as domain names instead,
	and hence the unexpected legitimacy of out-of-range numbers.

	NOTE: This causes make check to report the following error: http url
	valid [11]:
	http_url_parse(http://127.0.0.284/this/also/reverts/to/DNS) : ok
	test-http-url.c:328: Assert failed: urlp->have_host_ip ==
	urlt->have_host_ip http url valid [11]
	.................................................. : FAILED

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[a39ccb12c14f]

	* src/lib/uri-util.c:
	lib: uri-util - harden uri_parse_port against overflow The invalid
	input 72817 (2^16*10/9) is parsed as a valid value. 7281 * 10 + 7 =
	72817 == 7281 (mod 2^16), so the prev check fails.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[659ea72a82aa]

	* src/lib-http/test-http-url.c:
	lib-http: test-http-url - make port number test cases harder Exploit
	common parser weakeneses - out by one, and overflow detection
	failure.

	NOTE: causes make check to fail with the following error: http url
	invalid [13]: parse http://example.com:72817/index.html ..... :
	FAILED http url invalid [13]
	................................................ : FAILED

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f21e0f0e42a3]

	* src/imap/imap-fetch-body.c:
	imap: harden read_uoff_t() against overflow Invalid strings like
	"20496382304121724029" (2^64*10/9) can be parsed as valid. Use the
	new helper.

	Change in error behaviour - previously overflows, if they were
	detected, caused *p to point to the digit causing the overflow. Now
	it's undefined. Current clients don't care about this difference,
	they just bail.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9b9b6dc7dd9b]

	* src/lib/strnum.c, src/lib/strnum.h:
	lib: strnum - add a permissive uoff_t parser Functions like these
	are so cookie-cutter, we may as well use a macro. Note that signed
	helpers, if they ever appear, will need more care.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[dfc55d17314a]

	* src/lib/test-strnum.c:
	lib: test-strnum - tests for the new partial-string parser We can
	simplify the main tests by always testing whether an appended non-
	digit causes parsing to fail at the same time that we test it
	doesn't fail with the new more permissive helpers.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[85a44b4b121a]

	* src/lib/strnum.c, src/lib/strnum.h:
	lib: strnum - add permissive partial-string integer parser Not all
	strings we want to parse are already strtok'ed into separate pieces.
	Therefore add helpers which will read the integer, and return a
	pointer past the parsed integer.

	The previous helpers can be considered a special case which just
	follows up with a check that the '\0' has been reached.

	Showing a preference for const pointers generally, this does not try
	to mimic the non-const interface of strto{l,ul,ll,ull}().

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[27006dc092d2]

	* src/lib-imap/imap-url.c:
	lib-imap: number parsing simplification and hardenning The invalid
	string "4772185884" (2^32*10/9) will be misparsed as being valid. In
	uint32_t's, 477218588 * 10 + 4 = 477218588 Many large ranges have
	this issue, 477218588x-858993459x, 954437176x-...

	We have helper functions - use them.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[59b6893fbf65]

	* src/lib/strnum.c:
	lib: strnum - harden str_to_uintmax against overflows The invalid
	number "20496382304121724020" (2^64*10/9) will be parsed as valid.
	2049638230412172402 * 10 does not noticably wrap, it becomes
	2049638230412172404

	Do not perform operations which might wrap, and then try to detect
	the issue, just compare with the known fixed bounds before doing the
	multiplication.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1d873182d5a8]

	* src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib
	/test-strnum.c:
	lib: test-lib - add unit tests for str_to_*() helpers This doesn't
	test all the helpers, but ensures both signed and unsigned are
	tested, as are 32-bit and 64-bit cases. All the other helpers fall
	back onto using one of those cases. Unless uintmax_t is larger than
	64 bits, in which case this needs a revisit.

	NOTE: This causes the following make check errors: test-strnum.c:35:
	Assert(#7) failed: ret == u64tests[i].ret test-strnum.c:35:
	Assert(#10) failed: ret == u64tests[i].ret test-strnum.c:37:
	Assert(#10) failed: val == u64tests[i].val str_to_uint64
	........................................................ : FAILED

	Corresponding to test cases: [7] = INVALID(18446744073709551616),
	This does not wrap-past-0 (become smaller) on multiply, but wraps-
	past-0 on addition. [10]= INVALID(20496382304121724020), This wraps-
	past-n (becomes larger) on multiply.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[6c1e44033e60]

	* src/lib/test-var-expand.c:
	lib: test-var-expand - use test_assert_idx() inside loops It helps
	narrow down which test has failed.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1278fed4f2c9]

2014-07-02  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.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-message-parser.c,
	src/lib-http/http-parser.c, src/lib-http/http-parser.h, src/lib-http
	/http-request-parser.c, src/lib-http/http-response-parser.c, src
	/lib-http/http-transfer-chunked.c, src/lib-http/http-url.c:
	lib-http: Updated comments to RFC7230/RFC7231.
	[9511372c7c18]

2014-07-01  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-parser.c:
	lib-http: Fixed bug in parsing of quoted string with escape
	sequences.
	[3e0e4dd7fb65]

2014-07-01  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Added -n to usage text.
	[2be0234cef8e]

	* src/lib-http/http-client-request.c, src/lib-http/http-client.h:
	lib-http: Added http_client_request_get_target() This can be useful
	in error message logging without having to duplicate the string.
	[40e128ff3537]

2014-06-30  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-parser-tika.c:
	fts-tika: Hiden "Unsupported Media Type" errors. Log HTTP status
	code on errors.
	[2c2b94840ff3]

	* src/plugins/fts/fts-parser-tika.c:
	fts-tika: Fixed crash if Tika returned 200 reply without payload.
	[49dfc6da1786]

	* src/lib-storage/mail-storage.c:
	lib-storage: Shrink "mailbox is being deleted" timeout from 5 mins
	to 30 secs. Even 30s may be too much since normally a few seconds
	would be enough, but keep it high enough just in case.
	[c8c9e3a85625]

	* src/lib-storage/index/index-storage.c:
	lib-storage: When deleting mailbox, finish the expunges before
	marking mailbox deleted. This decreases the amount of time the
	mailbox is visible but not accessible.
	[0279f9d2bd81]

	* src/lib-storage/mail-storage.c:
	lib-storage: mailbox_delete() now handled "mailbox is being deleted"
	explicitly. Earlier we just treated it as \NoSelect mailbox and
	failed later.
	[2b1c5a96b416]

	* src/lib-storage/index/index-storage.c, src/lib-storage/index/index-
	storage.h:
	lib-storage: Added index_storage_mailbox_delete_pre/post(). This
	avoids reimplementing the whole index_storage_mailbox_delete() for
	storage backends that need to do more work in the middle.
	[0eee02b75557]

	* src/imap/imap-commands-util.c:
	imap: If we disconnect client because mailbox is inconsistent, send
	the error message before BYE.
	[852bc94983ab]

	* src/imap/imap-commands-util.c:
	imap: Don't disconnect due to inconsistent mailbox unless the
	mailbox is the selected mailbox.
	[d09ecf549f6a]

2014-06-27  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-imap/imap-url.c, src/lib-imap/test-imap-url.c, src/lib/uri-
	util.c:
	imap-url: Fixed handling of ipath-empty syntax (basically empty
	relative URLs). This also normalizes Mailbox/ to Mailbox. Initial
	indication reported by Coverity.
	[3f9d15b600b1]

2014-06-27  Timo Sirainen  <tss@iki.fi>

	* src/auth/userdb-nss.c:
	auth: Added assert to make sure sysconf() returns what we expect.
	userdb nss shouldn't even be used though. So this is mainly to
	silence Coverity.
	[1abf8621981a]

	* src/lib/istream-concat.c:
	lib: istream-concat read() returned -2 too early.
	[31efe2d04793]

2014-06-27  Phil Carmody  <phil@dovecot.fi>

	* src/lib/rand.c:
	lib: rand - force reseeding with known seed from environment Use
	DOVECOT_SRAND=12345 as an environmental variable to force seeding to
	that number.

	The logic behind the logging is that the subsequent calls will
	almost certainly be from random_fill_weak() which expects to have
	been seeded from a CSPRNG - not a constant! Having this
	environmental variable set in a production system that expects
	CSPRNG seeding should be flagging diagnostics.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[fe0c69112049]

	* src/lib/test-buffer.c, src/lib/test-istream-concat.c:
	lib: remove unwanted srand()s from unit tests We'll get better
	coverage without them.

	Note: this change causes the following test case failure
	occasionally: test-istream-concat.c:88: Assert failed: size >=
	TEST_MAX_BUFFER_SIZE istream concat random
	................................................ : FAILED test:
	random seed #1 was 1403027537

	(The seed may vary, obviously.)

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9fd5c57fa49b]

	* src/lib-test/test-common.c:
	lib-test: use the new srand() tracking helpers to aid debugging We
	can only be sure we know the entirity of the stream of numbers
	returned by rand if rand_set_seed has been called precisely once, as
	after that we can't be sure when it was called a 2nd or further
	time. However, at least we can know that that has happened.
	(Likewise, any calls to srand() will disturb the flow.)

	Most unit test cases should be simple enough that there should be
	only one seeding.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[06f29889af37]

	* src/lib/lib.c, src/lib/randgen.c:
	lib: use new srand() wrapper in lib Of course, multiple seeding
	calls make it harder to know exactly what numbers have been
	generated. But this is better than nothing.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[14f505c1c6f4]

	* src/lib/Makefile.am, src/lib/lib.h, src/lib/rand.c, src/lib/rand.h:
	lib: add rand helper library Initially, just wrap srand() so that we
	can find out what the last-used seed was. In situations where
	srand() is called only once (via this helper) this lets us reproduce
	exactly the same stream of random data again in order to reproduce
	rare crashes.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f9deece0002f]

	* src/lib/file-dotlock.c, src/lib/test-buffer.c:
	lib: two quite literally random little cleanups file-dotlock.c does
	not use randgen.h, remove the #include test-buffer.c random() has
	been used rather than rand()

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[60fbbf7ea75d]

	* src/lib/printf-format-fix.c:
	lib: make printf_format_fix safer against shadowed %m behaviour If
	there's a %m followed by a %n or %m, then the %n or %m won't be
	seen. For %m, that's mostly harmless, but for %n it's potentially
	kaboom.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[06f90ecbfb70]

	* src/lib/Makefile.am, src/lib/test-lib.c, src/lib/test-lib.h, src/lib
	/test-printf-format-fix.c:
	lib: test printf_format_fix() Signed-off-by: Phil Carmody
	<phil@dovecot.fi>
	[2c0b4244b935]

	* src/lib/test-istream-concat.c:
	lib: test-istream-concat - early abort test loop on failure No point
	in continuing past the first failure.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[77f21248d29e]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: Enable looped tests to abort early on first failure Give
	them the ability to query the current failure state.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[e1686f44f2e7]

2014-06-27  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/client.c, src/lmtp/commands.c:
	lmtp: Reduce corking so we get command replies more quickly even if
	they are pipelined. This may help avoid some LMTP client timeouts.
	[cfc2670398d7]

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Make sure DATA stream size doesn't change unexpectedly.
	[1b9356dbfca2]

	* src/lib-lda/lmtp-client.c:
	lib-lda: If DATA input stream read fails, return error instead of
	truncating the mail.
	[1495857f0698]

2014-06-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-connection.c, src/lib-imap-client/imapc-
	connection.c, src/lib-storage/index/pop3c/pop3c-client.c, src/lib
	/iostream-rawlog.c:
	lib: Moved rawlog dir stat()s to iostream_rawlog_create()
	internally. This is required to allow TCP rawlogs to actually work.
	[4bc7c1ad21a8]

	* src/lib/iostream-rawlog.c:
	lib: iostream-rawlog now supports TCP target with "tcp:host:port" as
	the path. We'll use blocking sockets, so a slow rawlog server causes
	performance problems also for Dovecot while it's waiting on rawlog
	writes.
	[f3134d3a7ff1]

	* src/lib-storage/index/index-mail.c:
	lib-storage: BODYSTRUCTURE parsing failures weren't treated
	correctly. We still assumed that the parsing succeeded and assert-
	crashed later or maybe returned invalid results. (This could have
	happened only if there was a problem reading the mail stream.)
	[5c2bc165c5e9]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Fixed infinite looping on error condition.
	[25326be366c5]

	* src/lib-storage/index/dbox-common/dbox-mail.c:
	dbox: mail_get_special() may have returned MAIL_FETCH_POP3_ORDER
	allocated from data stack. Although this seems to have worked for
	now, it shouldn't have been done.
	[55041cf555b7]

2014-06-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-test/test-common.c:
	lib-test: Fixed "Trying to allocate 0 bytes" assert-crash caused by
	recent test-istream changes.
	[705fd8f3f485]

2014-06-20  Timo Sirainen  <tss@iki.fi>

	* src/lib/fdpass.c:
	lib: fd_recv() no longer checks for msghdr.msg_controllen It doesn't
	work at least in OpenBSD and Tru64, and apparently it shouldn't
	really be needed anyway, so don't bother with it. We'll still keep
	checking the cmsghdr since that appears to work everywhere now.
	[38cd37cea8b1]

2014-06-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/mbox/mbox-save.c:
	mbox: istream-tee wasn't being used as expected with the new
	changes, causing crashes/hangs. After wondering about this for a
	while I decided this was the only fully reliable way of doing this.
	Although it would have been possible to change the istream-tee code
	to support this:

	child1 and child2 are tee-istream children:
	 - i_stream_read(child1)
	 - i_stream_read(child2)
	 - i_stream_get_data(child1)

	Because reading from the parent istream-tee updates all of its
	childrens' buffer, there's no big problem (other than access_counter
	currently messing up). But if one of the children weren't a direct
	child of tee-istream, but there was a wrapper istream, the wrapper's
	buffer wouldn't have been updated by the istream-tee read. So rather
	than spending time figuring out to fix the access_counter it's
	probably better to have it clearly fail as the use case can't be
	fully safe anyway.
	[5138932352d3]

	* src/lmtp/lmtp-proxy.c:
	lmtp: Create all proxy DATA streams before reading from them. I'm
	not sure if this actually fixes anything or not, but it's still
	safer to do it this way.
	[119adb7d2479]

	* src/lib/istream.c:
	lib: i_stream_read_copy_from_parent() now directly updates the
	access counter This fixes a bug in istream-mail where it called
	i_stream_get_data() after it and reset the stream's skip/pos.
	[467a4d19f873]

	* src/lib/istream.c, src/lib/istream.h:
	lib: i_stream_get_data() should also reset eof=FALSE if it truncates
	the output.
	[0d072ade062d]

	* src/lib-mail/test-istream-dot.c:
	lib-mail: Fixed istream-dot unit test to work with the istream-test
	changes.
	[00df4f6b5222]

	* src/lib/istream.c:
	Compiler warning fix
	[41e8c66235cf]

	* src/lib/Makefile.am, src/lib/istream.c, src/lib/test-istream.c,
	src/lib/test-lib.c, src/lib/test-lib.h:
	lib: If two istreams share one parent, i_stream_get_data() may have
	returned corrupted data to another. This happened only for istreams
	that used parent's buffer directly instead of having their own
	buffer. For now at least we've solved this by truncating the other
	stream's buffer so it needs to be read again. Hopefully this is good
	enough.

	Added also unit test to check this functionality.
	[01061ac25fe1]

	* src/lib-test/test-common.c:
	lib-test: Improved test-istream to catch more bugs
	[627f2a2ba362]

	* src/lib/istream-base64-decoder.c:
	lib: Fixed read buffer overflow in istream-base64-decoder error
	handling
	[c65b4c41698c]

	* src/lib/json-parser.c:
	lib: Fixed potential read buffer overflow in JSON parser.
	[07456a200816]

2014-06-16  Timo Sirainen  <tss@iki.fi>

	* src/login-common/client-common-auth.c, src/login-common/login-
	common.h, src/login-common/login-settings.c, src/login-common/login-
	settings.h, src/login-common/main.c:
	login proxy: Added login_source_ips setting. The setting contains a
	list of IPs/hosts. The setting may be prefixed with "?" character to
	indicate that only those IPs should be used that exist in the
	current server (allowing the same config to be shared by multiple
	servers).

	The IPs are used round robin as the source IP address when proxy
	creates TCP connections. This becomes useful when there are a ton of
	connections from the proxy to the same destination IP, because TCP
	ports run out after ~64k connections.
	[b6733f4777f1]

	* 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: If passdb returns "source_ip" extra field, use it for
	outgoing connections.
	[75d254897442]

	* src/lib/data-stack.h, src/lib/imem.h, src/lib/macros.h,
	src/lib/mempool.h, src/lib/strfuncs.h:
	lib: Use __attribute__((returns_nonnull)) for the common
	memory/string functions. Also added a couple of missing
	ATTR_MALLOCs.
	[6abf982c268d]

	* src/lib/mempool.h:
	lib: Changed mempool.h to use inline functions instead of macros.
	This way we can also mark p_malloc() with ATTR_MALLOC.
	[5de6a5f241db]

	* src/doveadm/doveadm-who.c:
	doveadm who: Don't crash if server happens to send broken input
	(second try). Found by Coverity
	[24659b98b271]

	* src/doveadm/doveadm-dump-log.c:
	doveadm dump: Avoid crashes with corrupted log files
	[d6882dfa08d7]

	* src/doveadm/doveadm-dump-log.c:
	doveadm dump log: Fixed potential crash when log header size was
	corrupted.
	[b2e16f0e88db]

	* src/doveadm/dsync/dsync-ibc-stream.c, src/login-common/ssl-proxy-
	openssl.c:
	Added (void) prefix for ignoring return values we don't care about.
	Hopefully this quiets down Coverity warnings also of them?
	[de20b4fa60ac]

	* src/doveadm/doveadm-dump-log.c, src/lib-storage/index/dbox-common
	/dbox-file.c, src/master/main.c, src/util/maildirlock.c:
	Check for syscall errors that are quite unlikely to happen. Flagged
	by Coverity.
	[3d3796c15074]

	* src/plugins/fts/xml2text.c:
	xml2text: Check for read()/write() failures and exit if they fail.
	[fc40b1a6e962]

	* src/lmtp/lmtp-proxy.c:
	lmtp: Proxying now logs successful and failed deliveries after DATA.
	[20e8ed98357b]

	* src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h:
	lmtp: Removed some unnecessary code
	[50ede76b8d2b]

2014-06-15  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Fixed wrong assert added by recent commit.
	[854a1719c840]

2014-06-14  Phil Carmody  <phil@dovecot.fi>

	* src/lib-imap-urlauth/imap-urlauth-connection.c, src/lib-storage/list
	/mailbox-list-subscriptions.c:
	trivial variable-non-use fixes Flagged by coverity. In one, as we're
	printing an error message, we can actually put the string to use,
	which might aid debugging. In the other, the variable can just be
	killed.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b9886d5e2225]

2014-06-13  Phil Carmody  <phil@dovecot.fi>

	* src/plugins/fts-lucene/Snowball.cc:
	fts-lucene: Fix SnowballAnalyzer constructors Coverity found the
	uninitialised pointers in the latter constructor (which is never
	used - kill it?). In comparing the other constructor, the lack of
	strdup() jumped out at me.

	In fixing them both I migrated them to actual C++ initialisers,
	rather than dumb assignments to uninitialised members. Also migrated
	to dovecot's i_* functions. Also fixed indentation for the 3
	functions touched.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[d2ecee775c1f]

2014-06-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-auth/auth-server-connection.c, src/lib-master/master-auth.c,
	src/lib-master/master-login-auth.c, src/lib-settings/settings-
	parser.c, src/login-common/ssl-proxy-openssl.c:
	Added several asserts to make sure duplicates aren't inserted into
	hash table. The previous commit hopefully fixed the problem causing
	auth and login processes to sometimes die with "key not found from
	hash" error, but if not maybe one of these will catch it.
	[f6e2fa1afa45]

	* src/lib-master/master-service-settings-cache.c:
	lib-master: Fixed caching settings where both local_name and
	local_ip was specified. Since cache_find() didn't use local_ip for a
	lookup when local_name existed, cache_add() shouldn't add both of
	them either, otherwise it could be inserting duplicate values to the
	cache hash and cause crashes.
	[1fcaa7d0b35e]

	* src/lib-index/mailbox-log.c, src/lib/hmac-cram-md5.c:
	Make sure we don't shift signed integers left by 24. They should be
	unsigned.
	[5416df86b603]

	* src/lib-storage/index/dbox-common/dbox-file-fix.c:
	dbox: Fixed potential infinite looping when scanning a broken dbox
	file.
	[892aee3e5a05]

	* src/auth/auth-request.c:
	auth: Fixed handling userdb_userdb_import passdb extra field. Looks
	like some hg merging went wrong. Found by Coverity
	[87da927c3c19]

	* src/lib-http/http-transfer-chunked.c:
	lib-http: Removed unnecessary for loop. Found by Coverity
	[368b8af23c3f]

	* src/lib-storage/index/dbox-common/dbox-file-fix.c:
	dbox: Added asserts to dbox file fixing to make sure it doesn't go
	to infinite loop. There apparently is a bug in here that will
	trigger this assert.
	[03520d887a4f]

	* src/imap/imap-client.c, src/pop3/pop3-client.c:
	imap, pop3: Remove the client from clients-list at the very end of
	the destroy function. Especially with imap code the process title
	could have been refreshed too early.
	[53742463a9fe]

	* src/lib/ioloop-notify-inotify.c:
	Compiler warning fix
	[50889bc95f45]

	* src/auth/mech-winbind.c, src/auth/userdb-passwd-file.c, src/config
	/config-parser.c, src/doveadm/doveadm-director.c, src/doveadm
	/doveadm-dump-dbox.c, src/doveadm/doveadm-log.c, src/doveadm
	/doveadm-penalty.c, src/doveadm/doveadm-replicator.c, src/doveadm
	/doveadm-stats.c, src/doveadm/doveadm-who.c, src/doveadm/doveadm-
	zlib.c, src/lib-compression/test-compression.c, src/lib-imap-urlauth
	/imap-urlauth-connection.c, src/lib-lda/smtp-client.c, src/lib-
	master/master-instance.c, src/lib-master/mountpoint-list.c, src/lib-
	settings/settings-parser.c, src/lib-settings/settings.c, src/lib-
	storage/index/cydir/cydir-mail.c, src/lib-storage/index/dbox-common
	/dbox-file.c, src/lib-storage/index/imapc/imapc-save.c, src/lib-
	storage/index/maildir/maildir-mail.c, src/lib-storage/index/raw/raw-
	storage.c, src/lib-storage/list/subscription-file.c, src/lib
	/iostream-temp.c, src/lib/istream-seekable.c, src/plugins/fts/fts-
	parser-script.c, src/plugins/zlib/zlib-plugin.c,
	src/replication/replicator/replicator-queue.c, src/ssl-
	params/main.c, src/util/rawlog.c:
	Use the new [io]_stream_create_fd_*autoclose() functions wherever
	possible.
	[b67c1c9bf1a5]

	* src/lib/istream-file.c, src/lib/istream.h, src/lib/ostream-file.c,
	src/lib/ostream.h:
	lib: Added [io]_stream_create_fd_*autoclose() These make it clearer
	that the fd parameter will be closed automatically when the stream
	is closed.

	Eventually (in v2.3) we'll want to get rid of the autoclose boolean
	parameter in [io]_stream_create_fd().
	[0bcb43692d91]

	* src/doveadm/doveadm-stats.c:
	doveadm stats top: Fixed double-close()ing stats connection
	[f42dfaebdfc4]

	* src/director/director-test.c:
	director-test: Fixed double-close() on admin connection deinit
	[2e7987633f8b]

	* src/auth/auth-request.c, src/lib-imap-client/imapc-client.c, src
	/lib-index/mail-index-map-read.c, src/lib-settings/settings.c, src
	/lib-storage/index/dbox-common/dbox-save.c, src/lib-
	storage/index/mbox/mbox-save.c, src/lib-storage/list/mailbox-list-
	index-sync.c, src/lib/connection.c, src/lib/ioloop-notify-inotify.c,
	src/master/main.c:
	Added various asserts to try to silence Coverity false positives.
	[4a396f0c3b79]

	* src/lib-mail/message-parser.c:
	lib-mail: message_parser_parse_next_block() now fully clears block_r
	to be safe case. I'm not away of this hitting any bugs, but better
	to be safe.
	[d26130954761]

	* src/doveadm/doveadm-dump-index.c, src/lib-http/http-request-
	parser.c, src/lib/iso8601-date.c:
	Added "fall through" comments to switch statements where break is
	intentionally missing. This should make Coverity quiet about these..
	[1aca4e8811dc]

	* src/lib-storage/list/mailbox-list-index.c:
	lib-storage: Fixed parsing corrupted mailbox list index header.
	Duplicate IDs should have caused an error instead of being silently
	ignored. Found by Coverity
	[69fe8462ec21]

	* src/imap-urlauth/imap-urlauth-worker.c:
	imap-urlauth: Fatal failure error handling wasn't done correctly.
	Found by Coverity
	[da3a8fcd91db]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Synchronous notification timeout error wasn't
	logged as intended. Found by Coverity
	[f5cb6a0d615b]

	* src/lib-otp/otp-parse.c:
	lib-otp: OTP_MAX_WORD_LEN wasn't actually enforced, any word lengths
	could have been used. Doesn't look like this could have caused any
	real problems. Found by Coverity
	[ecbe9abc14e3]

	* src/plugins/fts/doveadm-dump-fts-expunge-log.c:
	fts: Improved doveadm fts dump for corrupted expunge log Although we
	may still be trying to allocate up to 2 GB of memory, but at least
	no more than that now. Found by Coverity
	[54f1beb8d071]

	* src/lib/file-dotlock.c:
	lib: Fixed file_dotlock_replace(flags=DOTLOCK_REPLACE_FLAG_VERIFY_OW
	NER|DOTLOCK_REPLACE_FLAG_DONT_CLOSE_FD) The verification check
	failed because fd was already set to -1 by that time. Found by
	Coverity
	[aac4f4b886d2]

	* src/director/login-connection.c:
	director: Fixed crash if master_user_separator is set, but we didn't
	do a proxy lookup. Found by Coverity
	[899cf87a687c]

	* src/lib-imap-client/imapc-connection.c, src/lib-storage/index/imapc
	/imapc-mailbox.c:
	imapc: Avoid crashing if server happens to send invalid resp-text-
	codes. If [KEY VALUE] is missing the VALUE, just set it to ""
	instead of NULL. Found by Coverity
	[800a28db8116]

	* src/plugins/fts/doveadm-dump-fts-expunge-log.c:
	fts: Minor code cleanup: Don't increment NULL pointer.
	[0fc86de05ccf]

	* src/director/director.c, src/doveadm/dsync/dsync-mailbox-import.c,
	src/lib-index/mail-index.c, src/plugins/acl/doveadm-acl.c:
	Removed pointless NULL checks. Found by Coverity
	[203b3a6f508f]

	* src/auth/auth-request.c, src/auth/userdb-passwd-file.c, src/auth
	/userdb-template.c:
	auth: Invalid userdb passwd-file and userdb templates may have
	caused crashes. Using just "key" parameter instead of "key=value"
	usually worked, but for some keys the code assumed that there was a
	value and it dereferenced NULL. We'll solve this by just using
	value="" instead of value=NULL. Found by Coverity
	[9b1734587b28]

	* src/auth/db-dict.c:
	auth: passdb/userdb dict settings file parsing didn't handle errors
	correctly. Found by Coverity
	[a07ddd1b2763]

	* src/lib/net.c:
	lib: Changed net_geterror() to return errno instead of -1 if
	getsockopt() fails. None of the callers were actually checking for
	the -1 error value but instead just passing it to strerror(). Since
	this error should just about never happen it's better to just return
	a usable return value than try to remember to handle errors that
	can't normally even happen. Found by Coverity
	[2e239d925c09]

	* src/doveadm/doveadm-sis.c:
	doveadm sis deduplicate: Error handling fix if open() fails. Found
	by Coverity.
	[c699a3eb0b75]

	* src/lib/net.c:
	lib: Added (void) prefixes to some setsockopt() calls which we don't
	care if they fail.
	[e279bd060c28]

	* src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c:
	dsync: Fixed potential crash when debug logging was enabled. Found
	by Coverity.
	[fd6d650f292e]

2014-06-12  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: X-Delivery-ID: and X-IMAP: headers weren't dropped from
	incoming mails. Because of a missing comma.. Found by Coverity.
	[362ad646e37a]

	* src/doveadm/doveadm-who.c:
	doveadm who: Don't crash if server happens to send broken input.
	Found by Coverity.
	[beb44a468a73]

	* configure.ac:
	configure: Don't actually run the test to see if inotify works. It's
	definitely no longer needed in modern Linux systems and the test
	itself can also unintentionally fail sometimes.
	[0d2824d5088d]

	* configure.ac, src/lib/hash.c, src/lib/hash.h:
	lib: Changed hash_table_remove() "key not found" panic to be in a
	macro itself. This makes it much easier to find out where such
	crashes are coming from. Since this breaks the ABI in such a many
	places the ABI version number was increased immediately..
	[5c617a5036f3]

2014-06-10  Phil Carmody  <phil@dovecot.fi>

	* src/lib/test-bits.c:
	lib: test-bits - fix nearest_power for 32-bit size_t The test
	blindly went up to b=63, and the function correctly asserted.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[655c4b63035c]

2014-06-10  Timo Sirainen  <tss@iki.fi>

	* src/util/rawlog.c:
	rawlog: Buffer writing to rawlog files to improve performance.
	[c8efc101826b]

2014-06-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-sis.c:
	lib-fs: Fixed crash in fs-sis if hard linking failed. (For example
	because there were too many hard links.) Pointed out by Pavel Stano
	[7b25994a8cb7]

2014-06-09  Phil Carmody  <phil@dovecot.fi>

	* src/lib/numpack.c, src/lib/test-numpack.c:
	lib: fix numpack overflow checking As on broken input, bits may grow
	without limit, so << bits becomes Undefined Behaviour. Add a simple
	check to the while loop to prevent this.

	Also, the (presumably) final byte adds something to the bit length,
	so include that in the tally. If we didn't get to a final byte due
	to the above while() condition, then this extra addition does no
	harm

	Now we can precisely check for overflow conditions. Note that 64
	bits is perfectly OK, only 65+ is an overflow.

	Note - no longer moving *p if there was a decode error.

	Expand the test suite to check for overflow cases. Also checked for
	short-input cases too, while I was there.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1c276f2e59a5]

	* src/lib/Makefile.am, src/lib/test-bits.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	lib: unit tests for lib/bits Signed-off-by: Phil Carmody
	<phil@dovecot.fi>
	[bc4f09a5cb11]

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: test_assert helper for loops If you're repeatedly testing
	the same expression in a loop, it's good to know where you are in
	the loop. Add an additional parameter for these cases.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[ed9e50227250]

	* src/lib/Makefile.am, src/lib/bits.c, src/lib/bits.h, src/lib/lib.c,
	src/lib/lib.h:
	lib: bit twiddles bits_requiredXX() gives the number of bits
	required to store an unsigned integer. Here, XX is 8, 16, 32, 64,
	reperesenting the size of the operand. It belongs in the same file
	as nearest_power(), which makes most sense in a separate bit
	twiddles file. Universal enough to stay in lib.h by inclusion.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f7af15d654c3]

	* src/lib/macros.h:
	lib: Fix MEM_ALIGN to cope with huge allocations Attempting to
	allocate 2^32+1 bytes will look like it succeeds, as MEM_ALIGN will
	set alloc_size = 8. The caller will then think it's got 4 gig to
	play with.

	e.g. t_malloc0 will wipe vast areas of memory before segfaulting,
	which might include useful information we'd like in a corefile.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f9349a3c2604]

2014-06-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-modseq.c:
	lib-index: modseq -> {log file, offset} lookup often ignored
	dovecot.index.log.2 This caused the code to think that the modseq
	was too old and fall back into slower sync.

	So this change should fix the dsync "Modseq .. nom longer in
	transaction log" warnings as well as improve IMAP QRESYNC
	efficiency.
	[98195220a0f7]

	* src/lib/Makefile.am, src/lib/test-hash.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	lib: Added some kind of a unit test for hash table. Just try out
	some insert+deletes randomly. Mainly I wrote this to check if there
	is some obvious problem, but looks like not.
	[ff8402fe378e]

	* src/lib-ssl-iostream/ostream-openssl.c:
	lib-ssl-iostream: Implement get_used_size() method. Previously we
	were always returning that we didn't have anything buffered, which
	could have caused huge memory usage (or malloc failures) with its
	users (e.g. dsync).
	[3e78375be391]

	* src/login-common/client-common.c:
	login-common: Fixed potential crash at client disconnect. Broken by
	recent change
	[5259f6320e52]

2014-06-09  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/login-common/ssl-proxy-openssl.c:
	login-common: Fixed infinite loop in ssl proxy flushing.
	[7129fe8bc260]

2014-06-09  Timo Sirainen  <tss@iki.fi>

	* src/login-common/login-proxy.c:
	login proxy: Fixed connection hanging due to wrong ostream cork
	pairing
	[6a9508d28d34]

2014-06-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-status.c:
	lib-storage: Mailbox list index updating didn't check properly if
	modseq tracking is enabled. mail_index_modseq_enable() can be
	enabled (e.g. by virtual plugin) without enabling
	MAILBOX_FEATURE_CONDSTORE.

	(Actually the MAILBOX_FEATURE_* probably should be removed from lib-
	storage entirely. They're too much of an IMAP feature.)
	[feea8645c4d7]

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Mailbox list index refreshing shouldn't check cur/new dirs
	with maildir_very_dirty_syncs=yes The recent
	mailbox_list_index_very_dirty_syncs change broke this. Just because
	maildir_very_dirty_syncs=yes, it doesn't mean that
	mailbox_list_index_very_dirty_syncs=yes also.
	[6b9699ab7576]

	* src/login-common/client-common.c, src/login-common/ssl-proxy-
	openssl.c:
	*-login: Flush SSL output when logging out. The BYE and LOGOUT
	replies weren't being sent when they were sent from imap-login
	process (before logging in).
	[09d3c9c6f0ad]

2014-06-04  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: When doing recursive deletion, delete also the
	directories if needed.
	[304d545927d2]

2014-06-03  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-tree-fill.c:
	dsync: Fixed renaming duplicate mailbox GUIDs. We were trying to use
	only the last part of the hierarchical name instead of the full
	name.
	[9b2900369a72]

2014-06-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-ssl-iostream/iostream-openssl-context.c:
	lib-ssl-iostream: Use SSL_MODE_RELEASE_BUFFERS if it exists to
	reduce memory usage.
	[5c877bca95e5]

2014-06-02  Phil Carmody  <phil@dovecot.fi>

	* src/lib-index/mail-index-strmap.c:
	mail-index: make uid_lookup_idx hold a sequence number, not a
	0-based C array index Rename it to _seq, and make it hold values 1..
	rather than 0.. . Several uses of the value are simplified by this
	change, and none are made more confusing, so I think it helps
	improve maintainability of the code.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[2d5c66e8d77c]

	* src/lib-index/mail-index-view-sync.c:
	mail-index: use _REC_AT_SEQ not _MAP_IDX in
	view_sync_get_log_lost_changes Shifting i and j up by one to use in
	the new macro means we don't need the +1's in the calls to
	view_sync_apply_lost_changes and mail_index_map_lookup_keywords.
	Rename them as seq variables too.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[26e097feb136]

	* src/lib-index/mail-index-view.c:
	mail-index: use _REC_AT_SEQ not _MAP_IDX in backward loops [seq-1 ..
	0] becomes [seq .. 1]

	Don't pre-decrement, and terminate before you process seq=0.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b579e315d9a8]

	* src/lib-index/mail-index-sync-keywords.c, src/lib-index/mail-index-
	sync-update.c:
	mail-index: use _REC_AT_SEQ not _MAP_IDX in loops from [seq1..seq2]
	[seq1-1..seq2) becomes [seq1..seq2]

	Don't decrement before starting, and include the upper bound.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[d3564b417e77]

	* src/lib-index/mail-index-map-hdr.c, src/lib-index/mail-index-sync-
	ext.c, src/lib-index/mail-index-sync-update.c:
	mail-index: use _REC_AT_SEQ not _MAP_IDX in loops over every record
	Just change the loop bounds from [0..count) to [1..count], and make
	the loop variale explicitly a seq.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[293966cc6e39]

	* src/lib-index/mail-index-map-hdr.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-transaction-finish.c, src/lib-index/mail-index-view-sync.c,
	src/lib-index/mail-index-view.c:
	mail-index: trivial robomatic migration from _MAP_IDX to new helper
	All users which have a '-1' in their MAIL_INDEX_MAP_IDX have been
	changed to the new mail_index_rec_at_seq() helper using this sed
	script:

	$ sed -ie 's/MAIL_INDEX_MAP_IDX(\([^,]*[^)]*[^ ]\) \?-
	\?1)/MAIL_INDEX_REC_AT_SEQ(\1)/' src/lib-index/*.[ch]

	No other users have been changed.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[4b1117b5cd8e]

	* src/lib-index/mail-index-private.h:
	mail-index: new helper macro with more user-friendly semantics As
	the record ids range from 1..records_count, but the data is stored
	as if in a C-style 0-based array, current clients of
	MAIL_INDEX_MAP_IDX() must subtract 1 from the index themselved.

	New MAIL_INDEX_REC_AT_SEQ() macro does the subtraction for you, it
	gives you (the address of) the record from a seq number.

	Uglified users of the former will be migrated to the latter.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[c83ef1042679]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: optimise memmoves in expunge, only move each region once
	Rather than shifting things back and back and back with potentially
	O(N^2) (more precisely O(count*rec_count')) work factor, move each
	slice of memory only once, directly where we want it to end up
	(O(rec_count') work factor).

	Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[0b653039d3b9]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: trivial paranoia check in expunge loop We will later be
	moving the zone between the current seqs and the (end of the)
	previous seqs - this check ensures that the range is indeed
	monotonic, and thus that zone is positive in size. It can be zero
	right at the start, if the first seqs is (1,...)

	Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[1466daa29957]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: Preparatory HACK - reverse the loop order in the expunge
	This is the final step before the actual optimisation of the
	memmoves.

	HACK, as it it de-optimises the moves so as much as possible gets
	moved as many times as possible. It clears the path for a later
	patch which optimises them far better.

	Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b4c630542488]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: hoist initialisation of mail index map out of expunge
	loop Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[74a726930ca8]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: explicitly inline contents of sync_expunge() To later
	optimise the memmoves, we will need to be aware of previous seqs.
	It's easier to just have the guts inlined, so too much state doesn't
	need to be passed around.

	For review, this change is best viewed with a whitespace-insensitive
	diff, to verify that the new contents of the loop are identical to
	the contents of the now-absorbed function.

	Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[25ce8f635980]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: call all expunge handlers first Firstly, the init
	checking only needs to be done once. More importantly, moving this
	preparatory stage into its own per-seqs loop means there's less to
	juggle when we optimise the memmoving loop in subequent patches.

	Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[aa6e69727edb]

	* src/lib-index/mail-index-sync-update.c:
	mail-index: move expunge handler init into helper function
	Preparatory for later optimisation patches where the call to this
	will be lifted out of the expunge(seq1,seq2) inner function and done
	once for the whole range of seqs in one go.

	Based on draft patch by Timo Sirainen.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[211c9493aaa4]

2014-06-02  Timo Sirainen  <tss@iki.fi>

	* src/director/director-connection.c, src/director/director.c,
	src/director/director.h, src/login-common/login-proxy.c:
	director: If we detect that a user is being proxied to multiple
	backends, disconnect wrong connections. Especially IMAP connections
	can otherwise stay alive for a long time and cause problems.
	[8aa0cd95d6a8]

	* src/director/director-connection.c, src/director/director.c,
	src/director/director.h, src/director/doveadm-connection.c,
	src/doveadm/doveadm-director.c:
	doveadm director kick command added. The kick gets sent to all the
	proxies within the director ring.
	[64808a9703db]

2014-05-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-transaction-export.c:
	lib-index: Fixed somewhat random assert-crashes during extension
	resizes.
	[de9b10f2e168]

	* src/lib-index/mail-index-sync-update.c:
	lib-index: Optimize removing large number of expunges.
	[6d2176c558af]

	* src/lib-storage/index/index-mail.c, src/lib-storage/index/index-
	mail.h:
	lib-storage: "Message has no NUL characters" flag was being set
	wrong to cache file. Only the first MIME part was checked for its
	existence.

	When this flag was wrong, IMAP FETCH may have returned NUL
	characters instead of converting them to 0x80 character. This
	apparently caused Outlook to hang.
	[0f618da2024b]

2014-05-27  Timo Sirainen  <tss@iki.fi>

	* src/stats/main.c:
	Compiler warning fix
	[30a0f18b60dc]

2014-05-27  Phil Carmody  <phil@dovecot.fi>

	* src/auth/passdb-checkpassword.c, src/auth/userdb-checkpassword.c:
	auth: checkpassword callback callback type bike-shedding This change
	doesn't change the compiler's (gcc) view on the correctness of the
	code. It moves sparse's attention of where the potential issues are
	though. Sparse used to complain about dodgy function pointer
	conversions on both the way out (passing the callback function
	pointer), and on the way in (entering the callback). Making the
	callback not lie about what it receives gets rid of the way in
	warnings, but adds warnings as we pass the new function pointer out.
	However, it already complains about that call anyway. So it
	complains about 6 things in 3 functions rather than 6 things in 6
	functions.

	Of dubious worth, but it at least reduces the number of lines you
	need to inspect to verify correctness.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[51d44a72237c]

	* src/imap/imap-fetch-body.c:
	imap: exit imap_fetch_binary_init() identically on all failures This
	changes the behaviour, as -1 is TRUE as a boolean.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[3f4d224f2e6a]

	* src/imap/cmd-idle.c:
	imap: use human-readable helper macro in remote_ip_is_usable More
	readable, but helpfully shuts up sparse which complained about some
	constants being long.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[52ea7c8b587c]

	* src/imap/cmd-getmetadata.c:
	imap: cmd_getmetadata_stream_continue returns bool, not int The
	behaviour is unchanged, but we shouldn't pretend that -1 is
	different from TRUE in a boolean context. Its only caller only cares
	about whether it's 0 or not.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[c2da4daac0b8]

	* src/indexer/indexer-queue.c:
	indexer: fix indexer_queue_cancel_all behaviour
	-1 is TRUE. Presumably -1 was intended to be passed to the callbacks
	via indexer_queue_request_status_int(), not 100.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[4f90011e9823]

	* src/auth/auth-master-connection.c:
	auth: master-connection - bail on malformed list If master is not
	communicating to us in a syntax we understand, just ask for it to be
	unplugged. This changes the behaviour in this error case.

	Previously, we returned -1, which is TRUE when converted to a
	boolean, and thus this changes the error semantics, and may be
	horribly wrong. However, the i_error()s in auth_master_input_line
	follow the same pattern.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9207d1868963]

	* src/auth/auth-request.c:
	auth: set_credentials callback being passed an enum, not a bool This
	changes the behaviour, as the error case is now mapped onto FALSE.
	All non-zero values of course get squashed into true. Found by
	sparse.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[479d66a8e310]

	* src/lib-otp/otp-hash.c:
	lib-otp: cast to the correct type of function pointer sparse
	complains about the result of the F() cast being the wrong type for
	the initialisation, which is true. So just cast to the right type in
	the first place.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[7cda826410f5]

	* src/imap/imap-client.c:
	imap: fix missing-command check It's impossible for the command's
	pointer to be NULL at this point. Previously, the command_find()
	would have returned NULL, but this check presumably short-circuits
	that search in the trivial case, so has some real use.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[9f1e53489674]

	* src/lib-imap/imap-url.c, src/lib-imap/imap-url.h:
	lib-imap: API change - add const to imap_url *base parameter We do
	not change what's there, therefore we can promise to not change what
	is there.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b37e71093468]

	* src/auth/auth.c:
	auth: sparse static cleanup, and some const cleanup All the consts
	that are added to pointers represent deep const semantics. There are
	other shallow consts that I've not added, as sometimes it's better
	to not be const than have something you rely on change when you
	think it won't.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[c94d57a3aba3]

	* src/anvil/anvil-connection.c, src/config/config-connection.c,
	src/indexer/indexer-client.c, src/pop3-login/client-authenticate.c,
	src/ssl-params/main.c, src/stats/mail-stats.c, src/stats/main.c:
	various - 'static' sparse cleanup Signed-off-by: Phil Carmody
	<phil@dovecot.fi>
	[48d651b2e82a]

	* src/lib-mail/test-istream-qp-decoder.c, src/lib-mail/test-message-
	date.c:
	lib-mail: tests - trivial sparse cleanups One static const, and one
	more obviously not-an-int integer.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[22f70e50c492]

	* src/lib-imap/test-imap-url.c:
	lib-imap: tests - trivial static and const sparse cleanups Signed-
	off-by: Phil Carmody <phil@dovecot.fi>
	[a754433a208e]

	* src/lib-http/test-http-date.c, src/lib-http/test-http-header-
	parser.c, src/lib-http/test-http-request-parser.c, src/lib-http
	/test-http-response-parser.c, src/lib-http/test-http-server.c:
	lib-http: trivial sparse cleanups - statics and explicit NULLs
	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[d410e5ab6dd8]

	* src/config/sysinfo-get.c, src/director/user-directory.c, src/doveadm
	/doveadm-mail.c, src/imap/imap-sync.c, src/lib-http/http-transfer-
	chunked.c, src/lib-sql/driver-sqlite.c, src/util/script-login.c:
	various - trivial NULL-related sparse cleanups These zero-alikes are
	all pointers, so should explicitly be NULL.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[552cab8feb5f]

	* src/anvil/anvil-settings.c, src/auth/auth-settings.c, src/config
	/config-settings.c, src/config/settings-get.pl, src/dict/dict-
	settings.c, src/director/director-settings.c, src/dns/dns-client-
	settings.c, src/doveadm/doveadm-settings.c, src/imap-login/imap-
	login-settings.c, src/imap-urlauth/imap-urlauth-login-settings.c,
	src/imap-urlauth/imap-urlauth-settings.c, src/imap-urlauth/imap-
	urlauth-worker-settings.c, src/imap/imap-settings.c, src/indexer
	/indexer-settings.c, src/indexer/indexer-worker-settings.c, src/ipc
	/ipc-settings.c, src/lmtp/lmtp-settings.c, src/log/log-settings.c,
	src/pop3-login/pop3-login-settings.c, src/pop3/pop3-settings.c,
	src/replication/aggregator/aggregator-settings.c,
	src/replication/replicator/replicator-settings.c, src/ssl-params
	/ssl-params-settings.c, src/stats/stats-settings.c:
	treewide - mass cleanup of 0 used to end a settings list This also
	includes a change to the perl script which generates the all-
	settings.c file.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[f373df52082a]

	* src/lib/str.c, src/lib/strfuncs.c, src/master/main.c:
	lib: pair VA_COPY with va_end A va_copy creates a initialised
	va_list, as if a va_start had been done on it. Therefore,
	pedantically, a va_end should also be done on it. On most platforms
	this is a no-op, and for those where it isn't, the pairing is
	important.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[03870eea2857]

	* src/plugins/fts/fts-parser-html.c:
	fts: parser-html - parser can fail on attributes='with values in
	single quotes' If that value were to contain an odd number of double
	quotes, then the HTML_STATE_TAG_(D)QUOTED state would be entered and
	not exited.

	The two quoting types behave basically the same, so just add two new
	cases and duplicate the state transition code.
	[ad028a950248]

	* src/plugins/fts/fts-parser-html.c:
	fts: parser-html - parse_tag_name returns wrong value for comments
	This function returns 1 more than the number of additional
	characters to be swallowed up by the state transition.
	[54e508b71dcd]

	* src/plugins/fts/fts-parser-html.c:
	fts: parser-html - parse_tag_name really does return an integer not
	a bool It seems to return 1 more than the number of additional
	characters (after '<') are swallowed up by the state change, not a
	bool. This would imply that '3' is wrong.
	[8f68543fa7f8]

	* src/lib-storage/index/mbox/mbox-mail.c:
	lib-storage: functions returning bool actually return ints Their
	return values are compared as if they are at least tri-state (-ve,
	0, +ve), so really aren't bools at all.

	Note - this should cause the code to change in behaviour, and thus
	might introduce regressions as previously all non-zeroes would have
	been mapped to 1.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[973b67dda572]

	* src/lib-storage/index/mbox/mbox-lock.c:
	lib-storage: context's dotlock_last_stale really is bool It's only
	ever read as if it's a bool, so it really is a bool. Fix a write
	treating it as an int.

	Signed-off-by: Phil Carmody <phil@dovecot.fi>
	[b54844d64ee5]

2014-05-27  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-request.c:
	lib-http: Fixed assertion failure in
	http_client_request_send_payload() caused by inappropriate retry
	attempt.
	[abffff2e916f]

2014-05-26  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Crashfix: Don't deinitialize search args that haven't been
	initialized.
	[5c6f49e2d8d9]

	* src/lib-storage/list/mailbox-list-index.c, src/lib-storage/list
	/mailbox-list-index.h:
	lib-storage: Avoid refreshing mailbox list index too often.
	[60d2cfdc3140]

	* src/lib-storage/list/mailbox-list-index-status.c:
	lib-storage: Optimize mailbox_exists() with mailbox_list_index=yes
	We can return the existence from the index itself to avoid stat()s.
	[e163a82b10f5]

2014-05-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-sync.c, src/lib-storage/index/maildir
	/maildir-sync-index.c, src/lib-storage/index/mbox/mbox-sync-list-
	index.c, src/lib-storage/mail-storage-settings.c, src/lib-storage
	/mail-storage-settings.h:
	lib-storage: Added mailbox_list_index_very_dirty_syncs setting. This
	setting assumes that the mailbox list index is up to date and uses
	it without stat()ing backend mailbox files/dirs. (As a possible
	future TODO it might be useful to still do the stat()ing, but only
	rarely.)
	[a9966b4aa020]

	* src/imap/imap-client.c, src/imap/main.c:
	imap: If we're waiting for client to read data, show in process
	title how many bytes are buffered.
	[6b8620c6032c]

	* src/lib/ostream.c, src/lib/ostream.h:
	lib: Added o_stream_is_corked().
	[8ab8327400cd]

2014-05-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap/imap-id.c:
	lib-imap: Use case-insensitive comparisons everywhere for
	imap_id_send setting parsing. "os" and "os-version" were case-
	sensitive while others were not. Patch by Apple.
	[090c90714f59]

	* src/plugins/virtual/virtual-sync.c:
	virtual: If backend mailbox hasn't changed, we still need to build
	its uidmap.
	[e99cd21e1f92]

2014-05-14  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-client.c:
	imap: Fixed enabling METADATA if imap_capability string was
	explicitly set
	[c22c139b2823]

	* src/lib-fs/fs-api.c:
	lib-fs: Make sure we don't leak data stack.
	[e7c737fc7e54]

2014-05-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c:
	lib-storage: Don't leak memory if mailbox_save_set_flags() is used
	multiple times for keywords. This affected only some external
	plugins.
	[8d1dcd28ee11]

2014-05-12  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-
	transaction-log-scan.c, src/doveadm/dsync/dsync-transaction-log-
	scan.h:
	dsync: If incremental sync fails because of desync, log the reason
	why
	[1aa94368ab28]

	* src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-
	brain-private.h, src/doveadm/dsync/dsync-brain.c:
	dsync: mailbox_metadata.cache_fields must be copied to permanent
	memory. Any other call to mailbox_get_metadata() would have cleared
	the memory.
	[a21ac1261487]

	* src/plugins/acl/acl-api.c:
	acl: Empty negative rights list should be the same as NULL negative
	rights list. There may be other places where this should be fixed,
	but this at least fixes errors with dsync where "-user" entry
	without any rights was attempted to be synced in dovecot-acl
	(although such entry shouldn't really have existed in the first
	place).
	[daa0b8e5cf2e]

2014-05-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/message-header-encode.c:
	lib-mail: Compiler warning fix
	[6bb26098a45c]

	* .hgsigs:
	Added signature for changeset c55c660d6e9d
	[2392c1c0c751]

	* .hgtags:
	Added tag 2.2.13 for changeset c55c660d6e9d
	[0802fa398c25]

	* NEWS, configure.ac:
	Released v2.2.13.
	[c55c660d6e9d] [2.2.13]

	* src/lib-mail/test-message-header-decode.c:
	lib-mail: test-message-header-decoder unit test fixed
	[71f168f3b7e6]

	* src/lib-mail/message-header-encode.c:
	lib-mail: Fix to previous message_header_encode() commit
	[3db2d96381ca]

	* src/doveadm/doveadm-penalty.c:
	doveadm penalty: Fixed using -a parameter
	[2ea729128dbe]

	* src/lib-mail/message-header-encode.c, src/lib-mail/message-header-
	encode.h, src/lib-mail/test-message-header-encode.c:
	lib-mail: message_header_encode() now preserves folding whitespace
	This function could still use some cleaning up, but good enough for
	now..

	Also it should try to minimize the encoded words, not necessarily
	encoding everything between the first and the last words that have
	to be encoded.
	[e6c96db70cfb]

	* src/lib-mail/message-header-encode.c, src/lib-mail/message-header-
	encode.h, src/lib-mail/test-message-header-encode.c:
	lib-mail: message_header_encode_[bq]() now explicitly takes the
	first line length parameter. So this change partially reverts the
	previous change, because message_header_encode() was actually
	internally relying on this behavior. The explicit parameter makes it
	clearer.
	[009caac530e9]

	* src/lib-mail/message-header-encode.c, src/lib-mail/message-header-
	encode.h:
	lib-mail: message_header_encode() no longer tries to lookup the
	first line's length from output string. This function is used only
	by Pigeonhole, which only uses it for empty output strings, so it's
	not useful there. Also that behavior is somewhat unexpected and
	confusing.
	[4892a941d63b]

2014-05-08  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 791ec610422c
	[f557dada0649]

	* .hgtags:
	Added tag 2.2.13.rc1 for changeset 791ec610422c
	[6b2eddd436cf]

	* Makefile.am, NEWS, configure.ac:
	Released v2.2.13.rc1.
	[791ec610422c] [2.2.13.rc1]

2014-05-08  Phil Carmody  <phil@dovecot.fi>

	* src/doveadm/dsync/dsync-mailbox-tree.c, src/lib-imap/imap-url.c, src
	/lib-index/mail-cache-fields.c, src/lib-storage/index/maildir
	/maildir-keywords.c, src/lib-storage/index/maildir/maildir-save.c,
	src/lib-storage/mail-search-build.c:
	treewide - use of explicit NULL in pointer comparisons rather than
	0-alikes

	Found by sparse.
	[36c2611e053e]

	* src/lib-storage/index/maildir/maildir-mail.c:
	lib-storage: maildir - don't use a bool to store a char
	[cb5b2a1579af]

	* src/lib-storage/index/pop3c/pop3c-storage.c:
	lib-storage: pop3c - fix invalid blank password check

	The pointer will never be NULL, as it's initialised pointing to an
	empty string, and can only be overridden by setting it to another
	string. So the test always failed. Instead, check the 1st character
	of the password.
	[1b5c6a492e3a]

2014-05-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: Removed unnecessary code. mailbox_dir_name is never
	NULL, and when it's empty it can be handled exactly the same as when
	it's non-empty.
	[9e3e46409415]

2014-05-08  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lda/main.c, src/lib-lda/smtp-client.h:
	Removed unnecessary #includes.
	[f101636138fa]

	* run-test.sh:
	run-tests.sh: Add support for reading valgrind suppressions if they
	exist.
	[802187be0f77]

2014-05-08  Timo Sirainen  <tss@iki.fi>

	* src/lib/fdpass.c:
	lib: fd_read() didn't check the msg.msg_controllen size correctly
	[bedecd5b6bab]

2014-05-06  Phil Carmody  <phil@dovecot.fi>

	* src/lib/strfuncs.c, src/lib/strfuncs.h:
	lib: cosmetic - rename parameters so that .h and .c files match

	These functions were flagging sparse warnings, but those warnings
	are trivially (robotically) dismissable if the parameters are
	identically named in the two contexts. Opted for whichever name
	seemed to be more meaningful or sensible. e.g. char** became p
	rather than s, as it's a pointer more than a string.
	[de99b926a9ad]

2014-05-08  Phil Carmody  <phil@dovecot.fi>

	* src/lib/wildcard-match.c:
	lib: wildcard-match - use NULL not 0 for pointers

	Flagged by sparse.
	[c31bd0065d91]

2014-05-07  Phil Carmody  <phil@dovecot.fi>

	* src/lib/file-set-size.c, src/lib/istream.c:
	lib: a couple of trivial sparse cleanups

	The #include isn't needed on modern linux, as the macros are already
	defined The compiler seems to silently ignore redefinitions in
	system header files, so didn't throw a warning, but probably should
	have, as redefinitions can lead to insanity.

	The cast just makes it explicit that we're changing the prototype.
	[3d7b9a927656]

2014-05-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/fail-mail-storage.c, src/lib-storage/fail-mail-
	storage.h, src/lib-storage/fail-mail.c:
	lib-storage: Make struct fail_storage/mailbox/mail_vfuncs properly
	extern. These could be useful when implementing some new dummy
	storage backends.
	[d7a66090b7c7]

2014-05-06  Phil Carmody  <phil@dovecot.fi>

	* src/lib-index/mail-index-strmap.c, src/lib-lda/mail-send.c, src/lib-
	storage/mail-search-register-imap.c, src/lib/child-wait.c, src/lib
	/hash-method.c, src/login-common/client-common.c, src/plugins/fts-
	lucene/doveadm-fts-lucene.c, src/plugins/fts/doveadm-dump-fts-
	expunge-log.c, src/plugins/fts/fts-parser-html.c, src/plugins/fts
	/fts-parser.c:
	treewide sparse cleanup - make single-unit-only data static

	Helps keep the global namespace clean. Not all the things suggested
	by sparse have been moved. All DOVECOT_ABI_VERSION strings, and
	anything replicated in all-settings.c by src/config/settings-get.pl
	has been left untouched. Some of the latter could be moved, but the
	script would need to be modified to replicate the 'static' (it
	outputs 'extern').
	[7f6c5e27b908]

2014-05-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-mail-binary.c:
	lib-storage: Code cleanups and potential crashfix. Usually in
	blocks_count_lines() the full_input stream reading doesn't return
	eof=true in the last read but only on the next. If this had changed
	for some reason the code would have crashed in the assert checks.
	[b9d91c59bc5b]

	* src/plugins/fts/fts-parser-tika.c:
	fts-tika: Removed lib-http kludgy workaround, which is no longer
	needed.
	[5054f75630c7]

	* src/lib-mail/test-message-part.c:
	Make static analyzer happier
	[c6c44f136100]

	* src/login-common/ssl-proxy.c:
	Fixed compiling when building without SSL support.
	[10ce023ebf79]

	* run-test.sh:
	run-test.sh: Valgrind version check was broken for v3.10+, removed
	it entirely. RHEL 5.9 has valgrind v3.5 already, so there shouldn't
	really be any important OSes using old valgrind that we need to
	support.
	[f64ccd83673d]

2014-05-07  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Make static analyzer happier (hopefully)
	[24d27f7da7b2]

	* src/lib-mail/message-parser.c:
	lib-mail: Added asserts to make static analyzer happier
	[fc4a19b17fb3]

	* src/lib/test-hash-method.c:
	Fixed compiling on systems without MAP_ANONYMOUS For example OSX.
	[b68e9f4e797f]

	* src/auth/mech-rpa.c:
	auth: Minor code cleanup
	[96660987de96]

	* src/auth/db-ldap.c:
	auth: LDAP errors may have crashed the auth process.
	[f32e7ca24292]

2014-05-07  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-index/mail-index-strmap.c:
	lib-index: Fixed detecting broken strmap index file (thread index).
	[0e8ddc1bfe8d]

	* src/pop3/pop3-commands.c:
	pop3: Remove dead assignment detected by scan-build.
	[78fd8b7d25e9]

2014-05-07  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-print-table.c:
	doveadm: table formatter printed header unaligned if it had hidden
	titles. This was broken by the previous table formatter change.
	[21f9679214ac]

	* src/lib-imap/imap-parser.c:
	lib-imap: IMAP parser didn't parse atoms correctly that started with
	'~' character. literal8 begins only after "~{", not immediately
	after "~" which is a valid ATOM-CHAR.
	[8568cacb0d03]

2014-05-07  Phil Carmody  <phil@dovecot.fi>

	* src/lib/md4.c, src/lib/md5.c:
	lib: fix md4/md5 buffer read overrun

	uint_fast32_t may be 64 bits and read too many bytes at the end of
	the buffer. This didn't actually break anything as long as there was
	32 bits of readable memory past the buffer.
	[fc627348087e]

2014-05-07  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Don't mix definite + maybe queries for now, since it
	returns broken results.
	[4b67da0b86a3]

	* src/login-common/client-common.c, src/login-common/ssl-proxy-
	openssl.c, src/login-common/ssl-proxy.h:
	*-login: SSL connections didn't get closed when the client got
	destroyed.
	[41622541a7a3]

	* src/plugins/acl/acl-global-file.c:
	acl: Global ACL file used only the first matching rights line, not
	merging all the matches.
	[7a08a481c133]

	* src/lib-storage/index/index-mail.c:
	lib-storage: Fixed assert-crash when looking up private flags for a
	mail being saved.
	[774e486a94ab]

	* 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:
	mdbox: Fixed race condition when creating a new mailbox and another
	process getting its GUID.
	[ed6e472cab0e]

	* src/lib/Makefile.am, src/lib/test-hash-method.c, src/lib/test-lib.c,
	src/lib/test-lib.h:
	liblib: Added unit test for hash methods to make sure they don't do
	read access beyond buffer. This currently fails for MD4 and MD5, so
	they need to be fixed/replaced..
	[2e7ac48c6072]

	* src/lib-compression/Makefile.am, src/lib-compression/test-
	compression.c:
	lib-compression: Added some unit testing for lib-compression. Not
	perfect in any way, but at least tests if things are completely
	broken.
	[6b40179a6868]

	* src/lib-compression/ostream-zlib.c:
	lib-compression: gz compression didn't handle multiple flushes
	correctly.
	[625249382745]

	* src/lib-compression/istream-lz4.c:
	lib-compression: istream-lz4 shouldn't crash when closing the stream
	multiple times.
	[2fe36249c62b]

	* src/lib-compression/ostream-lzma.c:
	lib-compression: Fixed LZMA compression. The code now looks more
	like the doc/examples/01_compress_easy.c distributed with xz-utils.
	Most importantly this changes LZMA_OK to be allowed as a result for
	lzma_code(zs, LZMA_FINISH).
	[8e6d98d34dbf]

2014-05-06  Timo Sirainen  <tss@iki.fi>

	* src/pop3/pop3-commands.c:
	pop3: Fixed assert-crash with some settings when there are 0 mails.
	[4493e070c47e]

2014-05-05  Timo Sirainen  <tss@iki.fi>

	* src/lib/mkdir-parents.c:
	mkdir_parents(): Handle mkdir() EEXIST errors that may happen during
	race conditions. We don't care about EEXIST errors that happen when
	trying to mkdir() parent directories, only if it happens when
	mkdir()ing the last directory.
	[16212e6d4fd4]

	* src/auth/auth-request-handler.c:
	auth: If authentication fails, never send back "nologin" field. This
	only causes confusion.
	[3a5304b63f88]

	* src/doveadm/doveadm-mail-fetch.c, src/lib-storage/index/index-
	sort.c:
	message_header_decode_utf8() wasn't used correctly with NULL instead
	of FALSE parameter.
	[d60c5ef63d63]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: mail_get_headers_utf8() now replaces NULs with spaces.
	Perhaps there should also be another API function which actually
	allows returning strings with NULs in them.
	[4e5f816b59d5]

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm mail fetch: Use mail_get_headers_utf8() when fetching
	hdr.*.utf8 This doesn't really matter but may allow minor
	optimizations later.
	[63361f087d1f]

	* 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-
	decode.c, src/lib-mail/test-message-header-encode.c:
	lib-mail: Added message_header_encode_data() to support encoding
	also NUL characters.
	[cc622a9a2f3c]

	* src/lib/str.c, src/lib/str.h:
	liblib: Added str_append_data(), which is simply a wrapper to
	buffer_append() This is intended for appending data that may contain
	NUL characters that are wanted to be added to the string.
	[841d31e6c647]

2014-05-05  Phil Carmody  <phil@dovecot.fi>

	* src/lib/array-decl.h:
	lib: quell sparse "warning: Using plain integer as NULL pointer"

	The first element of the structure is a pointer, make that explicit.
	[ef701c458b25]

2014-05-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/message-header-encode.c, src/lib-mail/test-message-
	header-encode.c:
	lib-mail: message_header_encode() needs to encode control characters
	as well.
	[88a8e7d9f2e9]

	* src/auth/auth-request.c, src/auth/auth-request.h:
	auth: Added %{orig_user}, %{orig_username} and %{orig_domain}
	variables
	[1e099feb1dea]

	* src/imap/imap-search.c:
	imap: Brought back the original SEARCH PARTIAL code with the minor
	fix that it actually needed. The new code in v2.2.11 was completely
	wrong. The code in previous commit was broken with SORT. The
	original code was correct otherwise, except it couldn't handle
	partial1 pointing past the valid range.
	[32b6a95c95cc]

	* src/imap/imap-search.c:
	imap: Fixed SEARCH PARTIAL to work correctly with UIDs and with SORT
	results.
	[defefebf5f99]

	* src/lib/seq-range-array.c, src/lib/seq-range-array.h, src/lib/test-
	seq-range-array.c:
	Added seq_range_array_remove_nth()
	[0d237a4dacd2]

2014-05-02  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-
	brain-mails.c:
	dsync: If we notice that incremental sync won't work, don't continue
	doing it.
	[36d07c48049f]

	* src/imap-login/client.c, src/imap-login/client.h, src/lib-imap/imap-
	id.c, src/lib-imap/imap-id.h, src/lib-master/master-auth.h:
	imap: Allow longer ID command parameters without disconnecting the
	client.
	[3ecb2b831402]

	* src/lib-storage/index/maildir/maildir-mail.c:
	maildir: Maildir S=size fixing now works also with zlib etc. plugins
	that modify the files.
	[a1831c9896d4]

	* src/lib-storage/index/maildir/maildir-mail.c:
	maildir: Returning mail's received/saved date or refcount was
	sometimes broken with zlib plugin. If the value wasn't already
	cached and the same transaction also accessed the message body,
	i_stream_stat() was used, which ended up to i_stream_seekable_stat()
	due to caching the file, which didn't again fstat() the actual
	maildir file but just used some internal values.
	[9f1460682295]

	* src/lib/ioloop-kqueue.c:
	kqueue: Changed all i_fatal() calls to i_panic()s to make debugging
	them possible.
	[304b95de6a5f]

	* src/lib-index/mail-cache-fields.c:
	lib-index: Fixed crash when header fields count was too high in
	cache file.
	[1f2c83d6dd2e]

	* src/lib-storage/list/mailbox-list-iter.c, src/lib-storage/mail-
	storage.c, src/lib-storage/mail-storage.h, src/lib-storage/mailbox-
	list.c:
	lib-storage: mailbox_settings_find() now takes namespace parameter
	instead of user. This fixes an infinite (until stack gets full) loop
	with shared mailboxes: mail_namespace_find() ->
	mailbox_list_get_storage() -> mailbox_settings_find() ->
	mail_namespace_find() -> ...
	[930b6b1346bd]

	* src/auth/auth-request.c, src/auth/auth-request.h:
	auth: Fixed userdb extra fields handling in passdb failure. userdb
	prefetch -flag wasn't correctly set, causing the prefetch userdb in
	some situations incorrectly either to be called or not be called.

	This also fixes a crash when using userdb static and multiple
	passdbs. The userdb_reply was set to NULL, which caused a crash
	later.
	[e84555e6eb59]

	* src/imap/imap-fetch.c, src/imap/imap-fetch.h:
	imap: Make sure we don't return empty "* n FETCH ()" reply, which
	violates RFC 3501 ABNF. It happened only during error conditions,
	and it would be a bit too much trouble to try to remove the reply
	entirely, so just append the message UID there.
	[99f59d6fce05]

	* src/imap/cmd-fetch.c, src/imap/imap-fetch-body.c:
	imap: If FETCH BINARY fails because of invalid MIME part data,
	return [UNKNOWN-CTE] error.
	[197f77f6ef0d]

	* doc/example-config/conf.d/10-mail.conf:
	example-config: Removed mail_nfs_* settings, since they shouldn't be
	used anyway.
	[f9e76b2320c4]

	* src/lib-storage/list/mailbox-list-index.c:
	lib-storage: Mailbox list indexes didn't use mail_fsync setting.
	[9b53f6bf0427]

	* src/plugins/virtual/virtual-sync.c:
	virtual: Fixed assert-crash when doing changes to backend mailbox
	via the virtual mailbox. Caused by the recent lazy mailbox opening
	changes.
	[501a19fc2747]

2014-04-30  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-mail.c, src/lib-storage/index/index-
	storage.c, src/lib-storage/mail-storage-private.h:
	lib-storage: mail_never_cache_fields=* means now to disable all
	caching.
	[c1719de47d5e]

	* src/lib-storage/fail-mail.c, src/lib-storage/index/index-mail.c, src
	/lib-storage/index/index-mail.h, src/lib-storage/mail-storage-
	private.h, src/lib-storage/mail.c, src/plugins/virtual/virtual-
	mail.c:
	lib-storage: Partially reverted the mail.get_real_mail() API change
	for backwards compatibility. I hadn't realized Pigeonhole was also
	using it. (I thought it was using only the mail_get_real_mail()
	public API.) This fixes Pigeonhole v0.4.2 to work again.
	[5c4205a95028]

	* 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-import.c:
	dsync: saved-date doesn't need to be looked up until mail body is
	being read. This should improve the performance when the saved-date
	isn't already cached or otherwise quickly accessible.

	This change also makes dsync slightly incompatible with earlier
	versions. When using dsync with an earlier version the saved-dates
	aren't synced. It would be too much trouble to try to preserve full
	backwards compatibility, especially because saved-date doesn't
	matter so much and isn't even visible to IMAP clients.
	[99a4788770cb]

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Make sure the filename contains S=size and W=size even if
	GUID doesn't.
	[494b5e18be58]

2014-04-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Make sure we don't replace correct mail sizes with broken
	ones when preserving GUID.
	[021f78ba15c1]

	* src/lib-mail/test-istream-attachment.c:
	lib-mail: test-istream-attachment updated
	[dc4fd0ab5c14]

	* src/lib-mail/istream-attachment-extractor.c:
	lib-mail: istream-attachment-extractor didn't correctly handle
	increasing base64 line length. Based on patch by Pavel Stano
	[c0455a1f650c]

	* src/lib-mail/istream-attachment-extractor.c:
	lib-mail: istream-attachment-extractor handled mixed LFs vs CRLFs
	correctly. Unless all the lines have the same newlines, the
	attachment can't be recreated back exactly the same.
	[e9f4acfc7ce9]

	* src/lib-mail/test-istream-dot.c:
	lib-mail: Added more tests to test-istream-dot.
	[59ada187a702]

	* src/lib-storage/mail-storage-private.h, src/lib-storage/mail-
	storage.c:
	lib-storage: Fixed crash if mailbox_save_cancel() was called in
	save_finish()/copy() method.
	[db216ddbb5c2]

	* src/lib-index/mail-index-sync-update.c:
	lib-index: Small code cleanup
	[4e3a518f6fcd]

	* src/lib/istream-crlf.c:
	istream-lf: Cleanup & performance improvement. memchr() is faster
	than lopping through the data ourself.
	[66620a924bfa]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Yet another fix to working with old versions.
	[507aee5fef6d]

	* src/lib-lda/mail-send.c, src/lib-lda/smtp-client.c, src/lib-lda
	/smtp-client.h:
	lib-lda: More smtp-client.h API changes to support multiple
	destination addresses.
	[605df40b0aef]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Fixed new dsync versions to work again with older versions.
	[cd6079c61c2b]

2014-04-28  Timo Sirainen  <tss@iki.fi>

	* 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-transaction-log-scan.c:
	dsync: If incremental dsync finds that its state is stale, retry
	(later) with full sync. This works only when the master itself
	notices such changes locally. Remote changes aren't noticed, because
	the master doesn't send the state to remote dsync and the master is
	also the one that decides which mailboxes are synced. The fix to
	this probably means sending the state string to remote dsync and
	have it check if the state is still valid (= protocol change).
	[0d34a90b2760]

	* 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-stream.c, 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:
	dsync: Include messages_count in the mailbox states. This allows
	detecting that stateful dsync can't be done when message count is
	suddenly wrong.
	[9669c9a8984f]

	* src/doveadm/dsync/dsync-brain-private.h:
	dsync: Finished previous change to actually compile
	[e4f527711ec9]

	* src/doveadm/doveadm-replicator.c,
	src/replication/replicator/Makefile.am, src/replication/replicator
	/doveadm-connection.c, src/replication/replicator/replicator-queue-
	auth.c, src/replication/replicator/replicator-queue.h,
	src/replication/replicator/replicator.c:
	doveadm replicator add <user mask> command added. This allows
	quickly adding users from userdb that don't exist in replicator. For
	example "doveadm replicator add '*'" adds all the new users from
	userdb.

	This isn't really necessary though. Users will be automatically
	added as soon as their mailboxes change in some way and replicator
	gets notified about them.
	[b912147d41c8]

	* src/doveadm/dsync/doveadm-dsync.c, src/doveadm/dsync/dsync-brain.c,
	src/doveadm/dsync/dsync-brain.h:
	dsync: If dsync was started via doveadm-server, show the remote
	client's IP address in ps output.
	[fac4e7320676]

2014-04-27  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-request.c:
	lib-http: http-client: Prevented
	http_client_request_continue_payload() from segfaulting when the
	callback sets the request pointer to NULL.
	[00efbe39263f]

	* src/lib-http/http-client-request.c:
	lib-http: http-client: Forgot to switch dns-client io_loop in
	http_client_request_continue_payload() in ealier change
	(6c3bd941e153).
	[b0add701dcee]

2014-04-26  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c:
	lib-http: Fixed problem with connections idling indefinitely. Forgot
	to check for idle connections when request finished after waiting
	for payload to be read by application.
	[6895214e33cf]

2014-04-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-request.c:
	lib-http: Better error handling fix for payload read/write failures
	[49e9d9743f6e]

	* src/lib-http/http-client-request.c:
	lib-http: Failed payload read/write error was handled wrongly as
	"stream input size changed".
	[022994e15767]

	* src/lib/iostream-temp.c:
	iostream-temp: Improved stream naming.
	[1c7ee3ecbfb3]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	Compiler warning fixes
	[767acd575d06]

	* src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-
	brain.c:
	dsync: Added more debug output
	[bb5deb884303]

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump: Added support for mobox extensions in dovecot.index.
	[5798bb0167b9]

	* src/lib-lda/mail-send.c:
	lib-lda: Use the new smtp_client_init(), not _open()
	[b53ebeaba6aa]

	* src/lib-lda/lmtp-client.c:
	lib-lda: When non-RCPT/DATA command fails permanently, translate it
	internally to temporary failure. We shouldn't be answering permanent
	failures to RCPT/DATA command when the failure really had nothing to
	do with the recipient/content itself. Most likely it's just some
	server misconfiguration, which should be treated as temporary error.
	[c03076e03250]

	* src/lib-lda/mail-send.c:
	lib-lda: mail_send_rejection() logs permanent rejections now with
	info level. There's no need to log an error when return-path is
	invalid.
	[dc5ba8637aa7]

	* src/lib-lda/smtp-client.c, src/lib-lda/smtp-client.h:
	lib-lda: Added new smtp_client_init/deinit() APIs The new API allows
	better error handling.
	[0f9ce0073c8d]

	* src/lib/safe-memset.c:
	safe_memset(size=0) triggered read access to data[0], possibly
	crashing.
	[eae44873dbc2]

	* src/lib-http/http-client-request.c:
	lib-http: Added more information to "stream input size changed"
	error
	[b433260ced36]

	* src/lib-lda/mail-send.c, src/lib-lda/mail-send.h:
	lib-lda: Removed unused mail_send_forward()
	[560793d4bf88]

	* src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c:
	dsync: If a parent \Noselect gets autocreated, don't fail later when
	trying to re-create it.
	[8575e8f01380]

2014-04-24  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Fixed high data stack memory usage
	[ddf374a36057]

	* src/lib/istream.c:
	i_stream_read_next_line(): Set also errno=ENOBUFS on too large line.
	Some callers assume that errno is set to same as
	istream->stream_errno
	[aec6f57b8cf8]

2014-04-23  Timo Sirainen  <tss@iki.fi>

	* src/director/director-connection.c, src/director/director-request.c,
	src/director/director.c, src/director/director.h:
	director: Fixed handling weak users when there were exactly 2
	director servers in the ring.
	[6269063f8408]

	* src/doveadm/doveadm-director.c:
	doveadm director map -u: Don't connect to director socket, it's not
	needed.
	[45bedf335e92]

	* src/doveadm/doveadm-director.c:
	doveadm director map: Added -h and -u parameters to quickly map
	between username and hash.
	[bc9863fa07af]

	* src/doveadm/doveadm-director.c:
	doveadm director map: Show also the username hash.
	[14752b3cd609]

	* src/director/director-request.c:
	director: When logging about request timeout, log also the username
	hash.
	[fb31a88786df]

	* src/doveadm/doveadm-replicator.c, src/replication/replicator
	/doveadm-connection.c, src/replication/replicator/replicator-
	brain.c, src/replication/replicator/replicator-queue.h:
	doveadm replicator replicate: Added -f parameter to force a full
	sync for user.
	[df172c4de57e]

	* src/doveadm/doveadm-replicator.c:
	doveadm replicator replicate: -p parameter wasn't working correctly.
	We were just replicating the "-p" as the username.
	[b4e2048e5312]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Added assert
	[e20a6192ddcf]

	* src/doveadm/dsync/doveadm-dsync.c:
	dsync: When initializing via doveadm-server, change the iostream
	buffer sizes to unlimited.
	[98d3020ea144]

	* src/lib/ostream.c, src/lib/ostream.h:
	Added o_stream_get_max_buffer_size()
	[6abe16ff8108]

	* src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-
	storage.h, src/plugins/virtual/virtual-sync.c:
	virtual: Fixed assert-crash in IDLE caused by earlier changes. This
	change negates all the improvements of the earlier changes when IDLE
	is used. This could be fixed by using mailbox-list-notify.h API.
	[79bfc730a8b0]

	* src/plugins/virtual/virtual-storage.c, src/plugins/virtual/virtual-
	storage.h, src/plugins/virtual/virtual-sync.c:
	virtual: Delay initializing search args until the mailbox is
	actually opened. Fixes assert-crash caused by recent changes when
	virtual mailbox search args contained e.g. keywords.
	[0aa159d6ef30]

2014-04-22  Timo Sirainen  <tss@iki.fi>

	* src/lib/safe-memset.c:
	safe_memset() wasn't safe with modern compilers anymore. Another try
	based on David Jacobson's code in https://www.mail-archive.com
	/openssl-dev@openssl.org/msg34134.html :

	""" Since vs points to a volatile, the load in the while clause
	actually has to be done. That forces the compiler to actually store
	c into at least the byte that is tested, in practice byte zero. But
	the fact that the index is volatile zero, and since it is volatile
	it could spontaneously change to anything, the compiler has to store
	c into all bytes.

	The key observation is that while you can't pass a volatile to
	memset (you get a warning and the volatile gets stripped away), you
	can use a volatile in a test that could go the wrong way if the
	memset were elided. """
	[09c114091c88]

2014-04-19  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib/connection.c, src/lib/connection.h:
	connection: Added support for creating a stream from input/output
	stream pair.
	[54178ae78835]

2014-04-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-host.c, src/lib-http/http-client.c, src
	/lib-http/test-http-client.c:
	lib-http: Fixed resource leaks in http_client_wait() occurring a
	dns_client is used. If all DNS lookups finished before the end of
	the wait cycle, the dns_client would not be switched back to the
	original ioloop.
	[6c3bd941e153]

	* src/lib-dns/dns-lookup.c, src/lib-dns/dns-lookup.h:
	lib-dns: Added dns_client_switch_ioloop().
	[88402e0684cb]

	* src/lib/ioloop.c:
	ioloop: Fixed segfault crash in io_loop_call_pending(). When a
	callback called io_set_pending(), the io_loop_call_pending() loop
	crossed the end of the ioloop->io_files list.

	Based on patch by Stephan Bosch
	[7540a5cdbdf1]

2014-04-17  Timo Sirainen  <tss@iki.fi>

	* 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 mime_parts parameter to index MIME parts as
	separate documents. This is in preparation for being able to
	actually read such information and show it to clients via some new
	IMAP extension.

	Also it might be better to index some MIME parts together to avoid
	wasting disk space, but for now this is all or nothing. For example
	anything that is "message body" could probably be indexed without
	the part number at all.
	[cba90b79fa48]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Fixed "doveadm dump" crash when built with stemmer
	[7809bc519633]

	* src/lib-mail/message-part.c:
	lib-mail: Compile fix for last change..
	[7c12201decaf]

	* src/plugins/fts/fts-api.h, src/plugins/fts/fts-build-mail.c:
	fts: Added message_part to fts_backend_build_key. This allows FTS
	backends to index MIME parts separately from each others.
	[1b02ece5298c]

	* src/lib-mail/Makefile.am, src/lib-mail/message-parser.c, src/lib-
	mail/message-part-serialize.c, src/lib-mail/message-part.c, src/lib-
	mail/message-part.h, src/lib-mail/test-message-part.c:
	lib-mail: Added support for struct message_part <-> index number
	translations.
	[e5635fc0710f]

	* src/lib-mail/Makefile.am, src/lib-mail/message-parser.h, src/lib-
	mail/message-part.h:
	lib-mail: Moved struct message_part to a separate message-part.h
	[63f12bb366b0]

	* src/auth/auth-request.c, src/auth/auth-settings.c, src/auth/auth-
	settings.h, src/auth/auth.c:
	auth: If passdb/userdb has a name, use it for the log prefix instead
	of the driver name.
	[917946c08f83]

	* src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth
	/auth-request.h, src/auth/db-checkpassword.c, src/auth/db-dict.c,
	src/auth/db-ldap.c, src/auth/db-passwd-file.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-dovecot-token.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-scram-sha1.c, src/auth/mech-
	skey.c, src/auth/mech-winbind.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-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-
	static.c, src/auth/passdb-vpopmail.c, src/auth/passdb.c, src/auth
	/userdb-dict.c, src/auth/userdb-ldap.c, src/auth/userdb-nss.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:
	auth: Use special AUTH_SUBSYS_DB/MECH parameters as
	auth_request_log*() subsystem. This avoids hardcoded strings all
	over the place and also allows assigning the correct passdb/userdb
	name for log messages generated by generic passdb/userdb code, which
	doesn't know exactly where it was called from.
	[9b095cec9332]

	* src/lib-storage/index/imapc/imapc-mail.c:
	imapc: Fixed fetching specific headers without imapc_features=fetch-
	headers
	[2fcb1d28ddbc]

	* src/plugins/fts/Makefile.am, src/plugins/fts/fts-parser-tika.c,
	src/plugins/fts/fts-parser.c, src/plugins/fts/fts-parser.h:
	fts: Added fts-parser support for Tika It can be enabled by setting:

	plugin { fts_tika = http://localhost:9998/tika/ }
	[3db2ab503759]

	* src/plugins/fts/fts-parser.c:
	fts: Never put text/plain contents through fts-parsers.
	[45e7980f6507]

	* 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, src/plugins/fts/fts-plugin.c:
	fts: Added unload() method to fts-parsers to allow them to cleanup
	before plugin unload.
	[e4119adae01d]

	* src/lib-http/http-client-request.c:
	lib-http: http_client_request_finish_payload() no longer waits for
	the entire result payload. The caller can now read it instead, or
	just discard it by not reading it.
	[f68ec8bd4afa]

	* src/plugins/fts/fts-build-mail.c:
	fts: Free fts-parser on failures.
	[8618c884170d]

2014-04-16  Timo Sirainen  <tss@iki.fi>

	* src/replication/replicator/doveadm-connection.c:
	doveadm replicator dsync-status: Show replication type as "-" for
	non-working dsyncs.
	[195945490dc9]

	* doc/example-config/conf.d/10-mail.conf, src/lib-
	storage/index/maildir/maildir-settings.c, src/lib-
	storage/index/maildir/maildir-settings.h, src/lib-
	storage/index/maildir/maildir-sync.c:
	maildir: Added maildir_empty_new setting to avoid keeping mails in
	new/ directory. This is useful for example when using an external
	MDA that calls "doveadm index" and the user hasn't opened the
	mailbox for a long time.

	Also this removes the delay that user may see when opening a rarely
	accessed mailbox, which renames a ton of files to cur/ while the
	user is waiting.
	[d7b0f653d1ba]

	* src/plugins/fts-solr/solr-connection.c:
	fts-solr: Removed unnecessary code
	[3745f5c73224]

	* src/replication/replicator/replicator-queue.c:
	replicator: Improve logging import/export errors.
	[112c6951c1df]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Fix to previous change. We allocated way too little
	memory.
	[5e42a8c18b51]

	* src/lib-storage/mail-storage.c, src/lib-storage/mailbox-guid-
	cache.c, src/lib-storage/mailbox-list-private.h:
	lib-storage: Further changes to mailbox_alloc_guid() caching. We'll
	now cache the GUIDs forever and force invalidation after mailbox
	rename or when mailbox GUIDs have been updated. This is what dsync
	needs, especially for good performance, and currently there aren't
	any other users for this API.
	[c2755572d31e]

2014-04-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c, src/lib-storage/mailbox-guid-
	cache.c, src/lib-storage/mailbox-list-private.h:
	lib-storage: mailbox_alloc_guid() shouldn't refresh GUID cache on
	every nonexistent GUID. Refresh it only if we know it has had some
	changes (made by our process) or timestamp has changed. This should
	handle the cases that are currently important (=single dsync run).
	[26b468dc7f11]

	* src/doveadm/dsync/dsync-brain.c:
	dsync: Fix to previous commit to actually compile..
	[e75851b65900]

	* src/replication/replicator/doveadm-connection.c:
	replicator: Fixed crash caused by "doveadm replicator dsync-status"
	in some situations.
	[be480cfcd7bf]

	* src/doveadm/dsync/dsync-brain.c:
	dsync: Fixed giving -n "" followed by other -n parameters.
	[f0b8cf119b7f]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Don't allocate large amounts of memory from stack. This
	probably only happened for huge header values.
	[2ef62e1f44f2]

	* src/doveadm/doveadm-replicator.c, 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,
	src/replication/replicator/replicator-brain.h,
	src/replication/replicator/replicator.c:
	replicator: Added "doveadm replicator dsync-status" command.
	[0ec7e1e1db48]

	* src/doveadm/dsync/doveadm-dsync.c:
	dsync: If remote command fails, show the full command in the error
	message.
	[3f3d4c64d7b4]

	* src/doveadm/client-connection.c:
	doveadm-server: Using any command line parameters caused crashes due
	to missing getopt() reset.
	[24e1b79e0d3d]

	* 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:
	virtual: Delay opening the backend mailboxes until it's really
	necessary. This should improve the performance a lot with
	mailbox_list_index=yes when opening virtual mailboxes whose backend
	mailboxes are mostly unchanged.
	[b9bc20b1ef91]

	* src/imap/imap-fetch.c, src/plugins/lazy-expunge/lazy-expunge-
	plugin.c:
	Replaced mail_get_real_mail() callers with mail_get_backend_mail()
	[13ead8c6aed5]

	* src/lib-storage/fail-mail.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/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: Replaced mail_get_real_mail() with
	mail_get_backend_mail() that can fail. For now the
	mail_get_real_mail() can still be used for backwards compatibility.
	[e47b3e215dec]

	* src/lib/primes.c:
	Removed unused code.
	[ac26bb157938]

	* src/lib-storage/index/index-status.c:
	lib-storage: Don't open mailbox on mailbox_get_status() if we have
	no status items left to get.
	[3a6b64bff7ea]

	* src/lib-storage/list/mailbox-list-index-status.c, src/lib-
	storage/list/mailbox-list-index.h:
	lib-storage: Avoid rebuilding the whole mailbox list index when one
	mailbox changes.
	[6fd12fbe6848]

2014-04-09  Timo Sirainen  <tss@iki.fi>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy_expunge: If setting is empty, disable the plugin. Instead of
	assuming that we want to use prefix="" as the lazy_expunge
	namespace, which is highly unlikely anyone will ever want to do.
	[978871ca81e7]

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy_expunge: If lazy-expunge mailbox open/create fails, show the
	mailbox name in error message.
	[ce30e5ac42a9]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	doveadm backup: Another attempt at fixing assert-crashes when
	deleting mailboxes. Only two-way syncs really care about the mailbox
	deletion logs which set existence=DELETED. So actually the log
	reading could be skipped entirely for doveadm backup to speed things
	up.

	In any case the code currently relies that after
	sync_tree_sort_and_delete_mailboxes() the tree no longer has nodes
	with existence=DELETED and mailbox_guid!=0, because that assert-
	crashes in sync_create_mailboxes(). The assert() could probably
	simply be changed into an if(), but might as well keep the code as
	it was originally intended and not have the sync/backup behave more
	differently than needed.
	[20462a116704]

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: If GUID can't be preserved in filename due to size change,
	set it in dovecot-uidlist This fixes problems with dsync when zlib
	is used and filenames/GUIDs don't contain (correct) S=sizes.
	[a7e3ea778ce1]

2014-04-08  Timo Sirainen  <tss@iki.fi>

	* src/lib/str.c, src/lib/test-str.c:
	liblib: Fixed crash using str_c() in different stack frame with
	str_new(0) allocated string.
	[49c7cc58fb1b]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	Compiler warning fix
	[0cafeddf3bf0]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	doveadm backup: Fix to handling mailbox deletions.
	[57a490780b1e]

	* src/lib/strfuncs.h, src/lib/test-strfuncs.c:
	liblib: Added unit test for t_strsplit(data="")
	[3bff23b6c187]

	* src/doveadm/dsync/dsync-brain.c:
	dsync: Fixed using -n "" parameter
	[3e1a69e0cda9]

2014-04-04  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-mail.c:
	maildir: If istream_opened is set by a plugin, don't try to fix
	S=size by renaming. Although this could be fixed in a nicer way by
	actually calculating the correct S=size and using that for renaming.
	[3b9935fe9cb7]

	* src/lib-imap-storage/imap-msgpart.c:
	lib-imap-storage: Don't waste effort getting mail's physical size if
	it can't be done quickly.
	[95ae49692ccb]

	* src/lib-imap-storage/imap-msgpart.c:
	lib-imap-storage: Reverted previous change. It broke FETCH BODY
	[n.HEADER.FIELDS ..]
	[cba3890dafdb]

	* src/lib-imap-storage/imap-msgpart.c:
	lib-imap-storage: Minor code cleanup
	[1b71a0128d2d]

	* src/lib-storage/index/maildir/maildir-mail.c:
	maildir: If istream_opened hook is set, don't return stat()ed file
	size as physical size. That's pretty much always wrong. The hook is
	set with e.g. zlib and mail-filter and similar plugins that modify
	the mail stream.
	[1adbd576f320]

	* src/lib-storage/index/index-mail.c:
	lib-storage: When trying to get body size quickly, make sure we
	don't end up reading the mail body.
	[2338a2c96a22]

2014-04-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-storage.c:
	maildir: Fixed auto-creating INBOX that was missing tmp/ directory
	(but not cur/)
	[0ca197d2da42]

	* src/doveadm/dsync/dsync-ibc-stream.c, src/imap/cmd-append.c,
	src/imap/cmd-idle.c, src/imap/imap-client.c, src/lib-http/http-
	client-connection.c, src/lib-http/http-client-request.c, src/lib-
	http/test-http-client.c, src/pop3/pop3-client.c:
	Use io_add_istream() wherever possible. This shouldn't fix anything,
	but might make some functionality easier to implement in future.
	[a1c153c70bb9]

	* src/lib-http/http-client-connection.c, src/plugins/fts-solr/solr-
	connection.c:
	lib-http: Wrap response payload istream into a istream-timeout.
	[790afcf05f0d]

	* 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 sure I/O input event is triggered after
	ostream-ssl has read some data to buffer.
	[e0a3b902cd3f]

	* src/lib/Makefile.am, src/lib/istream-timeout.c, src/lib/istream-
	timeout.h:
	Added istream-timeout, which triggers I/O event and fails with
	ETIMEDOUT after the timeout.
	[b1a756176ed2]

	* src/lib/ioloop-private.h, src/lib/ioloop.c, src/lib/ioloop.h,
	src/lib/istream-private.h, src/lib/istream.c, src/lib/istream.h:
	Added io_add_istream() and related functionality for combining the
	ioloop/istream. The idea here is that it's possible to implement
	asynchronous istreams when there isn't a file descriptor that can be
	used to reliably receive updates.
	[fd186eff7325]

	* src/lib/ioloop-epoll.c, src/lib/ioloop-kqueue.c, src/lib/ioloop-
	poll.c, src/lib/ioloop-private.h, src/lib/ioloop-select.c,
	src/lib/ioloop.c, src/lib/ioloop.h:
	ioloop: Added io_set_pending()
	[d2a6f57e174f]

	* src/doveadm/dsync/dsync-brain-mailbox-tree.c:
	dsync: Don't assert-crash if we have the same mailbox name in
	conflicting namespaces.
	[8328d67e2329]

	* src/lib/data-stack.c, src/lib/mempool-system.c, src/lib/strfuncs.c:
	DEBUG: Make sure errno isn't changed by vsnprintf()/malloc()/free()
	implementations. They shouldn't, so this should only be a sanity
	check when running with devel-checks. Various parts in the code rely
	on errno not being changed by
	*_strdup_printf() calls.
	[9b50caaa4467]

	* src/lib/istream.c:
	i_stream_read(): If stream_errno is set, fail immediately.
	Previously the stream_errno was reset to 0, but this required the
	istream implementation to correctly set the stream_errno back, which
	wasn't often done.
	[2e275f4e51c3]

	* src/lib-ssl-iostream/istream-openssl.c:
	lib-ssl-iostream: Error handling fix. Don't set last_error="(null)"
	when the connection was simply disconnected.
	[72b50ae2f0c3]

2014-03-29  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-solr/solr-connection.c:
	fts-sorl: Skip returned duplicate results. Similar to bugfix
	d63b209737be in fts-lucene.

	This caused assert-crash at least when searching from virtual
	mailbox because the score array was larger than the actual number of
	results.
	[d55ae5d268a2]

2014-03-28  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/pop3/pop3-commands.c:
	pop3: Fixed off-by-one bug in the sequence number fix of
	d20059f7d3a1.
	[b0359910ec96]

2014-03-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-posix.c:
	lib-fs: posix backend now names the istreams with the file's path.
	[46d1da1cdfc7]

	* src/lib-fs/ostream-metawrap.c:
	lib-fs: ostream-metawrap shouldn't count metadata header as part of
	the stream offsets.
	[b64b507c0377]

2014-03-27  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/ostream-metawrap.c:
	lib-fs: ostream-metawrap didn't update the output stream's offset
	[234e41394894]

	* dovecot.m4:
	dovecot.m4: Minor message improvement.
	[45dd96eb4139]

	* src/lib-fs/fs-posix.c:
	lib-fs: Fixes to posix backend's FS_OPEN_MODE_CREATE_UNIQUE_128
	handling.
	[0b4a0361f1aa]

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: Don't hoard file descriptors when saving mails that are
	larger than mdbox_rotate_size.
	[7ccee18b5085]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Optimization for a large number of mails with the same GUID.
	Still not ideal, but better than before.
	[ea737947fac8]

	* src/doveadm/doveadm-director.c, src/doveadm/doveadm-settings.c,
	src/doveadm/doveadm-settings.h:
	doveadm director move/map: Use director_username_hash setting for
	calculating hashes.
	[b697a214e122]

2014-03-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-queue.c:
	lib-http: Fixed a hang Patch by Stephan Bosch
	[57638bf8ee3e]

	* src/lib-http/http-client-queue.c:
	lib-http: Added debug logging.
	[22424f1a32ad]

2014-03-25  Timo Sirainen  <tss@iki.fi>

	* 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-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:
	dsync: Support multiple -n parameters.
	[08f1c7af0ac0]

2014-03-24  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox-tree.c:
	dsync: Fixed matching namespace for the namespace prefix itself.
	[d972b95720db]

2014-03-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-list.c, src/lib-
	storage/index/imapc/imapc-list.h, src/lib-storage/index/imapc/imapc-
	sync.c:
	imapc: Cache LIST replies for a while to be able to immediately ask
	for mailbox flags/existence. Besides giving better performance, this
	will fix bugs in some servers where LISTing a single mailbox doesn't
	necessarily return it. (In this case a mailbox named "in" wasn't
	returned, but I think Dovecot has had bugs related to this also.)
	[d9ebebdb931b]

2014-03-20  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-mailbox-export.c:
	dsync: Avoid unnecessary data stack memory usage.
	[8fe564dd4018]

	* 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: Avoid hanging when running into server problems.
	imapc_mail_fetch_flush() caused imail->fetch_count to drop to 0, but
	imapc_mailbox_run() still started imapc_client_run() which was doing
	nothing.
	[af7a606dc15c]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c:
	imapc: Fixed crash when FETCH command immediately failed due to
	connection error.
	[610c79565959]

2014-03-19  Timo Sirainen  <tss@iki.fi>

	* src/auth/passdb-imap.c:
	passdb-imap: Fixed reference counting.
	[87e6c9706756]

	* src/lib-dns/dns-lookup.c:
	lib-dns: Fixed handling failed DNS lookups.
	[b4ab1a27b66e]

2014-03-18  Timo Sirainen  <tss@iki.fi>

	* 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: Fixed looking up physical size for a mail while it's being
	saved. Based on patch by Teemu Huovila.
	[30fb6e95b110]

	* src/auth/auth-request.c:
	auth: Added login_user extra field to change the username in master
	passdb.
	[d7e09442b666]

2014-03-17  Timo Sirainen  <tss@iki.fi>

	* src/lib/test-var-expand.c:
	test-var-expand: Added more unit tests for %variable
	offsets/lengths.
	[cb2607ffa93a]

	* src/lib/var-expand.c:
	liblib: Added negative %variable lengths to count backwards from the
	end of the value. For example %0.-2 for "12345" returns "123". Patch
	by Norbert Weinhold / Open-Xchange.
	[97d31cbbfe01]

2014-03-12  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-worker-server.c:
	auth: Don't disconnect auth-worker during long-running user
	iterations.
	[20a25e17bc3e]

	* src/auth/auth-worker-client.c:
	auth worker: Log a warning if master disconnects us while handling a
	long request.
	[9ddb41a2c6c7]

	* src/auth/auth-worker-client.c:
	auth worker: Log a warning if master disconnects us while handling a
	long request.
	[4856ff35f7be]

	* src/auth/auth-worker-server.c, src/auth/auth-worker-server.h,
	src/auth/passdb-blocking.c, src/auth/userdb-blocking.c:
	auth: If auth-worker lookup times out, log a bit more details about
	it.
	[8df5fc361103]

2014-03-11  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Skip returned duplicate results. This caused assert-
	crash at least when searching from virtual mailbox because the score
	array was larger than the actual number of results.
	[d63b209737be]

	* src/lib-storage/index/dbox-multi/mdbox-purge.c, src/lib-
	storage/index/dbox-multi/mdbox-settings.c, src/lib-storage/index
	/dbox-multi/mdbox-settings.h:
	mdbox: Added mdbox_purge_preserve_alt setting to keep the file
	within alt storage during purge. Perhaps it would be better for this
	setting to be the default in v2.3 and maybe be removed entirely? Not
	a good idea to change during v2.2.x anyway, so for now this is a
	setting.
	[a94e1b560a80]

2014-03-04  Timo Sirainen  <tss@iki.fi>

	* 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:
	lib-storage: Fixed assert-crash in mailbox rename with layout=index
	[346981286d20]

2014-02-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-iter.c:
	lib-storage: Fixed support for list=no prefix="" listing. This
	behavior works with e.g. Outlook where it's allowed to CREATE and
	LIST the Sent/Trash/etc mailboxes to root level, even though the
	primary namespace has a prefix.
	[fad7f879caa1]

	* src/imap/cmd-list.c:
	imap: Return SPECIAL-USE flags for LSUB command.
	[2397adb8c1bd]

2014-02-19  Timo Sirainen  <tss@iki.fi>

	* src/auth/db-passwd-file.c:
	auth: Don't crash if passdb passwd-file is used without any userdbs.
	[0378721ea755]

2014-02-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-cache-fields.c:
	lib-index: Minor code cleanup The previous calculation was correct
	also though.
	[0ecc40091784]

2014-02-13  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 8e4433702920
	[bc8822282f60]

	* .hgtags:
	Added tag 2.2.12 for changeset 8e4433702920
	[95a22164e66e]

	* NEWS, configure.ac:
	Released v2.2.12.
	[8e4433702920] [2.2.12]

2014-02-13  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/pop3/pop3-commands.c:
	pop3: Access sequence numbers correctly.
	[d20059f7d3a1]

2014-02-12  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 6b96eb75ded2
	[179834c53f20]

	* .hgtags:
	Added tag 2.2.11 for changeset 6b96eb75ded2
	[cd14178e77b8]

	* NEWS, configure.ac:
	Released v2.2.11.
	[6b96eb75ded2] [2.2.11]

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Recent changes caused global ACL filenames to be looked up with
	real mailbox names, not vnames.
	[efba333bf4c0]

2014-02-07  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-settings.c:
	auth: Allow auth_verbose_passwords=yes as an alias for "plain".
	[27ac53f11f1f]

	* src/auth/auth-settings.c:
	auth: Fixed crash/NULL error if auth_verbose_passwords had an
	invalid value.
	[afd3cfcf1bcb]

	* src/lib-http/test-http-url.c:
	lib-http: Fixed test-http-url not to crash with some libcs Those
	that crash when %s attempts to print NULL.
	[ff81b3f52e8f]

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Fixed assert-crash when using the new global ACL file.
	[c69ca1f5bc34]

	* src/pop3/pop3-commands.c:
	pop3: Use POP3 order sorting only when directly listing UIDLs.
	"Message ordering changed unexpectedly" errors can be completely
	avoided by using either pop3_lock_session=yes or adding %u to
	pop3_logout_format.
	[59decc957b39]

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added pop3.order field.
	[36d11bf4e58d]

	* src/doveadm/doveadm-auth.c:
	doveadm user: Don't crash if multiple mask parameters are given with
	at least one wildcard.
	[a16dbcb0f477]

2014-02-05  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-batch.c, src/lib/test-str.c:
	Copyright updated to 2014 in two more places
	[cce087bde475]

2014-02-04  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-compression/ostream-lz4.c:
	lib-compression: Add assert for LZ4_compress return value. Make
	certain we detect if compressed data overflows the allocated space.
	[e30597858a66]

2014-02-04  Timo Sirainen  <tss@iki.fi>

	* 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-
	cache-key.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/test-db-dict.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-fs.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-deduplicate.c,
	src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail-
	fetch.c, src/doveadm/doveadm-mail-flags.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-replicator.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-
	mailbox.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-getmetadata.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-setmetadata.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-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-metadata.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-lzma.c, src
	/lib-compression/istream-zlib.c, src/lib-compression/ostream-
	bzlib.c, src/lib-compression/ostream-lzma.c, src/lib-compression
	/ostream-zlib.c, src/lib-dict/dict-cdb.c, src/lib-dict/dict-
	client.c, src/lib-dict/dict-db.c, src/lib-dict/dict-file.c, src/lib-
	dict/dict-fs.c, src/lib-dict/dict-memcached-ascii.c, src/lib-dict
	/dict-memcached.c, src/lib-dict/dict-redis.c, src/lib-dict/dict-
	register.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-metawrap.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/istream-fs-file.c, src/lib-fs/istream-metawrap.c, src
	/lib-fs/ostream-cmp.c, src/lib-fs/ostream-metawrap.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-queue.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-
	header.c, src/lib-http/http-message-parser.c, src/lib-http/http-
	parser.c, src/lib-http/http-request-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-request-parser.c, src/lib-http/test-http-response-
	parser.c, src/lib-http/test-http-server.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-quote.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-sasl
	/dsasl-client.c, src/lib-sasl/mech-login.c, src/lib-sasl/mech-
	plain.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.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-deleted-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-list-index.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-hash.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-hash.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-attributes.c, src/plugins/acl/acl-backend-vfile-acllist.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-filter
	/istream-ext-filter.c, src/plugins/mail-filter/mail-filter-plugin.c,
	src/plugins/mail-filter/ostream-ext-filter.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-status.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/dsync-client.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 2014.
	[add8c00fb3cc]

2014-02-03  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-search.c:
	imap: SEARCH/SORT PARTIAL reponses may have been too large.
	[c329508e4fec]

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Fixed assert-crash when listing INBOX and imapc_list_prefix
	was set.
	[0b86bd67f1e4]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	doveadm backup: Fixed assert-crash when syncing mailbox deletion.
	[fbc8fe46dfce]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	dsync: Added extra asserts
	[e5e7579e30f0]

	* src/lib/test-istream-concat.c:
	test-istream-concat unit test improved. Still pretty ugly to test
	with randomness, but at least it caught the bug in v2.1.
	[e1db4af9e2c1]

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: If UIDLs can't be set, fail unless
	pop3_migration_ignore_missing_uidls=yes.
	[1c298212ab70]

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Convert NULs to 0x80 chars in header when hashing.
	This should help at least with Dovecot and I think also with UW-
	IMAP/POP3.
	[3839e4e62413]

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Work around IMAP/POP3 server bugs which truncate the
	header too early.
	[18d0ce83bf7a]

2014-01-31  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-auth.c:
	doveadm auth cache flush: Fixed broken default auth-master path.
	Broken by c41700c4a9bb. Patch by Chris Moules.
	[5432b55a2b87]

2014-01-30  Timo Sirainen  <tss@iki.fi>

	* src/lib/net.c:
	net_transmit() may have wrongly returned EPIPE error. If errno was
	EPIPE before net_transmit() was called and sendto() didn't change
	it, we still returned error.

	Also removed the unlikely() call which isn't all that unlikely for
	non-blocking code.
	[93cf0434dda4]

2014-01-30  Teemu Huovila  <teemu.huovila@dovecot.fi>

	* src/lib-compression/ostream-lz4.c:
	lib-compression: Fixed LZ4 maximum output buffer size
	[d9d2d04bb320]

2014-01-27  Timo Sirainen  <tss@iki.fi>

	* 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-backend-vfile.c, src/plugins/acl/acl-backend-
	vfile.h, src/plugins/acl/acl-global-file.c, src/plugins/acl/acl-
	global-file.h:
	acl plugin: Added an alternative global ACL file that can contain
	mailbox patterns. Instead of pointing the global ACL path to a
	directory use a file instead. The file format is "<mailbox pattern>
	<normal ACL line>". Most importantly this can be used to specify
	default ACLs for namespaces.

	The mailbox pattern uses "*" and "?" wildcards currently. I'm not
	sure if I should still change them to IMAP "*" and "%" wildcards.
	That would make the behavior more complex ("%" depends on hierarchy
	separator), slightly slower and quota code is already also using the
	*/? wildcards..
	[9376bf098692]

	* src/lib-compression/istream-lz4.c:
	lib-compression: Assert-crashfix to handling EOF in LZ4 compression
	[1a54118f4690]

2014-01-17  Timo Sirainen  <tss@iki.fi>

	* src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-backend-
	vfile.h:
	acl: Minor macro naming cleanup
	[6018854c8c91]

	* src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c,
	src/plugins/acl/acl-backend-vfile-update.c, src/plugins/acl/acl-
	backend-vfile.c, src/plugins/acl/acl-backend-vfile.h:
	acl: Moved acl_rights array from vfile-specific code to generic
	struct acl_object.
	[018c66251db6]

	* src/plugins/acl/acl-api-private.h, src/plugins/acl/acl-api.c,
	src/plugins/acl/acl-backend-vfile-update.c, src/plugins/acl/acl-
	backend-vfile.c:
	acl: More code cleanups.
	[498fcb82fcb6]

	* src/plugins/acl/Makefile.am, src/plugins/acl/acl-api-private.h,
	src/plugins/acl/acl-api.c, src/plugins/acl/acl-backend-vfile-
	update.c, src/plugins/acl/acl-backend-vfile.c, src/plugins/acl/acl-
	backend-vfile.h:
	acl: Code cleanup by moving around the code and renaming functions.
	[a217a938f9ae]

2014-01-15  Timo Sirainen  <tss@iki.fi>

	* src/lib/strescape.c, src/lib/strescape.h, src/lib/test-strescape.c:
	liblib: Added str_unescape_next()
	[9735c6fb7e39]

	* src/plugins/stats/stats-plugin.c:
	stats plugin: Fixed updating clock_time
	[bdec18a1aa40]

	* src/stats/client-export.c:
	stats: Also export the clock_time to doveadm.
	[d6b6d83efb4e]

	* src/plugins/stats/stats-plugin.c, src/plugins/stats/stats-plugin.h,
	src/stats/mail-stats.c, src/stats/mail-stats.h:
	stats: Track clock time as well as user/sys CPU time.
	[43c02090c6cf]

	* 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-view-private.h, src/lib-index/mail-index-
	view.c, src/lib-index/mail-index.c:
	lib-index: Keep track of views and transactions in linked lists.
	This makes debugging easier.
	[3f352534af56]

	* src/imap-login/imap-proxy.c:
	imap-proxy: Fixed resetting proxy state after failed login.
	[5abd643c0dd2]

	* src/imap-login/client.h, src/imap-login/imap-proxy.c:
	imap-proxy: Recent changes caused CAPABILITY repeating with
	pipelining disabled.
	[d06f4f1bdaaf]

	* src/lib-compression/Makefile.am:
	Makefile: Added missing iostream-lz4.h
	[ccb3535bf650]

	* configure.ac, src/lib-compression/Makefile.am, src/lib-
	compression/compression.c, src/lib-compression/iostream-lz4.h, src
	/lib-compression/istream-lz4.c, src/lib-compression/istream-zlib.h,
	src/lib-compression/ostream-lz4.c, src/lib-compression/ostream-
	zlib.h:
	lib-compression: Added initial support for LZ4 There's no standard
	file format for LZ4, so we created our own. The code has had only
	minimal testing currently, so there may be bugs.
	[fb4a0a84da50]

	* src/lib-http/http-client-request.c, src/lib-http/http-client.h:
	lib-http: Added http_client_request_remove_header()
	[3f3c9f93a0b3]

	* src/lib-http/http-client-request.c:
	lib-http: Allow calling http_client_request_add_header() when
	retrying requests.
	[63244d272133]

2014-01-14  Timo Sirainen  <tss@iki.fi>

	* src/login-common/client-common.c:
	*-login: Fix to previous commit: Default auth_user to original_user
	[632a1c79cdc3]

	* src/auth/auth-request-handler.c, src/lib-storage/mail-storage-
	service.c, src/lib-storage/mail-user.c, src/lib-storage/mail-user.h,
	src/login-common/client-common.c, src/login-common/client-common.h,
	src/login-common/sasl-server.c:
	auth, login, mail: Added %{auth_user}, %{auth_username} and
	%{auth_domain} They expand to the SASL authentication ID. So if
	master user login is done, it expands to the master user. If
	username changes during authentication, it expands to the original
	username. Otherwise %{user} and %{auth_user} are equal.
	[5350000a999b]

	* src/auth/auth-request-handler.c:
	auth: Send original_user to auth client also when there aren't any
	extra fields.
	[61142fbbecf0]

2014-01-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-common/dbox-file.h, src/lib-storage/index
	/dbox-multi/mdbox-file.c:
	dbox: Removed unused code.
	[9927ab6b99a1]

	* src/lib/iostream-temp.c:
	iostream-temp: Support o_stream_pwrite()
	[3df6ebae9e5a]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Fixed non-recursive deletion broken by previous
	commit
	[436117bbac78]

2014-01-10  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-header-parser.c:
	http: Improved HTTP header parser state machine and error messages.
	[012d6d22aa67]

	* src/lib-http/http-header-parser.c, src/lib-http/http-header-
	parser.h, 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-response-parser.c, src/lib-http/http-transfer-chunked.c, src
	/lib-http/test-http-header-parser.c, src/lib-http/test-http-
	response-parser.c:
	lib-http: Added option to the header parser to make it lenient
	towards illegal characters in header field content. The offending
	characters are then skipped without error. This is required for the
	http client as a workaround for bugs in certain HTTP servers. This
	behavior is explicitly not enabled for the http-request-parser as
	used by our own HTTP server implementation.
	[4650bfc057fb]

2014-01-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/Makefile.am, src/lib-master/test-master-service-
	settings-cache.c:
	lib-master: Added unit test for master_service_settings_cache_read()
	[9360aeba0099]

	* src/imap-login/imap-proxy.c:
	imap proxy: Avoid duplicate CAPABILITY reply when backend is
	Dovecot. This happened if the client sent a CAPABILITY command to
	the proxy.
	[4dd86f75346b]

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Added -n parameter to asynchronously delete
	multiple files at once.
	[b6ab0e056c0b]

2014-01-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/fail-mailbox.c:
	lib-storage: Implemented get_metadata() for fail-mailbox. This fixes
	a crash when a nonexistent mailbox was allocated and accessed (via
	LAYOUT=index).
	[f9a11e81209f]

2014-01-07  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/imap-proxy.c:
	imap proxy: Set proxy_state correctly also with proxy_nopipelining.
	[a0e04a5aadab]

2013-12-23  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/imap-proxy.c, src/login-common/client-common-auth.c,
	src/login-common/client-common.h:
	imap proxy: Added proxy_nopipelining passdb setting to work around
	other servers' bugs.
	[6b8ae0ba5959]

2013-12-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-purge.c:
	mdbox: When purging writes new data, flush them to disk before
	locking the map index.
	[e322c40a82a9]

	* .hgsigs:
	Added signature for changeset 614bd6600011
	[bfee9f413844]

	* .hgtags:
	Added tag 2.2.10 for changeset 614bd6600011
	[dab38d4a4591]

	* NEWS, configure.ac:
	Released v2.2.10.
	[614bd6600011] [2.2.10]

	* src/lib-sql/driver-mysql.c:
	Compiler warning fix. Older libmysqlclient uses const char * as the
	arg.
	[f8ffa5e47e6f]

	* src/plugins/imap-quota/imap-quota-plugin.c:
	imap-quota: SETQUOTA supports now also user@domain:quotaroot name.
	[623b1d9414a6]

	* src/imap/cmd-getmetadata.c:
	imap: GETMETADATA should return nonexistent entries also with NIL
	values.
	[b7b4ff5a9eec]

2013-12-19  Timo Sirainen  <tss@iki.fi>

	* src/auth/db-ldap.c:
	auth: If LDAP server returns LDAP_OPERATIONS_ERROR, reconnect.
	Apparently the server somehow lost the bind.
	[ea38559ffd4e]

	* src/plugins/quota/quota-status.c, src/plugins/quota/quota.c:
	quota-status: Allow mail to go over quota up to quota_grace.
	[be98fec32cd8]

	* src/imap/cmd-getmetadata.c:
	imap: Minor comment update: Horde uses wildcards, not Kolab.
	[eb830b4196c4]

	* src/imap/cmd-getmetadata.c:
	imap: Allow wildcards in GETMETADATA mailbox-name. RFC 5464 doesn't
	specify this, but its earlier draft did, and Kolab uses it.
	[0c3071ebe44b]

	* src/imap/cmd-getmetadata.c:
	imap: GETMETADATA wasn't working correctly if options parameter
	wasn't specified.
	[f64810b00b7f]

	* src/imap/cmd-setmetadata.c:
	imap: SETMETADATA shouldn't assert-crash when entry name is invalid
	[cded53530a9f]

	* src/imap/cmd-fetch.c, src/imap/cmd-store.c, src/imap/imap-fetch.c:
	imap: If any FETCH/STORE tries to access modseqs when NOMODSEQ was
	returned, return BAD.
	[bd50cc9fa757]

	* src/imap/cmd-select.c:
	imap: Ignore QRESYNC parameters for SELECT when returning NOMODSEQ.
	[1d8fef81d4b6]

	* src/lib-fs/fs-sis.c:
	fs-sis: Memory leak fix.
	[4ba74eca3099]

	* src/lib-storage/index/pop3c/pop3c-client.c, src/lib-
	storage/index/pop3c/pop3c-storage.c:
	pop3c: Memory leak fixes
	[369d8e994372]

	* src/imap/cmd-select.c, src/imap/imap-client.h, src/imap/imap-sync.c:
	imap: if mailbox has non-permanent modseqs, never send
	HIGHESTMODSEQ/MODSEQs.
	[f5e51a926542]

	* src/imap/cmd-getmetadata.c:
	Compiler warning fix.
	[c23063144736]

	* src/lib-storage/index/pop3c/pop3c-storage.c:
	pop3c: If POP3 server doesn't support UIDLs, don't advertise GUID
	support.
	[5eed62d890f7]

	* src/lib-storage/index/pop3c/pop3c-mail.c, src/lib-
	storage/index/pop3c/pop3c-settings.c, src/lib-storage/index/pop3c
	/pop3c-settings.h:
	pop3c: Added pop3c_quick_received_date setting. With this enabled
	dsync no longer requires calling TOP for each message to get the
	metadata.
	[970ffc20b8a0]

	* src/lib-storage/index/pop3c/pop3c-mail.c, src/lib-
	storage/index/pop3c/pop3c-storage.c:
	pop3c: Use UIDLs as GUIDs.
	[a56ef53bd3ce]

2013-12-17  Timo Sirainen  <tss@iki.fi>

	* src/plugins/mail-filter/istream-ext-filter.c, src/plugins/mail-
	filter/ostream-ext-filter.c:
	mail-filter: If filter returns 0 bytes, treat it as EIO error.
	[ba855eac00db]

2013-12-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-auth.c:
	Compiler warning fix
	[b31f2a0b1273]

2013-12-13  Timo Sirainen  <tss@iki.fi>

	* src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c,
	src/auth/userdb-ldap.c:
	ldap: Added blocking=yes setting to use auth-workers.
	[89f1cefe0f89]

2013-12-12  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-auth.c:
	lib-master: Show better error message when process_limit is reached.
	[3535659d6cc2]

	* src/auth/auth-request.c, src/auth/auth-request.h, src/auth/userdb-
	prefetch.c:
	auth: Previous userdb changes caused userdb prefetch to be used
	always.
	[1600e97dabbb]

	* src/auth/auth-settings.c, src/auth/auth.c:
	auth: Don't crash when userdb hasn't been specified at all.
	[eaadd1e1fea2]

	* src/lib-compression/istream-lzma.c:
	lzma: Reading until EOF without seeing LZMA_STREAM_END isn't an
	error.
	[fb157c79473e]

2013-12-11  Timo Sirainen  <tss@iki.fi>

	* src/login-common/ssl-proxy-openssl.c:
	login-*: Make sure "need to write more" flag doesn't get stuck
	during handshake. This should prevent busy-looping in SSL_accept().
	(Second attempt at doing this, first one was in e95479f439aa.)
	[c0236d1c4a04]

	* src/auth/db-ldap.c, src/auth/db-ldap.h:
	auth: Use refcounting for LDAPMessage to make sure it always gets
	freed correctly. This may fix some memory leaks in some (error?)
	cases.
	[d9cf369a8b6d]

	* src/auth/passdb-ldap.c:
	auth: ldap with auth_bind=yes leaked memory Existing LDAP search
	request can't just be converted into bind request before the search
	request is freed. So just create a new request.
	[3f7cc2dd6410]

2013-12-09  Timo Sirainen  <tss@iki.fi>

	* src/master/main.c:
	master: Include used protocols in the "starting up" log message.
	[e49f481af55b]

	* src/plugins/quota/quota.c:
	quota: Fix to previous wildcard change
	[feb656fd212e]

	* configure.ac, doc/example-config/dovecot-sql.conf.ext, src/lib-sql
	/driver-mysql.c:
	mysql: Added ssl_verify_server_cert=no|yes parameter. To make sure
	we don't break existing installations, default to "no". For v2.3 it
	should default to "yes".

	Patch by Gareth Palmer
	[7a7898ffe87f]

2013-12-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	request.c:
	lib-http: Don't try to automatically retry requests whose payload
	was already lost. Patch by Stephan Bosch.
	[353c3e3edc52]

	* src/plugins/stats/stats-plugin.c:
	stats: Workaround opening /proc/self/io in processes that have only
	temporarily dropped root privileges.
	[7acfc7b1b8f4]

	* src/plugins/quota/quota-private.h, src/plugins/quota/quota-
	storage.c, src/plugins/quota/quota.c:
	quota: Allow mailbox names in quota_rules to contain "*" and "?"
	wildcards.
	[78b34eb7c6c5]

	* src/plugins/fts/fts-search.c:
	fts: Fixed crash with some search queries in empty mailbox.
	[d837bd49ddee]

	* src/master/master-settings.c, src/master/service-process.c:
	master: Finished the previous DEBUG_OUTOFMEM -> CORE_OUTOFMEM and
	CORE_ERROR change.
	[e8efac64e081]

	* src/lib/failures.c:
	Renamed DEBUG_OUTOFMEM environment to CORE_OUTOFMEM. Added
	CORE_ERROR to dump core on the first error.
	[10ded3e11a8e]

	* src/plugins/imap-quota/imap-quota-plugin.c, src/plugins/quota/quota-
	private.h, src/plugins/quota/quota.c:
	quota: Added support for SETQUOTA IMAP command. The configuration is
	done via quota_set setting. Currently only dict backend is
	supported. For example:

	plugin { quota_set = dict:file:/var/lib/dovecot/quota/%u } The
	SETQUOTA command is available only for the "admin" user (userdb
	lookup must return admin=y).
	[fa84a2cd1dce]

	* src/plugins/imap-quota/imap-quota-plugin.c:
	imap-quota: Admin user can (again) use GETQUOTA for other users'
	quota roots.
	[51edc7daf7f0]

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.h:
	lib-storage: Added mail_user->admin flag. The previous admin-flag
	used to mix up "admin user" and "admin tool", while this new purpose
	only means "admin user".
	[3e8f300175bb]

	* src/lib-dict/Makefile.am, src/lib-dict/dict-fs.c, src/lib-dict/dict-
	private.h, src/lib-dict/dict-register.c, src/lib-dict/dict.c:
	lib-dict: Added "fs" wrapper dict backend, which uses lib-fs. Each
	dict key is a separate file where the file's contents are the dict
	value.
	[773e9ce608ed]

	* 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-settings.c,
	src/auth/auth-settings.h, src/auth/auth-worker-client.c,
	src/auth/auth.c, src/auth/auth.h, src/auth/userdb-blocking.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-sql.c, src/auth/userdb-static.c, src/auth/userdb-
	vpopmail.c:
	auth: Added userdb result_success/failure/tempfail and skip
	settings, similar to passdb's.
	[eeadb7b5045b]

	* src/lib-storage/index/index-storage.c:
	lib-storage: Don't crash in mailbox_is_inconsistent() if mailbox
	hasn't been opened.
	[0595d54ab34a]

	* doc/example-config/dovecot-dict-auth.conf.ext, src/auth/Makefile.am,
	src/auth/db-dict-cache-key.c, src/auth/db-dict.c, src/auth/db-
	dict.h, src/auth/passdb-dict.c, src/auth/test-db-dict.c, src/auth
	/userdb-dict.c:
	auth: passdb/userdb dict rewrite to support more complex
	configuration. See the new doc/example-config/dovecot-dict-
	auth.conf.ext for explanation how it works. The old configuration
	format will also stay functional.
	[d2ad697ba810]

2013-12-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap/imap-envelope.c:
	lib-imap: imap_envelope_parse() added extra "," after address group.
	This function wasn't actually used by Dovecot anywhere anymore.
	Patch by Potapov Sergey.
	[342f6962390e]

	* src/imap/cmd-append.c, src/imap/cmd-create.c, src/imap/cmd-delete.c,
	src/imap/cmd-expunge.c, src/imap/cmd-getmetadata.c, src/imap/cmd-
	rename.c, src/imap/cmd-resetkey.c, src/imap/cmd-select.c, src/imap
	/cmd-setmetadata.c, src/imap/cmd-store.c, src/imap/cmd-subscribe.c,
	src/imap/cmd-thread.c, src/imap/imap-commands-util.c, src/imap/imap-
	commands-util.h, src/imap/imap-search.c:
	imap: If SELECT fails with "mailbox is inconsistent", disconnect
	client. (Plus related cleanups.) The inconsistency can also be used
	to indicate that something is badly wrong and nothing useful can be
	done before client reconnects.
	[9946079253c4]

	* src/lib-http/http-client-queue.c:
	lib-http: Removed assert Time can't be relied on exactly.
	[21d96c97f519]

	* src/imap/cmd-select.c, src/lib-storage/index/index-status.c, src
	/lib-storage/mail-storage.h:
	imap: Don't send [NOMODSEQ] on SELECT/EXAMINE reply when condstore
	hasn't been enabled yet. This is definitely the better behavior and
	was also clearly intended by the CONDSTORE RFC, although with some
	mixed language.
	[7171fd6732e1]

2013-12-02  Timo Sirainen  <tss@iki.fi>

	* src/pop3/pop3-commands.c:
	pop3: Handle UIDL failures by disconnecting the client instead of
	killing the whole process.
	[0c9ab8cf9c1a]

2013-11-26  Timo Sirainen  <tss@iki.fi>

	* src/replication/replicator/replicator-queue.c:
	replicator: Give a better error message with path when replicator.db
	is corrupted.
	[5c170e0786f3]

2013-11-25  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 2852a7c55fc7
	[7af50f53cc7e]

	* .hgtags:
	Added tag 2.2.9 for changeset 2852a7c55fc7
	[a09e0dced4c4]

	* NEWS, configure.ac:
	Released v2.2.9.
	[2852a7c55fc7] [2.2.9]

	* src/plugins/mail-filter/Makefile.am:
	Makefile: Added missing \
	[c86996b40168]

	* src/plugins/mail-filter/Makefile.am:
	Makefile: Added missing header files
	[22aef00ae211]

2013-11-24  Timo Sirainen  <tss@iki.fi>

	* configure.ac, src/lib-compression/Makefile.am, src/lib-
	compression/compression.c, src/lib-compression/istream-lzma.c, src
	/lib-compression/istream-zlib.h, src/lib-compression/ostream-lzma.c,
	src/lib-compression/ostream-zlib.h:
	lib-compression: Added support for liblzma (xz) Annoyingly this is
	mainly copy&pasted [io]stream-bzlib, but I'm not sure if it's worth
	the effort to try to create common functions for them.
	[81e486aacbc7]

2013-11-24  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-mailbox.1.in:
	man: doveadm-mailbox.1: Added -g's description for mailbox create.
	[ace36e525e1f]

2013-11-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-dns/dns-lookup.c, src/lib-settings/settings.c:
	Fixed sscanf() error handling. Patch by Jann Horn.
	[a9d4cdb09297]

2013-11-24  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-log.1.in:
	man: doveadm-log.1: Added description for option -s.
	[89dd80dfb86e]

	* doc/man/doveadm-import.1.in:
	man: doveadm-import.1: Added description for option -s.
	[be86adfff0ca]

	* doc/man/doveadm-expunge.1.in:
	man: doveadm-expunge.1: Added option -d also to section synopsis.
	[440acf9fd5ce]

2013-11-24  Timo Sirainen  <tss@iki.fi>

	* src/lib/data-stack.c:
	Data stack has now an extra NULL pointer padding before its actual
	data starts. This is just an extra safety measure against buffer
	overflows. Patch by Jann Horn.
	[2d2614769339]

	* src/auth/mech-digest-md5.c:
	auth: Fixed (non-exploitable) buffer overflow in DIGEST-MD5 data
	parsing. Found by Jann Horn.
	[2b3541c3e262]

2013-11-23  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-move.1.in:
	man: doveadm-move.1: Fixed syntax errors, escaped some dashes.
	[8a3d0426f514]

	* doc/man/doveadm-index.1.in:
	man: doveadm-index.1: Added description for options -n and -q.
	[151a2cfe3d34]

2013-11-23  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-storage.c:
	fts: Renamed fts_autoindex_on_save to fts_autoindex
	[14be468c8963]

	* src/replication/replicator/dsync-client.c:
	replicator: Memory leak fix for previous commit
	[faf8af1b375d]

	* src/replication/replicator/dsync-client.c,
	src/replication/replicator/dsync-client.h,
	src/replication/replicator/replicator-brain.c,
	src/replication/replicator/replicator-settings.c,
	src/replication/replicator/replicator-settings.h:
	replicator: Added replication_dsync_parameters setting to pass
	"doveadm sync" parameters.
	-f and -s parameters are added automatically when needed.
	[556e654cc9a0]

2013-11-23  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-move.1.in:
	man: doveadm-move.1: Added description for 'user source_user'.
	[0870cca2b4fb]

2013-11-23  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts/fts-storage.c:
	fts: Added plugin { fts_autoindex_on_save } setting. When enabled
	and a mail is saved/copied, the indexer process is requested to
	index the changed mailbox.

	fts_autoindex_max_recent_msgs setting can also be used to skip
	indexing mailboxes that have too many \Recent messages (implying
	that the mailbox is never actually accessed). This corresponds to
	doveadm index -n parameter.
	[3aa27f41fc42]

2013-11-23  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-user.1.in:
	man: doveadm-user.1: Added description for the -u option.
	[bab3e86bdb6a]

2013-11-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-dns/dns-lookup.c:
	lib-dns: If existing dns connection dies in write(), retry connect
	once.
	[29e98eb92955]

	* src/lib-http/http-client-request.c:
	lib-http: Compiler warning fix
	[8bd6c378afd2]

	* src/lib-storage/mailbox-list.c:
	lib-storage: Non-crashing way of avoiding fs lookups for storages
	without mail root.
	[f1e8dc453fd2]

	* src/lib-http/http-client-connection.c:
	lib-http: Fixed request hang on connect() timeout.
	[7df4141eb57a]

2013-11-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Don't do filesystem permission lookups if storage has
	no mailbox root dir.
	[2b79848b013f]

	* src/dns/dns-client.c:
	dns: Don't idle-disconnect clients It's the job for the clients.
	[fd071679352a]

	* src/lib-dns/dns-lookup.c:
	lib-dns: Fixed handling write() failure to dns-lookup server
	process.
	[75b6c3b8ee20]

2013-11-22  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h, src/lib-http/http-client-queue.c, src/lib-http/http-
	client-request.c, src/lib-http/http-client.c, src/lib-http/http-
	client.h:
	http: Implemented delayed requests scheduling. Requests can now be
	(re)submitted with a delay. The request is not sent until the delay
	time expires. This facilitates handling the Retry-After header in
	responses. This can either be performed automatically if the
	indicated delay is not too long or explicitly by the code using lib-
	http.
	[d2f2423615d7]

	* src/lib-http/http-response-parser.c, src/lib-http/http-response.h:
	http: Preparse Retry-After header if response status is 503 or 3xx.
	[c215131c2c18]

	* src/lib-http/http-client-host.c, src/lib-http/http-client-private.h,
	src/lib-http/http-client-request.c:
	http-client: Improved handing of delayed request errors. Originally
	each request would have its own zero timeout, but now only one
	timeout is put in the host object.
	[6b48a5675512]

	* src/lib-http/Makefile.am, 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-queue.c, src/lib-http/http-client-request.c,
	src/lib-http/http-client.c:
	http-client: Changed struct http_client_host_port into a struct
	http_client_queue object. Peer and request objects now reference the
	queue object directly rather than the host object. This way, there
	is no need to find the matching host:port in the host anymore. This
	makes the queueing structure more intuitive and more efficient. This
	is a first step towards support for connecting to HTTP services
	through unix sockets or directing requests at specific hosts (so not
	from the URL). This patch also fixes a potential timeout leak
	(to_connect) in http_client_host_port (now http_client_queue) and
	makes sure it is moved during switch_ioloop(). Finally it updates
	the structure comment at the top of http-client.c.
	[160e489d7c12]

2013-11-22  Timo Sirainen  <tss@iki.fi>

	* src/lib/iostream-rawlog-private.h, src/lib/iostream-rawlog.c:
	iostream-rawlog: Timestamp prefix is now optional.
	[cf38c8eb8493]

	* configure.ac, src/plugins/Makefile.am, src/plugins/mail-
	filter/Makefile.am, src/plugins/mail-filter/istream-ext-filter.c,
	src/plugins/mail-filter/istream-ext-filter.h, src/plugins/mail-
	filter/mail-filter-plugin.c, src/plugins/mail-filter/mail-filter-
	plugin.h, src/plugins/mail-filter/ostream-ext-filter.c, src/plugins
	/mail-filter/ostream-ext-filter.h:
	Added mail-filter plugin.
	[84ccfa053bcd]

	* src/plugins/acl/doveadm-acl.c:
	doveadm acl debug: Improved output
	[157b428d4ea4]

	* src/lib/ostream-private.h, src/lib/ostream.c:
	ostream: Don't mark the stream closed too early after all. Use
	another flag instead to avoid losing the last data written to the
	stream before closing.
	[e3a87c25e0b2]

2013-11-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Improved EACCES error messages for some stat() calls
	[af96719b5d9c]

2013-11-20  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm: Added "fs metadata" command
	[d2e95af17305]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Fix to 128bit GUID syncing
	[df2b27885c9d]

	* src/doveadm/dsync/dsync-brain-mailbox.c:
	dsync: have_only_guid128 was never actually being set.
	[fbf77af0233c]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: mail_get_headers*() returned only the first header from
	cache.
	[47923cfd4b56]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: mail_get_*header*() still didn't handle cached values
	correctly. If header ends with ":", the ":" shouldn't be returned as
	part of the value.
	[4ef184875799]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: mail_get_*header*() were unnecessarily looking up the
	headers twice.
	[a91437fe94b6]

	* src/lib-storage/index/index-mail-headers.c:
	lib-storage: mail_get_*header*() didn't remove leading whitespace
	for headers from cache. But it was removed when the headers were
	found by parsing the full header.
	[f4eb4b5884b2]

2013-11-19  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 095a777edc26
	[4a0c03f98ca3]

	* .hgtags:
	Added tag 2.2.8 for changeset 095a777edc26
	[112defd08e14]

	* NEWS, configure.ac:
	Released v2.2.8.
	[095a777edc26] [2.2.8]

	* src/auth/auth-request-handler.c:
	auth: Fixed potential crash.
	[dd321a3304fa]

	* src/lmtp/client.c:
	lmtp: Make sure output is flushed before disconnection.
	[5f946b807706]

	* src/lib-storage/list/mailbox-list-index-backend.c:
	lib-storage: Error handling fix for layout=index when mailbox
	creation fails.
	[908283e74473]

2013-11-18  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-auth.c:
	doveadm user: Fixed now printing with a non-default formatter
	[d925674c4329]

	* src/doveadm/doveadm-auth.c:
	doveadm user: Fixed printing multiple users
	[2503785cf989]

	* src/doveadm/doveadm-auth.c, src/doveadm/doveadm-settings.c,
	src/doveadm/doveadm-settings.h:
	doveadm auth/user: Fixes to auth_socket_path handling. doveadm user
	(without -u parameter) was ignoring "-a" parameter entirely. Others
	weren't using auth_socket_path setting.
	[c41700c4a9bb]

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	lib-storage: Added mail_storage_service_set_auth_conn()
	[c6f1909e52af]

	* src/doveadm/doveadm-auth.c:
	doveadm user: Fixed looking up multiple users when they had
	different UIDs
	[5870a1656b9f]

2013-11-17  Pascal Volk  <user@localhost.localdomain.org>

	* .hgignore, doc/man/Makefile.am, doc/man/doveadm-batch.1.in,
	doc/man/doveadm.1.in:
	man: Added doveadm-batch.1.
	[0ba1ca4552b7]

2013-11-17  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-
	ibc-stream.c, src/doveadm/dsync/dsync-mailbox-import.c,
	src/doveadm/dsync/dsync-mailbox-import.h, src/doveadm/dsync/dsync-
	mailbox.h, src/lib-storage/mail-storage-private.h, src/lib-storage
	/mail-storage.c, src/lib-storage/mail-storage.h:
	dsync: Support syncing storages with 128bit GUIDs <-> string GUIDs.
	[8a7ecddca4ad]

	* src/lib-storage/index/index-mail.c:
	lib-storage: Fixed memory leak in mail_add_temp_wanted_fields()
	[a04c7365299e]

	* 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-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: Merge identical FETCH commands together (only updating UID
	range)
	[10462996fa32]

	* src/doveadm/dsync/dsync-mailbox-export.c:
	dsync: Tell search that we want to fetch mail streams so prefetching
	works.
	[aec5d4170e74]

	* src/doveadm/dsync/dsync-mailbox-export.c:
	dsync: Set wanted_fields/headers for the whole search request when
	possible.
	[12b6698e91a9]

	* src/lib-imap-client/imapc-client-private.h, src/lib-imap-client
	/imapc-client.c, src/lib-storage/index/imapc/imapc-sync.c:
	imapc: Avoid sending unnecessary IDLEs that are immediately aborted.
	[ef649e2a980e]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Don't reset timeout while waiting for IDLE DONE
	reply.
	[fa4c87b510ea]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Make sure command timeout is used also for IDLE
	DONE.
	[5726807ed06d]

	* src/lib/ioloop.c, src/lib/ioloop.h:
	Added io_loop_add/remove_switch_callback() to call a callback when
	ioloop is changed.
	[54eb87b7761c]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Don't send NOOP if we're still waiting for a
	command reply.
	[3937b2e39963]

	* src/lib-imap-client/imapc-connection.c:
	lib-imap-client: Make sure command timeout is always set.
	[f80bd0ace609]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib-
	storage/index/imapc/imapc-mail.c:
	imapc: Fixes to imapc_feature fetch-headers
	[be0e619a018b]

2013-11-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-cache-transaction.c:
	lib-index: Recent change broke cache transactions for more than 1
	mail.
	[94a467b0cb34]

	* src/doveadm/client-connection.c, src/lib-dict/dict-memcached-
	ascii.c, src/lib-dict/dict-memcached.c, src/lib-dict/dict-redis.c,
	src/lib-http/http-client-request.c, src/lib-http/http-client.c, src
	/lib-imap-client/imapc-client.c, src/lib-sql/driver-pgsql.c, src
	/lib-storage/index/pop3c/pop3c-client.c, src/lib/ioloop.c:
	Use io_loop_set_current() instead of directly setting it.
	[b740824110f4]

	* src/doveadm/dsync/dsync-mail.c, src/doveadm/dsync/dsync-mail.h,
	src/doveadm/dsync/dsync-mailbox-export.c:
	dsync: Give hints to lib-storage about what fields we're going to
	fetch.
	[da32044d4fc8]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c:
	imapc: When sending FETCH, always request also missing
	wanted_fields. This avoids sending multiple FETCH commands when
	prefetch hadn't already fetched everything.
	[0c9b17f7cadf]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c, src/lib-
	storage/index/imapc/imapc-mail.c:
	imapc: Avoid FETCH INTERNALDATE for getting save_date when we
	already know received_date.
	[4597e6572ba1]

	* 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:
	imapc: Don't send FETCHes for data that is already in cache.
	[52fccca876b9]

	* src/lib-storage/index/imapc/imapc-mail-fetch.c:
	imapc: Crashfix for previous change
	[50026d936001]

	* TODO, 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-settings.c, src/lib-
	storage/index/imapc/imapc-settings.h:
	imapc: Added imapc_feature fetch-header. It uses FETCH
	BODY.PEEK[HEADER.FIELDS (...)] whenever possible instead of fetching
	the entire header.
	[00fc1e040603]

	* src/lib-storage/mail-storage.h:
	lib-storage: API comment update
	[63a9b750027b]

	* src/lib-index/mail-cache-lookup.c, src/lib-index/mail-cache-
	transaction.c:
	lib-index: Support a small in-memory cache even with INDEX=MEMORY
	[03bf99704fe5]

	* src/lib-index/mail-cache-transaction.c:
	lib-index: mail_cache_lookup*() can now finds also the latest
	mail_cache_add()ed data.
	[c7e55077ea4e]

	* src/auth/passdb-passwd-file.c:
	auth: Don't crash if passwd-file is used for authentication but it
	has no passwords.
	[7e813ff117a3]

2013-11-16  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/Makefile.am, doc/man/doveadm-copy.1, doc/man/doveadm-
	move.1.in, doc/man/doveadm.1.in:
	man: Added description for command `doveadm copy`.
	[a913f29068a7]

2013-11-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-attachment.c:
	mail_attachment_*: Fixed "stream doesn't support seeking backwards"
	panic Caused by recent changes.
	[87ff0023fe79]

	* src/lib-fs/istream-fs-file.c:
	lib-fs: Don't crash if istream-fs-file is closed without never being
	read.
	[37054c79e04b]

	* src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c:
	mdbox_deleted: Index was synced with wrong flags.
	[02a746fd9830]

	* src/lib-storage/index/index-attachment.c:
	lib-storage: Give name to attachments-connector istream.
	[23b55e448784]

	* src/plugins/zlib/zlib-plugin.c:
	zlib: Give a name to zlib istreams
	[b62eaae51894]

	* src/doveadm/doveadm-mail-mailbox.c:
	doveadm mailbox create: Added back -s parameter that was recently
	accidentally removed.
	[f1c2d889966c]

2013-11-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-common/dbox-attachment.c, src/lib-
	storage/index/dbox-common/dbox-attachment.h, src/lib-storage/index
	/dbox-multi/mdbox-purge.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-sync.c, src/lib-storage/index/index-
	attachment.c, src/lib-storage/index/index-attachment.h:
	lib-storage: Moved more of dbox attachments code to generic code.
	[0ed18f77ff08]

	* src/lib-storage/index/dbox-common/dbox-attachment.c:
	dbox: Use lib-fs API also for reading the attachments.
	[883ba4a47829]

	* src/lib-storage/Makefile.am, src/lib-storage/index/dbox-common/dbox-
	storage.c, src/lib-storage/mailbox-list-private.h, src/lib-storage
	/mailbox-list.c:
	lib-storage: Added mailbox_list_init_fs() to easily initialize fs.
	Use it for dbox's attachment_fs.
	[9d5bfd8e50c9]

	* src/lib-fs/Makefile.am, src/lib-fs/istream-fs-file.c, src/lib-fs
	/istream-fs-file.h:
	lib-fs: Added istream-fs-file to lazily read from fs_file.
	[5c72e7d65e6f]

	* src/lib/istream-private.h, src/lib/istream.c:
	istream: Added i_stream_init_parent() to lazily initialize the
	parent stream.
	[1c9ecb6bcccc]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	request.c, src/lib-http/test-http-client.c:
	lib-http: Use [io]_stream_get_error() instead of just errno strings.
	[e67095b8486e]

	* src/doveadm/dsync/dsync-ibc-stream.c, src/doveadm/dsync/dsync-
	mailbox-import.c:
	dsync: Use i_stream_get_error() instead of just errno in stream
	error messages.
	[38f404297728]

	* src/replication/replicator/replicator.c:
	replicator: Database should be exported (not imported!) every 15
	mins.
	[b013764afe7c]

	* src/lib-storage/index/dbox-multi/mdbox-storage.c:
	mdbox: Fixed race condition when mailbox GUID was looked up before
	mailbox create was finished.
	[fa6466dcc37a]

	* src/lib-imap-storage/imap-msgpart.c:
	lib-imap-storage: Fixed leaking istream on error conditions. Caught
	by Tomasz Pot?ga
	[0505adfe2d8e]

	* src/imap/cmd-append.c:
	imap: Fixed potential crash if client disconnected during APPEND.
	[672350cdf509]

2013-11-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/message-parser.c:
	lib-mail: Fixed infinite loop in message-parser if message ends with
	--boundary+CR Thanks to Tomasz Potega for finding this.
	[aa1aede0f7f2]

	* src/lib-storage/list/mailbox-list-fs.c, src/lib-storage/mailbox-
	list.c, src/lib-storage/mailbox-list.h:
	lib-storage: Added FULLDIRNAME=name to mail_location. The difference
	to DIRNAME is that the name is used also for index and control
	directories.
	[5c876ed0c3e0]

2013-11-04  Timo Sirainen  <tss@iki.fi>

	* src/ssl-params/ssl-params.c:
	ssl-params: Compiler warning fix when building without OpenSSL
	[775b1e025939]

2013-11-03  Timo Sirainen  <tss@iki.fi>

	* src/lib/ostream.c:
	ostream: Mark stream closed before handling its callback to avoid
	infinite loops. The callback could call
	o_stream_copy_error_from_parent(), which in turn would try to close
	the same ostream again.
	[10c0aae82d0d]

	* .hgsigs:
	Added signature for changeset b5b118701aa8
	[653d5a81a22e]

	* .hgtags:
	Added tag 2.2.7 for changeset b5b118701aa8
	[f78413ac22c6]

	* NEWS, configure.ac:
	Released v2.2.7.
	[b5b118701aa8] [2.2.7]

	* src/lib-http/test-http-response-parser.c:
	Make static analyzer happier
	[fb3c54258b5b]

	* src/doveadm/dsync/dsync-mailbox-tree-sync.c:
	Make static analyzer happier.
	[27c7f25b1f27]

	* src/auth/auth-worker-client.c:
	auth-worker: Potential crashfix at deinit
	[c4fb4637a732]

	* src/auth/auth-master-connection.c:
	auth: Crashfix to "doveadm auth cache flush" when auth cache was
	disabled
	[a87295904845]

	* src/auth/auth-request-handler.c:
	auth: Potential crashfix
	[f66b0fe68439]

	* src/lib-master/master-service.c, src/lib/lib.c, src/lib/lib.h:
	Call lib_atexit() callbacks before destroying the lib-master ioloop.
	[5eae6c491d44]

	* src/lib-imap/imap-arg.c:
	lib-imap: imap_arg_get_atom() should also treat NIL as valid atom.
	[55e03b34ae73]

2013-11-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-search-parser-imap.c:
	lib-storage: Fixed parsing NILs in search parameters.
	[1e75d6c90c4a]

	* src/lib-imap/imap-arg.c, src/lib-imap/imap-parser.c:
	lib-imap: Fixed NIL astring to not lose its case-sensitivity.
	[1d7e2cee2c4b]

	* src/lib-imap/imap-quote.c:
	lib-imap: When writing "NIL" as astring, write it always as a
	"quoted".
	[720c7d01ad8a]

	* src/imap/cmd-getmetadata.c:
	imap: Fixed GETMETADATA NIL to treat it as "NIL"
	[081b1ba65fd4]

	* src/lib-imap/imap-arg.c, src/lib-imap/imap-arg.h:
	lib-imap: NIL as astring is the same as "NIL" This is a bit klugdy
	but works as long as all callers use imap_arg_get_astring() instead
	of trying to handle it themselves.
	[b631a76e8992]

	* src/imap/Makefile.am, src/imap/cmd-getmetadata.c, src/imap/cmd-
	setmetadata.c, src/imap/imap-client.c, src/imap/imap-client.h,
	src/imap/imap-commands.c, src/imap/imap-commands.h, src/imap/imap-
	metadata.c, src/imap/imap-metadata.h, src/imap/imap-settings.c,
	src/imap/imap-settings.h:
	imap: Added initial support for METADATA extension. For now this is
	enabled only when imap_metadata=yes setting is used. The setting
	will go away once the feature is complete. Also mail_attribute_dict
	must be set.

	TODO:
	 - Metadata doesn't work for public namespaces. There should probably
	be a mail_attribute_public_dict setting for that.
	 - There isn't any kind of quota or other limits
	 - After ENABLE METADATA start sending untagged METADATA entries to
	clients
	 - /shared/admin should probably return postmaster_address URL
	 - Check if we handle ACLs correctly
	 - RFC says that it SHOULD be possible to set METADATA entries to
	\NoSelect mailboxes. We probably will never allow this though.
	[0a08efeb3f40]

	* src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h:
	lib-imap: Added IMAP_PARSE_FLAG_STOP_AT_LIST for stopping after '('
	[0c4ee3b9fa3b]

	* src/lib-imap/imap-parser.c:
	lib-imap: IMAP protocol parser was parsing NIL case-sensitively.
	Luckily no commands currently actually use NILs.
	[09d5728a69d1]

	* src/ssl-params/ssl-params-openssl.c:
	ssl-params: Don't fail completely if 512 bit DH parameters
	generation fails.
	[c472e0454ee3]

	* doc/example-config/conf.d/10-ssl.conf, src/login-common/ssl-proxy-
	openssl.c, 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:
	ssl-params: Added ssl_dh_parameters_length & removed
	ssl_parameters_regenerate setting. ssl_parameters_regenerate was
	based on some text from GNUTLS documentation a long time ago, but
	there's really not much point in doing it.

	Ideally we should also support "openssl dhparam" input files, but
	for now there's the ssl_dh_parameters_length setting that can be
	used to specify the wanted DH parameters length. If the current ssl-
	parameters.dat has a different length, it's regenerated.

	We should probably at some point support also built-in DH parameters
	which are returned while the ssl-params runs.
	[43ab5abeb8f0]

	* src/ssl-params/ssl-params.c:
	ssl-params: Fixed closing listener fds for regeneration process.
	[07c083496665]

	* src/doveadm/dsync/dsync-transaction-log-scan.c:
	dsync: Don't track too new changes from transaction log. This
	mattered only during race conditions while there were changes being
	done to the mailbox during syncing.
	[dbe7c5a0021e]

	* src/auth/auth-request-handler.c, src/auth/auth-request.c, src/auth
	/auth-request.h, src/lib-master/master-login-auth.c:
	auth: Added %{session_pid} variable for userdb lookups in login
	requests. session_pid is now always sent to auth process. A new
	request_auth_token parameter was added to specify if auth_token
	should be returned or not.
	[9ef23179892a]

	* src/lib-storage/index/maildir/maildir-sync.c:
	maildir: If filename begins with ':', rename it immediately instead
	of causing errors.
	[58dfed53ab43]

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Added assert to try to catch corruption.
	[d3062d066593]

	* src/auth/passdb-shadow.c:
	auth: passdb shadow supports now lookup_credentials() API
	[8eec76bbde28]

	* src/auth/auth-master-connection.c:
	auth: Return a reason string if PASS lookup fails because passdbs
	don't support it.
	[9b45f6d20d9d]

	* src/auth/passdb-passwd.c:
	auth: passdb passwd supports now lookup_credentials() API It's not
	very useful, but at least it allows the lookup itself to succeed.
	[47848e9fc622]

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: When mail's refcount is too high, don't prevent shrinking the
	refcount.
	[8cdd4124de0b]

	* src/doveadm/doveadm-mail-import.c:
	doveadm import: Fixed translating different source and dest
	hierarchy separators in mailbox names.
	[1936d50f01c4]

2013-11-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-hooks.c:
	lib-storage: If hook is forced, don't bother checking if it's in
	user's mail_plugins.
	[59979be53b9f]

	* src/lib-storage/mail-storage-hooks.c:
	lib-storage: Hooks weren't called exactly in the order they were
	intended. The comparison didn't skip the paths, so the "lib" prefix
	skipping didn't work.
	[aa8f6832a5e9]

2013-10-30  Timo Sirainen  <tss@iki.fi>

	* src/lib/module-dir.c:
	module-dir: Allow plugins to have deinit() function without init()
	function
	[70f1d2bb0bd9]

2013-10-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/test-http-server.c:
	Compiling fix for old GCC
	[2c09cd664a95]

	* src/lib-storage/mail-storage.c:
	lib-storage: Allow storage name to contain '_'
	[ff4941acbfe2]

	* configure.ac:
	configure: Added mdbox_deleted storage.
	[e00ad71ee548]

	* src/lib-storage/index/dbox-multi/Makefile.am, src/lib-storage/index
	/dbox-multi/mdbox-deleted-storage.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.c, src/lib-storage/index
	/dbox-multi/mdbox-storage.h:
	mdbox: Added "mdbox_deleted" storage, which can be used to access
	messages with refcount=0 For example: doveadm import
	mdbox_deleted:~/mdbox "" mailbox inbox subject oops
	[c238c55479c8]

	* src/lib-index/mail-index-alloc-cache.c:
	lib-index: Don't mix index struct caching for in-memory vs. disk
	indexes.
	[2b3948fa4a09]

	* src/lib-storage/index/mbox/mbox-sync-rewrite.c:
	mbox: Added extra assert
	[41c844719166]

	* src/lib-storage/index/imapc/imapc-storage.c:
	imapc: Added a Courier-workaround for not returning UIDNEXT on
	SELECT.
	[c69d919edf63]

	* src/plugins/virtual/virtual-config.c:
	virtual: If virtual mailbox has no config file, assume it's just
	nonexistent. Most importantly if the virtual namespace root doesn't
	have the config, it should fail with MAIL_ERROR_NOTFOUND rather than
	MAIL_ERROR_NOTPOSSIBLE.
	[c120623cb109]

	* src/lib-http/http-url.c, src/lib-http/http-url.h:
	lib-http: Added http_url_escape_path()
	[37ebef9f641f]

2013-10-28  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/client-connection.c:
	doveadm-server: Minor error message improvement.
	[2599056381cc]

	* src/doveadm/client-connection.c:
	doveadm-server: ioloop change caused assert-crashes if outgoing data
	was buffered at the end.
	[ac59c37ae57b]

2013-10-26  Timo Sirainen  <tss@iki.fi>

	* src/auth/checkpassword-reply.c, src/auth/db-checkpassword.c:
	auth: Refuse to run checkpassword script insecurely by default
	[a13098b642e9]

	* 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:
	fts-solr: Fixed support for multiple Solr hosts when same process
	handles multiple users. E.g. indexer-worker was always using only
	the first user's Solr host.
	[26355654c314]

	* src/lib-http/http-client-host.c:
	lib-http: Recent DNS change caused lib-http to access uninitialized
	memory.
	[519b15c7618a]

	* src/doveadm/dsync/doveadm-dsync.c:
	dsync: Fixed crashes at deinit when -r rawlog parameter was used.
	[d66b4b1b343a]

	* src/auth/auth-request.c:
	auth: Fixed crash with auth_verbose_passwords!=no and non-plaintext
	auth
	[1d222bd0a49c]

	* src/auth/auth-request.c:
	auth: Fixed assert-crash with auth_verbose_passwords!=no and 32bit
	systems. t_strndup() assert-crashed with size=UINT_MAX parameter.
	[8a8e63a351f5]

2013-10-24  Timo Sirainen  <tss@iki.fi>

	* src/login-common/client-common-auth.c:
	*-login: Send the auth reply back corked.
	[e5bb04fe417b]

	* src/login-common/client-common-auth.c, src/login-common/login-
	proxy.c:
	login proxy: Use corking when writing data.
	[2d3d73d03fe2]

	* src/auth/auth-cache.c, src/auth/auth-request.c, src/auth/auth-
	request.h, src/auth/passdb-cache.c:
	auth: Cache master user logins also.
	[082ca23fa9f4]

	* src/doveadm/doveadm-mail-mailbox.c:
	doveadm mailbox create: Added -g <guid> parameter to create mailbox
	with specific GUID.
	[f89e645cba90]

2013-10-23  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-copymove.c:
	doveadm copy: Don't require the extra mailbox+extra parameter checks
	as expunge/move requires. Perhaps they wouldn't be necessary even
	with move.
	[219f869cbd0d]

	* src/doveadm/doveadm-mail-expunge.c:
	doveadm expunge: Improved the error hint message about using
	something else besides MAILBOX.
	[ade042b2161d]

	* src/lib-master/master-service.c:
	lib-master: Fix to previous commit. It broke doveadm-server's "does
	client need authentication?" check.
	[487afab10a4b]

	* src/stats/mail-session.c:
	stats: Hide warnings about old autocreated sessions having gotten
	lost.
	[25f6fbeff5d9]

	* src/lib-master/master-service.c:
	lib-master: If service_count=1, close the listener before starting
	to handle the connection. This way if the connection handling takes
	a long time and the service doesn't notice that master dies, it can
	keep running without keeping the listener fds open and preventing a
	restart.
	[459ec8f7ac96]

	* src/plugins/replication/replication-plugin.c:
	replication plugin: Hide write(fifo) EPIPE errors, which just mean a
	server restart.
	[e1dc6989b2c0]

	* src/lib-dict/dict-redis.c:
	dict-redis: Don't crash if we get disconnected during an open
	transaction.
	[e721788d2946]

	* src/lib-dict/dict-redis.c:
	dict-redis: Don't crash when receiving invalid input instead of
	expected $size.
	[a18a53f242ba]

	* src/doveadm/doveadm-mail-server.c:
	doveadm-server: Fixed hangs caused by previous commit
	[2089c4b637b9]

	* src/lib/ioloop-private.h, src/lib/ioloop.c:
	io_loop_run() now assert-crashes if it's attempted to be used
	recursively for the same ioloop.
	[c82ac3b0474f]

	* src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c:
	doveadm-server: Don't call io_loop_run() recursively for the same
	ioloop. This breaks things more or less badly, especially ioloop-
	kqueue really didn't like it.
	[d06acaf2c640]

	* src/lib-auth/auth-master.c:
	lib-auth: auth_master_cache_flush() always waited for timeout before
	finishing.
	[100a2c0ce5e8]

	* src/auth/auth-master-connection.c:
	auth: Don't crash with "doveadm auth cache flush" when cache is
	disabled.
	[9c347c7faaf2]

	* src/lib/ioloop-kqueue.c:
	ioloop-kqueue: Added extra assert.
	[10f3030047b6]

2013-10-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-dns/dns-lookup.c:
	lib-dns: Fixed busy looping when dns-client disconnected.
	[72b3b8c86222]

	* src/lib-fs/fs-api.h:
	lib-fs: Added dns_client to fs_settings.
	[d23c8e97dc69]

	* src/lib-http/http-client-host.c, src/lib-http/http-client.c, src
	/lib-http/http-client.h:
	lib-http: Support DNS lookups via the new dns-client API.
	[864e74223d55]

	* src/lib-dns/dns-lookup.c, src/lib-dns/dns-lookup.h:
	lib-dns: Added alternative API for doing longer connections to dns-
	client process.
	[a6abdf4b6222]

2013-10-21  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox-tree.c, src/doveadm/dsync
	/dsync-mailbox-tree-sync.c, src/doveadm/dsync/dsync-mailbox-tree.h,
	src/doveadm/dsync/test-dsync-mailbox-tree-sync.c:
	doveadm backup: If -D parameter is given, log the reason why mailbox
	gets deleted.
	[cce994007aad]

	* src/imap/cmd-copy.c:
	imap: COPY allows transaction commit now to fail with "some messages
	were expunged".
	[7bd65a83a9a3]

2013-10-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap-storage/imap-msgpart.c:
	imap: Don't assert-crash on FETCH BODY[MIME] (return BAD instead)
	[73216464c8e1]

2013-10-12  Stephan Bosch  <stephan@rename-it.nl>

	* 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:
	lib-http: http-client: Added support for tunneling SSL conntections
	through proxy.
	[b9498573f0d0]

	* 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.h, src/lib-http/http-response-parser.c, src/lib-http/http-
	response-parser.h, src/lib-http/http-response.h:
	lib-http: Added support for creating CONNECT tunnels through HTTP.
	[c3884a6acde6]

	* src/lib-http/http-client-host.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:
	lib-http: http-client: Implemented proxy support.
	[462ae2cb8094]

	* src/lib-http/http-url.c, src/lib-http/http-url.h:
	lib-http: Implemented functions for cloning and copying HTTP URLs
	and for constructing partial URLs.
	[9709839d2be7]

	* 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: http-client: Added request error code for broken payload
	input stream. This error is triggered when reading from the provided
	payload input stream fails while sending the request. Previously
	this would yield the same error code as for a failure to write to
	the connection output.
	[a8fe88d2286d]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client.c,
	src/lib-http/http-client.h:
	lib-http: Added support for disabling automatic redirects.
	[b4d54b6f3d10]

	* src/lib-http/http-client-request.c:
	lib-http: http-client: Made requests release payload input stream as
	early as possible. This prevents deadlock conditions when used for
	the HTTP proxy.
	[2d44e9025af3]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h, src/lib-http/http-client-request.c:
	lib-http: http-client: When client request is retried based on a
	response received from server, return full response to caller if
	retry is not possible. Before, it would construct a dummy-response
	that basically retains only the status and reason elements. This is
	currently only relevant for the way a 417 Expectation Failed
	response from the server is handled.
	[ad46c778981d]

	* src/lib-http/http-response.c, src/lib-http/http-response.h:
	lib-http: http-client: Made dummy response for returning internal
	errors more complete by filling in the version number and a proper
	date.
	[aa39d877d2c5]

	* src/lib-http/test-http-request-parser.c:
	lib-http: Added more tests for the http_request_parser.
	[74bc909ba6a0]

2013-10-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-dns/dns-lookup.c:
	lib-dns: Close dns-client fd before calling callback. Just in case
	the callback is slow and keeps the fd unnecessarily long open.
	[a677a70e420c]

	* src/lib-lda/lmtp-client.c:
	lib-lda: lmtp_client_connect_tcp() shouldn't immediately call
	callbacks if dns lookup fails.
	[086c75564ba0]

	* src/imap/cmd-append.c:
	imap: Improved "EOF while appending" disconnect log message.
	[2e23267dff66]

	* src/lib/ostream.c:
	liblib: If parent ostream closes itself on error, close our ostream
	as well. This avoids a situation where ostream is basically unusable
	with last_failed_errno set, but it's not marked as closed. The
	current code often checks ostream->closed but doesn't check
	last_failed_errno. ostream-file also autocloses the stream, but
	filter ostreams without this patch don't autoclose, so this caused
	problems with e.g. IMAP COMPRESSION extension where the zlib-ostream
	didn't get marked as closed, although the problem was only logging
	"BUG: Unknown internal error" instead of "Disconnected" as the
	client's disconnect reason.
	[ff2452560ef0]

	* src/lib-storage/list/mailbox-list-index-backend.c, src/lib-
	storage/list/mailbox-list-index-sync.c, src/lib-storage/list
	/mailbox-list-index.h:
	LAYOUT=index: Fixed race condition during mailbox creation.
	[ab341f7509b5]

	* src/lib-storage/index/index-search.c, src/lib-storage/mail-search.c:
	lib-storage: If search finds a match to a cached header, don't open
	the body stream.
	[4b0a736bc40c]

	* src/lib-storage/index/index-search.c:
	lib-storage: Header+body searches might not have searched the body
	in some cases. Only the header was requested for the search stream,
	which with imapc and pop3c could have caused the body not to be in
	the stream, although it usually was because of the "fetch body"
	hint.
	[78081ecd7eb3]

2013-10-10  Timo Sirainen  <tss@iki.fi>

	* src/master/service-process.c:
	master: host.domain lookups weren't cached, they were done at the
	worst possible time. This fixes "net_connect_unix(imap) failed:
	Resource temporarily unavailable" and various other issues where
	processes weren't being created fast enough if the host.domain
	lookup was slow (e.g. done via external DNS).
	[69179ca6007d]

2013-10-08  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/10-logging.conf, src/auth/auth-request.c,
	src/auth/auth-settings.c:
	auth: Added ability to truncate values logged by
	auth_verbose_passwords.
	[dc46ae14008c]

	* 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:
	lib-http: Added setting for User-Agent header.
	[fe009d4ba4ed]

2013-10-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/Makefile.am:
	lib-http: Fixed linking with some compilers Inline functions in
	http-header.h still required linking http-header.lo with e.g. Sun
	Studio
	[4e44453887b6]

2013-10-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api.c, src/lib-fs/fs-api.h:
	lib-fs: Added FS_OPEN_FLAG_ASYNC_NOQUEUE
	[5672c40cf421]

2013-10-03  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/doveadm-dsync.c:
	dsync: Added missing alarm(0) This didn't really cause any problems
	normally since the process was usually just about to die anyway.
	[74b3f504d797]

	* src/lib/failures.c, src/master/master-settings.c, src/master
	/service-process.c:
	If DEBUG_OUTOFMEM environment is set, abort() on "out of memory"
	errors.
	[b5ec4d364c2e]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Removed periodic commits while importing. The problem is that
	the current algorithm doesn't handle it correctly. If there already
	are some mails that exist locally, or remote has duplicate mails,
	the messages may not be saved in the UID order, and if there's a
	commit between such wrong ordering, the UIDs get renumbered.
	[81aedacbb01f]

2013-10-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-index.c:
	mailbox_list_index: Fixed assert-crash sometimes when deleting a
	mailbox.
	[a9844ea66c83]

2013-09-30  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-fs.c:
	doveadm fs delete: Added -R parameter for recursive deletion.
	[657832a67daa]

	* src/lib-storage/mail-storage.c:
	lib-storage: Fail with an error instead of crash with namespace
	prefix=inbox/
	[17e21e20e6bb]

2013-09-26  Timo Sirainen  <tss@iki.fi>

	* src/lib/ioloop-epoll.c:
	Panic if io_remove() fails with EBADF. It's a bug that shouldn't
	really be ignored. Panicing will give a debuggable core dump.
	[86e59823d0aa]

	* src/lib-http/http-header-parser.c:
	lib-http: 32bit system fix.
	[83e74b3a0d10]

2013-09-25  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 1de9a494cb25
	[0f84a1e3c4aa]

	* .hgtags:
	Added tag 2.2.6 for changeset 1de9a494cb25
	[fa7d4f1b8fb8]

	* NEWS, TODO, configure.ac:
	Released v2.2.6.
	[1de9a494cb25] [2.2.6]

2013-09-23  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/imap-login-settings.c, src/lib-master/service-
	settings.h, src/master/master-settings.c, src/master/service-
	listen.c, src/master/service-listen.h, src/master/service-process.c,
	src/master/service.h, src/pop3-login/pop3-login-settings.c:
	master: Added reuse_port setting to inet_listeners, which enables
	SO_REUSEPORT if available. After forking a new service process, a
	new listener socket is created for each such inet_listener. Linux
	v3.9+ added SO_REUSEPORT feature, which should distribute clients
	more uniformly to the processes. I'm not sure if this makes any
	difference in BSDs.

	At least in Linux v3.9 there was still a bug that if the number of
	listening processes changed, some TCP handshakes might not finish. I
	don't see if this has already been fixed, so this is probably safe
	to use only for services whose process count doesn't change (e.g.
	process_min_avail is set high enough).
	[a991a0547daa]

	* src/lib/net.c, src/lib/net.h:
	lib: Added net_listen_full() with a flag to set SO_REUSEPORT on the
	socket if available.
	[6a814345f16c]

2013-09-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Don't crash if imapc_password is missing.
	[1a5d92b8d3d5]

	* src/lib-storage/index/maildir/maildir-storage.c:
	maildir: Autocreate missing cur/ new/ tmp/ directories only with
	Maildir++ and imapdir. \Noselect mailboxes aren't possible with
	those layouts, but with other layouts they are and they shouldn't
	get automatically created just by selecting them.
	[6942a3da740c]

	* src/lib/ipwd.c:
	i_getpw*(): Added OpenBSD workaround.
	[801714cba91b]

	* src/lib-mail/istream-attachment-connector.c:
	istream-attachment-connector: Add base64 parameters to stream name
	for error messages.
	[be1d8dd8be94]

	* src/lib/istream-sized.c:
	istream-sized: Fail read() also when the stream is larger than it
	should have been.
	[5b1aac85eb17]

	* src/lib-storage/index/mbox/mbox-storage.c, src/lib-storage/mail-
	storage.c:
	mbox: Fixed assert-crash due to wrong transaction_count handling.
	This happened only when messages had been expunged by another
	session just before saving a new message.
	[afc8c800f6ca]

	* src/lib-fs/fs-posix.c, src/lib-fs/fs-sis-queue.c, src/lib-fs/fs-
	sis.c:
	lib-fs: Improved fs_write_*() error messages.
	[1cd94c4cd456]

	* src/lib-storage/index/index-attachment.c:
	lib-storage: Improve error message logging when attachment writing
	fails
	[38382fa18285]

	* src/lib/iostream-private.h, src/lib/iostream.c, src/lib/istream.c,
	src/lib/istream.h, src/lib/ostream.c, src/lib/ostream.h:
	lib: Added [io]_stream_create_error_str()
	[a919c43ab91b]

	* src/lib/ostream.c:
	ostream-errno: last_failed_errno wasn't set, causing problems with
	some functions.
	[52d77a3d38b5]

	* src/lib-mail/istream-attachment-extractor.c, src/lib-mail/istream-
	attachment-extractor.h, src/lib-mail/test-istream-attachment.c, src
	/lib-storage/index/index-attachment.c:
	Fixes and improvements to istream-attachment-extractor error
	handling. If an attachment saving failed, the mail was still saved
	to disk, just without the attachments.
	[4f68ac02f46c]

	* src/plugins/acl/acl-mailbox-list.c:
	acl: Hide non-listable mailboxes from a shared subscriptions file.
	[1cf67db75455]

	* doc/example-config/conf.d/10-logging.conf:
	example-config: Fixed login_log_format comment.
	[d400c1a673cf]

	* src/auth/auth-request.c:
	auth: If auth_verbose_passwords is set, log the password also for
	unknown users.
	[1f9294fbb118]

	* src/auth/auth-request.c, src/auth/auth-request.h, src/auth/db-
	passwd-file.c, src/auth/passdb-bsdauth.c, src/auth/passdb-cache.c,
	src/auth/passdb-dict.c, src/auth/passdb-ldap.c, src/auth/passdb-
	pam.c, src/auth/passdb-passwd.c, src/auth/passdb-shadow.c, src/auth
	/passdb-sql.c, src/auth/userdb-dict.c, src/auth/userdb-ldap.c,
	src/auth/userdb-nss.c, src/auth/userdb-passwd.c, src/auth/userdb-
	sql.c, src/auth/userdb-vpopmail.c:
	auth: Use a common auth_request_log_unknown_user() for logging
	"unknown user" entries.
	[4ce8f47d20af]

	* src/lib/net.c:
	net_listen_unix(): If path is too long, return EOVERFLOW instead of
	EINVAL.
	[07cc79e0041d]

	* src/lib/compat.h:
	If EOVERFLOW errno isn't defined by system, fallback to ERANGE
	instead of EINVAL. ERANGE is used by other functions as well, such
	as getpwnam_r().
	[d064c57a601d]

	* doc/example-config/conf.d/10-ssl.conf, src/lib-master/master-
	service-ssl-settings.c, src/lib-master/master-service-ssl-
	settings.h, 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-ssl.h, src/login-common
	/ssl-proxy-openssl.c:
	Added ssl_prefer_server_ciphers setting.
	[897484f45a87]

	* src/lib-storage/index/mbox/Makefile.am, src/lib-storage/index/mbox
	/mbox-storage.c, src/lib-storage/index/mbox/mbox-storage.h, src/lib-
	storage/index/mbox/mbox-sync-list-index.c, src/lib-
	storage/index/mbox/mbox-sync-private.h:
	mbox: Fixed mailbox_list_index=yes to work with non-Dovecot mbox
	changes.
	[2a209302d064]

	* src/auth/auth-request-handler.c, src/login-common/client-common.c,
	src/login-common/client-common.h, src/login-common/sasl-server.c:
	*-login: Added %{orig_user}, %{orig_username} and %{orig_domain}
	variables. The original username is what the client sent to server
	before any translations.
	[a32eea97afc1]

	* 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:
	dsync: Added -P parameter to do a purge for the remote storage after
	syncing.
	[56be613e8ece]

2013-09-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Fixed listescape when escape_char was the same as
	namespace separator.
	[fce84463f508]

	* src/imap/cmd-select.c, src/imap/imap-commands-util.c, src/imap/imap-
	commands-util.h:
	imap: Send * OK [CLOSED] always before tagged SELECT reply.
	[c019b298e0f6]

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Don't create a settings cache for initial global
	settings read. This fixes at least doveadm -A so that it doesn't
	connect to config process for each user.
	[2323c451150f]

	* src/auth/auth-master-connection.c, src/auth/auth-worker-client.c:
	auth: Fixed user iteration hang due to earlier stream corking
	changes. Also fixed process title updating for auth-worker process
	during LIST.
	[8b3634d4c362]

	* src/lib-auth/auth-master.c:
	lib-auth: Fixed infinite looping if user listing failed because auth
	process disconnected.
	[09f5e8d6b8d4]

	* src/lib-auth/auth-master.c:
	lib-auth: Recent cleanup commit was actually cleaning up too much.
	[7a4ae8d511a2]

	* src/doveadm/dsync/dsync-brain-mailbox.c:
	doveadm sync: When -1 parameter is used, ignore missing mailboxes in
	source. Previously the syncs finished with "Mailbox changes caused a
	desync." and exit code 2. This was especially common when the
	destination server had new autocreated mailboxes and user logged in
	after the first dsync.
	[0ec0dc639a54]

	* src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c, src/doveadm/dsync
	/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Added more consistency when debug logging about changes
	during sync.
	[2ce07adab319]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Added some more debug logging.
	[4a969a2e9399]

	* src/lib-storage/index/imapc/imapc-list.c, src/lib-storage/mail-
	user.c, src/lib-storage/mail-user.h:
	imapc: Don't log unnecessary errors at deinit about aborted hiearchy
	separator lookup. The lookup is done asynchronously at startup. It
	doesn't matter if we never get around to finishing it.
	[cc1ee7b50ca9]

2013-09-20  Timo Sirainen  <tss@iki.fi>

	* src/director/director-connection.c:
	director: Detect lost director restarts and reset last_sync_seq.
	[c30453a58b4c]

	* src/director/director-connection.c:
	director: Make sure director restart notifications go to everyone in
	the ring.
	[5d43c926eb97]

	* src/director/director-connection.c:
	director: Directors weren't always marked as restarted when they
	were.
	[b78c705bbb8d]

	* src/director/director-connection.c:
	director: Fix & improvement to debug logging.
	[22a3ef9a006d]

	* src/director/director-connection.c:
	director: Added more debug logging.
	[17389ac3cb66]

	* src/director/login-connection.c:
	director: Don't assert-crash if PASS lookup fails.
	[b135d723acf3]

	* src/doveadm/dsync/doveadm-dsync.c:
	dsync: Don't log "Mailbox changes caused a desync" warning when
	running via doveadm-server.
	[3da7f0dad08f]

	* src/ssl-params/ssl-params.c:
	ssl-params: Long-running ssl-params process shouldn't cause Dovecot
	restart to fail.
	[17aaab5511f2]

	* src/lib-ssl-iostream/iostream-openssl-context.c:
	lib-ssl-iostream: Give better error message if CA settings are
	missing.
	[ac832f051b49]

	* 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/dbox-single/sdbox-storage.h, src
	/lib-storage/index/dbox-single/sdbox-sync.c:
	dbox: Fixed "UIDVALIDITY=0" error race condition. If session 1 had
	mkdir()ed but not yet created the initial index, while session 2
	attempted to open the mailbox, it would create an empty index and
	log the error.
	[98702a45784c]

	* src/master/main.c:
	master: Make sure new processes aren't created after stop signal is
	received.
	[d7627178a7f2]

	* src/lib-storage/index/mbox/mbox-mail.c:
	mbox: Handle correctly if MAIL_FETCH_HEADER_MD5 lookup fails because
	mail is already expunged.
	[f9ab3d21689b]

	* src/lib-auth/auth-master.c:
	lib-auth: Don't leave stale pointers to stack lying around in
	memory.
	[5ae2ae657a95]

	* src/lib/ioloop-kqueue.c:
	ioloop-kqueue: Added assert
	[c8b1e5833a28]

	* src/imap/cmd-append.c, src/imap/cmd-urlfetch.c, src/imap/imap-fetch-
	body.c:
	imap: If FETCH fails, log the stream's error string instead of
	errno.
	[c140de1b506b]

	* src/lib/istream-chain.c, src/lib/istream-concat.c, src/lib/istream-
	seekable.c:
	istream-chain/concat/seekable: When child stream fails, copy its
	error to ourself.
	[0eee8caeaa53]

	* src/lib/istream-file.c:
	istream-file: Assert-crash if read() fails with EBADF. Something's
	already wrong at that point and it may not be safe to continue. Also
	crashing makes it easier to debug such situation.
	[28df180ec3ab]

	* src/lib-compression/istream-bzlib.c, src/lib-compression/istream-
	zlib.c, src/lib-fs/istream-metawrap.c, src/lib-mail/istream-dot.c,
	src/lib-mail/istream-qp-decoder.c, 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,
	src/lib-storage/index/istream-mail.c, src/lib-storage/index/mbox
	/istream-raw-mbox.c, src/lib/istream-base64-decoder.c, src/lib
	/istream-concat.c, src/lib/istream-file.c, src/lib/istream-hash.c,
	src/lib/istream-jsonstr.c, src/lib/istream-mmap.c, src/lib/istream-
	sized.c, src/lib/ostream-file.c:
	iostreams: Set stream error string when it provides extra
	information.
	[76d5e3c8cec3]

	* src/lib/iostream-private.h, src/lib/iostream.c, src/lib/istream.c,
	src/lib/istream.h, src/lib/ostream.c, src/lib/ostream.h:
	iostream: Added ability to set/get error strings for streams.
	[e35be66003e2]

2013-09-19  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-auth.c:
	doveadm: Added "auth lookup" command to do a passdb lookup.
	[5a334879572b]

	* src/auth/passdb.c:
	auth: Fixed non-auth passdb lookup when password had ".<encoding>"
	suffix.
	[ed1f5b4f38be]

	* src/lib-imap-client/imapc-client.c, src/lib-imap-client/imapc-
	client.h, src/lib-storage/index/imapc/imapc-list.c, src/lib-
	storage/index/imapc/imapc-storage.c:
	imapc: Abort pending commands before any deinitialization to avoid
	crashes.
	[827ebbf9da5f]

2013-09-18  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/Makefile.am, src/lib-http/test-http-request-parser.c:
	lib-http: Created tests for http_request_parser.
	[b92118278b06]

	* src/lib/uri-util.c:
	uri-util: Improved authority 'host' parse error.
	[9bf25c18ad33]

	* src/lib-http/http-url.c:
	lib-http: http-url: Fixed return of proper error message in case of
	a failure to parse request target Host header. Assigned the error to
	the parser object rather than returning it directly.
	[8442a0dc44b7]

	* src/lib-http/http-request-parser.c:
	lib-http: Fixed handling of limits=NULL parameter for
	http_request_parser_init. Got messed up in patch queue.
	[34d3a9a883fa]

2013-09-18  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c:
	dsync: Don't attempt to access mailbox contents with -g "" or -m ""
	parameter.
	[a7be7ee98538]

2013-09-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-storage.c, src/lib-storage/mail-
	storage.h:
	lib-storage: Added a separate prefix for server metadata that aren't
	deleted with INBOX.
	[194383b51917]

	* src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c, src/doveadm/dsync
	/dsync-brain-mailbox.c, src/doveadm/dsync/dsync-brain-private.h,
	src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Improved debug/error logging for changes during sync.
	[393c389b1540]

2013-09-17  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-url.c, src/lib-http/http-url.h, src/lib-http/test-
	http-url.c:
	lib-http: Added (non-default) support for parsing user:pasword from
	HTTP URL.
	[ec9eab188dd8]

	* src/lib-imap/imap-url.c, src/lib-imap/test-imap-url.c:
	lib-imap: imap-url: Forgot to check for the presence of ':' in
	userinfo, which is not allowed.
	[6be5d8d8af2d]

2013-09-16  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-fetch-body.c:
	imap: Fixed/improved error logging for FETCH
	[be26ae8a9fca]

2013-09-17  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	request.c:
	lib-http: http-client: Allow overriding all implicitly generated
	special headers. Which are: Connection, Content-Length, Date,
	Expect, Host, and Transfer-Encoding.
	[145be4e876a8]

2013-09-16  Timo Sirainen  <tss@iki.fi>

	* src/lib/uri-util.c:
	Fixed uri_parse_slashslash_authority() to skip over "//".
	[a114a8bfce61]

2013-09-16  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c:
	lib-http: http-client: Fixed segfault caused by earlier improvement
	of connection output locking. Segfault was triggered when an aborted
	request received a response.
	[7fc1dcfc5e3a]

2013-09-15  Stephan Bosch  <stephan@rename-it.nl>

	* src/lib-http/http-client-request.c:
	lib-http: http-client: Implemented explicit HTTP/1.0 support.
	[bcaee8677d7d]

	* src/lib-http/http-message-parser.c:
	lib-http: Added support for handling HTTP/1.0 messages explicitly.
	This means that default connection persistence semantics are
	inverted for HTTP/1.0 and keep-alive Connection option is
	recognized.
	[ccd39339596e]

	* src/lib-http/http-request-parser.c, src/lib-http/http-request-
	parser.h, src/lib-http/http-request.h:
	lib-http: Added support for parsing Expect: header (currently only
	accepts `100-continue').
	[9da90cf29d91]

	* src/lib-http/http-request-parser.c, src/lib-http/http-request-
	parser.h:
	lib-http: http-request-parser: Added function to test whether
	payload from previous request is still being parsed. This is needed
	in the server implementation to check whether a request is
	completely read.
	[e53f5173fa2d]

	* src/lib-http/http-request-parser.c, src/lib-http/http-request-
	parser.h, src/lib-http/http-request.h, src/lib-http/test-http-
	server.c:
	lib-http: Implemented limits on request method and target length.
	[7c7e3aa13de7]

	* 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-
	response-parser.c, src/lib-http/http-transfer-chunked.c, src/lib-
	http/http-transfer.h, src/lib-http/test-http-transfer.c:
	lib-http: Added support for enforcing a payload limit for incoming
	HTTP messages.
	[a335db9dca6a]

	* 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, src/lib-http
	/test-http-server.c:
	lib-http: Adjusted message and request parsers to return an error
	code.
	[28e5d58e49dc]

	* src/lib-http/http-request-parser.c, src/lib-http/http-request.h, src
	/lib-http/test-http-server.c:
	lib-http: Adjusted request parser to pre-parse the request target
	and host header into a proper target url.
	[eeaa68773f73]

	* src/lib-http/http-request.h, src/lib-http/http-url.c, src/lib-http
	/http-url.h:
	lib-http: Added support for parsing request target URLs.
	[29ceb7126b91]

	* src/lib-http/http-request-parser.c, src/lib-http/http-response-
	parser.c:
	lib-http: Improved display of invalid characters in parse error
	messages.
	[bbe4a469e276]

	* src/lib-http/http-client-connection.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-header.h, 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, src/lib-http/http-response-
	parser.h, src/lib-http/http-transfer-chunked.c, src/lib-http/test-
	http-header-parser.c, src/lib-http/test-http-response-parser.c, src
	/lib-http/test-http-server.c:
	lib-http: Implemented limits on overall HTTP header size, size of
	individual header fields and the number of fields in the header.
	[572b9a9031e7]

	* src/lib-http/Makefile.am, src/lib-http/http-client-request.c, src
	/lib-http/http-header.c, src/lib-http/http-header.h, 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-request.c, src/lib-http/http-request.h, src/lib-http
	/http-response-parser.c, src/lib-http/http-response.c, src/lib-http
	/http-response.h:
	lib-http: Unified http-request.h and http-response.h headers.
	Renamed struct http_response_header to struct http_header_field,
	encapsulated the array in struct http_header and put it all in http-
	header.h/c Added inline utility functions for header querying and
	getting response/request payload size.
	[dca140149d80]

	* 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, src/lib-http
	/http-response.h, src/lib-http/http-transfer.h:
	lib-http: Improved message header and body parsing for better RFC
	compliance. Added pre-parsed transfer-encoding and connection header
	content (array) to parsed message struct. Fixed message body
	handling for when both transfer-encoding and content-length headers
	are missing. Now duplicates of unique important message headers
	yield an error.
	[d59ac8efc5af]

	* src/lib-http/http-parser.c, src/lib-http/http-parser.h:
	lib-http: Added support for parsing HTTP word syntax, which includes
	quoted-string.
	[1404dbde402c]

	* 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, src/lib-http
	/test-http-server.c:
	lib-http: Adjusted message parser to accept pool from caller.
	[b172c130df9b]

	* src/lib-http/http-client-connection.c, src/lib-http/http-request-
	parser.c, src/lib-http/http-request-parser.h, src/lib-http/http-
	response-parser.c, src/lib-http/http-response-parser.h, src/lib-http
	/test-http-response-parser.c, src/lib-http/test-http-server.c:
	lib-http: Adjusted response and request parsers to accept a
	request/response object to fill with data, rather than have it
	return one.
	[adb4d013073d]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	private.h, src/lib-http/http-client-request.c:
	lib-http: Added support for asynchronous payload for requests. This
	means that the payload stream passed to the request can be a non-
	blocking socket stream from some other connection (e.g. proxy client
	connection).
	[a6ed95a30cb1]

	* src/lib-http/http-url.c, src/lib-imap/imap-url.c, src/lib/uri-
	util.c, src/lib/uri-util.h:
	uri-util: Added support for parsing bare authority URI component
	(for use in HTTP).
	[3bd334529536]

	* src/lib-http/http-client-private.h, src/lib-http/http-client-
	request.c, src/lib-http/http-client.h:
	lib-http: http-client: Requests now automatically generate a Date
	header. The used date value is normally the submission time of the
	request, but it can be set explicitly.
	[e83f3d16a31d]

	* src/lib-http/http-client-host.c, src/lib-http/http-client-peer.c,
	src/lib-http/http-client-private.h:
	lib-http: Fixed client connection and peer log labels to show proper
	IPv6 peers. The labels did not put IPv6 addresses in square
	brackets.
	[bb6506d2d084]

	* src/lib-http/http-client-private.h:
	lib-http: Removed useless prev,next fields from struct
	http_client_request.
	[9af78d53e22f]

	* src/lib-http/http-request-parser.c:
	lib-http: Fixed handling of non-standard CRLF at end of request.
	[819dd674f100]

	* 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:
	lib-http: http-client: Fixed request scheduling and connection
	management.
	[bdc5d6dcfc53]

	* src/lib-http/http-client-request.c:
	lib-http: http-client: Fixed leak of ostream when request was
	resubmitted upon 417 response regarding 100-continue. This would
	only occur when the server refuses Expect: 100-continue with a 417
	response. The payload_output stream would be overwritten without
	being freed first.
	[0bcbc30b81b7]

	* src/lib-http/http-client-connection.c:
	lib-http: http-client: Connection was using wrong request index in
	request_wait_list to continue sending outgoing payload.
	[abd565369b8f]

	* src/lib-http/http-client-connection.c, src/lib-http/http-client-
	request.c:
	lib-http: http-client: Fixed pipelining when payload synchronizatio
	(100-continue) is used. Forgot to lock the connection output, which
	meant that new requests would enqueued for the connection while
	waiting for 100 Continue. This would cause an assert failure.
	[7b775a06c38f]

2013-09-14  Timo Sirainen  <tss@iki.fi>

	* src/lib/connection.h:
	Comment update.
	[ae309d070b44]

	* src/lib-fs/fs-api.c:
	lib-fs: If backend doesn't implement exists(), emulate it with
	stat().
	[d483e6eb9a2c]

2013-09-12  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-server.c:
	doveadm: Don't refer to old doveadm_proxy_port setting name in error
	message.
	[1db5ede2a1cd]

	* src/lib/istream-hash.c:
	istream-hash: Data was hashed multiple times in some situations
	[fe8ac44541ae]

	* src/lib/istream.c:
	istream: Improved "stream not seekable" panic message.
	[262fbb878ed4]

	* src/lib/istream-hash.c:
	istream-hash: Allow seeking, but only after reading the hash.
	[c8f17405ff71]

	* src/auth/auth-settings.c:
	auth: auth-client socket should be owned by $default_internal_user
	It's mostly the same as auth-login, which is also owned by it.
	[96fa57cacfc7]

2013-09-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-
	api.h:
	lib-fs: Added support for asynchronous fs iteration.
	[6ed90c968ab1]

	* src/lib-fs/fs-api-private.h, src/lib-fs/fs-api.c, src/lib-fs/fs-
	api.h:
	lib-fs: Added support for giving a hash of the written data to be
	verified by storage.
	[7e0ebc2faf3c]

2013-09-09  Timo Sirainen  <tss@iki.fi>

	* src/lib/Makefile.am, src/lib/istream-hash.c, src/lib/istream-hash.h:
	liblib: Added istream-hash, similar to ostream-hash.
	[f73c388ad360]

	* src/lib/ostream-hash.h:
	Minor code cleanup.
	[63edc752479d]

2013-09-08  Timo Sirainen  <tss@iki.fi>

	* src/lib/hmac-cram-md5.c, src/lib/hmac.c, src/lib/hmac.h:
	hmac: Fixed crashes on CPUs that don't allow unaligned memory
	access.
	[92a54bb2ee00]

2013-09-06  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Removed unnecessary NULL check.
	[66b5839375f0]

	* src/lib-storage/index/imapc/imapc-mailbox.c:
	imapc: Don't crash if server sends EXISTS while mailbox isn't
	selected.
	[b41828d3f663]

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Fixed crash in doveadm dumping lucene index.
	[07a8718ef3a8]

	* src/lib-imap-client/imapc-connection.c:
	Avoid doing side effects in assert.
	[209a1ef01426]

	* src/lib-index/mail-index-view-sync.c:
	lib-index: Minor fix to regenerating missing transaction log parts.
	[00d0856b4a0b]

2013-09-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/mail-deliver.c:
	lib-lda: Fixed passing through error message when mailbox couldn't
	be opened.
	[82975fb3ae44]

2013-09-04  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mailbox-uidvalidity.c:
	And removed accidentally committed nbsp.
	[6ffe37152ed0]

	* src/doveadm/doveadm-dump-log.c, src/doveadm/doveadm-dump-
	mailboxlog.c, src/doveadm/doveadm-dump-thread.c, src/lib-master
	/master-service-settings.c, src/lib-storage/index/mbox/mbox-lock.c,
	src/lib-storage/mailbox-uidvalidity.c, src/lib/unix-socket-create.c,
	src/plugins/acl/acl-backend-vfile-acllist.c, src/plugins/fts-squat
	/squat-trie.c, src/plugins/zlib/zlib-plugin.c, src/ssl-params/ssl-
	params.c:
	Fixed file descriptor leaks in rather unimportant places. Found by
	Coverity scan.
	[3091883c672a]

	* src/lib-index/mail-index-sync-update.c, src/lib-index/mail-
	transaction-log-file.c:
	lib-index: Fixed modseq updates when modseq was over 32bits long
	[4d297ab881ef]

	* src/lib/macros.h:
	i_close_fd() didn't handle errors correctly with gcc.
	[39972f75b143]

	* src/doveadm/doveadm-master.c, src/master/main.c:
	Fixed off-by-one buffer overflows (practically non-exploitable).
	Found by Coverity scan.
	[72028f670746]

2013-09-02  Timo Sirainen  <tss@iki.fi>

	* src/master/service-monitor.c:
	master: Fix to previous pre-forking change.
	[108a8158c1a9]

	* src/master/service-monitor.c, src/master/service-process.c,
	src/master/service.h:
	master: Pre-fork processes only while master doesn't have more
	important things to do.
	[a3f0aca52d6f]

	* src/lib-master/master-auth.c, src/lib-master/master-login.c:
	lib-master: If net_connect_unix() fails with EAGAIN, point to a wiki
	link for reasons.
	[a4bfccbc2477]

2013-08-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-ssl-iostream/istream-openssl.c:
	lib-ssl-iostream: Don't assert-crash if stream buffer gets full.
	[470153d92662]

	* src/lib-storage/mailbox-uidvalidity.c:
	lib-storage: Auto-create dovecot-uidvalidity's missing parent
	directory
	[5e01ab977406]

	* src/log/log-error-buffer.c:
	Fixed compiling with old gcc.
	[5d22d0c0b233]

2013-08-27  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-common/dbox-file-fix.c, src/lib-
	storage/index/dbox-common/dbox-file.h:
	dbox: When fixing a broken file, try harder to find only valid
	message/metadata positions. The previous method sometime broke with
	compressed mail content, because the magic blocks were so short.
	[f965670a7b69]

2013-08-21  Timo Sirainen  <tss@iki.fi>

	* src/director/director-connection.c, src/director/director-host.c,
	src/director/director-host.h:
	director: Reset last-seen-sync-sequence after remote director
	restarts.
	[9531ec8afe8b]

	* src/lib-storage/index/index-sync.c:
	lib-storage: When doing a fast sync, refresh index to see if it had
	any changes. I'm pretty sure this used to be done earlier, but
	probably some optimizations dropped it at some point.
	[60b8746e6cfe]

	* src/imap/cmd-append.c:
	imap: Fixed potential assert crash in APPEND.
	[0d966f8d53be]

2013-08-17  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm-pw.1.in:
	man: doveadm-pw.1: Option -p can also be used with -t.
	[c4f754d6967e]

2013-08-15  Timo Sirainen  <tss@iki.fi>

	* src/director/director-connection.c:
	director: Previous change caused legitimate SYNC resends to be
	ignored.
	[f7a37b169f4a]

2013-08-13  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Make it clear that the lda_settings is unexpanded in struct
	client.
	[ec62ea3c940e]

	* src/auth/auth-request.c, src/auth/auth-request.h:
	Minor change to prevent invalid code changes.
	[2cbf5d7c7e4c]

	* src/lib-lda/lda-settings.c:
	lib-lda: Default postmaster_address wasn't being set. This broke
	after it was set to allow %variables.
	[40110f35ca64]

	* src/lib-lda/lda-settings.c:
	lib-lda: Don't alow %variables for hostname setting after all. I was
	thinking maybe %d could be used there, but with LMTP the hostname is
	used already in the greeting message before any RCPT TO is even
	done.
	[72ce58d50d2c]

2013-08-12  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c, src/auth/auth-request.h:
	auth: Added %{domain_first} and %{domain_last} variables. They are
	both equal to %d normally, but differ when there are multiple '@'
	characters in the domain.
	[179f90dc0b1c]

	* src/lib-index/mail-index-strmap.c, src/lib-index/mail-index-
	strmap.h, src/lib-storage/index/index-thread.c:
	lib-storage: If dovecot.index.thread corruption is noticed, delete
	the file.
	[e6c2a1344f86]

	* src/lib-lda/lda-settings.c:
	lib-lda: submission_host, sendmail_path and hostname settings can
	now contain %variables
	[07b41fd29a6e]

	* src/lib-lda/smtp-client.c:
	lib-lda: sendmail_path setting can contain parameters now.
	[ca4628975fde]

2013-08-11  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-thread.c:
	lib-storage: Improved error message in threading code's lost
	message-id.
	[5de1e4fdb758]

2013-08-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-http/http-client-request.c:
	lib-http: Removed more code duplication
	[1f6059b5c774]

	* src/lib-http/http-client-request.c:
	lib-http: Removed duplicated code
	[7fe7cb56b4a6]

2013-08-08  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/commands.c:
	lmtp: Don't write extra ([]) to Received: line for mails via UNIX
	socket.
	[9aa9944bd96e]

2013-08-07  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-append.c:
	imap: Fixed memory leak on APPEND error conditions.
	[5dbea45eecb8]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: We didn't send the new protocol version in handshake. This
	caused problems when syncing mailbox formats that didn't support
	saving GUIDs.
	[044ec0204873]

	* src/doveadm/dsync/dsync-mailbox-import.c:
	dsync: Avoid assert-crash after an error.
	[225655115265]

	* src/lib-ssl-iostream/iostream-openssl-context.c, src/login-common
	/ssl-proxy-openssl.c:
	ssl: Fixed compiling with older OpenSSL libraries.
	[27ebd9552471]

	* src/director/director-connection.c, src/lib-ssl-iostream/iostream-
	openssl-context.c, src/login-common/ssl-proxy-openssl.c:
	Compiler warning fixes.
	[17e43eda8f22]

	* src/plugins/quota/quota-dict.c, src/plugins/quota/quota-fs.c,
	src/plugins/quota/quota-maildir.c, src/plugins/quota/quota-
	private.h, src/plugins/quota/quota.c:
	quota: Improved init() failure error logging.
	[a07ab0c638d2]

2013-08-06  Pascal Volk  <user@localhost.localdomain.org>

	* src/master/main.c:
	master: Added --hostdomain to the help message.
	[cecaa7b85f65]

	* doc/man/dovecot.1.in:
	man: dovecot.1: Added description of option --hostdomain.
	[94d547439e73]

2013-08-06  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/server-connection.c:
	doveadm: If server connection gets disconnected, log the reason.
	[c5c3eba6ae14]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Stream disconnection error message improvement
	[64464646c020]

	* src/doveadm/client-connection.c, src/doveadm/doveadm-mail-server.c:
	doveadm-server: Error message logging improvements.
	[e52284d3cc76]

	* src/doveadm/client-connection.c, src/doveadm/doveadm-mail.c,
	src/doveadm/doveadm-mail.h:
	doveadm-server: Include client's IP address in logs.
	[6c4917396b0d]

	* src/doveadm/dsync/doveadm-dsync.c:
	dsync: Don't leak iostreams when running via doveadm-server
	[0cf837972a32]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Memory leak fix at deinit.
	[960f827b7579]

	* 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:
	lib-ssl-iostream: Deinitialization fixes.
	[a53caa140f3d]

	* src/doveadm/doveadm-mail-server.c, src/doveadm/dsync/doveadm-
	dsync.c, src/doveadm/server-connection.c, src/doveadm/server-
	connection.h:
	doveadm: If we get disconnected from server, log the reason.
	[07557a9c59b1]

	* src/auth/auth-request.c, src/auth/passdb-pam.c, src/auth/passdb-
	vpopmail.c, src/lib/net.c, src/lib/net.h, src/lib/uri-util.c,
	src/lmtp/client.c, src/login-common/main.c:
	net_ip2addr() changed to return "" instead of NULL on failure.
	Pretty much everything in the code assumed that it would never fail,
	which it normally doesn't except if the ip_addr was created for UNIX
	sockets.
	[58be84a381e5]

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: After reading remote hostname, use it for the log messages
	instead of IP.
	[7057d4ad8891]

	* src/master/main.c:
	master: Added --hostdomain setting to show the current hostdomain.
	[5a3821097f3c]

	* src/doveadm/client-connection.c, src/doveadm/dsync/doveadm-dsync.c:
	dsync: Name remote connections better.
	[ef5518ee5ab2]

	* src/replication/replicator/dsync-client.c:
	replicator: Fixed assert-crash if dsync server disconnected.
	[820f4dbaebdd]

2013-08-05  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 71f0696749ab
	[b846a046d978]

	* .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  <user@localhost.localdomain.org>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <david@hicks.id.au>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* src/auth/db-ldap.c:
	auth: Fixed crash if LDAP query returned multiple results.
	[0e324209d885]

2013-05-20  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <christian.wiese@securepoint.de>

	* doc/example-config/conf.d/Makefile.am:
	example-config: Added missing auth-dict.conf.ext to distribution
	[fbe04e687f6f]

2013-05-19  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <florob@babelmonkeys.de>

	* src/lib/test-unichar.c, src/lib/unichar.c, src/lib/unicodemap.pl:
	liblib: Fix Unicode decomposition
	[4c9420265987]

2013-05-15  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <devurandom@gmx.net>

	* doc/man/Makefile.am:
	Fix out of source build of manpages
	[8d7d2564dbc9]

2013-05-06  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .hgtags:
	Added tag 2.2.0 for changeset 1c8e7a295d4b
	[4af6b464ef9b]

2013-04-11  Timo Sirainen  <tss@iki.fi>

	* .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 <v5.0. Fixed also building with
	other NetBSDs. Patch by Emmanuel Dreyfus
	[d594ce839da3]

	* src/lib/mountpoint.c:
	Fixed getmntinfo() usage with NetBSD. Patch by Emmanuel Dreyfus
	[e33ec9eb166e]

2013-04-10  Timo Sirainen  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <usermask>,
	so that the commands are run for the same user before moving onto
	the next user.
	[8cc28a5a3f4f]

2013-02-22  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <devurandom@gmx.net>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* dovecot.m4:
	dovecot.m4: Reverted last change with added comments.
	[cd3482684bd2]

2013-04-02  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <guid> to sync only the specified
	mailbox (by GUID) Similar to -m <mailbox name>.
	[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  <tss@iki.fi>

	* 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 <usermask> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* src/lib-http/http-client-connection.c:
	lib-http: Fixed hanging on errors
	[fc9bfa8a3980]

2013-02-21  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	mbox: If namespace prefix is used, don't show <prefix>/inbox
	mailbox.
	[b96df105ec55]

2013-02-16  Timo Sirainen  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* src/lib-http/http-client-host.c:
	lib-http: Fixed hang with failed DNS lookups
	[fe24e69ea0c5]

2013-02-20  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* README:
	README: Added RFC 6851
	[449c56aabbb6]

2013-01-28  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/index/index-storage.c:
	lib-storage: Fixed mailbox_exists() for LAYOUT=index.
	[6fa779e1d663]

2013-01-22  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/doveadm-mail.h:
	doveadm: Compiling fix
	[33830df49f59]

2013-01-16  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/client-connection.c:
	doveadm: Increased doveadm client's max command line length.
	[6654ed22af78]

2013-01-11  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/virtual/virtual-mail.c:
	virtual storage: get_first_header() always returned "doesn't exist",
	breaking SORT/THREAD.
	[abcc9959b757]

2012-12-07  lion  <lion@ubuntu.ubuntu-domain>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/virtual/virtual-config.c:
	virtual plugin: Don't fail if mailbox patterns don't match anything.
	[f13f2725882e]

2012-12-08  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/imap/imap-sync.c:
	imap: Avoid sending multiple unnecessary VANISHED lines when sync
	had lots of changes.
	[bcd2d140ea10]

2012-11-05  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-index/mail-cache.c:
	lib-index: Recent cache file changes broke writing.
	[2de37734d0b9]

2012-10-31  Timo Sirainen  <tss@iki.fi>

	* Makefile.am:
	Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_STORAGE
	if needed.
	[7d931927e4ac]

2012-10-30  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/dsync/dsync-ibc-stream.c:
	dsync: Fixed parsing mailbox state from remote dsync.
	[b7d8027a8f74]

2012-12-28  Timo Sirainen  <tss@iki.fi>

	* configure.ac:
	configure: Use -lrt for check_gettime() only if needed.
	[ac63858cbe5f]

2012-12-19  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <assert crash fixed> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-http/http-client-request.c:
	lib-http: Fixed sending HTTP request's payload.
	[2125cf15b26d]

2012-12-12  Stephan Bosch  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* src/plugins/quota/quota-storage.c:
	quota: Fixed quota calculation with mailbox_move().
	[4a110cf281aa]

2012-12-08  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/ostream-buffer.c:
	ostream-buffer: Fixed o_stream_sendv() with multiple iovs. Patch by
	Stephan Bosch
	[67448d683720]

2012-12-05  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/Makefile.am:
	Makefile: Added missing \
	[d1570c02ca21]

2012-12-02  Timo Sirainen  <tss@iki.fi>

	* src/Makefile.am:
	Makefile: Reordered directories to fix build failure
	[d168fdd4aa8d]

2012-12-01  Timo Sirainen  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* src/auth/passdb-bsdauth.c:
	bsdauth: Use "auth-<service>" as the auth type.
	[b40bda50541c]

2012-11-16  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/iostream-rawlog.c:
	iostream-rawlog: Don't assert-crash if trying to write 0 bytes.
	[482da7a91b1c]

2012-11-06  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-dict/dict-redis.c:
	redis dict: Log an error if we get disconnected unexpectedly.
	[a97c62fdd4ad]

2012-10-18  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <instance name> parameter handling. It
	previously worked only if the default config socket wasn't usable.
	[0262ede193e5]

2012-10-12  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <state> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-http/http-url.c:
	Compiler warning fix.
	[2ac184a82b9a]

2012-10-10  Stephan Bosch  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <instance> 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  <florob@babelmonkeys.de>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <florob@babelmonkeys.de>

	* 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  <tss@iki.fi>

	* src/lib-imap/imap-url.c:
	lib-imap: Minor fix to imap_url_parse()
	[fc512eba5207]

2012-09-28  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump -t index: Added support for mailbox list index records.
	[e3639ddbba2f]

2012-09-26  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* src/lib-storage/index/pop3c/pop3c-mail.c:
	pop3c: Fetching message size could have returned wrong value
	[8cec3b4c43ca]

2012-09-12  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <dafan.zhai@securepoint.de>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/Makefile.am:
	doveadm: Install doveadm-settings.h header
	[200ec10b2314]

2012-09-22  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-fs/fs-api.c:
	lib-fs: Fix to previous API change
	[04580a59dc53]

2012-09-17  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-dict/dict-redis.c:
	dict-redis: Fixed infinite looping
	[db9fcdacba90]

2012-08-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-redis.c:
	dict redis: Fixed dict_lookup() to skip all previous pending
	replies.
	[00f940201806]

2012-08-24  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/istream-concat.c:
	istream-concat: Bugfix
	[57efcf0957ea]

2012-08-24  Pascal Volk  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* src/imap/cmd-idle.c:
	imap IDLE: Reverted the IPv6 change, it doesn't work like that.
	[cdb2d4d89d5d]

2012-08-23  Pascal Volk  <user@localhost.localdomain.org>

	* src/imap/cmd-idle.c:
	imap IDLE: Add also fc00::/7 (RFC 4193) to private networks.
	[dc58905b5c9c]

2012-08-23  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/replication/aggregator/replicator-connection.c:
	replicator: Crashfix
	[f68f5aca440e]

2012-08-17  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/ioloop.c:
	Memory leak fix
	[963482677c0b]

2012-08-10  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/pop3-migration/pop3-migration-plugin.c:
	pop3-migration: Avoid disconnection from POP3 server due to idling.
	[ab6a4455b27d]

2012-08-01  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/doveadm-auth.c:
	doveadm auth cache flush usage string updated
	[b3e1111e7f49]

2012-07-07  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/imap/cmd-delete.c:
	imap: If selected mailbox is DELETEd, disconnect client.
	[81a659ab9183]

2012-06-27  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-lda/duplicate.c:
	lib-lda: Duplicate database write failures weren't detected.
	[4edce2f57264]

2012-08-10  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/file-lock.c, src/lib/file-lock.h:
	Added file_lock_method_to_str()
	[1a938b81cc5f]

2012-08-08  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/login-common/client-common.c:
	login: s/succesful/successful/
	[962215040871]

2012-08-03  Timo Sirainen  <tss@iki.fi>

	* Makefile.am:
	Makefile: Fixed -ldovecot-compression name
	[5e10caeb5e5d]

2012-08-02  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <jfriesse@gmail.com>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/ostream.h:
	o_stream_nsend() comment update
	[3d3689c2c81d]

2012-06-29  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-mail/message-parser.c:
	message parser: Fixed infinite loop when parsing a specific message.
	[4461b48fcc1f]

2012-06-18  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/doveadm-log.c:
	doveadm log errors: Added -s <min_timestamp> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* doc/man/Makefile.am:
	Makefile: Removed unnecessary code
	[e0cc3fb5dc64]

2012-06-21  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/dsync/Makefile.am:
	Makefile: Added more missing dsync*.h files
	[7d0ce7586c36]

2012-06-04  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <stephan@rename-it.nl>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* update-version.sh:
	update-version.sh: Use mv -f to avoid questions in some systems.
	[bb572accd1af]

2012-05-16  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-list.c:
	imapc: Use imapc_list_prefix also for listing subscriptions
	[2f7406e838b0]

2012-05-09  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Previous change caused crashing with userdb lookups
	[9da556b9a902]

2012-05-05  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Added %{session} variable for passdb/userdb queries.
	[3d8a25a4394d]

2012-05-04  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <fumiyas@osstech.co.jp>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/login-common/client-common.c:
	login: Log message change: Tried to use s/disabled/disallowed/
	plaintext auth
	[d6376942d9a6]

2012-04-16  Timo Sirainen  <tss@iki.fi>

	* src/login-common/ssl-proxy-openssl.c:
	login: Fixed per-IP ssl_ca setting inside local/remote block.
	[b60701dd4751]

2012-04-12  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: Minor code cleanup.
	[30f8ef8696f0]

2012-04-09  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Added assert + minor code cleanup
	[7b5b40f64439]

2012-03-27  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/login-common/ssl-proxy.c:
	Compiling fix for building without SSL.
	[8699f3d3c1e4]

2012-03-23  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/doveadm-mail-import.c:
	doveadm import: Copy also message flags.
	[b2a3775c7a87]

2012-03-19  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <timeout> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* Makefile.am:
	Makefile: Fixed compiling with automake 1.11.2+
	[96e3b3ef59dc]

2012-03-01  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-log.1.in:
	man: Added description of command `log errors' to doveadm-log.1.
	[007ec1d1d995]

2012-02-21  Timo Sirainen  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-dump.1.in:
	man: Added description for type `dbox' to doveadm-dump.1
	[c854f19f10e3]

2012-02-21  Timo Sirainen  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* doc/man/doveadm.1.in:
	man: Move doveadm instance and mount commands to "master commands"
	group.
	[0947b28d2903]

2012-02-17  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <user@localhost.localdomain.org>

	* 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 <hash> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/Makefile.am:
	man/Makefile: Use SUFFIXES to reduce the number of targets.
	[ac4eed7bef23]

2012-02-13  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <hash> parameter to test if a hash matches to
	given plaintext. Based on patch by Jimmy Thrasibule
	[fffa4d53e901]

2012-02-09  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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=<path" path is now relative to config file's
	directory.
	[901ce18fbfcb]

	* src/auth/db-ldap.c, src/auth/db-ldap.h, src/auth/passdb-ldap.c,
	src/auth/userdb-ldap.c:
	ldap: Support using the same LDAP attribute in multiple fields.
	[6734aa225b4f]

2012-02-01  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/mountpoint.c, src/lib/mountpoint.h:
	Added mountpoint_iter_*() for iterating mounted filesystems.
	[8be75a2ea2dd]

2012-01-29  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveconf.1.in:
	man: Added descriptions of -d and -S options to doveconf.1.
	[cc533cbd77b0]

2012-01-29  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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=<secs>
	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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/auth/auth-request.c:
	Removed unnecessary code.
	[5173218ff7fe]

2012-01-06  Timo Sirainen  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/index/dbox-single/sdbox-storage.c:
	sdbox: Added support for autodetection.
	[1d73272eba6c]

2011-12-16  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-imap-client/imapc-connection.c:
	imapc: Assert crashfix.
	[d5eaa0c56b1e]

2011-12-14  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <ns
	prefix>/inBox cased mailboxes.
	[5366e59d573f]

2011-12-09  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Fixed search when all terms were MUST_NOT.
	[1753a762b56f]

2011-11-24  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/auth/mech-scram-sha1.c:
	auth: Cleanups, fix and Dovecot code-stylifications to SCRAM-SHA-1.
	[34b3655ca484]

2011-09-16  Florian Zeitz  <florob@babelmonkeys.de>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-user.1.in:
	man: Added -f option to doveadm-user.1.
	[5cf885412627]

2011-11-05  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/auth/passdb-static.c:
	auth: passdb static crashed if no password was given
	[809944f5015a]

2011-10-18  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/index/imapc/imapc-mailbox.c:
	imapc: Fixed updating message flags from another session.
	[7e0bdfa76f12]

2011-10-07  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/util/script-login.c:
	script-login: Disable alarm after input has been read.
	[6d1c20b1936c]

2011-10-02  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <dir> 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/server-connection.c:
	doveadm: Fixed sending commands to doveadm server when it didn't
	require authentication.
	[1d8009c7b67e]

2011-09-21  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <user@localhost.localdomain.org>

	* doc/man/doveadm-altmove.1.in:
	man: Added -r option to doveadm-altmove.1.
	[85853915c8c0]

2011-09-15  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/fts-lucene/lucene-wrapper.cc:
	fts-lucene: Error logging fix.
	[9b6580e9e26b]

2011-08-26  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/fts/decode2text.sh:
	fts: decode2text.sh now ignores any errors from doc/xls/ppt
	decoders.
	[7dfa0ad16fa7]

2011-08-04  Timo Sirainen  <tss@iki.fi>

	* 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 <tag> This
	could be smarter though, like not doing this for <span>, but it gets
	a bit complex..
	[81e6ba752d98]

2011-08-03  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/ipwd.c:
	i_getgr*(): OpenBSD workaround is now only used for <5.0. Patch by
	Brad.
	[d7f76c266657]

2011-07-29  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/index/index-search.c:
	lib-storage: Fixed crashing on "NOT <nonexistent sequence>" 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/ssl-params/main.c:
	ssl-params: Make sure we don't leak a timeout.
	[327486d79620]

2011-06-14  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-index.1.in:
	man: Corrected cmd name in doveadm-index.1.
	[e76a3313a46c]

2011-05-11  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <inbox ns
	prefix>detail. The previous behavior required using prefix=""
	namespace to work.
	[622d42376fe0]

2011-05-05  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* NEWS, src/auth/auth-settings.c:
	auth_username_format default changed to %Lu
	[c0b40ebc527d]

2011-06-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c:
	lib-storage: Treat "namespace prefix/" as invalid mailbox name.
	[c22e5e7c0dcd]

2011-05-23  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/imap/imap-settings.c:
	imap: Changed default imap_logout_format.
	[1e1674cedf2d]

2011-05-11  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/ipwd.c:
	i_getgr*(): OpenBSD workaround.
	[127b4e08d3c0]

2011-04-20  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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="<script>alert(1)</script>"'
	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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* doc/example-config/conf.d/auth-vpopmail.conf.ext:
	example-config: Fixed vpopmail config.
	[0ce50c22f84c]

2011-03-31  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Mention auth_username_chars in log when disallowing username
	because of it.
	[3eaf0d3a38d4]

2011-03-26  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/index/dbox-common/dbox-attachment.c:
	dbox: Fixed wrong error check while reading external attachments.
	[890a46b3ab63]

2011-03-12  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/auth/db-ldap.c:
	auth: Fixed ldap assert-crash.
	[b44ec48d9425]

2011-03-04  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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] <HEAD>

2011-02-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2011-02-22  Timo Sirainen  <tss@iki.fi>

	* src/config/old-set-parser.c:
	config: Fixed converting old auth/mail_process_size settings.
	[2480413a80fb]

2011-03-10  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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)  <mk.fraggod@gmail.com>

	* dovecot.service.in:
	systemd service: added [Install] section, so it can be used
	independently from dovecot.socket
	[324f9ca60539]

2011-02-22  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-quota.1.in:
	man: Storage quota values are reported in kilobytes.
	[206cc9b37215]

2011-02-17  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <devurandom@gmx.net>

	* src/lib/module-dir.c:
	Put modulename in quotes when complaining about its non-existence
	[723a26a7d328]

2011-02-10  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lmtp/commands.c:
	lmtp: Fixed handling recipient_delimiter when it was found from
	domain name.
	[c34d871a7bb6]

2011-02-02  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-copy.c:
	imap: Fixed a hang when trying to COPY to a nonexistent mailbox.
	[826981b2c5c4]

2011-01-31  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-mysql.c:
	lib-sql: Implemented sql_result_get_field_value_binary() for MySQL.
	[5a6e44ca5825]

2011-01-30  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* src/lmtp/commands.c:
	lmtp: Write "+ext" part to Delivered-To: header. (reverted changeset
	19231e3585db)
	[a3a7cc0172fd]

2011-01-19  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-request.c:
	auth: Logging improvement for nopassword=y.
	[4b16a5b1da62]

2011-01-17  Timo Sirainen  <tss@iki.fi>

	* 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  <chris@opensde.org>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/istream-seekable.c:
	istream-seekable: Minor code cleanup.
	[5f49aebe8120]

2011-01-05  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-subscriptions.c, src/lib-storage
	/mailbox-list.c:
	lib-storage: Crashfix.
	[951d89021e5f]

2011-02-02  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/plugins/acl/acl-mailbox-list.c:
	acl: Crashfix at deinit in some configurations.
	[7353e3253840]

2010-12-07  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib-master/master-login-auth.c:
	lib-master: Error message typofix.
	[6a0f3010d592]

2011-01-01  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-import.1.in:
	man: doveadm-import.1: Added missing argument descriptions.
	[9e54d61d57fb]

2010-11-26  Timo Sirainen  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* src/doveadm/doveadm.c:
	doveadm: Removed -s option from the usage message (according to
	66428c763354)
	[a9bf33946acf]

2010-11-23  Timo Sirainen  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* src/lib-index/mail-transaction-log.c:
	lib-index: Don't try to stat() in-memory index.
	[e6076467fbf0]

2010-11-23  Pascal Volk  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/anvil/main.c:
	anvil: Don't die until all of our clients have gone.
	[67fbf09d3fa5]

2010-11-09  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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 <file settings for modules we don't
	care about.
	[2bfe672e7c8a]

	* src/config/config-parser.c:
	doveconf: Skip verifying settings for modules we don't care about.
	This was done sometimes, but not always.
	[65855df71cf4]

	* src/lib-index/mailbox-log.c:
	lib-index: Try to keep writing to latest mailbox log. Fixes a
	problem where a long running session keeps writing to a rotate log
	that has already been deleted.
	[431dff6a6ae7]

	* src/plugins/quota/quota-storage.c:
	quota: Don't crash if user has quota disabled.
	[e5f0231b7a40]

2010-09-27  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/config/old-set-parser.c:
	doveconf: When logging an obsolete warning, log a note about using
	doveconf.
	[c5111fb65b0b]

2010-08-24  Timo Sirainen  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/lib/eacces-error.c:
	eaccess_error_get(): If UID/GID doesn't have name, show it as
	<unknown>
	[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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/doveadm/Makefile.am:
	Makefile: Fixed compiling dsync with older automake versions. Patch
	by Naresh.
	[d5a923df60d4]

2010-07-26  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* .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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* src/auth/auth-worker-server.c:
	auth: Fixed a potential crash on deinit.
	[cfd15170dff7]

2010-07-16  Pascal Volk  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-director.1.in:
	man/doveadm-director.1: Added description of "director map"'s -f
	option.
	[26936bdd3801]

2010-07-16  Timo Sirainen  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/doveadm-director.1.in:
	man/doveadm-director.1: Added description of command "director map"
	[6e0a2ce2910c]

2010-07-15  Timo Sirainen  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/option-A.inc:
	man: Use pkgsysconfdir instead of sysconfdir also in included files.
	[9ffa8d9a2ee3]

2010-07-12  Timo Sirainen  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <tss@iki.fi>

	* 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  <user@localhost.localdomain.org>

	* doc/man/Makefile.am:
	man/Makefile: Eliminated $< and $@.
	[96baed198b27]

2010-07-10  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/dsync/dsync-brain-msgs-new.c:
	dsync: Fixed accidentally committed broken code.
	[3613b4d996ba] <HEAD>

	* Closing HEAD branch.
	[bac0353c53c4] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync.c:
	dsync: Fixed giving dsync command as a path to a binary without
	parameters.
	[1f9080e9a530] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Added extra assert
	[06e4a422aa91] <HEAD>

	* 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] <HEAD>

2010-07-09  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset fd0497f5a496
	[02447bd723e8] <HEAD>

	* .hgtags:
	Added tag 2.0.rc2 for changeset fd0497f5a496
	[b6821e44bed8] <HEAD>

	* NEWS, configure.in:
	Released v2.0.rc2.
	[fd0497f5a496] [2.0.rc2] <HEAD>

2010-07-09  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/Makefile.am:
	man/Makefile: Made targets more explicit to fix building with some
	versions make.
	[c1f72627d246] <HEAD>

2010-07-09  Timo Sirainen  <tss@iki.fi>

	* doc/man/doveadm-search-query.7:
	man: Updated HEADER explanation in doveadm-search-query.7
	[531ad5c449d1] <HEAD>

	* TODO:
	TODO updated.
	[23daee5d8496] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-brain.c, src/dsync/dsync-proxy.c:
	dsync: Fixed creating mailboxes with remote dsync.
	[0ece958ef45b] <HEAD>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-user.c:
	Increased some initial mempool sizes.
	[065ff4f1c504] <HEAD>

2010-07-08  Timo Sirainen  <tss@iki.fi>

	* src/dsync/Makefile.am:
	dsync: Fixed loading virtual plugin when compiled --without-shared-
	libs
	[ba60cc0b58df] <HEAD>

	* 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] <HEAD>

	* src/director/mail-host.c:
	director: director_mail_servers setting can now contain host names.
	[065c414a5c07] <HEAD>

	* src/director/director-connection.c:
	director: Avoid "Received SYNC while already synced" error.
	[2060d3d08702] <HEAD>

	* 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] <HEAD>

	* src/lib/mountpoint.c:
	mountpoint_get()+Solaris: Reset mnttab before each lookup. Patch by
	Juergen Obermann
	[5113bada22b2] <HEAD>

	* 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] <HEAD>

2010-07-07  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm.c:
	doveadm: With GLIBC allow subcommand -options to be anywhere in
	command line.
	[dcd740f453a4] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: Changed "user doesn't exist" error message.
	[bff3789b8953] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail-storage-service: Initialize logging with proper settings a bit
	earlier.
	[b0e0d4537496] <HEAD>

	* 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] <HEAD>

	* src/lib/module-dir.c, src/lib/module-dir.h:
	module_dir_load(): Added support for checking binary name
	dependency.
	[10ff5c7e7f40] <HEAD>

	* src/auth/auth-master-connection.c:
	auth: Add "user" field to all PASS lookup replies.
	[4db258f7ce91] <HEAD>

	* src/dsync/test-dsync-brain.c:
	dsync: Another unit test fix.
	[7ebbd6925c41] <HEAD>

	* src/dsync/test-dsync-brain.c:
	dsync: Fixed unit test to not access freed memory.
	[056c3240a912] <HEAD>

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Compiling fix. Patch by nareshov.
	[912a11f476cc] <HEAD>

2010-07-06  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction-finish.c:
	lib-index: Crashfix in some cases when flags unexpectedly weren't
	changed
	[962c9144a31d] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	lib-settings: settings_parse_unalias() crashed if given strlist key.
	[c52acd672735] <HEAD>

	* src/lib-index/mail-index-sync-update.c:
	lib-index: Minor code cleanup / commenting.
	[0ffb55c4d323] <HEAD>

	* src/lib-storage/mail-search-register-imap.c:
	lib-storage: Don't crash if invalid parameter is given to SEARCH
	OLDER.
	[b9a5ad0324c8] <HEAD>

2010-07-05  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync.c:
	dsync: Log "changes caused a desync" as a warning, not as verbose
	info.
	[2f290e28283a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Detect duplicate mailbox GUIDs and fail if it happens.
	[529e85c548a9] <HEAD>

	* src/config/old-set-parser.c:
	config: v1.x parser failed with some settings if pigeonhole wasn't
	installed.
	[8f6703ce6528] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox rebuild: Fixed looking up original mailbox name for mails.
	[d464e23e357c] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs/rquota: If soft limit is zero, fallback to returning hard
	limits.
	[ec62342fa241] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync backup: Fail if it looks like backup is running in wrong
	direction.
	[42dfcf9c896b] <HEAD>

	* src/dsync/dsync-brain-msgs.c:
	dsync: If msg iteration fails, don't crash.
	[18bebc4faa6b] <HEAD>

	* src/lib/module-dir.c:
	module_dir_load(): Don't crash with "" plugin list. Patch by Stephan
	Bosch.
	[bc35bf7f7502] <HEAD>

2010-07-03  Timo Sirainen  <tss@iki.fi>

	* dovecot-config.in.in:
	dovecot-config: Don't include iconv in LIBDOVECOT_DEPS
	[4a4f7add34d9] <HEAD>

	* doc/man/Makefile.am:
	Makefile: Include dovecot-config.1 in distribution.
	[019aae896f03] <HEAD>

2010-07-02  Pascal Volk  <user@localhost.localdomain.org>

	* doc/dovecot-initd.sh:
	doc/dovecot-initd.sh: Updated base_dir detection.
	[9b9d6a596688] <HEAD>

2010-07-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* .hgsigs:
	Added signature for changeset d4d6ebad3d33
	[44be8496bc19] <HEAD>

	* .hgtags:
	Added tag 2.0.rc1 for changeset d4d6ebad3d33
	[e3e837b088ba] <HEAD>

	* NEWS, configure.in:
	Released v2.0.rc1.
	[d4d6ebad3d33] [2.0.rc1] <HEAD>

	* src/director/director-test.c:
	director-test: Make static analyzer happy.
	[11472e64ea7d] <HEAD>

	* autogen.sh:
	autogen.sh: Use wiki2-export for docs for now.
	[3d737e1ed65e] <HEAD>

	* src/lib/module-dir.c:
	module_dir_load(): Ignore duplicates in module names.
	[e586c030e430] <HEAD>

	* 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] <HEAD>

2010-07-02  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/dsync.1.in:
	man: dsync.1: Added link to "dsync design".
	[eaa42f370481] <HEAD>

2010-07-02  Timo Sirainen  <tss@iki.fi>

	* src/config/old-set-parser.c:
	config: Fixed converting some managesieve settings.
	[c83071fc50e6] <HEAD>

	* doc/man/doveadm.1.in:
	man: Updated doveadm exit status info.
	[79db41b9e1a0] <HEAD>

	* src/config/old-set-parser.c:
	config: Handle protocols=managesieve as protocols=sieve
	[4cec50afed94] <HEAD>

	* src/lib-storage/list/mailbox-list-fs.c:
	mbox: Support deleting a directory if it contains an empty .imap/
	directory.
	[737ee10e8104] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-07-02  Pascal Volk  <user@localhost.localdomain.org>

	* 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] <HEAD>

2010-07-02  Timo Sirainen  <tss@iki.fi>

	* Makefile.am:
	Makefile: Stop generated ChangeLog at v1.2.rc1. If someone wants
	full history, they can get it from hg.
	[0ca72121aa46] <HEAD>

2010-07-01  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm.c:
	doveadm help: Fixed crash.
	[4dd679310f12] <HEAD>

	* doc/man/dsync.1.in:
	man: Fixed previous dsync man page commit
	[2162b9082283] <HEAD>

2010-07-01  Pascal Volk  <user@localhost.localdomain.org>

	* doc/man/doveadm.1.in:
	man/doveadm.1: Typo fix.
	[3ae1c14a8c06] <HEAD>

2010-07-01  Timo Sirainen  <tss@iki.fi>

	* doc/man/dsync.1.in:
	man: dsync man page updated.
	[2676d86d3286] <HEAD>

	* dovecot.m4:
	dovecot.m4: Added LIBDOVECOT_CONFIG_INCLUDE
	[211aa7bab239] <HEAD>

	* src/dsync/dsync-proxy.c:
	dsync: More fixes to parsing proxied mailbox deletion records.
	[2996ff9d2779] <HEAD>

	* .hgignore:
	Removed old binaries from .hgignore
	[9605c74b1f19] <HEAD>

	* src/dsync/test-dsync-proxy-server-cmd.c:
	dsync: Fixed unit test.
	[e0c52292b586] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-proxy.c:
	dsync: Fixed assert-crashing on exporting a "deleted mailbox" record
	to proxy.
	[d701f254ca4e] <HEAD>

	* src/dsync/dsync-brain-msgs-new.c:
	dsync: Fixed assert-crash with remote syncing.
	[be38abc90df3] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync.c:
	dsync: Removed -r parameter. dsync backup should be used instead.
	[b8a74b3fb16d] <HEAD>

	* src/dsync/dsync-brain-msgs-new.c:
	dsync -v: Make sure the n/m message counter is flushed to stdout.
	[3c7d3258ac1d] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync: Changed verbose "xx changed" messages to be clearer what they
	mean.
	[b94e6bf6b9c9] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-brain-msgs-new.c:
	dsync: Fixes to handling copying.
	[cfee7da47bf0] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: Compiler warning fix on some OSes.
	[c27e9a035b67] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync: Potential crashfix, plus some compiler warning fixes.
	[9798d57644ba] <HEAD>

	* TODO:
	TODO updated
	[148fccbe9f32] <HEAD>

	* src/dsync/dsync.c:
	dsync backup: Added -R parameter to reverse backup direction.
	[c36dbec5cb9f] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync: Another try at not increasing mailbox uidnext/highestmodseq
	on failure
	[49b226835cd2] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync: If dsync fails in any way, don't increase mailboxes'
	next_uid/highestmodseq.
	[b4f029f7793a] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Log an error if saving mail fails (e.g. because of quota)
	[f319af83ae36] <HEAD>

	* src/lib-storage/index/dbox-single/sdbox-save.c:
	single-dbox: Also some error handling fixing.
	[220e7b0f03c2] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-save.c:
	mdbox: More error handling fixing.
	[7bd8464ef333] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-map.c, src/lib-storage/index
	/dbox-multi/mdbox-save.c:
	mdbox: Error handling fixes.
	[16e0992583e2] <HEAD>

	* src/master/service-process.c:
	master: Compile fix for non-Linux OSes
	[451852aa0200] <HEAD>

	* src/config/old-set-parser.c:
	config: Rename protocol managesieve {} to protocol sieve {}
	[7d418cc60853] <HEAD>

	* src/dsync/test-dsync-brain-msgs.c:
	dsync: Fixed unit test to work again.
	[6ef22459c39f] <HEAD>

2010-06-30  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync.c:
	dsync mirror: If arg has '/', assume it's a script.
	[26faf8ae5024] <HEAD>

	* src/dsync/dsync.c:
	dsync: Merged convert and mirror commands, parameter autodetection
	figures out what to do.
	[78b4cf49d3cd] <HEAD>

	* src/master/service-process.c:
	master: Improved core dump error messages.
	[e350532d8ce0] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota.c:
	quota: With mail_debug=yes, show the non-default rule bytes/messages
	with "+" prefix.
	[b09638ebb87d] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm help: Don't read settings (doveconf seems to mess up
	terminal)
	[8468998b98ab] <HEAD>

2010-06-30  Pascal Volk  <user@localhost.localdomain.org>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: Added an assert to client_connected().
	[1799fbbd104b] <HEAD>

2010-06-30  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/Makefile.am, src/doveadm/doveadm.c:
	doveadm help: Show man pages instead of small usage strings.
	[b07bb05789cf] <HEAD>

2010-06-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-index-sync-update.c:
	lib-index: Added a missing error logging.
	[3156315704ef] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-sql/driver-pgsql.c:
	pgsql: Fixes for errors handling with synchronous sql queries.
	[2167bea550e1] <HEAD>

2010-06-29  Pascal Volk  <user@localhost.localdomain.org>

	* doc/example-config/dovecot.conf:
	example-config: Mention `doveconf -n` instead of `dovecot -n`
	[8c52ebde02a6] <HEAD>

2010-06-28  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* doc/example-config/Makefile.am:
	example-config: Don't include README file in distribution tarball.
	[6cce8b2a9121] <HEAD>

2010-06-28  Pascal Volk  <user@localhost.localdomain.org>

	* doc/example-config/conf.d/Makefile.am:
	example-config: Added missing config files to the Makefile.
	[de800a774943] <HEAD>

2010-06-28  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h:
	lib-index: Added mail_index_sync_has_expunges()
	[b2aca3e50f44] <HEAD>

	* src/imap/imap-client.c, src/pop3/pop3-client.c:
	imap, pop3: Forced disconnection of client didn't always close
	connection immediately.
	[f4238836c566] <HEAD>

2010-06-28  Pascal Volk  <user@localhost.localdomain.org>

	* .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] <HEAD>

2010-06-28  Timo Sirainen  <tss@iki.fi>

	* dovecot-config.in.in:
	dovecot-config: Added LIBDOVECOT_CONFIG_INCLUDE
	[9be162cc2c52] <HEAD>

	* src/master/service-monitor.c:
	master: Most service processes were being idle-killed much too
	quickly.
	[59c952713e94] <HEAD>

	* src/plugins/quota/quota.c:
	quota: Fixed a potential crash with dict quota at deinit.
	[3de690764509] <HEAD>

	* src/dict/main.c:
	dict: Unregister modules after unregistering dict drivers. Fixes a
	crash at deinit when sql drivers were built as plugins.
	[a1daaaa5d1f5] <HEAD>

2010-06-27  Pascal Volk  <user@localhost.localdomain.org>

	* doc/auth-protocol.txt:
	doc/auth-protocol.txt: fixed encoding failure.
	[c4194f5e3934] <HEAD>

2010-06-25  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/10-auth.conf, doc/example-
	config/dovecot.conf:
	example-config: Moved disable_plaintext_auth to 10-auth.conf
	[5326d6b2f36e] <HEAD>

	* 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] <HEAD>

	* src/lib-sql/sql-db-cache.c:
	sql cache: Free all unused connections at deinit.
	[9086b081c339] <HEAD>

	* src/lib-index/mail-transaction-log.c:
	lib-index: fsync change broke .newlock dotlock for transaction log.
	[9127a9f4a020] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	lib-settings: settings_check() now also checks dynamic parsers.
	[8d76b2cef0b5] <HEAD>

	* 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] <HEAD>

2010-06-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/config/config-parser-private.h, src/config/config-parser.c:
	config: Added hook_config_parser_begin so plugins can change default
	settings.
	[7885030184ab] <HEAD>

	* src/config/Makefile.am:
	config: Install all useful config*.h files.
	[661b2138cb7b] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: MASTER_SERVICE_FLAG_NO_IDLE_DIE wasn't actually working.
	[c9e8144974f1] <HEAD>

	* src/director/main.c:
	director: Compiling fix for Solaris.
	[c5e78bd1d758] <HEAD>

2010-06-23  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: BODY=* setting wasn't reset with RSET
	[c237fcea3f0c] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Fixed assert-crash on storage rebuild if file got lost.
	[182d1834f643] <HEAD>

	* src/lib-storage/mail-search-build.c:
	lib-storage: Changed error message.
	[1cc5486f466b] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-storage.c:
	quota: Fixed a memory leak on deinit. Based on patch by Mike Abbott
	/ Apple.
	[37df22ecd572] <HEAD>

2010-06-22  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Previous change wasn't complete.
	[29178cec0506] <HEAD>

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Fixed handling indexing for multiple body parts.
	[776e2d96f6bb] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Removed broken optimization from storage rebuild, possibly
	causing broken results.
	[7ad62742116d] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/shared/shared-list.c:
	shared storage: Fixed handling LIST reference string.
	[86665b63c70b] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-purge.c:
	mdbox: Previous change was broken, fixed now properly to make purge
	fail early.
	[754edf799dac] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-purge.c:
	mdbox: When purging finds that mailbox is corrupted, stop going
	through other files.
	[be6931536ee0] <HEAD>

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump: Detect also if directory has dovecot.map.index
	[280fe153a7ba] <HEAD>

2010-06-21  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail.c:
	doveadm: Mail commands assert-crashed when using -u wildcards.
	[407e7ff098ca] <HEAD>

	* src/doveadm/doveadm-print-pager.c:
	doveadm: Minor code cleanup to print formatter.
	[d78370005268] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Removed some unnecessary code.
	[a3face3fd1d0] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Write output using formatter. Use pager as default.
	[bc03e6443ca7] <HEAD>

	* 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] <HEAD>

	* src/lib-charset/charset-iconv.c:
	lib-charset: Don't assert-crash when iconv() skips lots of invalid
	input.
	[28cfb347296a] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch hdr.*: Show the hdr.name prefix even if the header
	doestn't exist.
	[172a0c7cebbb] <HEAD>

	* src/lib-storage/mail-search-register-human.c:
	lib-storage: Human search parser crashed if mailbox name was
	missing.
	[52e2f3a8054f] <HEAD>

	* src/doveadm/doveadm-print.c:
	doveadm: Don't crash with tab formatter at deinit.
	[c23ca08ca085] <HEAD>

	* src/director/user-directory.c:
	director: Minor code cleanup.
	[e5730fb45680] <HEAD>

	* src/director/director-connection.c:
	director: Don't send expired user records to remote servers.
	[d3dfe9c271bc] <HEAD>

	* src/director/main.c:
	director: Don't kill ourself when idling.
	[01c148824d52] <HEAD>

	* src/lib-master/master-service.c, src/lib-master/master-service.h:
	lib-master: Added MASTER_SERVICE_FLAG_NO_IDLE_DIE.
	[11cb0e93ff32] <HEAD>

	* src/auth/auth-master-connection.c:
	auth: Fixed sending "userdb iteration not supported" failure to
	client.
	[585318bf974d] <HEAD>

	* src/master/main.c:
	master: Don't try to parse -options if they're not the first
	parameters.
	[1d5cd1d835a1] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: Fixed a crash when freeing an allocated, but unopened
	mailbox. Based on patch by e-frog.
	[7d05cef711bb] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-print-table.c:
	doveadm: Table formatter crashed with large output.
	[542d859f0223] <HEAD>

2010-06-19  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2010-06-18  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm: Fixed assert-crash when listing mailbox foo/*
	[9a852084bbeb] <HEAD>

	* src/director/director.c:
	director: Debug logging crashfix.
	[47c1329e4e65] <HEAD>

	* src/director/director-connection.c:
	director: Send PINGs every 15 seconds for idling director
	connections.
	[e75dab14bb2f] <HEAD>

	* 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] <HEAD>

	* src/director/director-test.c:
	director-test: Some fixes
	[e6f15ba78007] <HEAD>

	* src/director/director-test.sh:
	director-test.sh: Removed absolute path from director-test
	executable
	[da7a307ab4f1] <HEAD>

	* src/director/director-test.sh:
	director-test: Added a script that generates test config files and
	other necessary info.
	[fb917e3a8f07] <HEAD>

	* src/director/director-connection.c:
	director: If same user gets redirected to two hosts, don't crash
	later.
	[ecf195115922] <HEAD>

	* src/director/director-test.c:
	director-test improvements.
	[6aa749b789ef] <HEAD>

	* src/director/director-connection.c:
	director: Debug message improvements.
	[61708c33154d] <HEAD>

	* src/lib/buffer.c:
	DEBUG: Removed buffer's tests against overflows. It slows down too
	much.
	[2e686a6403e3] <HEAD>

	* src/master/service.c:
	master: Fixed crash on deinit (maybe also on reload).
	[334d9b18f437] <HEAD>

2010-06-17  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	lib-storage: Fixed getting flags for subscribed mailboxes with non-
	default namespace settings.
	[3128f592ef5c] <HEAD>

	* .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] <HEAD>

	* src/director/director-connection.c, src/director/director-host.c,
	src/director/director-host.h:
	director: Handle CONNECT commands (properly).
	[75d5e31ea8cc] <HEAD>

	* src/director/mail-host.c:
	director: director_mail_servers setting now allows ip1-ip2 ranges.
	[870cd20ada71] <HEAD>

	* src/director/director-connection.c:
	director: Outgoing director connections shouldn't be counted as
	master clients.
	[467ca06a7dbe] <HEAD>

	* src/doveadm/doveadm-print.c:
	doveadm: Another -A crashfix for mail commands that don't print
	anything.
	[81e496a5b412] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-director.c:
	doveadm director: Make sure write()s send everything.
	[744638eb4c1a] <HEAD>

	* src/imap/imap-client.c, src/lmtp/client.c, src/pop3/pop3-client.c:
	imap, pop3, lmtp: Close network sockets with net_disconnect().
	[b2ffb6846973] <HEAD>

	* src/lib/network.c:
	net_disconnect(): Ignore ECONNRESET error.
	[c24ee1ebb159] <HEAD>

	* src/imap/cmd-uid.c:
	imap: UID commands could have written garbage to process title.
	Patch by Mike Abbott / Apple
	[c03424ecf8e5] <HEAD>

2010-06-16  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/10-master.conf:
	example-config: Updated LMTP listeners.
	[9eee74e3c6c5] <HEAD>

	* doc/example-config/conf.d/10-logging.conf:
	example-config: Updated log_path comment to include syslog.
	[08523562c134] <HEAD>

	* doc/example-config/conf.d/10-master.conf:
	example-config: Show "user" field for service auth/auth-worker
	[a55da849216c] <HEAD>

	* src/doveadm/doveadm-log.c:
	doveadm log find: Avoid printing "syslog" as log path.
	[a05e3bbc4e46] <HEAD>

	* src/lib-storage/index/index-search.c:
	lib-storage: Fixed header searches to work correctly when there are
	multiple headers with same name.
	[3e50223d0014] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-log.c:
	doveadm log find: Find the log more reliably.
	[dd1f0a7127a9] <HEAD>

	* src/doveadm/doveadm-mail-mailbox-status.c:
	doveadm mailbox status: Added "all" field as an alias for showing
	everything.
	[33f9b211f213] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-dict.c:
	dict quota: Quota recalculation always doubled the quota with pgsql.
	[7a7bfdd708ff] <HEAD>

2010-06-15  Timo Sirainen  <tss@iki.fi>

	* src/auth/main.c:
	auth: Fixed crash when a plugin was trying to register password
	scheme.
	[a74f743e2c56] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-save.c:
	mdbox: Flush dbox file's input buffer after writing to the file.
	[26594f6d784a] <HEAD>

	* src/plugins/expire/doveadm-expire.c:
	Compile fix.
	[d1f7b5e17252] <HEAD>

2010-06-14  Timo Sirainen  <tss@iki.fi>

	* src/auth/userdb-nss.c:
	userdb nss: Default to blocking=yes.
	[7b497f801178] <HEAD>

	* src/auth/mech-plain.c:
	auth: Fixed code comment.
	[d15d5d828d6b] <HEAD>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Use macros instead of magic '0' and '1' characters.
	[d24cd07babb6] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mailbox_list_get_unexpanded_path(): Don't crash if namespace
	location is already expanded.
	[6e1247609440] <HEAD>

	* src/config/doveconf.c:
	doveconf: Support listing multiple specified keys. Support listing
	specified sections.
	[d110c46e6936] <HEAD>

	* src/config/doveconf.c:
	doveconf: Config file warning check should use base_dir, not
	PKG_RUNDIR.
	[1f006c9e5795] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Post-login scripts can now exit to prevent user from
	logging in, without logging error.
	[356afa6263d4] <HEAD>

	* src/login-common/sasl-server.c:
	login: Fixed crash with service_count=1 and when reaching max number
	of connections from user+ip.
	[05700fe85e22] <HEAD>

	* src/lib-storage/mail-storage-hooks.c:
	lib-storage: Fixed handling mail_allocated hook.
	[07a7d352af66] <HEAD>

	* src/lib-imap/imap-match.c:
	lib-imap: Compiler warning fix.
	[88b6665b48da] <HEAD>

2010-06-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: Fixed crashing when marking mdbox corrupted and mdbox map had
	open transactions.
	[b6163de8dffa] <HEAD>

	* src/lib-index/mail-index-view.c, src/lib-index/mail-index.h:
	lib-index: Added mail_index_view_get_transaction_count().
	[aa66db4073c5] <HEAD>

2010-06-12  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-print-table.c:
	doveadm: Include termios.h, not sys/termios.h..
	[7a02b84ad7f5] <HEAD>

	* src/doveadm/doveadm-print-table.c:
	doveadm: Compile fix for Solaris.
	[c50d42277cc3] <HEAD>

	* src/doveadm/doveadm-print-table.c:
	doveadm: Use struct winsize, not struct ttysize to get the terminal
	width.
	[c55de307d9f9] <HEAD>

	* src/doveadm/doveadm-print-table.c:
	doveadm: Use actual terminal width for table formatter if possible.
	[2f3ce92f53ff] <HEAD>

	* src/doveadm/doveadm-who.c:
	doveadm who: s/service/proto/ in header name.
	[f35949b56863] <HEAD>

	* .hgsigs:
	Added signature for changeset 0c23ff04394f
	[f972a82055c1] <HEAD>

	* .hgtags:
	Added tag 2.0.beta6 for changeset 0c23ff04394f
	[e2b5dcb6c5a1] <HEAD>

	* configure.in:
	Released v2.0.beta6.
	[0c23ff04394f] [2.0.beta6] <HEAD>

	* src/lib/module-context.h:
	MODULE_CONTEXT() now avoids directly returning NULL to make static
	analyzer happier.
	[aec2a41abe4a] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Make static analyzer happier.
	[0565807f7ca1] <HEAD>

	* src/login-common/sasl-server.c:
	login: Removed dead code.
	[e3881b95a93d] <HEAD>

	* src/doveadm/doveadm.c, src/doveadm/doveadm.h:
	doveadm: Marked help() with noreturn attribute.
	[8f0eef1c6f17] <HEAD>

2010-06-11  Timo Sirainen  <tss@iki.fi>

	* TODO:
	TODO updated.
	[93c3d6a46446] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Renamed -F to -f.
	[b135e13f42b2] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mailbox_list_get_unexpanded_path(): Don't crash with -o
	mail_location=..
	[ed156c989067] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs, Solaris: Don't try to open quotas file with NFS mounts.
	[e6185d7c9732] <HEAD>

	* src/lib/failures.c:
	Logging lines longer than PIPE_BUF caused an extra empty line to be
	logged.
	[5ede18fe35fa] <HEAD>

2010-06-09  Timo Sirainen  <tss@iki.fi>

	* src/master/service-monitor.c, src/master/service-process.h:
	master: If an idling process seems stuck, log an error and disable
	it.
	[3fa10300c70c] <HEAD>

	* src/lib-master/master-service-private.h, src/lib-master/master-
	service.c:
	lib-master: Try to send master status more reliably.
	[67b8de25154c] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-status.c:
	imap: STATUS (X-GUID) added extra space to result.
	[425f635ebaa9] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added "user" field.
	[9f9f9d9e4a79] <HEAD>

	* 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] <HEAD>

	* src/config/config-parser.c:
	doveconf: Show local, remote name/bits {} blocks with the /bits
	part.
	[cc6ebfa394d3] <HEAD>

	* src/lib-storage/mail-storage-hooks.c:
	lib-storage: Fixes to recent plugin API change.
	[6d32cf98b5f3] <HEAD>

	* src/lib-master/master-auth.c:
	lib-master: Error logging fix for 64bit systems.
	[e85e6b1df82f] <HEAD>

	* src/lib-master/master-auth.c:
	lib-master: Added timeout to master login attempts and improved
	error logging.
	[7385d8090890] <HEAD>

	* src/login-common/client-common-auth.c:
	login: If master login fails, make sure the client gets
	disconnected.
	[a859ab0d760e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-06-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: stat() storage directory first before trying to mkdir it.
	[1aaa4b51cb14] <HEAD>

	* src/auth/auth-request-handler.c, src/auth/main.c:
	auth: Abort pending penalty lookups earlier in deinit.
	[149d57c1a9c0] <HEAD>

	* src/auth/auth-penalty.c:
	auth: Fixed a memory leak when looking up penalty value from anvil.
	[6f85840f8171] <HEAD>

	* src/lib-storage/mail-namespace.c:
	lib-storage: Set mail_namespace.unexpanded_set also when no
	namespaces are defined.
	[9f546fe13fc5] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-06-07  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Fixed 30 second delay after finishing DATA.
	[2d6cf78982dc] <HEAD>

	* src/lmtp/commands.c:
	lmtp proxy: Fixed passdb username change.
	[d2037445feed] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: More async auth request deinit fixing.
	[68287c257c0a] <HEAD>

	* src/master/main.c:
	master: Small code cleanup.
	[cf496a6d669e] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Another attempt in trying to fix crashed at deinit on pending
	async auth request lookups.
	[fd447208ccb9] <HEAD>

	* src/login-common/main.c:
	login: Deinit auth socket after destroying clients to avoid crash.
	[2f084e625f09] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-06-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: Removed unnecessary code line.
	[6f5d3e035652] <HEAD>

2010-06-04  Timo Sirainen  <tss@iki.fi>

	* TODO:
	TODO updated.
	[e9fed6359699] <HEAD>

	* 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] <HEAD>

	* src/util/rawlog.c:
	rawlog: Rewrote timestamp handling. Now with -t parameter each line
	begins with timestamp.
	[6b35189988dc] <HEAD>

	* src/util/script-login.c, src/util/script.c:
	script, script-login: Tell GNU getopt() not to access -parameters
	after first non-parameter.
	[7567896556bd] <HEAD>

	* 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] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Compile fix.
	[0602b39ff3ce] <HEAD>

	* src/dsync/Makefile.am:
	dsync: Fixed loading plugins when built --without-shared-libs
	[5d2715ae9068] <HEAD>

	* src/lib-dict/dict-client.c:
	dict client: Allow connecting to server multiple times in a second.
	[24caf08ae7af] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list-
	private.h, src/lib-storage/mailbox-list.c:
	lib-storage: Code cleanup.
	[e056d42c9711] <HEAD>

	* src/auth/main.c:
	auth: Deinit auth request handler before pass/userdbs
	[b578861bfa40] <HEAD>

	* 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] <HEAD>

	* src/plugins/mail-log/mail-log-plugin.c:
	mail-log: Code cleanup.
	[57723949babb] <HEAD>

	* src/plugins/mail-log/mail-log-plugin.c:
	mail-log: Show lda/lmtp deliveries as "save", not "copy from Dovecot
	Delivery Mail".
	[1c2d74e3e312] <HEAD>

	* src/auth/main.c:
	auth: When stopping, try to wait for auth clients to disconnect.
	This should avoid auth failures during config reloads.
	[5260724def1f] <HEAD>

	* src/util/script.c:
	script: Clear environment before running the script.
	[c7ab127fe8ae] <HEAD>

2010-06-02  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/doveadm-quota.c:
	doveadm quota get: Avoid integer overflows with really high quota
	usage.
	[3b25ca20f005] <HEAD>

	* src/auth/auth-request.c:
	auth: Added %{login_user}, %{login_username} and %{login_domain}
	variables that are set for master logins.
	[5ae4a5c14f5b] <HEAD>

	* src/plugins/quota/doveadm-quota.c:
	doveadm quota get: Print usage also in percentages.
	[49b3a9e170be] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* .hgignore, src/util/Makefile.am, src/util/script.c:
	Added "script" service that can be used to easily execute programs
	via UNIX socket.
	[19c661891964] <HEAD>

	* src/lib-master/master-login.c, src/util/script-login.c:
	script-login: Added version check to the protocol.
	[3ac8c5dd9c30] <HEAD>

	* src/util/script-login.c:
	script-login: Error message fix.
	[c86b90148906] <HEAD>

	* 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] <HEAD>

	* .hgignore, src/util/Makefile.am, src/util/script-login.c,
	src/util/script.c:
	Renamed "script" binary to "script-login".
	[addb2c6c1dfb] <HEAD>

	* 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] <HEAD>

	* src/lib-dict/dict-client.c:
	lib-dict: Changed proxy client's idle timeout from 1 second to 0.
	[50a0c05fb4e7] <HEAD>

	* 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] <HEAD>

	* configure.in, src/auth/userdb-static.c:
	auth: Removed USERDB_STATIC macro. It's always built anyway.
	[d8a801d2d3f1] <HEAD>

	* 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] <HEAD>

2010-06-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: When rebuilding storage, don't use map records that have
	wrong size.
	[1b45f9641924] <HEAD>

	* doc/example-config/conf.d/10-mail.conf:
	example-config: Updated global mail_plugins comment.
	[1afb59ce219b] <HEAD>

	* src/config/old-set-parser.c:
	config: Fixed handling obsolete [ipv6addr]:port listen setting.
	[9952cbe2f839] <HEAD>

	* src/config/old-set-parser.c, src/lib/network.c,
	src/master/service.c:
	Added support for [] around ipv6 addresses everywhere.
	[bdb46ba87203] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Allow tabs between extended acl names.
	[484eb8f1f074] <HEAD>

	* configure.in:
	configure: Don't use spaces after -I and -L compiler flags.
	Apparently they break in some setups. Patch by Ben DJ.
	[044589aca7c6] <HEAD>

	* src/lib/lib-signals.c:
	Compile fix for OSX 10.3.
	[785f1507fed8] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: Fixed looking up namespace for save-destination mailbox
	(!ns/box)
	[9bd63ce9db85] <HEAD>

	* src/imap/imap-settings.c:
	imap: Removed a no-op outlook-idle imap client workaround.
	[d4b29a288fa1] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/istream-header-filter.c:
	header filter istream: Avoid seeking backwards when caller just
	wants to reset the stream buffers.
	[941608f8b3fb] <HEAD>

2010-05-31  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-index/mail-cache.c:
	lib-index: If index is read-only, always fail when trying to lock
	cache file.
	[7adc45a6da2e] <HEAD>

	* src/imap/cmd-idle.c:
	imap: Fixed previous idle change more correctly. The previous way
	could have crashed in some situations.
	[ba9d1b490bc3] <HEAD>

	* src/imap/cmd-idle.c:
	imap: If client was disconnected while IDLEing (e.g. storage error),
	it got stuck instead.
	[38ce28c0bca3] <HEAD>

	* src/lib-index/mail-transaction-log.c:
	lib-index: Try to handle index directory deletion more nicely.
	[3efe9dcbed3e] <HEAD>

	* src/lib-storage/mailbox-uidvalidity.c:
	lib-storage: Don't log rename() error if dovecot-uidvalidity didn't
	contain valid value.
	[2bb7ce1fb8a0] <HEAD>

	* 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] <HEAD>

	* src/auth/db-passwd-file.c:
	auth: Improved passwd-file's EACCES error messages.
	[dcfabc2e2143] <HEAD>

	* src/doveadm/doveadm-mail-mailbox.c:
	doveadm: Removed an unnecessary code line.
	[eac68d311ce3] <HEAD>

	* src/director/login-connection.c:
	director: Update connection counts also on login connection deinit.
	[c82a7922fca9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-05-28  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-list.c:
	imap: LIST now handles better if INBOX is in a different namespace
	than prefix=""
	[4faaf5b037d5] <HEAD>

	* src/doveadm/doveadm-log.c:
	doveadm log find: Wait 1 second after logging, to give syslog time
	to write to files.
	[f9d1059f81ce] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm.c,
	src/doveadm/doveadm.h:
	doveadm mailbox convert renamed to doveadm mailbox mutf7.
	[4d3be20243c2] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: Log also mountpoint type with mail_debug=yes.
	[e502f52f160c] <HEAD>

	* src/doveadm/doveadm-auth.c, src/doveadm/doveadm-mail.c:
	doveadm: Detect '?' also as wildcard character in usernames.
	[e7b0366f9cfb] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm help <cmd> now also outputs to stdout.
	[425823ba9fcb] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	master: dovecot --log-error now internally calls doveadm log test.
	[8f63f17fdb0c] <HEAD>

	* src/master/main.c:
	master: Added reload and stop back to usage help string.
	[e420e196f80a] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	dovecot: Removed reload and stop handlers. "dovecot arg" now execs
	"doveadm arg".
	[257eb30cc529] <HEAD>

	* src/doveadm/Makefile.am, src/doveadm/doveadm-master.c,
	src/doveadm/doveadm.c, src/doveadm/doveadm.h:
	doveadm: Added stop and reload commands.
	[c740a50ab676] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: force-resync now fails if mailbox name isn't valid UTF-8
	[b6c027d9631f] <HEAD>

	* src/lib-storage/mail-search-register-human.c:
	lib-storage: Human search parser now fails if given mailbox name
	isn't valid UTF8.
	[046948ccdbfb] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm force-resync: Get mailbox name as UTF-8.
	[6f4bfa83aabd] <HEAD>

	* src/doveadm/doveadm-mail-mailbox.c:
	doveadm mailbox *: Removed -7 and -8 parameters from most commands,
	UTF-8 is used always.
	[2127b6e9096d] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: mailbox field value is printed as UTF-8, not mUTF-7.
	[93eaae8617c8] <HEAD>

	* src/lib-storage/mail-search-register-human.c:
	lib-storage: human search arg parser now gets mailbox name using
	UTF-8.
	[15cda53f4e79] <HEAD>

	* 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] <HEAD>

	* src/lib-sql/driver-mysql.c, src/lib-sql/driver-sqlite.c:
	mysql, sqlite: Update db state to disconnected on deinit.
	[8c521fd311c6] <HEAD>

	* src/master/service.c:
	master: Make sure throttle timeout isn't added for already destroyed
	services.
	[bd0088e294ec] <HEAD>

2010-05-27  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-director.c:
	doveadm: Minor help text change.
	[515a8cbd3d1e] <HEAD>

	* src/master/service-monitor.c:
	master: Fixed crash on config reload.
	[9bb17fe5465f] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: -u parameter now allows wildcards for usernames.
	[6ac0459a6f0e] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Preserve $HOME when execing doveconf.
	[34621611fb33] <HEAD>

	* src/doveadm/doveadm-auth.c:
	doveadm user: User listing is done now by using wildcards in
	usernames.
	[ca0503623ff2] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/doveadm-quota.c:
	doveadm quota: Fixed to work with new doveadm API
	[caecf9866909] <HEAD>

	* src/lib-storage/mail-search-register-human.c:
	lib-storage: Human search date parser now supports UNIX timestamps.
	[59322f74214b] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-auth.c:
	doveadm user: If no user parameters are given, list all usernames.
	[85e22167529f] <HEAD>

	* src/lib-storage/index/dbox-single/sdbox-save.c:
	dbox: Copying messages crashed.
	[f2ece87f9fea] <HEAD>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge: Don't crash if lazy_expunge setting isn't enabled for
	user.
	[47f186130a4d] <HEAD>

	* src/util/tcpwrap.c:
	Compiler warning fix.
	[75b8bde60e65] <HEAD>

	* src/config/doveconf.c:
	doveconf <key> now shows "key = " prefix, unless -h parameter is
	given.
	[19730f396800] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* TODO:
	TODO updated.
	[7b8bd33c96f9] <HEAD>

2010-05-26  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-auth.c:
	doveadm auth: Fail if after password there is more parameters.
	[3d928798d278] <HEAD>

	* src/doveadm/doveadm-auth.c:
	doveadm auth: Return with exit code 0 if auth succeeded, 1 if
	failed, others if error.
	[5a875b6a5982] <HEAD>

	* src/doveadm/doveadm-auth.c:
	doveadm auth: Fix to previous change, it broke auth completely.
	[5e7ca577e23a] <HEAD>

	* src/lib-auth/auth-client.c, src/lib-auth/auth-client.h:
	lib-auth: Added auth_client_is_disconnected().
	[4f21121408b3] <HEAD>

	* src/doveadm/doveadm-auth.c:
	doveadm auth: If we can't connect to auth socket, die instead of
	hanging.
	[bb17ad464528] <HEAD>

	* src/lib-storage/mail-copy.c:
	lib-storage: Don't assert-crash when copying a mail fails.
	[0918cb06c906] <HEAD>

	* doc/example-config/conf.d/10-mail.conf:
	example-config: Namespace indentation should have been 2 spaces, not
	3.
	[7cbc5854fbeb] <HEAD>

	* src/lib-storage/index/shared/shared-storage.c:
	lib-storage: Allow shared namespace prefix to use %variable
	modifiers.
	[b497a302e5cf] <HEAD>

	* 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] <HEAD>

	* src/lda/Makefile.am, src/lmtp/Makefile.am:
	lda, lmtp: Fixed library dependency tracking in Makefiles.
	[2fa46ba7ff2f] <HEAD>

	* 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] <HEAD>

	* src/lib-sql/driver-mysql.c:
	lib-sql: Fixed getting number of affected rows with MySQL.
	[0c15a760dab8] <HEAD>

	* doc/example-config/dovecot.conf:
	example-config: Fixed example dict config filenames.
	[c23fb6cc5bb5] <HEAD>

2010-05-25  Timo Sirainen  <tss@iki.fi>

	* src/director/director-connection.c, src/director/doveadm-
	connection.c, src/director/notify-connection.c:
	director: Update connection count when client disconnects.
	[26cfc1c3a4b1] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: If FS quota is enabled, create (some of) users' temp files
	to /tmp.
	[bd8ed4b97fe3] <HEAD>

	* src/lib-storage/mail-user.c, src/lib-storage/mail-user.h:
	lib-storage: mail_user.get_temp_prefix() method added.
	[e63dd7e7ea6e] <HEAD>

	* configure.in:
	configure: --without-shared-libs should use static liblda for
	lda/lmtp.
	[f0141862bdca] <HEAD>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: If write fails with EFBIG, give an error that mentions ulimit
	-f.
	[f7527971fed0] <HEAD>

	* src/lib-index/mail-transaction-log-view.c:
	lib-index: Fix to recent error handling change.
	[fb1cc2f5d681] <HEAD>

	* src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Add Return-Path: header. Also with only one RCPT TO, add
	Delivered-To: header.
	[61c3124bba93] <HEAD>

	* src/lib/hostpid.c:
	Die if system hostname contains '/' character.
	[4c28061ce7a6] <HEAD>

	* src/lib-storage/index/index-storage.c:
	lib-storage: If read-only mailbox uses private flags, don't return
	it as READ-ONLY.
	[2f7b7747867e] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-sync-update.c:
	lib-index: On errors, close sync view before fsck to avoid assert-
	crash.
	[b08abace44ed] <HEAD>

	* src/lib-master/master-service-settings-cache.c:
	Increased initial memory pool size.
	[d285a4ee07c4] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Expunging last messages may have assert-crashed if their
	filenames had changed.
	[487e58ebb764] <HEAD>

	* src/lib-index/mail-transaction-log-append.c:
	lib-index: Recent "save transaction commits to memory" may have
	assert-crashed sometimes.
	[8b67ccc4e2af] <HEAD>

2010-05-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-mysql.c:
	mysql: Fixed assert-crashing on transaction commits.
	[1e45b463b93a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* configure.in, src/lib/process-title.c:
	Added process title hack support for OS X.
	[348eb4754085] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/director/doveadm-connection.c, src/doveadm/doveadm-director.c:
	doveadm director status username now returns which server the user
	is assigned to.
	[c57c1ff9c5f1] <HEAD>

	* src/director/director-connection.c:
	director: Preserve old mail server state when a new director
	connects to ring.
	[5f77c91f3df0] <HEAD>

	* src/director/director-connection.c, src/director/director.c:
	director: Fixes to connecting to remote director.
	[350208d17fcd] <HEAD>

	* 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] <HEAD>

	* src/plugins/imap-quota/imap-quota-plugin.c:
	imap-quota: If user has no quota roots, don't return QUOTAROOT
	reply.
	[295e12b91054] <HEAD>

	* src/master/service-process.c:
	master: If process running as root didn't dump core, don't suggest
	non-working workarounds.
	[8954b4d78dd2] <HEAD>

	* src/lib-imap/imap-parser.c:
	imap parser: Fail immediately if we see unexpected ')' while reading
	atom.
	[01f81b9e9586] <HEAD>

	* 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] <HEAD>

2010-05-19  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added support for hdr.<name> field.
	[b43d6d2ef2fb] <HEAD>

	* src/director/director.c:
	director: Use net_try_bind() to try to find our own IP.
	[7d3d6ee01bfc] <HEAD>

	* src/lib/network.c, src/lib/network.h:
	liblib: Added net_try_bind()
	[40964653930c] <HEAD>

	* src/director/director.c:
	director: Fixed finding the director's own IP in case system has
	multiple.
	[ed633bfb8c59] <HEAD>

	* src/director/director.c:
	director: Create outgoing connections from our own known IP.
	[098f517e902c] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Added support for imap.envelope, imap.body and
	imap.bodystructure fields.
	[4ec22f3bfd9f] <HEAD>

	* src/lib-storage/mailbox-list.c:
	lib-storage: mailbox_list_iter_init_namespaces() didn't match INBOX
	pattern correctly.
	[2587eb79a83d] <HEAD>

	* src/config/doveconf.c:
	doveconf <key>: Don't output the "key =" prefix.
	[1c1db8a6cfc7] <HEAD>

	* src/director/director-connection.c, src/director/user-directory.c,
	src/login-common/login-proxy-state.c:
	Compiler warning fixes.
	[d6d59ff58511] <HEAD>

	* src/director/main.c:
	director: Crashfix at exit if proxy-notify fifo hadn't been used
	yet.
	[16fbdcbb6dcb] <HEAD>

	* src/plugins/quota/quota-maildir.c:
	maildir++ quota: Support "NOQUOTA" as valid backend string.
	[b42184927518] <HEAD>

	* src/director/main.c:
	director: Use auth-login socket, not login/login so it works as non-
	root.
	[c17e111b0d65] <HEAD>

	* src/auth/auth-settings.c, src/auth/main.c:
	auth: Create auth-login socket by default where internal user can
	connect to.
	[f15b3aac5443] <HEAD>

	* src/lib/strnum.c:
	str_to_gid(): Allow negative GIDs on OS X.
	[3ee6b83c1689] <HEAD>

	* src/login-common/login-proxy-state.c:
	login: Don't log an error at startup if proxy-notify fifo hasn't
	been enabled.
	[0877d6920960] <HEAD>

	* 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] <HEAD>

	* src/director/login-connection.c:
	director: If we need to send a failure reply to login process, make
	it a temp failure.
	[fc94106ca7e9] <HEAD>

	* 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] <HEAD>

	* 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=<secs>, send username
	to proxy-notify fifo every n secs.
	[c872378a8de6] <HEAD>

	* src/master/service-listen.c, src/master/service.c:
	master: Fixes to listening in fifos.
	[0fc0cc9e0952] <HEAD>

	* src/director/doveadm-connection.c:
	director: Memory leak fix.
	[12316378922e] <HEAD>

	* .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] <HEAD>

	* src/lib-auth/auth-server-connection.c:
	lib-auth: Crashfix if server sent broken input.
	[1753fe048fee] <HEAD>

	* doc/example-config/conf.d/10-mail.conf:
	example-config: Example namespace's hidden value default was wrong.
	[fb6bc399f5c3] <HEAD>

2010-05-18  Timo Sirainen  <tss@iki.fi>

	* src/master/service-monitor.c:
	master: Create the login <-> master notify file into base_dir
	instead of /tmp.
	[ae84eb604f84] <HEAD>

	* src/plugins/listescape/listescape-plugin.c:
	listescape: Fixed listing INBOX when namespace prefix was used.
	[4ba05c3702be] <HEAD>

2010-05-17  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2010-05-14  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: Give a better error message if transction log file
	shrinks unexpectedly.
	[361157623f2a] <HEAD>

	* src/lib-storage/index/maildir/maildir-copy.c:
	maildir: Fixed a memory leak when copying with hardlinks.
	[4c7b240eccdf] <HEAD>

	* src/master/main.c:
	dovecot --build-options shows IO_BLOCK_SIZE
	[4506efe5f238] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/login-common/main.c:
	login: Allow command line to override login socket path.
	[df2599ab2cee] <HEAD>

2010-05-13  Timo Sirainen  <tss@iki.fi>

	* src/master/master-settings.c:
	master: Don't include disabled unix/fifo_listeners in duplicate
	checks.
	[706e411a134d] <HEAD>

	* src/plugins/quota/doveadm-quota.c:
	doveadm quota get: Show current usage even if quota is unlimited.
	[de9259065123] <HEAD>

	* src/plugins/quota/Makefile.am, src/plugins/quota/doveadm-quota.c:
	quota: Fixed doveadm plugin to compile again with new API.
	[49252a5fcdde] <HEAD>

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm.c:
	doveadm: Don't crash when giving only first word of multi-word
	command.
	[9f1fb4978a4a] <HEAD>

	* src/master/main.c:
	dovecot: Fixed handling --parameters with some OSes.
	[5b628ee2888d] <HEAD>

	* src/config/doveconf.c:
	doveconf: Don't crash if -c points to nonexisting file.
	[da5096512d54] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Minor code cleanup.
	[b73e0f51dad1] <HEAD>

	* src/doveadm/doveadm-mail-mailbox.c, src/doveadm/doveadm-mail.c,
	src/doveadm/doveadm-mail.h:
	doveadm: Added subscribe/unsubscribe commands.
	[76d4b3ac7bfa] <HEAD>

	* src/doveadm/doveadm-mail-mailbox.c:
	doveadm mailbox *: Added -s flag for updating/listing subscriptions.
	[9a86c335c3ed] <HEAD>

	* src/util/Makefile.am, src/util/imap-utf7.c:
	Removed imap-utf7 binary. doveadm mailbox convert replaced it.
	[715b74280077] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Added support for multi-word (non-mail) commands.
	[f491253bb457] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-status.c:
	imap: Renamed X-VSIZE to X-SIZE in STATUS, since IMAP always uses
	virtual sizes.
	[13af90173e4f] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/test-mail.c:
	lib-storage: Unit test fix.
	[fc664579ee4f] <HEAD>

2010-05-12  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-fetch.c:
	imap: Added FETCH X-REAL-UID for getting physical mail's UID in a
	virtual mailbox.
	[ed1a37587471] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-status.c:
	STATUS: Give an error with empty status list.
	[00771a8ab6fb] <HEAD>

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h,
	src/doveadm/doveadm.c:
	doveadm help: Fixed to work with multi-word commands.
	[bc0b336efef7] <HEAD>

	* 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] <HEAD>

	* src/lib/restrict-access.c, src/lib/restrict-access.h:
	Added restrict_access_get_env()
	[a8a8686e6979] <HEAD>

	* src/lib-sql/driver-mysql.c:
	mysql: Fixed crashing on invalid queries.
	[6599d3d52c76] <HEAD>

	* src/lmtp/main.c:
	lmtp: Set user/group at startup as specified in service block.
	[70cfc89a3936] <HEAD>

	* src/imap/imap-status.c:
	imap: Added STATUS (X-VSIZE) command for getting mailbox's virtual
	size.
	[119d8eebda38] <HEAD>

	* 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] <HEAD>

2010-05-11  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2010-05-09  Pascal Volk  <user@localhost.localdomain.org>

	* 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] <HEAD>

2010-05-09  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-pw.c:
	doveadm pw: Call deinit functions.
	[1485d8bafb5e] <HEAD>

	* .hgsigs:
	Added signature for changeset 6b15f36d40c9
	[db432a472f3c] <HEAD>

	* .hgtags:
	Added tag 2.0.beta5 for changeset 6b15f36d40c9
	[c3583ec39f67] <HEAD>

	* configure.in:
	Released v2.0.beta5.
	[6b15f36d40c9] [2.0.beta5] <HEAD>

	* TODO:
	TODO updated.
	[5779cbc79020] <HEAD>

	* doc/example-config/conf.d/10-master.conf, src/master/master-
	settings.c:
	Changed default_internal_user to dovenull.
	[79a3aef47ddf] <HEAD>

	* src/lib-sql/driver-sqlpool.c:
	lib-sql: Code cleanup to make clang's static analyzer happy.
	[c7c6dbf542b3] <HEAD>

	* src/doveadm/doveadm-mail-search.c:
	doveadm search: Minor fix.
	[b90d0670dfd4] <HEAD>

2010-05-08  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-settings.c:
	lib-storage: Removed accidentally committed debug code.
	[1fe8f8d4e92d] <HEAD>

2010-05-07  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2010-05-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/Makefile.am:
	lib-sql: Fixed compiling --with-sql=plugin. Patch by Michal
	Hlavinka.
	[5d76f5b13883] <HEAD>

	* src/lib-sql/driver-sqlpool.c:
	lib-sql: Compiler warning fix.
	[4c71be924a00] <HEAD>

	* src/config/config-parser.c, src/config/config-parser.h,
	src/config/doveconf.c, src/config/main.c:
	config: Unload modules at exit.
	[3fc759d5e736] <HEAD>

2010-05-04  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/master/service.c:
	master: If inet listener uses DNS name, which returns multiple IPs,
	listen in all of them.
	[1ea46423cfd0] <HEAD>

	* src/lib-storage/mail-user.c, src/plugins/quota/quota.c:
	Increased initial memory pool sizes.
	[a4614f53d298] <HEAD>

	* 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] <HEAD>

	* src/lib-dict/dict-sql.c:
	lib-dict: Minor code cleanup.
	[669e8266927e] <HEAD>

	* src/lib-dict/dict-client.c:
	dict proxy client: Don't crash in commit if there is no connection
	to server.
	[7102daca9089] <HEAD>

	* src/auth/passdb-bsdauth.c:
	bsdauth: Crashfix
	[fa77ca53ad6c] <HEAD>

	* src/login-common/client-common.c:
	Compile fix
	[c5e5f18e7685] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-request.c, src/auth/auth-request.h:
	auth: Minor code fix/cleanup.
	[90410a8f3786] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Don't crash when auth requests timeout.
	[83b4020d1edf] <HEAD>

2010-05-03  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Give a better error message to client when auth request
	timeouts.
	[d8dd3149a98b] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Log a message when auth request is removed due to timeout.
	[2a132661c029] <HEAD>

	* src/lib-master/master-login-auth.c:
	lib-master: Don't crash after timeouting an auth-master request.
	[1fd45deee948] <HEAD>

2010-04-30  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/doveadm/doveadm-auth.c:
	doveadm user: s/auth/userdb/ socket path in usage.
	[f195e11fd919] <HEAD>

	* src/doveadm/doveadm-mail.c, src/plugins/quota/doveadm-quota.c:
	doveadm: Fixed empty usage_args checks.
	[ff13bd98ed0d] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: If command is known not to take any parameters, give error
	if any are given.
	[d651255481dc] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: Added support for multi-word commands.
	[65e21dc80414] <HEAD>

	* src/imap/imap-fetch-body.c:
	imap: If FETCH notices cached message size is wrong, mark cache
	corrupted (second such check).
	[be74fa9bfcc9] <HEAD>

	* src/doveadm/doveadm-mail-search.c:
	doveadm search: Don't print "mailbox-guid" and "uid" texts in
	output.
	[529fee1603e5] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail-list-
	iter.c:
	doveadm fetch/search/etc: Handle "NOT" correctly in search query.
	[b9efc1ca4c37] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Don't print field name if fetching only a single
	field.
	[6327433bccb9] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: Don't print mail separator if fetching only a
	specific mail.
	[47d49b7edb4b] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-search.c:
	lib-storage optimization: SEARCH_MAILBOX* should be checked before
	cache lookups.
	[957e907834e7] <HEAD>

	* src/doveadm/doveadm-mail-expunge.c, src/doveadm/doveadm-mail-
	fetch.c:
	doveadm fetch: Added support for mailbox-guid search key/fetch
	field.
	[5d0027f17bd8] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* doc/example-config/conf.d/10-auth.conf:
	example-config: auth-checkpassword include wasn't listed in
	10-auth.conf
	[8a8d954b90ba] <HEAD>

2010-04-29  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mail-search-parser-imap.c:
	lib-storage: Fixed () sublists in IMAP SEARCH parser.
	[888ac9037642] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	dovecot: Show the hg version also in "Dovecot starting up" log
	message.
	[22f69f7d16ab] <HEAD>

	* 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] <HEAD>

	* src/lib-index/test-mail-index-transaction-update.c:
	lib-index: Minor unit test fix.
	[1b52e859933a] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-sync-ext.c:
	lib-index: Another fix attempt for handling atomic inc with INT_MAX.
	[78742ad02c88] <HEAD>

	* src/lib-index/mail-index-sync-ext.c:
	lib-index: Minor fix to handling atomic inc with INT_MIN value.
	[a2d7c699abbb] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Storage rebuild should ignore ACLs for mailboxes.
	[85d6fb746783] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Storage rebuild now silently ignores m.*.lock files if they
	exist.
	[1f5570ec0682] <HEAD>

	* src/lib/failures.c:
	Syslog messages now contain Warning:, Error: and Debug: prefixes
	also. So everything except Info: now has a prefix.
	[7493f94d544c] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	Compiler warning fix.
	[6d9265a3a620] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Updated usage text.
	[541344dd60a7] <HEAD>

	* 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] <HEAD>

2010-04-28  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c:
	doveadm fetch: If invalid fetch field is given, print list of
	available fields.
	[1ec4eb879f0e] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail.c:
	doveadm fetch: Added "fields to fetch" parameter.
	[c8981561c5f2] <HEAD>

	* src/doveadm/doveadm-mail-fetch.c, src/doveadm/doveadm-mail.c:
	doveadm fetch: Added support for fetching mails from multiple
	mailboxes.
	[dab4fb9f8140] <HEAD>

	* src/doveadm/doveadm-mail-altmove.c, src/doveadm/doveadm-mail-list-
	iter.c:
	doveadm altmove: Fixed assert-crashing
	[f986a5b1f500] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-mail-altmove.c:
	doveadm altmove: Use the new mailbox list iteration API.
	[63dbfb4c2f71] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-search.c, src/lib-storage/mail-search.h:
	lib-storage: Added mail_search_args_match_mailbox()
	[71e40ea473cf] <HEAD>

	* src/lib-storage/mail-search-build.c, src/lib-storage/mail-search-
	build.h:
	lib-storage: Added mail_search_build_add()
	[d5ca3aebc4ee] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-search.c:
	lib-storage: mail_search_args_equal() wasn't comparing string
	arguments correctly.
	[6b38d832839f] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-test/test-common.c:
	lib-test: Call lib_deinit().
	[f0d13439baea] <HEAD>

2010-04-26  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-04-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: "Message has been copied too many times" error contains now
	refcounts.
	[6a3eaad2bae6] <HEAD>

	* configure.in:
	Link lmtp/lda with dovecot-lda shared library, not static library.
	[bd649ac7a741] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/mail-deliver.c:
	deliver_log_format: Increased max. message-id length to 200 chars.
	[62256701a326] <HEAD>

2010-04-21  Timo Sirainen  <tss@iki.fi>

	* src/lda/Makefile.am, src/lmtp/Makefile.am:
	lda, lmtp: Fixed using virtual plugin when not using shared libs.
	[8818db00d347] <HEAD>

	* doc/example-config/conf.d/10-mail.conf:
	example-config: mdbox_altmove setting no longer exists, removed it.
	[b3cfa3dfd5ba] <HEAD>

	* doc/example-config/conf.d/10-logging.conf, src/lib-lda/mail-
	deliver.c:
	deliver_log_format: Added support for size and vsize
	[6a27203d4439] <HEAD>

2010-04-20  Timo Sirainen  <tss@iki.fi>

	* src/config/doveconf.c:
	doveconf <setting name> now prints only the one setting's value.
	[b6b81af98381] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-search-register-human.c:
	lib-storage: Fixed parsing human search parameter dates.
	[94ee28a11c47] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-04-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-sync.c:
	mdbox: More comment updates to syncing.
	[422ab02950b7] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-sync.c:
	mdbox: Minor optimization for syncing expunges.
	[cf88ac9665f7] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-sync.c:
	mdbox: Added a comment about how expunging works.
	[8e6cb40f577f] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-save.c:
	mdbox: Comment update
	[0eb423848dc1] <HEAD>

2010-04-16  Timo Sirainen  <tss@iki.fi>

	* src/config/old-set-parser.c:
	config: Added support for parsing obsolete setting ssl_disable.
	[a6b050cc4a9a] <HEAD>

	* src/lib-storage/list/mailbox-list-delete.c:
	lib-storage: Mailbox deletion via trash directory works now better
	with NFS.
	[c2f00a85a177] <HEAD>

	* src/lib-storage/mail-namespace.c:
	lib-storage: Fixed autocreating namespaces for shared users in some
	situations.
	[960c6936ba6a] <HEAD>

	* src/lib-storage/index/shared/shared-storage.c:
	lib-storage: Shared namespace's prefix_len wasn't updated after
	prefix was truncated.
	[8d45d4884019] <HEAD>

	* src/lib-dict/dict-client.c:
	dict proxy client: Timeout lookups after 30 s, log warning if lookup
	takes >5 s.
	[ba3c809c18e5] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dict/dict-settings.c:
	dict: Changed default client_limit to 1.
	[69894aaab23c] <HEAD>

	* src/dict/dict-connection.c:
	dict: Client count wasn't updated when client disconnected, causing
	problems later.
	[91ef3309968a] <HEAD>

	* src/imap/cmd-idle.c:
	idle: Do cork/uncork when sending "OK Still here" notification.
	[ffc28ea81538] <HEAD>

	* src/lib-dict/dict-file.c:
	dict file: Get file's initial permissions based on parent directory.
	[b3947e64546a] <HEAD>

	* src/auth/password-scheme.c:
	auth: Removed special case check for MD5-CRYPT from wrong password
	scheme checking.
	[af46998fdccf] <HEAD>

2010-04-14  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* dovecot.m4:
	dovecot.m4: Added serial number.
	[9188fc60d615] <HEAD>

	* src/lib-storage/index/raw/raw-storage.c:
	raw: Fixed opening raw mailbox with filename.
	[eacb5fd16599] <HEAD>

	* 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 "<old msg count>/<old hash> -> <new msg count>/<new hash>" or if
	they're the same, simply "<msg count>/<hash>".

	The idea is that if previous session's <new hash> doesn't match next
	one's <old hash> 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-worker-client.c:
	auth: Removed userdb checking code from passdb code paths.
	[4f06636cd03f] <HEAD>

	* src/master/master-settings.c:
	master: Require protocols=none to not have any protocols.
	[ca663b6f63a4] <HEAD>

	* doc/example-config/conf.d/10-master.conf:
	example-config: Added auth-userdb socket with comments.
	[200a6532483b] <HEAD>

2010-04-13  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-search-register.c:
	lib-storage: Minor optimization to search build initialization code.
	[8d1d1eb2c2a0] <HEAD>

	* 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] <HEAD>

	* doc/example-config/dovecot.conf:
	example-config: Added a note about !include file ordering.
	[3e427a0c1790] <HEAD>

	* doc/example-config/conf.d/10-mail.conf:
	example-config: Removed some old comments that aren't really useful
	anymore.
	[1b634a3932d0] <HEAD>

	* 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] <HEAD>

	* Makefile.am:
	make distcheck now runs code via clang static analyzer if it exists.
	[762a4216352f] <HEAD>

	* src/auth/mech-gssapi.c:
	Static analyzer warning fix.
	[caf8c5d39ab2] <HEAD>

	* run-test.sh:
	run-test: Fixed to work correctly with older Valgrind versions.
	[892d28020605] <HEAD>

	* Makefile.am:
	Makefile: Added run-test.sh to tarball.
	[b11f69e5078e] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Fixed chroot handling.
	[9d4a9abf3ec3] <HEAD>

	* 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] <HEAD>

	* src/lib/module-dir.c:
	module_dir_load_missing(): If all modules are already loaded, don't
	scan plugin directory.
	[88959ce9c8e4] <HEAD>

	* src/plugins/quota/quota-dict.c:
	quota: If dict quota update fails, log an error.
	[b24789f95476] <HEAD>

	* 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] <HEAD>

2010-04-12  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/commands.c:
	lmtp: Crashfix to multiple RCPT TOs when the first mail couldn't be
	used as a copy source.
	[6b7b2987c41f] <HEAD>

	* src/lib-lda/mail-deliver.c:
	lib-lda: Added assert.
	[a73f3da6d7a8] <HEAD>

	* doc/example-config/conf.d/Makefile.am:
	Makefile: Updated renamed *.conf filenames.
	[06bd06c2f523] <HEAD>

2010-04-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-sync.c:
	mdbox: If storage directory doesn't exist while trying to purge,
	ignore it.
	[5dac1012e47e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/config/config-parser.c:
	config: !include * added files in reverse sort order.
	[e25b0ecfc758] <HEAD>

	* src/plugins/imap-zlib/imap-zlib-plugin.c:
	imap-zlib: Fixed crash if imap_zlib_compress_level setting wasn't
	set.
	[454ea8812d54] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Fixed crash when multiple mails were saved and second one
	failed.
	[cc00fdf1943b] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-sync.c:
	mdbox: If purging found corrupted files, it didn't auto-rebuild
	storage.
	[8f67eaebfc17] <HEAD>

2010-04-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Fixed assert-crashing in storage rebuild.
	[f15e96e46715] <HEAD>

2010-04-08  Timo Sirainen  <tss@iki.fi>

	* configure.in:
	configure: Fix to older autoconfs
	[829cc91ed831] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Fixed SASL authentication broken by recent changes.
	[23e87e78c66e] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Fixed version mismatch error message.
	[a0d0ed6a2b63] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Added assert.
	[e47de5f3caae] <HEAD>

	* src/lib-imap/imap-arg.h:
	imap-arg: Added IMAP_ARG_IS_NSTRING().
	[5ba59cc8b235] <HEAD>

	* dovecot.m4:
	dovecot.m4: Export DOVECOT_CFLAGS/LIBS/SSL_LIBS
	[0fa195674d1a] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: Fixed showing error messages for mailbox open.
	[eca1b44a5d71] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: If backend mailbox isn't found, don't use NOTFOUND error
	code.
	[a1b18a7c829f] <HEAD>

	* src/plugins/virtual/virtual-config.c, src/plugins/virtual/virtual-
	storage.c:
	virtual: Don't crash when trying to reopen a closed mailbox.
	[09ecf24a798b] <HEAD>

2010-04-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-login.c:
	lib-master: Fixed errors with post-login scripts.
	[af7beceda361] <HEAD>

	* src/lib-storage/index/index-transaction.c:
	lib-storage: Removed wrong asserts (causing crashes in quota
	plugin).
	[3823670df351] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Log an error if login client disconnects too early.
	[5074e30d72d4] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Client connection counting fix.
	[c0fe14f76760] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/doveadm-quota.c:
	Compiler warning fix.
	[5d888efd6d4e] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Fixed checking if login connection was already closed.
	[c2a1163e584f] <HEAD>

	* src/lib-settings/settings-parser.c:
	lib-settings: Fixed parsing octal numbers.
	[063a584858bf] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	Increased initial memory pool size.
	[7649c491b744] <HEAD>

	* src/lib-master/master-auth.c:
	lib-master: Aborting master auth request caused a crash.
	[2d8100dca18e] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Login client connection wasn't closed on some error
	conditions.
	[b93ae980b66b] <HEAD>

	* src/plugins/imap-zlib/imap-zlib-plugin.c:
	Compiler warning fix.
	[9efddc9abfce] <HEAD>

	* src/lib-master/master-login-auth.c, src/lib-master/master-login-
	auth.h:
	lib-master: Added timeout for auth master lookups.
	[0979e9e1e124] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Crashfix for handling auth master lookup failures.
	[6aaa6fcba131] <HEAD>

	* src/dsync/dsync.c:
	dsync: Added -D (debug) parameter.
	[f344426dab0a] <HEAD>

	* src/dsync/dsync.c:
	dsync: Changed -A parameter to -C.
	-A might in future mean "all users", similar to doveadm.
	[d9ec5fdb2d63] <HEAD>

	* src/doveadm/doveadm-kick.c, src/doveadm/doveadm-who.c:
	doveadm: Updated usage strings.
	[a3b211df3ae3] <HEAD>

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h:
	doveadm: Added more consts to code.
	[1ca491b04710] <HEAD>

	* 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] <HEAD>

	* src/lib/strnum.c:
	str_to_*(): Fixed them to actually work.
	[6973977bf626] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Don't crash if shared namespace exists.
	[ad6b245cf3b5] <HEAD>

	* src/plugins/expire/expire-tool.c:
	expire-tool: Improved -t output.
	[77e9d36b3f82] <HEAD>

	* src/lib/strfuncs.c, src/lib/strfuncs.h:
	Removed is_numeric(). It's now called str_is_numeric().
	[01ab9b93f8bb] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-worker-client.c:
	auth: Code cleanup.
	[88a7e034ebc1] <HEAD>

2010-04-06  Timo Sirainen  <tss@iki.fi>

	* src/pop3/pop3-client.c:
	pop3: Don't break client connection count if client init fails.
	[1735958db2f1] <HEAD>

	* src/master/service-listen.c:
	master: Added asserts.
	[4fc3aed0ef03] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mailbox_list_mailbox(): Avoid crashing with shared namespace prefix.
	[0e7125f1e27e] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mailbox_list_mailbox(): Don't show namespace prefix as selectable if
	it points to INBOX.
	[944591ed8ceb] <HEAD>

2010-04-05  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/fts-squat/squat-uidlist.c:
	Removed unnecessary variable.
	[8627be1f6de9] <HEAD>

	* 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] <HEAD>

	* src/util/gdbhelper.c:
	gdbhelper: Check wait() status result a bit more correctly.
	[3b8542d58181] <HEAD>

	* 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] <HEAD>

	* src/lib/var-expand.c:
	var_has_key(): Small code cleanup.
	[462376c65e73] <HEAD>

	* src/lib-index/mail-index-map.c:
	lib-index: Small code cleanup.
	[7d76f4a9c5c8] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Small code cleanup.
	[d61ffd81124c] <HEAD>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Avoid crash with pointless configs.
	[bd2ac7e2fc40] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Updating empty ACL to empty triggered unnecessary disk write.
	[960a01833e4c] <HEAD>

	* src/lib-index/mail-transaction-log-view.c:
	lib-index: Small code cleanup.
	[a65dbdedb202] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Crashfix for handling invalid MAIL/RCPT commands.
	[c435103ee0ff] <HEAD>

	* src/lib-index/mail-cache-transaction.c:
	lib-index: Minor code cleanup.
	[767eb5691fe2] <HEAD>

	* src/auth/mech-otp.c, src/auth/passdb-sql.c, src/lib-
	storage/index/mbox/mbox-storage.c:
	Removed dead code.
	[30815e260f47] <HEAD>

	* src/plugins/fts-solr/solr-connection.c:
	solr: Error handling fix when Solr didn't return 200.
	[1786d44bf90f] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Improved user-visible error messages.
	[314f230b3a00] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-master.c:
	lib-auth: Make sure auth_master_*_lookup() returns non-NULL fields.
	[5e3e00d11ca5] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: -o parameter now overrides userdb settings
	too.
	[f9e6078ca95c] <HEAD>

	* src/lib-master/master-service-settings.c, src/lib-master/master-
	service-settings.h:
	lib-master: Added master_service_set_has_config_override().
	[cdef53978a77] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	Added settings_parse_unalias().
	[49c0232047f0] <HEAD>

	* src/lib-storage/mail-storage.c:
	lib-storage: Don't crash if root mail directory isn't given.
	[373e2b3a050a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync.c:
	dsync: Set module/service for config lookup.
	[93c82d873408] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Don't repeatedly try to keep opening the same failing
	mailbox.
	[ea5bb5676b3f] <HEAD>

	* src/imap/cmd-select.c:
	Recent changes broke compiling.
	[c0cbcb9ea3c1] <HEAD>

	* src/lib-lda/mail-send.c:
	lib-lda: Crashfix when sending rejection mail with Auto-Submitted:
	header.
	[24661838390f] <HEAD>

	* src/auth/passdb.c:
	auth: Don't pass uninitialized value to callback function. (Even
	though callback shouldn't use it then.)
	[53c6cbb2932b] <HEAD>

	* src/plugins/quota/quota-maildir.c:
	Maildir++ quota: Error handling fix.
	[d931e61516d0] <HEAD>

	* src/lib-storage/list/mailbox-list-maildir-iter.c:
	layout=maildir++: Minor code cleanup.
	[2a4a4140c999] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Potential crashfix if some plugin enabled sync_notify (e.g.
	quota).
	[49fa7e735b87] <HEAD>

	* src/master/service.c:
	master: Checking if fifo_listener was disabled was broken.
	[ac69462fc549] <HEAD>

	* src/login-common/sasl-server.c:
	login: Crashfix on error conditions.
	[321ec63de44f] <HEAD>

	* src/lib-index/mail-transaction-log.c:
	lib-index: Crashfix on error handling.
	[c88e1b2658a8] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-view-sync.c:
	lib-index: View syncing error handling fix.
	[f72884695084] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/message-address.c:
	message address parser: Fixed potential problems with parsing
	invalid address groups.
	[ae8294182346] <HEAD>

	* src/lib-storage/list/mailbox-list-maildir.c:
	layout=maildir++: Fixed deleting mailboxes with mailbox=file
	storages (e.g. mbox)
	[59445c4055ab] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Sync write error handling fix.
	[4a8f0388e854] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-file.c:
	dbox: Save error handling fix.
	[0bc933c35a17] <HEAD>

	* src/lib-storage/index/cydir/cydir-sync.c:
	cydir: Error handling fix.
	[be9be5111ce2] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/doveadm-quota.c:
	doveadm quota get: Fixed error handling.
	[4f23c349da0d] <HEAD>

2010-04-04  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-dump-log.c:
	doveadm dump log: Write uid[s]= prefix before all UID numbers.
	[3504ce6159f3] <HEAD>

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm-mail.h:
	doveadm: Marked some functions ATTR_NORETURN.
	[d9e773db6920] <HEAD>

	* src/lib/ioloop-epoll.c:
	epoll: Improved error messages.
	[60a25bda7e02] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-sync-rebuild.c:
	dbox: When rebuilding index, don't try to shrink next_uid.
	[cf302ede55bc] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-single/sdbox-storage.c:
	sdbox: mailbox_update() could have changed UIDVALIDITY incorrectly.
	[46ede677961d] <HEAD>

2010-04-03  Timo Sirainen  <tss@iki.fi>

	* src/auth/passdb-vpopmail.c:
	vpopmail: Load vpopmail modules at startup. Hopefully helps with
	crashing?
	[7835a672117f] <HEAD>

2010-03-31  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync.c:
	dsync: Changed -b parameter to -m to be more consistent with
	dovecot-lda.
	[4e527339da8b] <HEAD>

	* src/dsync/dsync.c:
	dsync: Usage had wrong -a parameter.
	[b261004b8492] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-request.c:
	auth: If userdb lookup fails internally, don't cache the result.
	[ce7ed594d99e] <HEAD>

2010-03-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	fs layout: Fixed listing child mailboxes under INBOX.
	[dbb05e38295a] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	Dynamic setting allocation was still a bit wrong.
	[b791ebb2c700] <HEAD>

2010-03-27  Timo Sirainen  <tss@iki.fi>

	* src/master/service-listen.c:
	master: Changed listener backlog calculations.
	[aefa279e2c70] <HEAD>

	* src/master/service-listen.c:
	master: Increased listen backlog for services without many
	processes.
	[96496e1d3d12] <HEAD>

2010-03-27  Pascal Volk  <user@localhost.localdomain.org>

	* is-tagged.py:
	is-tagged.py: Don't fail if Mercurial isn't available.
	[84ffb38839b9] <HEAD>

2010-03-27  Timo Sirainen  <tss@iki.fi>

	* src/pop3/main.c:
	pop3: Don't crash if INBOX can't be opened.
	[110ef59372cd] <HEAD>

	* src/lib-storage/mail-storage.c:
	lib-storage: Fix to previous change: Don't access freed memory.
	[f4ff6c7cdafe] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/config/settings-get.pl:
	config: Fixed all-settings building script.
	[2178c4569f38] <HEAD>

	* configure.in:
	configure: Minor description fix to previous change.
	[864b17ec5fac] <HEAD>

	* 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] <HEAD>

	* src/plugins/zlib/zlib-plugin.c:
	zlib: Fixed compiling if both zlib and bzlib weren't used.
	[89c602af7e09] <HEAD>

	* src/lib-sql/driver-pgsql.c:
	pgsql: Don't leak memory if query returns multiple results. Found by
	Rainer Weikusat.
	[5a6aaf88f15c] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service-settings.c, src/lib/abspath.c,
	src/lib/abspath.h:
	Added t_binary_abspath().
	[f483bbface26] <HEAD>

	* 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] <HEAD>

2010-03-27  Pascal Volk  <user@localhost.localdomain.org>

	* .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] <HEAD>

2010-03-27  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/macros.h:
	Added CONST_STRUCT_MEMBER_P() and removed unused (broken)
	STRUCT_MEMBER().
	[961ded33ca0a] <HEAD>

	* 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] <HEAD>

	* src/lib/Makefile.am, src/lib/execv-const.c, src/lib/execv-const.h:
	Added execv_const() and execvp_const() helper functions.
	[ddbc6e8b2776] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/test-message-decoder.c:
	Unit test fix.
	[c892f3f4aae8] <HEAD>

2010-03-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service-settings-cache.c:
	lib-master: Fixed local host {} specific settings. Based on fix by
	Julien Moutinho
	[ad135ced2732] <HEAD>

	* src/lib-storage/mail-namespace.c:
	lib-storage: Namespace debug logging now logs the namespace name
	also.
	[094c6a082caf] <HEAD>

	* src/auth/auth-worker-client.c:
	auth: Error handling fix.
	[407c131ab50f] <HEAD>

	* src/auth/auth-request.c:
	auth: Added "tempfail" userdb field.
	[53f4e8e0166a] <HEAD>

2010-03-25  Pascal Volk  <user@localhost.localdomain.org>

	* doc/example-config/Makefile.am:
	example-config: Don't fail on the README file if builddir != srcdir.
	[a044c605fecf] <HEAD>

2010-03-25  Timo Sirainen  <tss@iki.fi>

	* src/util/tcpwrap-settings.c:
	tcpwrap: If tcpwrap support isn't built, don't add its service to
	config.
	[8f5bc2a21f99] <HEAD>

	* src/config/settings-get.pl:
	config: Parser script now supports preserving #ifdefs around
	service_settings.
	[b218d4ec6996] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: Added -u <username> parameter to do userdb lookup.
	[93be85bb9db8] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: When getting settings via doveconf, tell it our module.
	[2d7b7fb99693] <HEAD>

	* src/master/main.c:
	master: Get settings without specifying module.
	[eecf62b49475] <HEAD>

	* src/config/doveconf.c:
	doveconf -e: Expands $variables and <files in settings.
	[2ed4d6da04af] <HEAD>

	* 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] <HEAD>

	* configure.in:
	configure: Fixed libwrap checking in some systems.
	[5b0a88cb9a12] <HEAD>

	* src/config/old-set-parser.c, src/master/master-settings.c:
	config: Avoid problems with trailing '/' in base_dir.
	[2fde82ea7cd9] <HEAD>

	* src/auth/auth-settings.c:
	auth: Increased default client_limit to 4096.
	[7d7540af8446] <HEAD>

	* src/master/master-settings.c:
	config: Log a warning if auth service's client_limit is too low.
	[4191ba54c8aa] <HEAD>

2010-03-23  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync-brain.c:
	dsync: Added extra sanity check.
	[f6c2c0866aff] <HEAD>

	* 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] <HEAD>

	* src/util/script.c:
	script: Fixed using mail_uid/mail_gid settings as fallback.
	[841bfacb7ec3] <HEAD>

2010-03-22  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-mysql.c:
	mysql: Fixed compiling with older libraries that didn't support
	CLIENT_MULTI_RESULTS.
	[9aa107613324] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-mail.c:
	dbox_mail_get_save_date(): Last change was broken.
	[9202254c8499] <HEAD>

	* src/lib-storage/index/maildir/maildir-mail.c:
	maildir: get_save_date() should return 0, not the timestamp. Patch
	by Rainer Weikusat
	[1b588519f00c] <HEAD>

	* .hgsigs:
	Added signature for changeset 38e98c234af5
	[0f1b86898124] <HEAD>

	* .hgtags:
	Added tag 2.0.beta4 for changeset 38e98c234af5
	[1f25490893d6] <HEAD>

	* TODO, configure.in:
	Released v2.0.beta4.
	[38e98c234af5] [2.0.beta4] <HEAD>

	* 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] <HEAD>

	* src/lib/macros.h:
	Removed unused GNUC_FUNCTION* macros.
	[399f855035bc] <HEAD>

2010-03-21  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-single/sdbox-mail.c:
	sdbox: Don't break when trying to access mail that's just being
	expunged.
	[d87741f0e95a] <HEAD>

2010-03-19  Timo Sirainen  <tss@iki.fi>

	* src/plugins/mail-log/mail-log-plugin.c:
	Increased initial memory pool size.
	[b7d7b44fcbc8] <HEAD>

	* src/auth/auth-request.c:
	auth: Previous change broke non-master logins..
	[5050e2eb1bfe] <HEAD>

	* src/auth/auth-request.c, src/auth/auth.c:
	auth: Fixed master user logins.
	[b05793c609ac] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	Added settings_parse_is_changed().
	[48f6353e2226] <HEAD>

	* 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] <HEAD>

	* src/config/doveconf.c:
	doveconf: Added -x parameter to expand $variables and <file in
	output.
	[a3c7f7021d87] <HEAD>

	* src/config/config-parser.c:
	config: Added support for "key=$key stuff"
	[513c43179ca9] <HEAD>

	* src/auth/auth-request.c:
	auth: Do username checks/translations even when
	ssl_username_from_cert=yes
	[bcd43231f723] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-namespace.c:
	Check that namespace's alias_for points to a namespace with
	compatible storage.
	[566360ae12fc] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Storage rebuild panics now earlier if its namespace
	unexpectedly isn't found.
	[de26a4054910] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-03-18  Pascal Volk  <user@localhost.localdomain.org>

	* 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] <HEAD>

2010-03-18  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service.c:
	lib-master: Don't assert-crash if client_limit < service_count.
	[183b1b4f6386] <HEAD>

	* src/master/service.c:
	master: Service's client_limit wasn't set correctly when
	service_count was non-zero.
	[41ce0172dcc8] <HEAD>

	* src/doveadm/doveadm-who.c:
	doveadm who: Use wildcards for user matching.
	[819fbb179cbc] <HEAD>

	* src/lib/Makefile.am, src/lib/wildcard-match.c, src/lib/wildcard-
	match.h:
	Added wildcard_match*() for matching strings with '*' and '?'
	wildcards.
	[f7d14405de09] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-03-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-service.c:
	mail_storage_service_read_settings() avoided execing doveconf too
	aggressively.
	[7fa0cd9e3a89] <HEAD>

2010-03-16  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Don't crash if opening dovecot-acl fails with EACCES.
	[6b03aee63752] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Disable all debug logging, unless -D parameter is given.
	[7df150529ce3] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: Continue going through users if one user's init fails.
	[35cda1373e6f] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail_storage_service_next() didn't always set error string.
	[03b679cd8d1f] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail_storage_service_next() now only returns -1 if user's privileges
	are invalid.
	[a66d3650e3c3] <HEAD>

	* src/auth/auth-worker-server.c:
	auth: Compiler warning fixes.
	[f855ac569e2f] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Make sure we never exec doveconf when looking
	up config.
	[c6890ec714ec] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Keep config socket permanently open. This fixes a problem
	when config lookup was attempted while privileges were dropped.
	[0a469d9f1ea4] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-worker-client.c:
	auth: Fixed blocking userdb lookups.
	[bf26a6ec3389] <HEAD>

	* src/auth/auth-worker-client.c:
	auth worker: Fixes to handling invalid input from auth server.
	[55e3817f09da] <HEAD>

	* src/auth/auth-settings.c:
	auth: Changed worker process to die after auth server closes its
	connection.
	[87c462c463cc] <HEAD>

	* src/util/tcpwrap.c:
	tcpwrap: Added allow/deny severity to fix compiling on some systems.
	Patch by Tomi Vainio
	[0d17bb09c358] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Rebuilding storage ignored mails in alt storage.
	[cc0a8b0347f9] <HEAD>

	* src/config/old-set-parser.c:
	config: Fixed checking if listen setting contained an obsolete port
	value.
	[1630026e8803] <HEAD>

	* src/master/master-settings.c, src/master/service.c:
	master: login dir was created with wrong group.
	[7fd91455b66e] <HEAD>

	* src/master/master-settings.c:
	master: Create login dir even when we don't change its gid.
	[31184f3d868b] <HEAD>

	* src/lib/safe-mkdir.c:
	safe_mkdir(): uid/gid can now be -1 to mean "don't change it".
	[acc07775bab3] <HEAD>

2010-03-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-namespace.c:
	Namespace debug log message logged list value wrong.
	[56dda1de9b6f] <HEAD>

2010-03-14  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/service.c:
	master: Allow unix_listeners to also have user=$default_*_user
	[1e333d2918f1] <HEAD>

	* src/auth/auth.c, src/auth/main.c, src/auth/passdb-cache.h:
	auth: Fixed crash at deinit.
	[4ca5dfd58d47] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-sync.c:
	mdbox: Fixed a race condition when expunging messages.
	[3f43b5c47a0e] <HEAD>

	* src/auth/mech-gssapi.c:
	auth: Compile fix for gssapi.
	[841af633f8d0] <HEAD>

	* src/auth/auth-settings.c:
	auth: Fixed compiling config binary.
	[cb26518a7e51] <HEAD>

2010-03-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-mysql.c:
	mysql: Enable CLIENT_MULTI_RESULTS Based on patch by Alain Williams
	[612db456c090] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth.h, src/auth/passdb.c, src/auth/userdb.c:
	auth: Removed unused pool parameter from struct
	auth_passdb/auth_userdb.
	[cff28ea08c4a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-settings.c:
	auth: Recent changes broke auth_username_chars checking.
	[f93195ae4bed] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/ioloop-select.c:
	ioloop-select: IO_ERROR wasn't really working.
	[f2b9387ba047] <HEAD>

	* 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] <HEAD>

2010-03-12  Timo Sirainen  <tss@iki.fi>

	* src/auth/auth-settings.c:
	Create auth-client socket by default.
	[653ae02bf8cf] <HEAD>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	fs mailbox list: Don't show duplicate INBOXes
	[144858dc0820] <HEAD>

2010-03-11  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2010-03-10  Timo Sirainen  <tss@iki.fi>

	* README:
	README: Updated RFC list.
	[f49bb060d83d] <HEAD>

2010-03-09  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/client.c:
	imap-login: Give a helpful error message if user tries to log in
	without giving command tag.
	[70a861ba3115] <HEAD>

	* 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] <HEAD>

	* src/config/old-set-parser.c:
	config: Don't parse IPv6 address in listen setting as obsolete
	host:port.
	[bed9f7593c0e] <HEAD>

	* configure.in:
	configure: --with-lucene fails now with suggestion to use Solr
	instead.
	[3ebd6a4ad55a] <HEAD>

	* src/config/config-request.c:
	config: Keep unique section names in setting keys.
	[6abbea248921] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: mail_debug=yes now logs what happens to userdb
	settings.
	[2d082200657d] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Only some userdb extra fields were used.
	[ce166f70ea71] <HEAD>

	* src/lib-index/mail-index-alloc-cache.c:
	lib-index: Index alloc cache fixes. It wasn't really working.
	[131436a6b8b3] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage.c:
	Compiler warning fix.
	[f1a2a8097903] <HEAD>

	* src/config/config-parser-private.h:
	config: Forgot to add header file.
	[370ee9717a6c] <HEAD>

	* src/lib/istream-limit.c:
	Reverted recent istream-limit cleanup. It broke things.
	[1473de6ba383] <HEAD>

	* 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] <HEAD>

	* src/master/master-settings.c, src/master/service.c:
	master: Don't complain about duplicate inet_listeners with port=0
	(they're ignored).
	[7c2e38d7390c] <HEAD>

	* src/auth/auth.c:
	auth: Master passdbs weren't working.
	[3f9c7a8a92b9] <HEAD>

	* src/lib-storage/mailbox-list.c:
	Don't crash when trying to list shared namespace prefix.
	[83166197d2a5] <HEAD>

	* src/lib/failures.c, src/lib/mempool-alloconly.c:
	Reversing accidentally committed debug code.
	[6d260794f278] <HEAD>

2010-03-08  Timo Sirainen  <tss@iki.fi>

	* src/doveadm/doveadm-who.c:
	doveadm: Minor code cleanup.
	[bf978f2de0fd] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction.c:
	lib-index: When index is reset, make sure old dovecot.index gets
	deleted.
	[6a2f7843327c] <HEAD>

	* 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] <HEAD>

	* src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c:
	zlib: Fixed seeking in zlib/bzlib input stream.
	[d05561b0c257] <HEAD>

	* src/lib/failures.c, src/lib/mempool-alloconly.c, src/lib/restrict-
	access.c:
	Improved setgid/setuid failure's error message.
	[2795a5c52d92] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-mail.c:
	mdbox: Minor error message improvement.
	[5be757538f8a] <HEAD>

	* src/plugins/quota/Makefile.am, src/plugins/quota/doveadm-quota.c,
	src/plugins/quota/quota-plugin.h:
	Added doveadm quota plugin.
	[6248d194f430] <HEAD>

	* 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] <HEAD>

	* src/lib/module-dir.c, src/lib/module-dir.h:
	module_dir_load*(): Added ignore_dlopen_errors flag.
	[c9dc5c447db5] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Fixed crashing when iterating through all
	users.
	[8f8d2f8e029c] <HEAD>

	* src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c:
	zlib: Several fixes to zlib/bzlib istreams.
	[681e1c702899] <HEAD>

	* src/lib/istream-limit.c:
	Simplified up istream-limit implementation.
	[d49913d2d75a] <HEAD>

2010-03-06  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox index rebuild: GUID wasn't kept for messages.
	[f7755658257d] <HEAD>

	* src/doveadm/doveadm-dump-log.c:
	doveadm: dump didn't autodetect log if the path didn't contain '/'
	[68042df10756] <HEAD>

	* src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c:
	zlib: Improved error message logging. Log input stream names.
	[257556760b62] <HEAD>

	* 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] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	Increased initial memory pool size.
	[2375e84fd344] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Fixed rebuilding map index that had duplicate records.
	[95f5ea024043] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-sync-rebuild.c:
	dbox index rebuild: Fixed setting next-uid and highest-modseq.
	[3bfb1e9f556b] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	"dovecot stop" now waits for up to 3 seconds for master to actually
	die.
	[a81aceb9f55b] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: If config lookup from socket fails, fallback to execing
	doveconf.
	[1a76670bb50e] <HEAD>

	* src/imap/cmd-list.c:
	LIST-STATUS: When listing subscriptions, don't return STATUS for
	unsubscribed parents.
	[211df1a0646e] <HEAD>

2010-03-05  Timo Sirainen  <tss@iki.fi>

	* README:
	README: Updated RFC list.
	[a342e91e8815] <HEAD>

2010-03-04  Timo Sirainen  <tss@iki.fi>

	* src/anvil/penalty.c:
	anvil: Recent changes broke penalty timeout handling.
	[f48ce6049176] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-master/anvil-client.c:
	lib-master: Call anvil callback in a separate data stack frame.
	[40eb5d5e6fbf] <HEAD>

	* src/lib/module-dir.c:
	Don't call module's deinit() if its init() hasn't been called.
	[65a91a112d7f] <HEAD>

	* src/lib-master/master-service-private.h, src/lib-master/master-
	service.c:
	lib-master: Avoid sending status updates to master too often.
	[df4d4fd0db00] <HEAD>

	* src/master/service-monitor.c:
	master: Try to read multiple status updates in a single read().
	[43a278ca5354] <HEAD>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	LIST (SUBSCRIBED): Don't assert-crash if list contained a name
	ending with separator.
	[c691706eee06] <HEAD>

2010-03-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: uidlist wasn't compressed often enough.
	[fe302c2714a3] <HEAD>

2010-03-02  Timo Sirainen  <tss@iki.fi>

	* src/anvil/penalty.c:
	Compiler warning fix.
	[60bc95bc10f2] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-map.c:
	mdbox: Don't assert-cras if refcount in map file is too low.
	[9930d93bbd11] <HEAD>

	* src/login-common/sasl-server.c:
	*-login: When showing mail_max_userip_connections error, show the
	limit also.
	[893abe2f65e0] <HEAD>

	* 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] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Crashfix.
	[bd28e6f29711] <HEAD>

	* src/anvil/test-penalty.c:
	Compiler warning fixes.
	[fb0666d3b067] <HEAD>

	* src/anvil/penalty.c, src/anvil/test-penalty.c:
	Compiler warning fixes.
	[b2156189c319] <HEAD>

2010-03-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-thread.c:
	lib-storage: Don't loop infinitely on deinit when INBOX was auto-
	created.
	[f56c227a7fc9] <HEAD>

	* src/config/config-parser.c:
	config: Allow key=$var to contain other text after the $var.
	[4b744015a8ae] <HEAD>

	* src/lib/eacces-error.c:
	eacces_error_get*(): Mention if euid is parent directory's owner.
	[6a8ee83cbc8c] <HEAD>

2010-02-28  Timo Sirainen  <tss@iki.fi>

	* src/plugins/acl/acl-mailbox-list.c:
	acl: Don't assert-crash if LIST returns mailbox name ending with
	separator.
	[64f6c458aaff] <HEAD>

	* src/lib-master/master-service-settings-cache.c:
	lib-master: Fixed crash on settings-cache deinit.
	[a5b4cbf46b9b] <HEAD>

	* src/lib-lda/lda-settings.c:
	lda: Default to /usr/sbin/sendmail, not to deprecated
	/usr/lib/sendmail.
	[7646f9783da0] <HEAD>

	* src/lib-lda/mail-deliver.c:
	lda: Enable "delivering to namespace prefix = INBOX" only for INBOX
	namespace.
	[1a888e13bf7f] <HEAD>

	* src/lib-master/master-service-settings-cache.c, src/lib-storage
	/mail-storage-service.c:
	Memory leak fixes.
	[dfca32cdab43] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Fixed crashing when using post-login scripts.
	[197d9beec207] <HEAD>

	* src/util/script.c:
	script: We want incoming fd to be blocking to avoid EAGAIN errors.
	[156f24de1081] <HEAD>

	* src/lib/unichar.c, src/lib/unicodemap.pl:
	unichar: Optimized 8bit character conversions.
	[23858ce6422e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-02-25  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream.c:
	Removed istream test code that hasn't been tried for years.
	[0c3e147505f4] <HEAD>

2010-02-22  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-single/sdbox-storage.c:
	dbox: mailbox_update() ignored cache_fields.
	[c77e71e0c5bd] <HEAD>

	* 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] <HEAD>

	* src/login-common/login-settings.c:
	pop3-login: Don't crash at startup.
	[32d6dd7ce7cb] <HEAD>

	* src/lib-storage/index/mbox/mbox-mail.c:
	mbox: Fixed header-md5/GUID lookup when it's done with mbox file
	unlocked.
	[d825d532db87] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-save.c:
	dbox: Save POP3 UIDL if it's specified.
	[676ba1a630e1] <HEAD>

	* 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] <HEAD>

2010-02-20  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 81e79df3fed8
	[8aaf030ae510] <HEAD>

	* .hgtags:
	Added tag 2.0.beta3 for changeset 81e79df3fed8
	[69d7fd0b175c] <HEAD>

	* NEWS, TODO, configure.in:
	Released v2.0.beta3.
	[81e79df3fed8] [2.0.beta3] <HEAD>

	* src/lib-master/Makefile.am:
	Makefile: Added missing master-service-settings.h
	[aaa6d5a58b2b] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Error handling fixes when reading config.
	[7394d1b828f7] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	lib-settings: Added some consts to parameters.
	[19a5f933849c] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Always use "lmtp" module when looking up configuration.
	[24467421976b] <HEAD>

	* src/imap/imap-client.c:
	Increased initial memory pool size.
	[6c24afbea40e] <HEAD>

	* src/lib/network.c, src/lib/network.h:
	liblib: Added net_ip_cmp().
	[a4666cc8cb7b] <HEAD>

	* src/imap-login/client.c, src/pop3-login/client.c:
	*-login: Change login_set_roots earlier.
	[81537f59512a] <HEAD>

	* src/lib/mempool-alloconly.c, src/lib/mempool.h:
	liblib: Added pool_alloconly_get_total_used/alloc_size() functions.
	[d7108785c40a] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings_parse_stream_read(): Try using existing data from stream
	first.
	[07059f9aead8] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Minor config code cleanup.
	[eb3b89650eaf] <HEAD>

	* src/lib-index/mail-index-alloc-cache.c:
	lib-index: Keep indexes open while they are in alloc-cache.
	[e2c2ce0ce5fa] <HEAD>

	* src/lib-index/mail-index-alloc-cache.c:
	lib-index: When a closed index's refcount drops to 0, free it
	immediately.
	[3c0d86e79040] <HEAD>

	* src/lib-index/mailbox-log.c:
	mailbox log: Don't log an error if two processes rotate the log at
	the same time.
	[cdced48a276a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/anvil/anvil-connection.c, src/anvil/penalty.c,
	src/anvil/penalty.h:
	anvil: Added PENALTY-DUMP command to dump penalty state.
	[1282d027ce67] <HEAD>

	* src/anvil/penalty.c:
	anvil: Fixed penalty "last update" tracking.
	[3f2d9da0c6bc] <HEAD>

	* src/anvil/anvil-connection.c:
	anvil: Disconnect client if it sends invalid input.
	[e51089454ab0] <HEAD>

	* 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] <HEAD>

	* src/anvil/Makefile.am:
	Makefile: Fixed building anvil test.
	[5ee9e82f3b68] <HEAD>

	* src/auth/auth-penalty.c:
	auth: Track penalty for IPv6 addresses with their /48 mask.
	[77d990bee666] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-02-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-mail.c:
	mdbox: Fixed plugins accessing unsaved mail's stream.
	[d3e2444aa0ea] <HEAD>

	* src/plugins/zlib/zlib-plugin.c:
	zlib: Fixed the check to disallow saving messages that look
	compressed.
	[fce6ee7ab18f] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-mail.c:
	dbox: Fixed looking up physical size when it wasn't in metadata.
	[97a4289d6d4b] <HEAD>

	* Makefile.am:
	Makefile: Added empty install-exec-hook to fix older automakes.
	[f11ffb8a65f8] <HEAD>

	* 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] <HEAD>

	* src/plugins/zlib/zlib-plugin.c:
	zlib: Added support for dbox and mdbox.
	[300ac0c2cac3] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/istream-mail-stats.c, src/lib/istream-limit.c:
	filter istreams: Let default seek implementation optimize away
	unnecessary seeks.
	[90f4663211ba] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-server-connection.c:
	lib-auth: Make sure reconnection timeout if removed after getting
	connected.
	[082bd896e448] <HEAD>

	* src/log/Makefile.am, src/log/common.h, src/log/log-connection.c,
	src/log/main.c:
	log: Removed unnecessary common.h.
	[a16d3b54b9bb] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Don't leak memory if auth client sends a buggy request.
	[fa8a0f453774] <HEAD>

	* 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] <HEAD>

2010-02-18  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* dovecot.m4:
	dovecot.m4: Default dovecotdir to $prefix/lib/dovecot/
	[912c132337ed] <HEAD>

	* configure.in:
	configure: Set ACLOCAL_AMFLAGS so make finds dovecot.m4.
	[c5cbc99f4627] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/password-scheme.c:
	auth: Added SHA512 and SSHA512 password schemes. Based on patch by
	Mark Washenberger.
	[6936dbe28947] <HEAD>

	* src/lib/sha2.c, src/lib/sha2.h:
	Added sha512_*() functions.
	[9c188cfba679] <HEAD>

	* src/lib-storage/mail-copy.c:
	lib-storage: Fixed error handling in mailbox_copy().
	[a792d411e73e] <HEAD>

	* src/lib-storage/list/mailbox-list-fs.c:
	mailbox_list_get_mailbox_name_status(): Fixed INBOX handling with FS
	layout.
	[c0c4898fc803] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-fetch.c:
	imap: FETCH X-GUID and X-MAILBOX didn't add a space after their
	value.
	[fdd652c73073] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir save: Detect when trying to use duplicate GUIDs (filenames)
	and rename them.
	[386b13dfee04] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Make sure we message's UID isn't tried to be changed
	unexpectedly.
	[9fdeca77d421] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Message GUID wasn't correctly set to expunge-GUID
	transaction records.
	[843a9d68f2f5] <HEAD>

2010-02-15  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Implement required new methods.
	[e4a8cc98fd15] <HEAD>

	* src/lib-storage/list/mailbox-list-maildir-iter.c:
	maildir++: Fixed listing INBOX
	[c5cbaca43811] <HEAD>

	* src/lib-storage/index/maildir/maildir-storage.c:
	maildir: Crashfix to mailbox_update()
	[6247eb25fd1a] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Don't try to change INBOX's GUID.
	[8d5e2deb4ce0] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: Don't allow INBOX creation succeed, if it already exists.
	[189197f30055] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Skip alias namespaces when syncing subscriptions.
	[bc376612e590] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c, src/dsync/dsync-worker.c:
	dsync: Error handling fixes.
	[6a8db6824157] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: Don't return mailbox GUID if it's coming from in-memory index.
	[ead16c7d9291] <HEAD>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy_expunge: Fixes to handling mailbox deletion and renames.
	[4fd02780d09f] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-02-14  Timo Sirainen  <tss@iki.fi>

	* src/plugins/listescape/listescape-plugin.c:
	listescape: Crashfix
	[709351cde842] <HEAD>

	* src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c:
	Compiler warning fix.
	[9b57e7f41c53] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/zlib/ostream-zlib.c:
	zlib: If writing without being corked, flush the stream.
	[52e1f46fe0ba] <HEAD>

	* 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] <HEAD>

2010-02-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c:
	mailbox_open(): Don't crash if opening non-stream mailbox fails.
	[72a345621cd2] <HEAD>

	* doc/example-config/conf.d/master.conf:
	example-config: Updated default_*_user comments.
	[285465d71322] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/service.c:
	master: Check for the existence of service executable after all.
	[951a90e95ebe] <HEAD>

	* configure.in:
	configure: If libwrap isn't used, don't add its service to doveconf.
	[dc6cf5f10602] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	Compiler warning fix.
	[ec7a2fe4aab2] <HEAD>

	* configure.in:
	configure: libwrap detection cleared $LIBS
	[b14e694fc8b4] <HEAD>

	* 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] <HEAD>

	* src/plugins/zlib/ostream-zlib.c:
	zlib: o_stream_create_deflate() shouldn't have enabled zlib header.
	[15feca627630] <HEAD>

	* src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h:
	lib-imap: Added imap_parser_set_streams().
	[e0e6d941941c] <HEAD>

	* src/imap/imap-client.c, src/imap/imap-client.h:
	imap: Added module_contexts to struct client.
	[57814e99b451] <HEAD>

	* 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] <HEAD>

	* src/lib/ostream.c:
	o_stream_uncork(): Use flush() as default uncork operation.
	[9f0014f19bd3] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-02-12  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream.c:
	i_stream_grow_buffer(): Never shrink the buffer.
	[fe70069debcb] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-request.c:
	auth: When caching user-given passwords, cache their SHA1, not the
	plaintext.
	[46ae2e53d688] <HEAD>

2010-02-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-file-purge.c:
	Compiler warning fix.
	[134d59aece1a] <HEAD>

	* 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] <HEAD>

2010-02-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-cache.c, src/lib-index/mail-index.c:
	lib-index: Fixed logging file creation EACCES failures.
	[442c980d6221] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/login-common/main.c:
	login: tcpwrappers change caused crashes at startup.
	[9f0c4800cb13] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump index: Another crashfix.
	[c7e827ab156e] <HEAD>

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump index: Fixed assert-crash.
	[3712e2dcc856] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-commands.c:
	imap: Mark DELETE command as potentially closing mailbox. That
	happens if DELETE is used on the selected mailbox.
	[9cefc944d82a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-02-08  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mailbox_name_get_sha128() truncated the returned GUID too early.
	[cf6f3ce452d3] <HEAD>

2010-02-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h:
	lib-storage: Added mail_storage_get_user().
	[64c8e5e792e9] <HEAD>

	* src/master/service.c:
	master: Don't check if service's executable exists if there are no
	listeners.
	[488530ada460] <HEAD>

	* src/master/service.c:
	master: service's have_inet_listeners wasn't tracked correctly.
	[8d931f94fdf6] <HEAD>

	* src/plugins/expire/Makefile.am:
	expire Makefile: Link with .lo, not .o. Helps at least with
	dependency tracking.
	[2b4e61bfb645] <HEAD>

	* Makefile.am, dovecot-config.in.in:
	dovecot-config: Renamed field names to be more consistent.
	[3e162b623291] <HEAD>

	* dovecot-config.in.in:
	dovecot-config: LIBDOVECOT_STORAGE_INCLUDE was missing lib-storage/
	include.
	[23b91bb080a9] <HEAD>

	* dovecot-config.in.in:
	dovecot-config: Added LIBDOVECOT_IMAP_INCLUDE for imap-specific
	code.
	[8f81a3990c62] <HEAD>

	* dovecot-config.in.in:
	dovecot-config: Removed lib-storage from LIBDOVECOT_INCLUDE
	[c919c72033f8] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-client.h:
	imap-client.h: Updated comments.
	[bd06d9b159fa] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/list/mailbox-list-fs.c:
	fs layout: We didn't properly prevent maildir_name from being used
	in mailbox names.
	[302a4f807276] <HEAD>

	* 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] <HEAD>

2010-02-06  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Make sure we don't append to uidlist that has already been
	recreated.
	[cfe7d639fa03] <HEAD>

	* 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] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* configure.in:
	config.h: Added DOVECOT_* macros for PACKAGE_* macros.
	[928312d6017c] <HEAD>

	* src/lib/module-context.h:
	module-context.h: Include required array.h internally.
	[5e2075b5b25f] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/ostream.c:
	ostream: Added default failure handling if write_at() isn't
	implemented.
	[174275bcb1a5] <HEAD>

	* src/lib-index/mail-index-strmap.c:
	lib-index: Changed strmap's crc32 field to be backwards compatible.
	[b87a15fc462a] <HEAD>

	* 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] <HEAD>

2010-02-05  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-search-args.c:
	Compiler warning fix.
	[05ae3f2e079e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2010-02-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mailbox-list.c:
	Don't ignore :ALT=path in mail_location.
	[55cce06818b8] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/expire/expire-tool.c:
	expire-tool: Change config module so we'll actually read all
	necessary settings.
	[bbfa22045215] <HEAD>

	* src/plugins/expire/expire-tool.c:
	expire-tool: Check and log an error if dict iteration fails.
	[568c437ad951] <HEAD>

	* src/dict/dict-commands.c, src/lib-dict/dict-client.c:
	dict proxy: Iteration failure wasn't passed to dict client.
	[5e50d5597474] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	login: Now properly disable SSLv2 support.
	[9a5f3e3b0197] <HEAD>

	* 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] <HEAD>

2010-02-01  Timo Sirainen  <tss@iki.fi>

	* src/plugins/notify/notify-plugin.c:
	notify plugin: Require plugin to be same version as Dovecot.
	[a07a699b3831] <HEAD>

	* src/plugins/notify/Makefile.am:
	notify plugin: Install headers if --enable-header-install is used.
	Patch by Mark Washenberger.
	[c9e0ee292a08] <HEAD>

	* Makefile.am:
	dovecot-config: Avoid using $(pkglibexecdir), it doesn't work with
	old automakes.
	[de9d6dae7fe5] <HEAD>

2010-01-31  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 357995a6c270
	[a978089d090b] <HEAD>

	* .hgtags:
	Added tag 2.0.beta2 for changeset 357995a6c270
	[40081c368a29] <HEAD>

	* TODO, configure.in:
	Released v2.0.beta2.
	[357995a6c270] [2.0.beta2] <HEAD>

	* src/lib-index/mail-index-transaction-update.c:
	mail_index_update_flags_range(): Fixed merging last update.
	[2893ca172707] <HEAD>

	* Makefile.am:
	dovecot-config: LIBDOVECOT_INCLUDE shouldn't have been dropped from
	installed file.
	[8dcfb629a060] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/macros.h:
	Added CONTEXT_CALLBACK2() helper macro.
	[45709a87e4b3] <HEAD>

	* Makefile.am, dovecot-config.in.in:
	dovecot-config: Don't rely on installed .la files.
	[89928f671350] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	master: Removed non-existing -cb parameter description from --help.
	[c06033a1f147] <HEAD>

	* Makefile.am, dovecot-config.in.in:
	Changed dovecot-config file to contain useful content.
	[5a10d0fb008d] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	login: Completely drop support for SSLv2.
	[449fa953210b] <HEAD>

2010-01-29  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync-brain-msgs-new.c:
	dsync: Small optimization.
	[6799298bfa27] <HEAD>

	* src/dsync/dsync-brain-msgs-new.c:
	dsync: Message list wasn't sorted properly, which caused sync to be
	incomplete.
	[e9046fc7c6b4] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: When standalone binary reads config from config socket,
	ignore environment.
	[9a6015507c78] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Fixed assert-crash after sometimes creating pseudo mail.
	[992bb0c85ee9] <HEAD>

	* src/lib-settings/settings-parser.c:
	lib-settings: Treat blocks with empty names as unique names, instead
	of merging them.
	[4c9c9111e361] <HEAD>

2010-01-28  Timo Sirainen  <tss@iki.fi>

	* src/config/config-filter.c:
	config: Added support for protocol !name {}
	[25c1ed070b3c] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Switch back to running as root after deliver a mail.
	[de1bf8a51556] <HEAD>

	* 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] <HEAD>

	* configure.in:
	configure: Another try at fixing Berkeley DB check to not give an
	error.
	[20963e8ec560] <HEAD>

	* src/master/service.c:
	master: inet_listener {port=0} and unix/fifo_listener?{mode=0} now
	disables it.
	[476de3a45cf8] <HEAD>

	* configure.in:
	configure: Fixed Berkeley DB check to not give an error.
	[db89ece5a19d] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Fixed using post-login scripts.
	[873b2aff9196] <HEAD>

	* doc/example-config/conf.d/auth.conf:
	example-config: Fixed example auth.conf.
	[51452840b8b4] <HEAD>

	* 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] <HEAD>

	* src/config/doveconf.c:
	doveconf: Don't add extra space to "block {" for unique blocks.
	[11708783b5b3] <HEAD>

2010-01-27  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-maildir.c:
	Increased initial memory pool size.
	[2d118c4e6957] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-cache-transaction.c:
	mail cache: Avoid infinite loops.
	[193fa6e7635c] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Don't leak post-login connections.
	[f4e64cb17aea] <HEAD>

	* src/auth/auth-settings.c:
	auth: Fixed "userdb is missing driver" error.
	[bea4b2d1f27f] <HEAD>

2010-01-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/lda-settings.c:
	hostname setting now defaults to fqdn. postmaster_address defaults
	to postmaster@<hostname setting>.
	[e1d112ef2e4c] <HEAD>

	* 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] <HEAD>

2010-01-25  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-dict/Makefile.am:
	Makefile: Updated dict-drivers-register.c to depend on config.h
	[0ff07b4ad306] <HEAD>

	* 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] <HEAD>

	* configure.in, src/lib-dict/dict-db.c:
	Disabled Berkeley DB support until someone fixes it.
	[6ecb1b7528c9] <HEAD>

	* src/plugins/Makefile.am:
	--with-lucene was actually enabling solr.
	[2af2a6afb3e5] <HEAD>

	* src/lib/compat.c, src/lib/compat.h:
	Removed my_strptime(). It was just causing problems and wasn't used
	anywhere after all.
	[28f35797059a] <HEAD>

	* 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] <HEAD>

	* src/config/config-parser.c:
	doveconf: If config parsing fails, don't crash.
	[3117e9f35e45] <HEAD>

	* src/auth/auth-settings.c:
	auth: passdb { pass and master } settings weren't working.
	[9c80cc65def8] <HEAD>

	* doc/example-config/conf.d/master.conf:
	example-config: s/process_count/process_limit/
	[f8ab17253dff] <HEAD>

2010-01-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2010-01-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-auth.c:
	lib-master: Try for 0.5 secs to connect to master-auth socket.
	[823356f533c5] <HEAD>

	* src/config/doveconf.c, src/master/main.c:
	doveconf: Log a warning if Dovecot was last started using a
	different config file.
	[26b5209dc4f4] <HEAD>

	* src/lib/abspath.c, src/lib/abspath.h:
	Added t_readlink().
	[749e7f1df078] <HEAD>

2010-01-22  Timo Sirainen  <tss@iki.fi>

	* src/config/config-parser.c:
	doveconf: Fix to previous change.
	[cd29a6801e75] <HEAD>

	* 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] <HEAD>

	* src/master/master-settings.c:
	master: Fail if service's executable is empty.
	[f1a0f9a66164] <HEAD>

	* configure.in:
	Added LIST-STATUS to CAPABILITY list.
	[7fe775a404b1] <HEAD>

2010-01-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: dropping expunged uidlist records didn't update hash table.
	[e48e81c2b874] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir + pop3_lock_session: Don't crash when opening mailbox causes
	uidlist rewrite.
	[32d6a4112147] <HEAD>

2010-01-19  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/lda.conf, src/lib-lda/lda-settings.c:
	recipient_delimiter defaults to "+" now. Also added to example-
	config.
	[69c793c7f185] <HEAD>

	* src/plugins/virtual/virtual-mail.c:
	virtual: wanted_headers needs to be kept referenced.
	[45f360c1c9eb] <HEAD>

	* src/lib-index/mail-index-transaction-update.c:
	mail_index_update_flags_range(): Fixed out-of-bounds read.
	[57eb71a78375] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-mail.c:
	virtual: mail_set_uid() crashed.
	[bbcefa2a3976] <HEAD>

	* src/lib-storage/index/index-mail.c:
	lib-storage: Return mail's mailbox name with namespace prefix.
	[e1de7e7ae4f9] <HEAD>

	* src/lib-storage/index/index-storage.c:
	lib-storage: Mailbox virtual name was set wrong with multiple
	namespaces.
	[26583093cb54] <HEAD>

	* src/lib-storage/mail-namespace.c:
	namespace list=children: Fail if namespace prefix doesn't end with
	separator.
	[907dc8769491] <HEAD>

	* src/config/config-request.c:
	doveconf: Show time settings with "s" suffix to make it clear
	they're seconds.
	[e7f3a0e6e2a4] <HEAD>

	* src/master/master-settings.c:
	master: Changed unix_listener mode setting to octal type.
	[4d703a15d6b8] <HEAD>

	* 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] <HEAD>

2010-01-18  Timo Sirainen  <tss@iki.fi>

	* src/lib/eacces-error.c:
	eacces_error_get*(): Check and warn if multiple uids/gids have same
	name.
	[b8966b8133f2] <HEAD>

2010-01-06  Timo Sirainen  <tss@iki.fi>

	* src/plugins/expire/expire-tool.c:
	expire-tool: Don't crash at startup.
	[40abbeaa7a12] <HEAD>

2010-01-02  Timo Sirainen  <tss@iki.fi>

	* configure.in:
	configure: Use -llber for ldap only if necessary.
	[2882650531e0] <HEAD>

	* src/login-common/Makefile.am:
	login-common: Install headers.
	[127fb230e269] <HEAD>

	* 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] <HEAD>

	* src/lib-master/Makefile.am:
	lib-master: Install headers.
	[19695965c40e] <HEAD>

2009-12-31  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox-multi/mdbox-save.c:
	mdbox: Removed broken assert.
	[16acdd049281] <HEAD>

	* TODO:
	TODO updated.
	[dfca2414c0a0] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-12-29  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/lda.conf:
	example-config: Updated postmaster_address.
	[99dbadd0492b] <HEAD>

2009-12-30  Pascal Volk  <user@localhost.localdomain.org>

	* src/lib-lda/lda-settings.c:
	lda-settings: Try to set the the postmaster_address if it wasn't
	configured.
	[d6d1df7ea4e0] <HEAD>

2009-12-29  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-12-23  Timo Sirainen  <tss@iki.fi>

	* src/master/master-settings.c:
	master: Log warning if unix_listener begins with base_dir's path.
	[6f67d3ce4ac4] <HEAD>

	* doc/example-config/conf.d/pop3.conf:
	example-config: Added missing pop3_save_uidl setting.
	[263068802498] <HEAD>

	* src/lda/Makefile.am:
	Install deliver -> dovecot-lda symlink.
	[7a0a89d81699] <HEAD>

	* src/master/master-settings.c:
	master: Give error message with unknown names in protocols setting.
	[e4e31fa845a5] <HEAD>

	* src/lib-storage/index/index-storage.c:
	mailbox_update() wasn't updating cache fields correctly.
	[8f2c4d0f7247] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync convert: Skip namespaces that have non-empty location setting.
	[c3423cfc5244] <HEAD>

	* doc/example-config/conf.d/master.conf:
	example-config: Comment fix.
	[9eb28fc864db] <HEAD>

	* src/imap/cmd-list.c:
	imap: LIST "" inbox shouldn't crash when using namespace with
	"INBOX." prefix.
	[35dbb3595beb] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Fixed potential assert-crashes with "Duplicate file entry"
	handling.
	[c8322124d615] <HEAD>

	* doc/example-config/conf.d/mail.conf:
	example-config: Fixed shared namespace example.
	[f011d7801572] <HEAD>

2009-12-22  Timo Sirainen  <tss@iki.fi>

	* src/login-common/login-settings.c:
	*-login: Removed redundant %{hostname} variable.
	[07e688afe81b] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c:
	mdbox: Fixed rebuilding mdbox storage.
	[c3d85a07888c] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-file.c:
	dbox: Added assert.
	[824b7072c6d9] <HEAD>

	* 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] <HEAD>

	* src/lib/mempool-system.c:
	DEBUG: i_free() now clears the memory before freeing it.
	[19787c343ef1] <HEAD>

	* src/master/main.c:
	master: When writing startup errors to stderr, use the correct type
	prefix.
	[76af32fae1e2] <HEAD>

2009-12-21  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync-worker-local.c:
	dsync: If mailbox exists in both sides, create it as name_guid in
	other side.
	[e3db0a5889b7] <HEAD>

	* 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] <HEAD>

2009-12-18  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync.c:
	dsync: Updated usage.
	[cf20258a44ed] <HEAD>

	* src/dsync/dsync.c:
	dsync: Updated -a parameter description.
	[1f2bef73d052] <HEAD>

2009-12-17  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-fetch.c:
	imap: Refresh index before starting a FETCH, so it sees updated
	flags immediately.
	[bb04510465d3] <HEAD>

	* 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] <HEAD>

2009-12-16  Timo Sirainen  <tss@iki.fi>

	* src/login-common/ssl-proxy-openssl.c:
	verbose_ssl: Don't log SSL info messages with "BIO failed" prefix.
	[55baae8ed874] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage.h:
	mail-storage.h: Another comment update.
	[c339b0f7d087] <HEAD>

	* src/lib-storage/mail-storage.c, src/lib-storage/mailbox-list.c:
	lib-storage: Don't clear errors unnecessarily (and inconsistently).
	[1cb0e7cf3750] <HEAD>

	* src/lib-storage/mail-storage.h:
	mail-storage.h: Updated comments, moved around functions.
	[6ee8264b0284] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-sync.c, src/lib-storage/mail-storage.h:
	Removed MAILBOX_SYNC_AUTO_STOP sync flag. It wasn't used anywhere.
	[c17386a4e594] <HEAD>

	* src/lib-lda/lmtp-client.c:
	lmtp client: data_output_callback may have been called
	unnecessarily.
	[c96b02a477a0] <HEAD>

	* 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] <HEAD>

	* src/lib/abspath.c:
	t_get_current_dir(): Don't overflow buffer with >128 length
	directories.
	[482d43792090] <HEAD>

	* src/lib/lib-signals.c:
	lib-signals: Compile fix for Hurd (SA_SIGINFO not available). Based
	on patch by Marco Nenciarini.
	[9c2fe6d0b684] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lda/main.c, src/master/main.c:
	Use t_abspath() instead of duplicating code.
	[28a14e2fe5d6] <HEAD>

	* src/lib/failures.c:
	Don't use static sized buffers for writing log open failure errors.
	[28ff2944d4e9] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Use t_abspath() to resolve relative path, not
	realpath().
	[876990dc41c2] <HEAD>

2009-12-15  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/master-settings.c:
	config: Don't fail if process_min_avail is set and process_limit is
	the default.
	[72a0ec4b7e26] <HEAD>

	* src/lmtp/client.c:
	lmtp: Increased initial client pool size.
	[caee83356d7b] <HEAD>

	* src/lib/lib-signals.c:
	lib-signals: Set signal pipe fds non-blocking to make sure
	read/write doesn't hang.
	[2d7e2e76a100] <HEAD>

	* 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] <HEAD>

	* configure.in, src/lib/env-util.c:
	Compile fix for systems where unsetenv() returns void. FreeBSD 6.4,
	for example.
	[617fa0739538] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Don't lose first 128k of data with >128k mails.
	[1aea146d39e1] <HEAD>

2009-12-14  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/dsync/Makefile.am:
	Makefile: Compile fix for systems requiring libiconv.
	[394a63985b33] <HEAD>

	* src/imap/imap-settings.c:
	imap_client_workarounds defaults to empty now, not deprecated
	outlook-idle.
	[c86764388c69] <HEAD>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge: Fixed deleting mailboxes that didn't have expunged
	messages.
	[bef8da2e6b0c] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-12-13  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 594a349067f6
	[52672e49c428] <HEAD>

	* .hgtags:
	Added tag 2.0.beta1 for changeset 594a349067f6
	[6baa8073eaf3] <HEAD>

	* TODO, configure.in:
	Released v2.0.beta1.
	[594a349067f6] [2.0.beta1] <HEAD>

	* doc/example-config/Makefile.am:
	Makefile: Delete example-config/README in distclean.
	[8610b6e687e5] <HEAD>

	* src/lib-index/test-mail-index-transaction-update.c:
	mail-index-transaction-update unit test fix.
	[240739b27688] <HEAD>

	* doc/example-config/Makefile.am:
	Makefile: Add example-config/README.in to tarballs.
	[1c2e553809b2] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mailbox log: Create file with correct permission.
	[d4c645713656] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Close listener fds when we stop accepting more
	connections.
	[32949365f28d] <HEAD>

	* src/util/script.c:
	script: Close extra fds before executing post-login script.
	[484be10242a7] <HEAD>

	* src/config/config-request.c:
	config: Compiler warning fix.
	[20d54d23785a] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	settings parser: Added support for setting name aliases.
	[17596238d8ea] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	lib-settings: settings_get_time/size() are now public.
	[3bcd4697a7cc] <HEAD>

	* 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] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: Don't crash if post-login socket path wasn't given.
	[06bddee57586] <HEAD>

	* src/util/script.c:
	script: Don't load mail plugins.
	[093865257852] <HEAD>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	Added mail_storage_service_restrict_setenv().
	[2a74d458339d] <HEAD>

	* 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] <HEAD>

2009-12-11  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/Makefile.am, src/lib/abspath.c, src/lib/abspath.h:
	Added t_abspath*().
	[395b53cebaac] <HEAD>

	* 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] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: If client creation fails, update lib-master connection
	count.
	[f0fd3bd7c122] <HEAD>

	* src/imap/main.c, src/lib-master/master-login.c, src/pop3/main.c:
	*-login: Check for missing username in lib-master code.
	[6c9d97878efe] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-login.c:
	lib-master: Minor error message fixes.
	[32ad99f146d1] <HEAD>

2009-12-10  Timo Sirainen  <tss@iki.fi>

	* src/dsync/Makefile.am:
	dsync tests: Link also with libcharset.
	[8196200d4fb9] <HEAD>

	* src/dsync/Makefile.am:
	dsync tests: Link with iconv libraries to avoid compiler errors in
	some systems.
	[868c0d6462f4] <HEAD>

	* src/lib/bsearch-insert-pos.h:
	Compile fix for non-gcc.
	[b6e4cb26c3cb] <HEAD>

2009-12-09  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-client.c:
	auth client: Added asserts.
	[3ac17da0d723] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: If mbox parsing notices unexpected corruption, don't assert-
	crash.
	[b15a3277d7d4] <HEAD>

	* src/lib-storage/index/mbox/istream-raw-mbox.c:
	mbox: Log an error if From_-line gets lost/corrupted unexpectedly.
	[576abd71121c] <HEAD>

	* src/plugins/expire/expire-env.c:
	expire: Settings now support spaces in mailbox names by using quoted
	strings.
	[ba7a62453316] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual optimization: If saved highest-modseq matches current one,
	don't try to find higher ones.
	[b7ce62749fd7] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Fixed updating virtual mailbox based on flag changes.
	[aa97e059ca32] <HEAD>

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump index: Decode virtual storage's index header.
	[8df262408a10] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Die on SIGINT only if we're running standalone or not
	handling clients.
	[e6362e056ef2] <HEAD>

	* src/dsync/dsync.c:
	dsync: Removed MASTER_SERVICE_FLAG_STD_CLIENT flag, since it's not
	really one.
	[bbdfe2ef328b] <HEAD>

	* .hgignore, doc/example-config/Makefile.am, doc/example-
	config/README.in:
	Install README file to config directory, which points to example-
	config.
	[b1e0c10143fa] <HEAD>

	* configure.in:
	configure: Added -llber to ldap libs. Fixes linking in some systems.
	Patch by Marco Nenciarini.
	[7456f5768184] <HEAD>

	* src/lib/process-title.c:
	Compile fix for non-Linux.
	[3d13ea0c687f] <HEAD>

2009-11-27  Pascal Volk  <user@localhost.localdomain.org>

	* doc/dovecot-initd.sh:
	doc/dovecot-initd.sh extended LSB run-time dependencies
	[73679e39f072] <HEAD>

2009-12-08  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/quota.c:
	quota: Minor code cleanup.
	[b166d2cc49a6] <HEAD>

	* 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] <HEAD>

	* src/lib/compat.c:
	Fixed my_strptime() wrapper.
	[2f294ba2168a] <HEAD>

	* src/lib/lib.c, src/lib/process-title.c, src/lib/process-title.h:
	process title hack: Free allocated memory at deinit.
	[32aba99c2e4f] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	*-login: Fixed a minor memory leak.
	[328e42919f2f] <HEAD>

	* doc/example-config/conf.d/ssl.conf:
	example-config: Updated ssl_key_password comments.
	[3badaa16d524] <HEAD>

	* 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] <HEAD>

	* src/imap/cmd-list.c:
	imap: Fixed listing namespaces with multiple hierarchy separators.
	[3a1f6c1a8485] <HEAD>

	* src/config/config-parser.c, src/lib-settings/settings.c:
	config parser: If line ends with '\' continuation, remove extra
	whitespace before it.
	[05cfc267aa3d] <HEAD>

2009-12-07  Timo Sirainen  <tss@iki.fi>

	* src/plugins/expire/expire-env.c:
	expire plugin: Log debug messages with i_debug(), not i_info().
	[93b3a6e63531] <HEAD>

	* src/plugins/expire/expire-env.c:
	expire plugin: Fixed debug logging to use mail_debug setting.
	[84e400f3fc1f] <HEAD>

	* src/lib/module-dir.c:
	Fixed compiling without module support.
	[7bfb37044928] <HEAD>

	* 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] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Fixed output timeout handling.
	[abe02cf3bd47] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-user.c, src/lib-storage/mail-user.h:
	lib-storage: Added mail_user_is_plugin_loaded().
	[1062e6ca6310] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Added support for per-user plugins.
	[932afc022ea1] <HEAD>

	* src/lib-storage/mail-storage-hooks.c:
	lib-storage: Use module_get_plugin_name() instead of doing it
	ourself.
	[784d2920761f] <HEAD>

	* src/lib/module-dir.c, src/lib/module-dir.h:
	Added module_dir_load_missing() and module_get_plugin_name().
	[f0a6461b86ee] <HEAD>

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp-
	proxy.c:
	lmtp proxy fixes.
	[3662241f75f2] <HEAD>

	* 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] <HEAD>

2009-12-04  Timo Sirainen  <tss@iki.fi>

	* src/lib/env-util.c:
	Check return value if unsetenv().
	[927cc04cd5e8] <HEAD>

	* 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] <HEAD>

	* src/config/settings-get.pl:
	Changed settings-get.pl to understand the MEMBER() macro removal.
	[3448f1bc6966] <HEAD>

	* 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] <HEAD>

2009-12-03  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Removed logging extraneous errors, again.
	[48b8752c793d] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Removed logging extraneous errors.
	[68309cd6548d] <HEAD>

	* src/lib-storage/index/maildir/maildir-copy.c:
	maildir_copy_preserve_filename=yes could have caused crashes.
	[2277467334fb] <HEAD>

2009-12-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/array.h, src/lib/test-array.c:
	Added array_foreach_idx()
	[cc4e9d1fef7e] <HEAD>

2009-11-25  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail_privileged_group was parsed as user, not group. Patch by Apple.
	[a1018630276b] <HEAD>

2009-11-24  Timo Sirainen  <tss@iki.fi>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Crashfix on hanging connections.
	[04b0ee571f47] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Assert-crashfix to handling DATA input timeout.
	[99e069c98709] <HEAD>

	* src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h:
	lmtp proxy: More error handling fixes.
	[96152031f5d9] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Don't crash if all RCPT TOs fail to a remote.
	[8f6995923fbd] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp-
	proxy.c:
	lmtp proxy: Error handling fix.
	[9500cfbe5dbf] <HEAD>

2009-11-23  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp-
	proxy.c:
	lmtp: Error handling fixes.
	[6ab1e2f4ca55] <HEAD>

	* src/pop3-login/client.c:
	pop3-login: Don't crash in QUIT command.
	[aba3cb15f082] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Fix to handling "no new input" reads.
	[c5c360a88067] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Stalling remote servers weren't detected correctly.
	[4eadbf965d1f] <HEAD>

	* src/lib/istream-tee.c, src/lib/istream-tee.h, src/lib/test-istream-
	tee.c:
	Added tee_i_stream_child_is_waiting().
	[9d878b1dc028] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: And added missing #include for previous
	change.
	[ce0ff560cd80] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: If chdir() fails with EACCES, give a better
	error message.
	[05b50522442f] <HEAD>

	* src/lib-lda/lmtp-client.c:
	lmtp client: Don't crash if lmtp_client_send_more() is called after
	failure.
	[c9f5b2734710] <HEAD>

	* src/plugins/fts-squat/squat-trie.c:
	fts-squat: Fixed searching multi-byte characters.
	[f34528b52196] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Changed index/uidlist mismatch from assert-crashing to
	logging an error.
	[aa8a12288c93] <HEAD>

	* src/lib-index/mail-index-sync-ext.c:
	lib-index: Replaced ext-header update assert with "index corrupted"
	error handling.
	[711fbedaad9d] <HEAD>

	* src/lib/Makefile.am:
	Makefile: Added UnicodeData.txt to distribution.
	[247f137f17d8] <HEAD>

2009-11-20  Timo Sirainen  <tss@iki.fi>

	* src/lib/compat.h:
	OS X: Fixed compiler warning about missing fdatasync() prototypes.
	[940212bda6ea] <HEAD>

	* src/lib-index/mail-transaction-log.h:
	lib-index: MAIL_TRANSACTION_TYPE_MASK didn't contain the new
	_EXT_HDR_UPDATE32.
	[5ed426229f20] <HEAD>

2009-11-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-transaction-log.h:
	lib-index: Updated MAIL_TRANSACTION_EXT_MASK to include thew new
	_EXT_HDR_UPDATE32.
	[b12f7da461e3] <HEAD>

	* 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] <HEAD>

2009-11-19  Pascal Volk  <user@localhost.localdomain.org>

	* doc/dovecot-initd.sh:
	doc/dovecot-initd.sh added LSB-compliant info block. Updated
	base_dir detection.
	[7ad38188c36b] <HEAD>

2009-11-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/service-settings.h:
	Define inet_listener_settings array type.
	[8503b074bec0] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	Compiler warning fixes.
	[2789f87b6828] <HEAD>

	* src/master/master-settings.c:
	master: Give a nicer error message if duplicate listeners exist.
	[b21b3b373c74] <HEAD>

	* src/master/master-settings.c:
	master: Create base_dir with 0755 permissions, not 0777.
	[17eac5a18ce4] <HEAD>

	* 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] <HEAD>

	* src/lib/compat.c, src/lib/compat.h:
	Added a wrapper for strptime() to work around issues with glibc.
	[0b101a864534] <HEAD>

	* src/dsync/dsync-brain-private.h, src/dsync/dsync-brain.c:
	dsync: Sync mailbox renames.
	[b99a19d5a93c] <HEAD>

2009-11-18  Timo Sirainen  <tss@iki.fi>

	* src/master/service-listen.c:
	master: unix_listener's user/group wasn't being used.
	[ce18bbd3e964] <HEAD>

	* src/lmtp/client.c:
	lmtp: Use hostname setting.
	[6aa11c638f54] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lmtp/client.c:
	lmtp: Don't leak a client timeout and crash later.
	[cc5d8a5deab2] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS: Also chdir() to home
	dir.
	[7664afedc7bb] <HEAD>

	* src/lmtp/main.c:
	lmtp: If -D parameter is given, enable core dumps.
	[4183f16e6f60] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	Added mail_storage_service_user_get_settings_parser().
	[28cdf09c062b] <HEAD>

	* 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] <HEAD>

	* src/dsync/Makefile.am, src/dsync/dsync.c:
	dsync: Fixed -u <user> convert.
	[def159693f9a] <HEAD>

	* src/lib-auth/auth-master.c:
	lib-auth: Fixed "auth input" debug messages.
	[27c2692dbe42] <HEAD>

2009-11-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	layout=fs: Fixed listing mailboxes under INBOX with non-mbox
	storages.
	[0729e84246e9] <HEAD>

	* src/dsync/test-dsync-common.c:
	dsync: Minor unit test update.
	[e94d43687351] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync.c:
	dsync: Write usage directly to stderr instead of via logging.
	[a7be031eb51d] <HEAD>

	* src/dsync/dsync-brain.c, src/dsync/dsync-brain.h, src/dsync/dsync.c:
	dsync convert <source> converts mailbox without proxying. Renamed -e
	parameter to "mirror".
	[22ffa2eb68c0] <HEAD>

	* src/dsync/dsync.c:
	dsync: Changed local/remote log prefixes.
	[415a87bdeacd] <HEAD>

	* src/dsync/dsync.c:
	dsync: Require "server" parameter to start in server mode.
	[7a206ede2e7e] <HEAD>

	* src/lib-storage/mail-user.c:
	mail_user_*home_expand(): Use home_expand_tilde() instead of
	duplicating the code.
	[ffac955d80ef] <HEAD>

	* src/lib-storage/index/dbox-multi/mdbox-storage.c:
	mdbox: mailbox_update() was updating uidvalidity to random values.
	[d1d810348e65] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Try creating INBOX before fallbacking to just updating it.
	[9670b1268a9a] <HEAD>

	* src/auth/main.c:
	auth: Unload modules earlier to avoid crashes.
	[3f0752af52db] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/mbox-mail.c:
	mbox: Minor error message improvement.
	[f8e03cda78d9] <HEAD>

	* src/doveadm/doveadm-mail.c, src/doveadm/doveadm.c,
	src/doveadm/doveadm.h:
	doveadm: Added global -v (verbose) and -D (debug) options. Removed
	"doveadm <mail command> -v".
	[93c87044469f] <HEAD>

	* src/lib-lda/lmtp-client.c:
	lmtp client: Fix to handling multiple recipients (and errors).
	[3836c67fa5f1] <HEAD>

	* src/dsync/dsync-data.c:
	dsync: dsync_mailbox_dup() wasn't duping cache fields.
	[062fe605cd19] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h, src/lmtp/lmtp-
	proxy.c:
	lmtp proxy: Fixes to error handling.
	[d784be144b4d] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: If remote hangs without replying to end-of-DATA dot,
	don't crash.
	[26eb1b52a23f] <HEAD>

2009-11-16  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-index/mail-cache-fields.c, src/lib-index/mail-cache.h:
	mail_cache_register_fields(): Update caching decisions from input
	fields.
	[d7e946e3c0c4] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/module-dir.c, src/lib/module-dir.h:
	Added module_get_symbol_quiet().
	[12434655f2e5] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: After killing a hanging server connection, try reading
	more input.
	[5ecda3558f2a] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: When client fails, don't stop reading DATA input until
	"." is seen.
	[c48703f5ce25] <HEAD>

	* src/lib-lda/lmtp-client.c:
	lmtp client: Fail immediately if server disconnects.
	[fed94dd1991b] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Compiler warning fix.
	[32a754b2d79b] <HEAD>

2009-11-13  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mailbox-list.c:
	Delay initializing mailbox changelog index, so mbox has time to
	override its path.
	[4267c30ded97] <HEAD>

	* src/lib/array.h:
	array_bsearch(): Cast return value to proper type.
	[38941d54ec5d] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Fixed getting mailbox list GUID when using non-default
	hierarchy separator.
	[d1ace3dbc94a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-worker-local.c:
	dsync: Delay enabling modseqs until modseq>1 is seen.
	[00aba806af0b] <HEAD>

	* src/lib-index/mail-index-transaction-update.c:
	lib-index: Ignore modseq->1 updates, they can never happen.
	[2a2261f5a0be] <HEAD>

2009-11-12  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/anvil/main.c, src/master/service-process.c:
	anvil: Stay alive until it has no more clients.
	[506fba223006] <HEAD>

	* 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] <HEAD>

	* src/auth/main.c:
	auth: Unload plugins after everything else is deinitialized. Fixes a
	crash at deinit when SQL drivers were plugins.
	[8d47c9dbe9cb] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Recent flags weren't set correctly.
	[aeac8a0cd60a] <HEAD>

	* src/lib-sql/driver-mysql.c:
	Increased initial mysql driver memory pool size.
	[675e1e198dce] <HEAD>

	* src/lib-auth/auth-server-connection.c:
	auth client: Don't crash after aborting auth requests.
	[49f6fc5b60a8] <HEAD>

	* src/lib-mail/rfc2231-parser.c, src/lib-mail/test-rfc2231-parser.c:
	rfc2231 parser: Fixed parsing "key*".
	[037299bb2199] <HEAD>

2009-11-11  Timo Sirainen  <tss@iki.fi>

	* src/master/main.c:
	Removed duplicate master_service variable. Patch by Apple.
	[3baf1cb9fdda] <HEAD>

	* src/auth/auth.c:
	auth: Another try at connecting to anvil-auth-penalty while still
	root.
	[75b48fa3aec4] <HEAD>

	* 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] <HEAD>

	* src/master/capabilities-posix.c:
	master: Give master also CAP_KILL capability.
	[49d92c3fa17a] <HEAD>

	* 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] <HEAD>

2009-11-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	Forgot to commit mail_storage_service_user_get_input().
	[c21543e87190] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Merge group rights if user belongs to more than one.
	[b55069127635] <HEAD>

	* src/plugins/acl/acl-mailbox-list.c:
	acl: mailbox_name_status() shouldn't hide its existence if user has
	any rights to it.
	[9cf3caefec2c] <HEAD>

	* src/lib-lda/lda-settings.c, src/lmtp/commands.c:
	recipient_delimiter: Allow multi-character delimiters.
	[0d659ac4656d] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-master/anvil-client.c, src/lib-master/anvil-client.h, src
	/login-common/main.c:
	anvil client: Added more features.
	[13da60f934da] <HEAD>

	* src/lib-auth/auth-server-connection.c:
	lib-auth: Don't crash if callback destroys the auth client.
	[9702da6d3b6a] <HEAD>

	* 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] <HEAD>

2009-11-09  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset d52d842e8f81
	[e6840e39ebc7] <HEAD>

	* .hgtags:
	Added tag 2.0.alpha3 for changeset d52d842e8f81
	[87622c521233] <HEAD>

	* configure.in:
	Released v2.0.alpha3.
	[d52d842e8f81] [2.0.alpha3] <HEAD>

	* src/lib/unichar.c, src/lib/unichar.h:
	Added uni_utf8_str_is_valid().
	[64df978b2926] <HEAD>

	* src/lib-lda/Makefile.am, src/lib-lda/mail-deliver.c:
	lib-lda: Log mailbox name using UTF-8, not mUTF-7.
	[d57dcba5dd24] <HEAD>

	* src/master/service-process.c:
	master: Don't suggest adding -D parameter to non-login processes.
	[5e92e1ed4e91] <HEAD>

	* src/auth/userdb-vpopmail.c:
	vpopmail: Removed vauth_open() call. Apparently it's not the right
	way.
	[d62c2361c3b6] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-file.c:
	index: If we see duplicate transaction log files, avoid corrupting
	the newer one.
	[38d3e668dc1f] <HEAD>

	* src/lmtp/commands.c, src/lmtp/lmtp-proxy.c, src/lmtp/lmtp-proxy.h:
	lmtp proxy: Add Received: header.
	[c11324abe1a8] <HEAD>

	* src/lib-lda/lmtp-client.c, src/lib-lda/lmtp-client.h:
	lmtp client: Added support for writing given string as headers.
	[147627c8433a] <HEAD>

	* src/lib-lda/lmtp-client.c:
	lmtp client: More fixes to handling RCPT TO failures.
	[353a30947b91] <HEAD>

	* src/lib-lda/lmtp-client.c, src/lmtp/lmtp-proxy.c:
	lmtp, lmtp client: More fixes to handling failures.
	[aa8729e340ba] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: Added data input timeout.
	[2ad1ad1e1083] <HEAD>

	* src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Disable idle timeout while proxying.
	[cb7b2901f1f8] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-mailbox-check.c:
	IDLE: After seeing a change, don't check for more changes every 0,5
	seconds.
	[cd1ce06a0ee5] <HEAD>

	* src/lib-lda/lda-settings.c:
	lib-lda: If hostname setting is empty, default to system's hostname.
	[b93d2e668eba] <HEAD>

	* src/lmtp/lmtp-proxy.c:
	lmtp proxy: After all DATA input is read, stop trying to read more
	of it.
	[84a1776dd1c3] <HEAD>

	* src/lib-lda/lmtp-client.c:
	lmtp client: Handle failures better.
	[09dd23dd6ee0] <HEAD>

	* 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] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Fixed accessing uninitialized memory.
	[2526861b8417] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Read protocol=lmtp settings.
	[409c782237d2] <HEAD>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	Added mail_storage_service_init_settings().
	[4109e7f29735] <HEAD>

	* src/lmtp/Makefile.am:
	lmtp: Link smtp-client.o explicitly so Sieve can use it.
	[26e6636aa82e] <HEAD>

	* src/config/config-request.c:
	config: Handle chained dependencies.
	[0785c83ce8c4] <HEAD>

2009-11-08  J?rgen P. Tjern?  <jorgen@devsoft.no>

	* src/lib/unicodemap.pl:
	Make unicodemap.pl give correct return code when it fails to
	complete, so that make will stop processing.
	[8984dc0e7c72] <HEAD>

2009-11-06  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/Makefile.am:
	Makefile: Updated *.conf files to be *.conf.ext
	[cd4b7135cf3c] <HEAD>

2009-11-06  Pascal Volk  <user@localhost.localdomain.org>

	* doc/example-config/dovecot.conf, doc/example-
	config/dovecot.conf.ext:
	example-config: Dropped ".ext" extension from dovecot.conf
	[c1d8e1b02f89] <HEAD>

2009-11-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Having a lot of keywords assert-crashed with "stack frame
	changed".
	[2e00f9da27ad] <HEAD>

	* 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] <HEAD>

	* src/lib-master/Makefile.am, src/lib-master/anvil-client.c, src/lib-
	master/anvil-client.h:
	lib-master: Added anvil client code.
	[8ebf82849077] <HEAD>

	* 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] <HEAD>

2009-11-05  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/llist.h:
	DLLIST_REMOVE(): Set removed item's prev/next pointers to NULL.
	[16d40abb75b8] <HEAD>

	* 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] <HEAD>

	* src/lmtp/main.c:
	lmtp: Keep connection to config process open.
	[e0db66c8b9a9] <HEAD>

	* src/lmtp/client.c:
	lmtp: Don't crash if LHLO isn't given.
	[584e848fc957] <HEAD>

	* src/lmtp/client.c, src/lmtp/commands.c, src/lmtp/main.c:
	lmtp: Improved logging.
	[597f969a9870] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-private.h, src/lib-storage/mail-
	storage.h:
	lib-storage: Moved mail_generate_*() to be public functions.
	[b2925a5d9cf7] <HEAD>

	* src/lib-storage/index/dbox-common/dbox-storage.c:
	dbox notify: Look for dbox index files from index dir, not mail root
	dir.
	[ea4a80ee0283] <HEAD>

	* src/auth/auth-worker-server.c:
	auth: Drop idling worker processes after 5 minutes, not 30 minutes.
	[96838accb6af] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Create auth master connection if necessary
	when returning it.
	[5866ea3cfa71] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Don't close input stream when syncing. This breaks copying.
	[77b704cda90b] <HEAD>

	* doc/example-config/conf.d/Makefile.am:
	Makefile: Added missing lmtp.conf.
	[f69c5c25f176] <HEAD>

	* 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] <HEAD>

	* src/lib/array.h:
	array_foreach_modifiable() was broken in non-C99 compilers. Patch by
	Apple.
	[1c089f4f3e48] <HEAD>

2009-11-04  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-11-02  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Fixed mailbox_update() to update next-uid properly.
	[5a4318e65ba7] <HEAD>

	* src/lib-storage/index/mbox/mbox-save.c:
	mbox: Added support for saving messages with wanted UIDs.
	[4acd259d2b9c] <HEAD>

	* src/lib-index/mail-index-transaction.c:
	lib-index: Don't refresh index after transaction commit if nothing
	was changed.
	[a5e545002bf5] <HEAD>

	* 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] <HEAD>

2009-10-30  Timo Sirainen  <tss@iki.fi>

	* src/dsync/Makefile.am:
	dsync: Put the binary into bin/, not libexec/.
	[2a00f1d762b0] <HEAD>

	* src/lib-storage/list/mailbox-list-fs-iter.c:
	mbox: Fixed listing INBOX when NO_AUTO_INBOX flag was set.
	[3e85df7dc65a] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings parser: Allow multiple strlist blocks with same name. They
	just get merged.
	[dfbdb1e8deb6] <HEAD>

	* src/util/rawlog.c:
	rawlog: Make also created socketpair fds nonblocking.
	[83464a815f46] <HEAD>

	* src/util/rawlog.c:
	rawlog: Make sure to set fds nonblocking to avoid hangs.
	[4ba2db4794ab] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Fixed setting initial explicit uidvalidity/uidnext on mailbox
	creation.
	[b0cdefe35909] <HEAD>

	* src/dsync/dsync-brain-msgs-new.c, src/dsync/dsync-proxy-client.c:
	dsync: Message bodies were saved only partially.
	[51618f48242b] <HEAD>

2009-10-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/mbox/mbox-mail.c:
	mbox: Return header MD5 allocated from mail's data pool, not data
	stack.
	[635fda7ed49c] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/mbox-mail.c:
	mbox: Use header MD5 as message's GUID.
	[ded4cbe648fc] <HEAD>

	* src/lib-storage/index/mbox/mbox-mail.c:
	mbox: Fixed looking up header MD5 values when they didn't exist yet.
	[1484bfe9bb2a] <HEAD>

	* src/lmtp/Makefile.am:
	lmtp: Link with all the same unused .o files as lda.
	[410b72cf8567] <HEAD>

	* src/lda/Makefile.am:
	lda: Link with message-header-encode.o so Sieve plugin can use it.
	[704b1fd3c92f] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings: Allow referencing strlists without section key (e.g.
	plugin/foo vs. plugin/0/foo)
	[9ecf2adadc4f] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings parser: Don't crash if trying to expand a setting under
	strlist.
	[988ea1049fa5] <HEAD>

	* src/dsync/dsync-proxy-client.c:
	dsync proxy client: Improved error handling.
	[89d924850fb1] <HEAD>

	* 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] <HEAD>

2009-10-28  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	*-login: Create SSL context for each different SSL config, instead
	of changing each connection.
	[168f2e6ef6d6] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	ssl: Improved error message logging.
	[09fe6d98cf98] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/dsync/dsync-brain.c, src/dsync/dsync-proxy-client.c:
	dsync: Memory usage tweaks.
	[a553595ce5a9] <HEAD>

	* src/lib-storage/index/maildir/maildir-storage.c:
	maildir: mailbox_update() crashed if mailbox wasn't yet open.
	[e3d0385ce703] <HEAD>

	* src/lib/data-stack.c:
	data stack: Fixes to handling out-of-memory situations.
	[728a029f56f9] <HEAD>

	* src/lib/failures.c, src/lib/str.c:
	Minor memory allocation tweaks.
	[c84c4f705e69] <HEAD>

	* src/lib-mail/message-header-encode.c:
	message_header_encode(): Line lengths weren't calculated properly
	with some characters.
	[6c32cc350164] <HEAD>

	* src/lib/str-sanitize.c, src/lib/test-str-sanitize.c:
	str_sanitize(): Don't break UTF-8 input.
	[f68c2cc1b32b] <HEAD>

2009-10-27  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/eacces-error.c:
	eaccess_error*(): Error message updated.
	[66eaf7b1e36b] <HEAD>

	* src/lda/main.c:
	lda: Removed accidentally committed debug change.
	[b470c03b7164] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/test-istream-concat.c:
	test-istream-concat: Don't use uninitialized variable.
	[86110f830311] <HEAD>

	* src/lda/main.c:
	lda: Fixed binary setuid-checking.
	[13b3a3ce892c] <HEAD>

	* src/lib-index/mail-transaction-log-file.c:
	Test WORDS_BIGENDIAN with #if, not #ifdef. Patch by Apple.
	[b55afe3e957c] <HEAD>

	* src/lib/array.h:
	array.h: Compile fix for non-C99 compilers.
	[1e0c572f1937] <HEAD>

	* 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] <HEAD>

2009-10-26  Timo Sirainen  <tss@iki.fi>

	* src/anvil/anvil-settings.c:
	anvil: Keep always one process running by default.
	[b0017c5dd411] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/config/config-request.c, src/config/doveconf.c:
	doveconf -n: Don't show unchanged service settings.
	[c94ca1acd623] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/message-parser.c:
	message_parser_init_from_parts(): Removed wrong assert.
	[b57588b298aa] <HEAD>

	* src/master/master-settings.c, src/master/master-settings.h:
	master: Removed unused verbose_proctitle setting.
	[e758ed7c2cb4] <HEAD>

	* src/lib-master/master-service-settings.c:
	If connect() fails to UNIX config socket, don't try to exec
	doveconf.
	[582659cebfdf] <HEAD>

	* 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] <HEAD>

	* src/lib/test-istream-seekable.c:
	test-istream-seekable: Minor improvements.
	[34aa0445aa14] <HEAD>

	* 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] <HEAD>

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: Added test_istream_create().
	[7c3605774b93] <HEAD>

	* src/lib/istream-concat.c:
	istream-concat: Fixed a lot of bugs.
	[891d8650f3f8] <HEAD>

	* src/lib/istream-seekable.c:
	istream-seekable: Don't assert-crash when input buffer becomes full.
	[65c6568515ce] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-10-23  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/master.conf:
	example-config: Comment out default defaults from master.conf.
	[2571cbc88302] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* doc/example-config/conf.d/mail.conf, src/lib-storage/mail-storage-
	settings.c:
	namespace section name now points to prefix, not type.
	[429641734346] <HEAD>

	* 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] <HEAD>

	* doc/example-config/conf.d/mail.conf, doc/example-
	config/dovecot.conf:
	example-config: Moved shutdown_clients to main dovecot.conf.
	[a768005d1549] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-server-connection.c:
	lib-auth: When connection dies, reset structure variables properly.
	[ae639ce8cea6] <HEAD>

	* src/doveadm/doveadm-dump-index.c:
	doveadm dump: Fixed printing unaligned cache data with CPUs that
	require alignment.
	[79f1c3ae4a98] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Fixed resetting getopt() for non-glibc.
	[56274bd4693c] <HEAD>

2009-10-23  Pascal Volk  <user@localhost.localdomain.org>

	* src/doveadm/doveadm-who.c:
	doveadm who: reformatted command output
	[c316e7198ae3] <HEAD>

2009-10-22  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 6b75cb16d427
	[2800d96a37c6] <HEAD>

	* .hgtags:
	Added tag 2.0.alpha2 for changeset 6b75cb16d427
	[1097194c5b1b] <HEAD>

	* NEWS, TODO, configure.in:
	Released v2.0.alpha2.
	[6b75cb16d427] [2.0.alpha2] <HEAD>

	* src/ssl-params/ssl-params.c:
	ssl_parameters_regenerate=0 wasn't disabling it.
	[6e8abac7a439] <HEAD>

	* src/imap/imap-settings.c, src/pop3/pop3-settings.c:
	shutdown_clients default should have been "yes".
	[46fb78ac0c46] <HEAD>

	* src/auth/auth-worker-client.c, src/auth/main.c:
	auth worker client deinit fixes.
	[e519b53b3f87] <HEAD>

	* 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] <HEAD>

	* src/lib/network.c, src/lib/network.h:
	Added net_connect_unix_with_retries().
	[1bc88aa1373f] <HEAD>

	* src/auth/auth-worker-client.c, src/auth/main.c:
	auth: Cleaned up auth worker client deinit code.
	[faf2339212b8] <HEAD>

	* 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] <HEAD>

	* configure.in:
	configure: Removed --with-sql-drivers parameter. I'm not sure what
	it tried to do.
	[3a32306aa473] <HEAD>

	* src/login-common/login-settings.c:
	login_greeting setting now supports %variables.
	[ae2d8b121f91] <HEAD>

	* 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] <HEAD>

	* src/doveadm/doveadm.c:
	doveadm: Reset getopt() after handling lib-master parameters.
	[383da67215d9] <HEAD>

	* src/doveadm/doveadm-who.c:
	doveadm who -1: Fixed filtering.
	[508f5536a0a7] <HEAD>

	* src/doveadm/doveadm-who.c:
	doveadm who: Added -1 parameter. Added connection's protocol.
	[257bb6f74138] <HEAD>

	* src/doveadm/doveadm-mail.c:
	doveadm: When iterating through all users, don't drop privileges
	permanently.
	[6fcc5a684b83] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Fixed iterating through all users.
	[9df00624855b] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Fixed getopt_string containing "+" GNU extension.
	[ef1ca7e1a9f9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* doc/example-config/conf.d/lda.conf:
	example-config: Added lda_mailbox_autocreate/_autosubscribe
	settings.
	[a173fa193324] <HEAD>

	* doc/example-config/conf.d/lmtp.conf:
	example-config: Added lmtp.conf.
	[c15659a9a3a6] <HEAD>

	* 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] <HEAD>

	* src/ssl-params/ssl-params.c:
	ssl-params: When generating parameters, run the process with
	priority +15.
	[0893112306d1] <HEAD>

	* src/imap/main.c:
	imap: Compiling fix.
	[38c307c7af2a] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail storage service: Returning "nice" from userdb again changes
	process priority.
	[8e3fd502d54e] <HEAD>

	* .hgignore:
	.hgignore updated.
	[dfbbbde95e5f] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap/pop3: Cleaned up initialization code.
	[ff200b8e4929] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap/pop3 now supports multiple connections/process, removed the
	restriction.
	[cb6dc691fa5a] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	settings_find_dynamic() now takes const pointer.
	[1eedcee69ce7] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Expunging last messages from mailbox caused crashing.
	[47e1756f6047] <HEAD>

	* 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] <HEAD>

2009-10-21  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/notify/Makefile.am:
	Makefile: Don't symlink notify plugin to subdirs. It's not necessary
	anymore.
	[3c87c0b18090] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	mail_storage_service_multi*() didn't use userdb lookup results.
	[545a9694dcb8] <HEAD>

	* src/lmtp/main.c:
	lmtp: Fixed crashing caused by recent API changes.
	[9c640a1eb8b6] <HEAD>

2009-10-20  Timo Sirainen  <tss@iki.fi>

	* doc/example-config/conf.d/master.conf, src/auth/Makefile.am:
	dovecot-auth binary renamed to auth.
	[915cd421895f] <HEAD>

	* src/lda/main.c:
	lda: Cleaned up parameter handling.
	[e248c1e53e00] <HEAD>

	* src/lib/ioloop-epoll.c:
	ioloop-epool: Panic on epoll_ctl() failures so it's easier to find
	the bug.
	[0598391a86e8] <HEAD>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-settings.c:
	mail_chroot can now contain %variables.
	[f6257036f7ef] <HEAD>

	* src/lib-storage/mail-user.c:
	Allow mail_users_init() without giving socket path.
	[92f2dac233b0] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	Don't allow relative home directory paths.
	[cb2882c142e1] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/master-settings.c:
	master: Don't remove auth-worker.* sockets at startup. They're no
	longer used.
	[1ae1d47aaef8] <HEAD>

	* src/imap/main.c:
	imap: Removed all dump-capability handling. We don't use it anymore.
	[1c166f7d673e] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-server-connection.c:
	lib-auth: Crashfix.
	[7df7b68ad503] <HEAD>

	* doc/example-config/conf.d/master.conf:
	example-config: Added '/' to "chroot=empty/" to make it clearer it's
	a dir.
	[f08cf2a07907] <HEAD>

	* src/master/service-process.c:
	master: Drop trailing '/' from services' chroot directory.
	[64bbf4296220] <HEAD>

	* doc/example-config/conf.d/ssl.conf, src/login-common/login-
	settings.c:
	ssl_ciphers_list: Disable anonymous and export ciphers by default.
	[c80eb856a742] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	lib-settings: Allow settings parsers with zero byte setting
	structures.
	[ac674fc9de57] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	lib-settings: Added settings_check() to check specific setting
	structure.
	[a16c9fbfe22c] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	settings_parser_get_list() returns now NULL-terminated list.
	[9cd71f3a6f96] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-fetch.c:
	QRESYNC: Fixed fallback handling to fetching expunged UIDs (again).
	[183373d83021] <HEAD>

	* 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] <HEAD>

	* src/imap/cmd-append.c:
	imap: If client disconnects while appending, don't treat the rest of
	the message as commands.
	[f3cdf16a31a5] <HEAD>

2009-10-19  Timo Sirainen  <tss@iki.fi>

	* src/master/service-process.c:
	master: Removed some unnecessary code.
	[57134fd23d4c] <HEAD>

	* 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] <HEAD>

	* src/master/service.c:
	master: service_signal() reimplemented using the service process
	linked list.
	[33c448ce13f9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/userdb-passwd-file.c:
	passdb-file: When iterating through users, skip empty lines and
	comments.
	[d3f59a7a8e03] <HEAD>

2009-10-17  Pascal Volk  <user@localhost.localdomain.org>

	* src/doveadm/doveadm-pw.c:
	doveadm pw: Use t_askpass() instead of getpass()
	[596a8ab6820e] <HEAD>

2009-10-18  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* configure.in:
	configure: FLEXIBLE_ARRAY_MEMBER value was reversed.
	[634588d51ae6] <HEAD>

2009-10-16  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-10-18  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-copy.c:
	mail_storage_copy(): Don't unreference keywords too many times.
	[755e6208d8ce] <HEAD>

2009-10-16  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/mbox-save.c:
	mbox: Write the last LF before fdatasync().
	[003a21d9e826] <HEAD>

	* 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] <HEAD>

	* doc/wiki/Makefile.am.in:
	doc/wiki/Makefile.am fix.
	[9110c752e32e] <HEAD>

	* src/lib-storage/index/mbox/mbox-save.c:
	mbox: Make sure failed saves get rolled back with NFS.
	[b0a871a899dd] <HEAD>

	* src/lib/ostream.c, src/lib/ostream.h:
	Added o_stream_get_buffer_avail_size().
	[ede6701cfe7a] <HEAD>

	* 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] <HEAD>

2009-10-16  Pascal Volk  <user@localhost.localdomain.org>

	* 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] <HEAD>

2009-10-15  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: looking up offset for transaction log's initial modseq
	failed.
	[1120a013da33] <HEAD>

	* src/plugins/expire/expire-plugin.c:
	expire: Mailbox names should be written to dict using their virtual
	name.
	[73ad4e348343] <HEAD>

	* doc/wiki/Makefile.am.in:
	--without-docs: make install no longer mkdirs wiki directory.
	[c38d2169eb5b] <HEAD>

	* doc/Makefile.am, doc/wiki/Makefile.am.in:
	--without-docs: make install no longer installs any docs.
	[f89bb026843f] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	Potential crashfix for OpenSSL < 0.9.8.
	[04f8e91fe0ec] <HEAD>

	* src/plugins/quota/quota-maildir.c:
	quota-maildir: Don't crash at startup.
	[646a7173ad3d] <HEAD>

	* 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] <HEAD>

	* doc/example-config/dovecot.conf:
	example-config: Updated listen setting's comment.
	[1d2d55d9779e] <HEAD>

	* doc/example-config/dovecot.conf:
	example-config: Updated listen setting's comments.
	[593433307e0a] <HEAD>

	* src/master/master-settings.c:
	master: inet_listener.address's default wasn't using "listen"
	setting.
	[8e531edac6e9] <HEAD>

	* src/lib-index/mail-index-view-sync.c:
	lib-index: Give nicer error if index's log position suddenly goes
	backwards.
	[359a4e4f0892] <HEAD>

	* src/plugins/fts/fts-plugin.c:
	fts: Fixed loading the plugin.
	[5cb810c55b4a] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: If mount=path isn't specified, don't fail with multiple
	quota roots.
	[14eeed133d57] <HEAD>

	* src/lib/ioloop-kqueue.c:
	ioloop-kqueue: Improved error messages.
	[ebebf0b447c7] <HEAD>

	* src/lib/istream-seekable.c:
	istream-seekable: If we can't write temp file, fallback to using
	memory without limits.
	[713e66a4cd07] <HEAD>

2009-10-14  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/lmtp-client.c:
	Compiler warning fix.
	[e8e508c44d6e] <HEAD>

	* src/lib-mail/test-mbox-from.c:
	mbox_from_parse() unit test fix.
	[0ae1bf609141] <HEAD>

	* 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] <HEAD>

	* doc/auth-protocol.txt:
	auth-protocol.txt: Updated version to 1.1.
	[17fefd7fe7b9] <HEAD>

	* src/auth/auth-master-interface.h, src/lib-auth/auth-client-
	interface.h:
	Increased auth protocol's minor version to 1.
	[9bf8e8fce7f7] <HEAD>

	* doc/auth-protocol.txt:
	auth-protocol.txt: Updated with the new cookie changes.
	[957dd8eb1e5a] <HEAD>

	* 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] <HEAD>

	* src/lda/main.c:
	lda: Escape local-part if it begins/ends with '.'.
	[b81f4a4076de] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Drop quotes around local-part in RCPT TO command if possible.
	[21a09d9105b2] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir_very_dirty_syncs=yes: Make sure uidlist shrinks eventually.
	[4996ca56a1ee] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Saving a mail after fast syncing caused slow sync the next
	time.
	[e7aa137f3a11] <HEAD>

2009-10-12  Timo Sirainen  <tss@iki.fi>

	* .hgsigs:
	Added signature for changeset 7dc28f9b899d
	[5cb162da8708] <HEAD>

	* .hgtags:
	Added tag 2.0.alpha1 for changeset 7dc28f9b899d
	[defd46cae8ad] <HEAD>

	* NEWS, TODO, configure.in:
	Released v2.0.alpha1.
	[7dc28f9b899d] [2.0.alpha1] <HEAD>

	* src/dsync/Makefile.am:
	Makefile.am: Some of test-dsync*.c files weren't included in
	tarball.
	[794604d4dd1a] <HEAD>

	* src/plugins/notify/Makefile.am:
	Makefile.am: notify-plugin-private.h wasn't listed correctly.
	[154f1b1fa5d6] <HEAD>

	* src/doveadm/Makefile.am:
	Makefile.am: Added missing doveadm.h
	[6aeb7528265b] <HEAD>

	* src/lib-storage/Makefile.am:
	Makefile.am: Added missing test-mail-storage.h
	[a1a6d91ec250] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Changed QUIT message: "Logged out" -> "Client quit".
	[4074f1bed39a] <HEAD>

	* src/config/config-parser.c:
	doveconf: When not expanding <file input, show the '<' prefix.
	[37e7c4454637] <HEAD>

	* src/config/doveconf.c:
	doveconf: -N doesn't require parameter.
	[6595049c53b2] <HEAD>

	* src/auth/passdb-bsdauth.c:
	bsdauth: And compile fix to previous change..
	[7440353dc617] <HEAD>

	* src/auth/passdb-bsdauth.c:
	bsdauth: Use PLAIN as default_pass_scheme instead of CRYPT.
	[f5c2bc161baa] <HEAD>

	* src/config/doveconf.c:
	doveconf: Improved "config not found" error.
	[92e1273cf55a] <HEAD>

	* doc/example-config/Makefile.am:
	"make install" now creates sysconfdir/dovecot/ directory.
	[762acf3cce32] <HEAD>

	* src/auth/passdb-bsdauth.c:
	bsdauth: Set default pass scheme to CRYPT.
	[21636cae54e6] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction-update.c, src/login-
	common/main.c:
	Removed some unused FIXME code.
	[499f5575d503] <HEAD>

	* 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] <HEAD>

	* src/lda/main.c:
	deliver: Don't escape addresses with "." in local-part.
	[e8fc7ee87410] <HEAD>

2009-10-10  Timo Sirainen  <tss@iki.fi>

	* src/login-common/login-settings.c, src/login-common/login-
	settings.h:
	Removed unused login_chroot setting.
	[d7b3ed9814cb] <HEAD>

2009-10-09  Timo Sirainen  <tss@iki.fi>

	* src/login-common/client-common.c:
	*-login: Close auth client connection after (proxying) process no
	longer needs it.
	[cf376fcbd6ff] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: If config fd is kept open, close it after last
	connection has been created.
	[40a71105529b] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Timeout reading configuration after 10 seconds.
	[ebe9b1e7a46b] <HEAD>

	* src/master/main.c:
	master: If config process doesn't exist when reloading config,
	create one to avoid hanging.
	[fa9d2204b453] <HEAD>

	* src/master/service-monitor.c:
	master: Delay starting up config process until it's actually needed.
	[364dc7ae87e4] <HEAD>

	* src/imap/imap-fetch.c:
	QRESYNC: Fixed fallback handling to fetching expunged UIDs.
	[60e8f45d71a7] <HEAD>

	* src/imap/imap-fetch.c:
	QRESYNC: Minor code cleanup by renaming variables to be more
	understandable.
	[6e109ea7b506] <HEAD>

	* src/master/main.c, src/master/service-log.c:
	master: Fixed reloading configuration.
	[940d11bc5039] <HEAD>

	* src/config/config-parser.c:
	config: key="<value" shouldn't treat value as file.
	[4442b6aa5a66] <HEAD>

	* src/lib-settings/settings-parser.h:
	Comment update.
	[6556754b6c24] <HEAD>

	* src/config/config-filter.c, src/config/config-parser.c:
	config: Conflict handling fix.
	[85e532d170cc] <HEAD>

	* 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] <HEAD>

	* src/master/service-monitor.c:
	master: Allow idle-killing the last service process, except anvil.
	[f14b6c68ddce] <HEAD>

	* src/master/service-anvil.c:
	master: Removed accidentally committed debug code.
	[20b8f66d9f4e] <HEAD>

	* src/master/main.c:
	master: If service user isn't specified, keep original gid instead
	of using 0.
	[e5fccc9d4831] <HEAD>

	* src/master/service-listen.c:
	master: Cleaned up chown() error logging: don't show -1 as 2^64-1.
	[59b985cd3aca] <HEAD>

	* src/master/service-monitor.c:
	Compiler warning fix.
	[4a2fa8ec5c8c] <HEAD>

	* src/master/main.c:
	dovecot --build-options: Added "Mail storages" list back.
	[7c091e3e0266] <HEAD>

	* src/master/main.c:
	dovecot --build-options: List nss if it's enabled.
	[90622fad99a0] <HEAD>

	* src/imap/imap-fetch.c:
	imap: Don't crash on SELECT .. QRESYNC if it didn't give seq-uid
	map.
	[0e27ce1b0c37] <HEAD>

	* configure.in:
	configure: Use cache for more checks.
	[e7f8f15f1c4c] <HEAD>

	* src/plugins/Makefile.am:
	plugins: mail_log links notify plugin now, so build notify first.
	[22fe48dbed89] <HEAD>

	* src/auth/mech-gssapi.c:
	auth: Fixed compiling with --with-gssapi=plugin
	[e62d4a8c6035] <HEAD>

	* doc/example-config/conf.d/mail.conf:
	example-config: dbox_* settings were renamed to mdbox_*.
	[80a99cd5148f] <HEAD>

2009-10-08  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/module-dir.c:
	module_dir_load(): Support <name>_dependencies array listing
	required modules.
	[bdd87f9ccccf] <HEAD>

	* 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] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* .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] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/lmtp-client.c:
	smtp client: Failure wasn't sent properly for more than one
	recipient.
	[2c703e55d247] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-modseq.c:
	Expunging messages caused in-memory modseqs to be wrong.
	[68869bf8aa31] <HEAD>

	* src/lib/array.h:
	Added array_foreach() and array_foreach_modifiable().
	[ada435a92e93] <HEAD>

	* src/ssl-params/Makefile.am:
	ssl-params: Don't put SSL_LIBS to dependencies.
	[c20d6f518451] <HEAD>

2009-10-07  Timo Sirainen  <tss@iki.fi>

	* src/ssl-params/ssl-params:
	Removed accidentally committed ssl-params binary.
	[0980d64f5bae] <HEAD>

	* src/ssl-params/main.c:
	ssl-params: Track client connection count correctly.
	[33532261ce0c] <HEAD>

	* src/master/service-anvil.c:
	master: Fixes to handling anvil service.
	[fb16190aa088] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings parser: copying boolean values also copied some unintended
	memory.
	[e19832d735aa] <HEAD>

2009-10-07  Pascal Volk  <user@localhost.localdomain.org>

	* .hgignore:
	ssl-params: dropped ssl-params binary / added to .hgignore
	[0d3bb7c55af1] <HEAD>

2009-10-07  Timo Sirainen  <tss@iki.fi>

	* src/ssl-params/main.c, src/ssl-params/ssl-params, src/ssl-params
	/ssl-params.c:
	ssl-params: Several bugfixes.
	[96d87de9eba9] <HEAD>

	* src/ssl-params/main.c, src/ssl-params/ssl-params:
	ssl-params: Name the program correctly.
	[d44e5ff84614] <HEAD>

	* src/login-common/client-common.c:
	*-login: Don't set connection fd to non-blocking twice.
	[bab48f48d64d] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	*-login: Read SSL parameters using the new ssl-params service.
	[79917d163689] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-client-connection.c:
	auth: VERSION should have been sent before MECH, not after.
	[9e28fcdc74ab] <HEAD>

	* src/log/log-connection.c:
	log: Don't use 100% CPU when log connection closes.
	[1aff70cee4d9] <HEAD>

2009-10-07  Pascal Volk  <user@localhost.localdomain.org>

	* src/master/main.c:
	master: Added --help option
	[22276a4717ca] <HEAD>

2009-10-07  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/master/main.c:
	master: Updated --help. Patch by Pascal Volk
	[9a09b4d6dbd2] <HEAD>

2009-10-06  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/log/log-connection.c:
	log: Log input wasn't read correctly.
	[ff4c83871f4d] <HEAD>

	* src/lib-master/master-interface.h:
	struct log_service_handshake: Removed unused max_lines_per_sec.
	[173435e81938] <HEAD>

	* 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] <HEAD>

	* configure.in, src/login-common/ssl-proxy-openssl.c:
	Compiling fix for OpenSSL 0.9.7 and older.
	[ba12a404d3b3] <HEAD>

2009-10-05  Timo Sirainen  <tss@iki.fi>

	* .hgignore, src/util/Makefile.am, src/util/authtest.c:
	Added authtest utility for doing passdb and userdb lookups.
	[87c40d1d2b6c] <HEAD>

	* src/lib-index/mail-index-view-sync.c:
	lib-index: Fixed v2.0 forwards compatibility support. Expunges were
	handled wrong.
	[309ef3136fa0] <HEAD>

	* 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] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: Root mail access wasn't properly disallowed.
	[a249daa4d960] <HEAD>

	* src/lib/Makefile.am:
	unicodemap.c now gets recreated if unicodemap.pl changes.
	[4d7c7f4b8ab6] <HEAD>

	* src/lib/failures.c:
	If info/debug log can't be opened, log about it to error log.
	[0af777d3e34a] <HEAD>

	* src/imap/cmd-list.c:
	LSUB "" %: List namespace prefix if namespace has separate
	subscriptions.
	[f68b322167d7] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-master.c:
	auth-master lookup: Give better error message on connect() EACCES
	errors.
	[8a1eef211ad6] <HEAD>

2009-10-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-service.c:
	Crashfix.
	[6a3667ea47d7] <HEAD>

	* src/lib/unichar.c, src/lib/unicodemap.pl:
	New UnicodeMap.txt has >16bit multi-decomposition keys, support
	them.
	[c89df0c0e313] <HEAD>

	* src/login-common/client-common.c:
	imap-login: "Disconnected for inactivity" should be sent as BYE.
	[22f1076b3d03] <HEAD>

2009-09-30  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/imap-proxy.c:
	imap proxy: Don't fail if LOGIN parameters were sent using literals.
	[aaf93388d061] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	master: Build help and --log-error message to stderr, not stdout.
	[e139e62cfa22] <HEAD>

	* src/lib/process-title.c:
	process_title_set(): Don't include executable name in
	setproctitle(), it's done internally.
	[4b18863b7213] <HEAD>

	* src/imap/imap-client.c:
	imap: Reduce command pool's initial size.
	[3441e6613ab4] <HEAD>

	* src/master/service-anvil.c:
	master: Fix to previous change, don't crash at service deinit.
	[907e781f7999] <HEAD>

	* 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] <HEAD>

	* src/master/service-listen.c:
	master: Use a hard coded backlog=128 when listen()ing.
	[65eb3d129bc9] <HEAD>

	* src/imap-login/imap-proxy.c:
	imap proxy: Don't log "unexpected input" errors about tagged
	CAPABILITY replies.
	[b381d3852d70] <HEAD>

	* src/login-common/main.c:
	*-login: fd limit wasn't set correctly.
	[0d5d10a3273c] <HEAD>

	* src/lib-index/mail-index.c:
	Avoid assert-crashing when two processes try to create index at the
	same time.
	[7aea0156986a] <HEAD>

	* src/config/config-parser.c, src/lib-settings/settings.c:
	Allow config file line lengths to be unlimited.
	[ab80ebdc6557] <HEAD>

	* src/lda/main.c:
	deliver: Changed all EX_CONFIGs to EX_TEMPFAILs to avoid bounces.
	[8342893350b2] <HEAD>

	* src/lib/fd-close-on-exec.c:
	fd_debug_verify_leaks() didn't check the last_fd.
	[4169c35b6285] <HEAD>

2009-09-29  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	ssl: If given ssl key is for a different cert, give a nicer error
	message.
	[53b2a88ee6d0] <HEAD>

2009-09-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-search-result.c:
	Assert-crashfix when updating saved search results.
	[dac192bbd97f] <HEAD>

	* src/lib-storage/mail-search.c:
	mail_search_args_init(): Added an assert.
	[92463a3c3af4] <HEAD>

	* configure.in:
	configure: Use mysql_config to find where mysql exists.
	[a22c9e8a01ae] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota.c:
	quota: Don't crash with non-Maildir++ quota backend. Patch by
	Brandon Davidson.
	[739d8d99bafe] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	login: ssl_security string now also shows the used compression.
	[9b4bb1a7d789] <HEAD>

2009-09-23  Timo Sirainen  <tss@iki.fi>

	* src/imap-login/client.h, src/imap-login/imap-proxy.c:
	imap proxy: Detect and log invalid remote input.
	[aedf642c8bc8] <HEAD>

2009-09-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-auth/auth-client-interface.h:
	auth: Increased AUTH_CLIENT_MAX_LINE_LENGTH.
	[49cd8e736a8a] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Use namespace prefix when looking up global ACLs.
	[6fac2ade5dd6] <HEAD>

	* src/plugins/acl/acl-mailbox.c:
	acl: Don't crash when creating children under a mailboxes with
	global ACL.
	[364ee96c6195] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-09-11  Timo Sirainen  <tss@iki.fi>

	* src/master/main.c:
	master: Use "master: " prefix in log messages.
	[accb1c02e03c] <HEAD>

	* TODO:
	TODO updated.
	[97d5c31dcc9e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	master: Startup warnings written to stderr should end with LF.
	[cb3760f21777] <HEAD>

	* src/master/main.c:
	master: "auth trouble" message should have been written only to
	stderr.
	[2f2e1a3ae633] <HEAD>

2009-09-10  Timo Sirainen  <tss@iki.fi>

	* src/config/doveconf.c:
	doveconf: Crashfix
	[9287d59dbf69] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/config/config-request.c:
	config: Increased initial memory pool size.
	[2e94a44c34ff] <HEAD>

	* src/login-common/client-common.c:
	*-login: Don't leak client when it's aborted while waiting for reply
	from master.
	[5bcb78c2eabb] <HEAD>

	* src/lib-dict/dict-sql.c:
	Compiler warning fixes.
	[b1857ba4347a] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Save cur/ mtime to index after moving saved messages there,
	not before.
	[d39dbfad7f69] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: Removed some unnecessary code.
	[317cb0a6744b] <HEAD>

	* src/lib/unlink-directory.c:
	unlink_directory(): Log if unlink()ing some file fails.
	[81011be1092f] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Don't force a resync when saving.
	[d20df975253a] <HEAD>

2009-09-09  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-09-08  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/failures.c, src/log/log-connection.c:
	Logging via log service: Added support for changing process's log
	prefix.
	[d7bbe0964b0d] <HEAD>

	* 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] <HEAD>

	* src/master/service-process.c:
	master: Require auth source and destination processes to use
	different UIDs.
	[6d3732cf8b3c] <HEAD>

	* src/master/service-monitor.c:
	master: When killing idle processes, don't kill the service's last
	one.
	[e5edd68453fe] <HEAD>

	* src/master/service-process.c, src/master/service.h:
	master: Minor cleanups.
	[3265d6e98c46] <HEAD>

	* src/master/service-monitor.c, src/master/service-process.c,
	src/master/service-process.h:
	master: Kill extra idling processes.
	[29ebf1c9ff26] <HEAD>

	* src/lib/lib-signals.c:
	lib-signals: Don't assert-crash with nested signal handler calls.
	[54c0c2c24f2c] <HEAD>

	* src/master/main.c:
	master: Write "last died with error" only to stderr, not to log.
	[88801acf025a] <HEAD>

	* src/master/main.c:
	master: SIGHUP now logs that config was reread.
	[329b1f01052a] <HEAD>

	* src/log/main.c, src/master/main.c:
	master: SIGUSR1 now reopens logs.
	[45e87a15cf48] <HEAD>

	* src/auth/auth-master-connection.c:
	auth: Allow PASS lookups also in userdb sockets, not just master
	sockets.
	[987d244a7a3e] <HEAD>

	* 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] <HEAD>

2009-09-07  Timo Sirainen  <tss@iki.fi>

	* src/plugins/notify/notify-storage.c:
	Removed unused code.
	[6e5cc5d4cec4] <HEAD>

	* src/login-common/login-proxy-state.h:
	Compiling fix.
	[7afe868ee86f] <HEAD>

	* src/lib/time-util.c, src/lib/time-util.h:
	Compiling fix.
	[21612b2b7b85] <HEAD>

	* src/master/main.c:
	master: Fixes to logging startup errors.
	[7675eb23bba8] <HEAD>

2009-09-06  Timo Sirainen  <tss@iki.fi>

	* src/auth/userdb-vpopmail.c:
	vpopmail: Call vauth_open(), which is required by vpopmail 5.5.0.
	[7681ae18ed03] <HEAD>

	* src/master/main.c:
	master: Log startup errors as well as writing them to stderr.
	[3d362066d0e8] <HEAD>

	* src/lib-storage/list/mailbox-list-subscriptions.c:
	Don't assert-crash when listing subscriptions with a >256 chars long
	mailbox name.
	[906dbaba14a9] <HEAD>

	* src/lib-dict/dict-client.h:
	lib-dict: Changed default dict socket name.
	[33855e50b4c7] <HEAD>

	* src/plugins/quota/quota-dict.c:
	dict quota: When updating quota, recalculate it when necessary.
	[a521d09c3ab9] <HEAD>

	* src/dict/dict-server.c, src/dict/dict-server.h:
	dict: Removed unused files.
	[54813ca63b26] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-file.c:
	lib-index: Minor code cleanup.
	[69152c0d40a1] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/anvil/anvil-connection.c:
	anvil: Recovered from my insanity and reverted changes to fifo
	reading code.
	[87fed6f0bbfe] <HEAD>

	* src/anvil/anvil-connection.c:
	anvil: Fixed reading from FIFOs.
	[52027b59beb5] <HEAD>

2009-09-04  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: shutdown_clients setting wasn't working.
	[e11bd2547bb2] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Don't assert-crash if process gets a signal while
	reading config.
	[3de6af0eb499] <HEAD>

	* 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] <HEAD>

	* src/login-common/main.c:
	*-login: If connecting to anvil fails with EAGAIN, try again a few
	times.
	[199857627883] <HEAD>

	* src/config/config-parser.c, src/config/config-request.c:
	config: Increased initial pool sizes.
	[831adf94c39f] <HEAD>

	* src/master/main.c:
	master: Changed the WhyDoesItNotWork info message.
	[6880916a8eef] <HEAD>

	* 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] <HEAD>

	* src/master/service-monitor.c, src/master/service-process.c:
	master: Check process_limit for auth dest processes. Log when
	reaching limit.
	[8a38b5b82a1d] <HEAD>

	* src/master/service-auth-server.c, src/master/service-auth-source.c:
	master: Fixed reporting auth failure reporting to client.
	[1cdee825e414] <HEAD>

	* src/lmtp/commands.c, src/plugins/expire/expire-tool.c,
	src/util/doveadm.c:
	lmtp, expire-tool, doveadm: Set service for config lookups.
	[464c01ae9f0c] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Make sure master_status.available_count is updated
	correctly.
	[63d2755c9211] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Execute doveconf with -f service=, not -p parameter.
	[3e20e23154e0] <HEAD>

2009-09-03  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/config/doveconf.c:
	doveconf: -f protocol is now an alias for -f service.
	[717688db5e82] <HEAD>

	* src/config/config-parser.c:
	config: Added some nesting requirements to remote_ip, local_ip and
	protocol.
	[d3d8ba13faa6] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	Added settings_parser_apply_changes() for copying changed settings.
	[2e502c0e23e7] <HEAD>

2009-09-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	Settings parser: Support keeping track of what settings were
	explicitly set.
	[649245b1552e] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	settings parser: Removed unused settings_parse_save_input().
	[2765e7fb2202] <HEAD>

2009-09-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-lda/mail-send.c:
	lda: Don't send rejects to any messages that have Auto-Submitted
	header.
	[1bb29c3fad82] <HEAD>

	* 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] <HEAD>

2009-08-31  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Don't crash if trying to change a message that was already
	expunged in backend mailbox.
	[faa19e000b57] <HEAD>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Allow selecting namespace prefix even when list=no.
	[39561fccb623] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* doc/example-config/conf.d/auth.conf, doc/example-
	config/conf.d/mail.conf:
	example-config: Moved auth_socket_path to mail.conf.
	[f5dcc960ab7a] <HEAD>

	* src/auth/main.c:
	auth: Use net_getunixname() instead of implementing it ourself.
	[4efd13c0f778] <HEAD>

	* src/lib/network.c, src/lib/network.h:
	Added net_getunixname().
	[95fba8612a87] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* dovecot-example.conf:
	dovecot-example.conf: Removed (most) settings that are no longer
	used.
	[3e9f77da6a6f] <HEAD>

	* dovecot-master-example.conf:
	dovecot-master-example.conf: Added some comments.
	[4bd18ca73175] <HEAD>

	* 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] <HEAD>

	* src/config/config-parser.c:
	config: Code cleanups.
	[a0ec16185806] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/Makefile.am, src/lib-lda/lmtp-client.c, src/lib-lda
	/lmtp-client.h:
	lib-lda: Added LMTP client code.
	[c3da5347b1c5] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-fetch.c:
	Minor code cleanup.
	[46adc15b33d9] <HEAD>

2009-08-28  Timo Sirainen  <tss@iki.fi>

	* src/lib-imap/imap-quote.c:
	imap_quote*(): If fix_text=FALSE and input contains CRs or LFs, use
	literals.
	[0b8492a4f219] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-copy.c, src/lib-storage/mail-storage-private.h:
	mailbox_copy() now sets mail_save_context.copying=TRUE.
	[9f5bbc4780a1] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Apparently all usernames end with NUL. Allow it.
	[7f05f59d4205] <HEAD>

	* src/imap/imap-fetch.c:
	qresync: Fixed off-by-one modseq comparison when figuring out what
	VANISHED replies to send.
	[9996521d883a] <HEAD>

	* src/imap/imap-fetch.c:
	imap: Don't crash if SELECT .. QRESYNC doesn't specify list of UIDs.
	[8f92498a6c88] <HEAD>

	* src/config/config-parser.c:
	config: Read auth_* settings correctly that don't exist inside auth
	{}
	[88246989a806] <HEAD>

	* src/auth/main.c:
	auth: More fixes to figuring out what type the auth socket is.
	[c9a111a50579] <HEAD>

	* doc/dovecot-ldap-example.conf:
	dovecot-ldap-example.conf: Changed the example "base" setting.
	[3d69f2392d5e] <HEAD>

	* src/lib/file-set-size.c:
	file_set_size() was broken with OSes that didn't support
	posix_fallocate().
	[865ad92d0eb3] <HEAD>

	* 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] <HEAD>

	* src/lib/lib-signals.c:
	Solaris: Don't crash when signal handler is called with
	siginfo_t=NULL.
	[11e3058af06c] <HEAD>

2009-08-25  Timo Sirainen  <tss@iki.fi>

	* src/auth/db-ldap.c:
	ldap: Don't log an error when server disconnects us because of
	idling.
	[fb555af36c0f] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync.c:
	maildir: Fixed maildir_sync_get_changes() to work as it should have.
	[830958d044ec] <HEAD>

2009-08-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/login-common/client-common-auth.c:
	*-login: If proxying is enabled but no host is given, don't crash.
	[211853d48eaf] <HEAD>

	* src/auth/main.c:
	auth: Don't crash at startup if auth socket name doesn't contain
	"-".
	[07e966c5e5d3] <HEAD>

	* src/auth/auth-worker-server.c:
	auth worker server: Don't assert-crash if the whole reply doesn't
	come in one packet.
	[fa76c740ee41] <HEAD>

	* src/master/main.c:
	master: If execv() fails with ENOMEM, mention the vsz_limit setting.
	[aad3157d52a1] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: If accept() fails and there are no clients, die instead
	of waiting forever.
	[41188b7db88a] <HEAD>

2009-08-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-mail.c:
	maildir: If opening a mail fails with EACCES, log a better error
	message.
	[3c33f864b4ae] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-master-connection.c:
	auth: Added PASS command for auth-master socket to do passdb
	lookups.
	[620183ce36f9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/mbox-snarf/mbox-snarf-plugin.c:
	mbox-snarf: Keep the mailbox locked while snarfing to avoid
	duplicates.
	[825fd2b3f48e] <HEAD>

2009-08-15  Timo Sirainen  <tss@iki.fi>

	* src/plugins/acl/acl-api.c:
	acl: When looking up ACL defaults, use global/local default files if
	they exist.
	[f906b5dbc5fb] <HEAD>

	* .hgignore:
	.hgignore: Added mailboxlogview
	[529b02c56ebe] <HEAD>

2009-08-14  Timo Sirainen  <tss@iki.fi>

	* src/plugins/listescape/listescape-plugin.c:
	listescape: Fixed to work with dynamically created shared
	namespaces.
	[051f2fd43558] <HEAD>

	* src/lib-storage/mail-namespace.c:
	namespace initialization: Allow plugins to override
	namespace.real_sep.
	[4acd3444ca43] <HEAD>

	* src/plugins/listescape/listescape-plugin.c:
	listescape: Handle properly subscriptions to namespaces with
	subscriptions=no.
	[f61dd34e3c35] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings parser: If first line begins with "ERROR ", return it as
	the error message.
	[4011a41cf404] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-test/test-common.c, src/lib-test/test-common.h:
	lib-test: Added test_istream_set_max_buffer_size().
	[0287c38ba6bf] <HEAD>

	* src/lib-settings/settings-parser.c:
	setting_parse_environ(): Don't crash if environ=NULL.
	[26a351f8ed07] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-08-13  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/listescape/listescape-plugin.c:
	listescape: Don't escape characters in namespace prefixes.
	[544a4627c81a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction-view.c:
	Transaction view: Don't assert-crash if record size grows during
	transaction.
	[3296870a8510] <HEAD>

	* dovecot-master-example.conf, src/master/service.c:
	master: Allow inet_listener address to specify multiple addresses.
	[252bb3d23fb9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Use new mail block sizes.
	[8a6d1d2db78c] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/istream-internal.h, src/lib/istream.c, src/lib/istream.h:
	Added i_stream_set_init_buffer_size().
	[85abd99007c3] <HEAD>

2009-08-12  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/login-common/client-common-auth.c:
	login proxy: Changed "unavailable" error message.
	[a260d5ac01bf] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/time-util.c:
	timeval_diff_*() fixes.
	[6ff08c7c9f03] <HEAD>

	* src/plugins/fts-squat/squat-test.c, src/plugins/fts/fts-storage.c:
	Use timeval_diff_*() more.
	[306e450a3515] <HEAD>

	* 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] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	Fixed openssl malloc() failure check.
	[78a47e564e90] <HEAD>

	* 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] <HEAD>

2009-08-11  Timo Sirainen  <tss@iki.fi>

	* src/lib/ostream-buffer.c:
	ostream-buffer: Don't grow buffer above max_buffer_size.
	[7c0b29275651] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c, src/lib/ostream-internal.h:
	Compiler warning fixes.
	[e5e74a4f07e9] <HEAD>

	* src/lib-mail/test-message-header-parser.c:
	test-message-header-parser: Removed accidentally committed debug
	code.
	[4168fd6a6a33] <HEAD>

2009-08-09  Timo Sirainen  <tss@iki.fi>

	* README, src/lib-imap/imap-resp-code.h:
	draft-gulbrandsen-imap-response-codes became RFC 5530.
	[70dab9dedda0] <HEAD>

2009-08-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Another fix to handling saves/UID changes.
	[299b55312e1c] <HEAD>

	* src/lib-storage/index/istream-mail-stats.c:
	istream-mail-stats: Don't double-reference parent stream.
	[815a76964e87] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync: Minor verbose logging improvements.
	[ab4e247d326d] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Don't assert-crash if we're changing UIDs without saving
	mails.
	[f36fbaeddbf8] <HEAD>

2009-08-09  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage.c:
	lib-storage: Don't crash if trying to use unknown storage class.
	[c2037505a66b] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mailbox-list.c:
	Don't crash when listing shared namespace prefix.
	[e616c3d00c2c] <HEAD>

	* src/plugins/autocreate/autocreate-plugin.c:
	autocreate: Fixed autosubscribing to mailboxes in subscriptions=no
	namespaces. Also log autosubscribe failures if mail_debug=yes.
	[e90fd94136d0] <HEAD>

2009-08-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/index-thread.c:
	IMAP: Fixed THREAD .. INTHREAD crashing. Also cleaned up the code a
	bit.
	[9ae6f4e875ca] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* configure.in:
	configure: Allow --with-linux-quota=n to be only 1 or 2.
	[48324f717aca] <HEAD>

	* src/lib-storage/index/index-sort-string.c:
	sort: Don't assert-crash if sort indexes are broken.
	[b7c589751c5b] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: If opening backend mailbox fails, show the maibox name.
	[2d2911c23232] <HEAD>

	* src/auth/db-ldap.c:
	ldap: Fixed hang when >128 requests were sent at once. Based on
	patch by Marek Miska.
	[c5cdc49d5138] <HEAD>

	* src/lib-storage/mailbox-list.c:
	lib-storage: Disallow control characters in mailbox names when
	creating them.
	[60b76a35bb2c] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	*-login: If OpenSSL fails with malloc failure, log an error.
	[2e725e1aaac6] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir+deliver: Add all existing messages to uidlist if it doesn't
	exist yet.
	[f108a865dbca] <HEAD>

	* src/master/ssl-init.c:
	Compiler warning fix when building without SSL.
	[95ea01bb65f5] <HEAD>

2009-08-06  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-08-05  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/util/Makefile.am, src/util/mailboxlogview.c:
	Added mailboxlogview utility for viewing mailbox logs.
	[d354dc450c63] <HEAD>

	* src/util/logview.c:
	logview: UID updates increase modseq.
	[1c0132ccb0be] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/ioloop-poll.c:
	ioloop poll: Added assert to catch double-io_add()s.
	[111812403bea] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	Maildir: Allow specifying recent flags for saved messages.
	[64ab55223d69] <HEAD>

	* src/lib-storage/index/index-mail.c:
	mail_update_flags(): Allow removing recent flag from message.
	[b7af600f0c62] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-08-04  Timo Sirainen  <tss@iki.fi>

	* src/login-common/ssl-proxy-openssl.c:
	ssl_username_from_cert=yes: Don't truncate username, don't allow
	NULs in it.
	[89a3b2d09a26] <HEAD>

	* src/imap/cmd-delete.c, src/imap/imap-commands-util.c:
	imap: Fixed tb-extra-mailbox-sep workeround.
	[497b2f2bd175] <HEAD>

2009-08-03  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: If saving fails, revert also changes to indexes. Fixes a
	crash in that situation.
	[5f2bcf817c94] <HEAD>

	* src/lib-index/mail-index-transaction-update.c:
	mail_index_expunge: Drop also modseq updates when expunging a newly
	appended record.
	[810a70b696fc] <HEAD>

	* 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] <HEAD>

	* src/Makefile.am:
	Removed unused "make test" handling.
	[bfa65235e772] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Don't recreate dovecot-uidlist all the time.
	[d7e915fc741c] <HEAD>

	* src/plugins/listescape/listescape-plugin.c:
	listescape: Fixed problems with handling mailbox listing.
	[ddc3593a2091] <HEAD>

	* 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] <HEAD>

2009-08-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/env-util.c, src/lib/env-util.h, src/lib/lib.c:
	lib_deinit() now frees memory used by env_put().
	[d48c8c0c1d29] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Don't access uninitialized variables.
	[140558f1987a] <HEAD>

2009-07-31  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* dovecot-example.conf:
	dovecot-example.conf: Fixed !include examples.
	[ad2852741fce] <HEAD>

2009-07-30  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Fixed to work again without crashing after several API
	changes.
	[20934905ccdc] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log.c:
	index: Fix to previous cleanups.
	[497b17e8bb91] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index.c:
	mail_index_chown(): Check for fchown() failing with EPERM, not
	EACCES.
	[37bdd5ce828f] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-07-29  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/file-dotlock.c:
	Fixed file_dotlock_open*() logging errors in some OSes. Patch by
	Ralf Becker.
	[03b52be4da81] <HEAD>

2009-07-28  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync-worker-local.c:
	dsync: Sync messages' modseqs.
	[535797d56631] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/mbox-save.c:
	mbox: Allow setting \Recent flag when also specifying message's UID.
	[d303e3319720] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	mbox, maildir: Allow setting \Recent flag when also specifying
	message's UID.
	[ceb55c870ed3] <HEAD>

	* 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] <HEAD>

2009-07-27  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Fixed to work with new mail_index_append_finish_uids() API.
	[ce253d167757] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/maildir/maildir-storage.c:
	maildir_list_iter_is_mailbox() should return 0 for non-existing
	maildirs.
	[80cf689acdb4] <HEAD>

	* 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] <HEAD>

	* src/plugins/expire/expire-tool.c:
	expire-tool: Compiler warning fixes.
	[77e629913bfc] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Error handling fix.
	[30652466135d] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Fixed compiling for non-MIT/Heimdal GSSAPI implementations
	(Solaris).
	[e4df9322a094] <HEAD>

	* configure.in:
	configure: clock_gettime()'s -lrt adding dropped everything else
	from $LIBS.
	[00399010c88a] <HEAD>

	* src/config/config-parser.c, src/lib-settings/settings.c:
	Compiling fix for systems without GLOB_BRACE.
	[3771a638cadb] <HEAD>

2009-07-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir uidlist: Added better next_uid error tracking.
	[ef1e18f24173] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync-index.c:
	maildir: When UIDVALIDITY changes, don't reset uid_next to 1 in
	uidlist.
	[05f2da3576a4] <HEAD>

	* src/plugins/quota/quota-maildir.c:
	maildir++ quota: Quota was sometimes updated wrong when it was being
	recalculated.
	[3d3d090db66f] <HEAD>

	* src/lib-index/mail-cache-lookup.c:
	cache file: If offset isn't 32bit aligned, assume it's corrupted.
	[436d2bead41b] <HEAD>

	* 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] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Don't do krb5_kuserok() to authz_name. It shouldn't be
	necessary.
	[c163bc483c9e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge: Drop \Deleted flag when moving message.
	[4fdc1fadb529] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Minor code cleanup.
	[3816c5011c53] <HEAD>

	* 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] <HEAD>

	* src/auth/passdb-pam.c:
	pam: Fixed compiler warning with BSDs.
	[5decb25661bd] <HEAD>

	* 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] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap/pop3: Compiling fix.
	[1780d56a9160] <HEAD>

	* src/lib-mail/test-mbox-from.c:
	test-mbox-from: Compile fix.
	[072b005181e8] <HEAD>

	* src/lib-storage/index/maildir/maildir-storage.c:
	Maildir LAYOUT=fs: Default INBOX path to Maildir root.
	[cc8c020707c1] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Support spaces in user/group identifiers.
	[f29a25420a82] <HEAD>

	* src/master/service-process.c:
	master: Handle better chdir()ing to home dir.
	[dfe15bb24fdb] <HEAD>

	* configure.in:
	configure: Check sasl.h existence only when using --with-ldap. Patch
	by Pascal Volk.
	[dc6d35b51b68] <HEAD>

	* configure.in:
	configure: Use -lrt for clock_gettime() if necessary.
	[cef143e8719d] <HEAD>

	* configure.in:
	configure: Support finding PostgreSQL without pg_config after all.
	[5714aba539f0] <HEAD>

2009-07-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mail-namespace.c:
	mail_location setting wasn't used if namespaces weren't defined.
	[1644c25bfbef] <HEAD>

	* src/imap/cmd-delete.c:
	imap delete: Use mailbox_backends_equal() for finding if we're
	deleting selected mailbox.
	[5024551304d9] <HEAD>

	* src/lib-storage/mail-storage.c, src/lib-storage/mail-storage.h:
	Added mailbox_backends_equal().
	[6b6d6e094674] <HEAD>

	* 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] <HEAD>

2009-07-21  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/utc-offset.c:
	utc_offset() was broken with year's first/last day if struct
	tm.tm_gmtoff didn't exist.
	[22ede7ce7be4] <HEAD>

	* src/lib-index/mail-index-transaction-view.c:
	Transaction view: Fixed getting extension data from messages whose
	flags had changed.
	[d1c159e447a2] <HEAD>

2009-07-20  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/shared/shared-storage.c:
	shared mailboxes: If only %%n is specified in prefix, default to
	current user's domain.
	[ab31f0f00912] <HEAD>

2009-07-17  Timo Sirainen  <tss@iki.fi>

	* src/dsync/dsync-brain.c, src/dsync/test-dsync-brain.c:
	dsync: Handle missing mail GUIDs.
	[16849c0931be] <HEAD>

	* src/lib-storage/mail-storage-private.h, src/lib-storage/mail-
	storage.h:
	mail_guid_128_is_empty() is now a public function.
	[3b285975bb15] <HEAD>

	* src/dsync/dsync-brain.c:
	dsync: Some fixes.
	[fb91695ec0bf] <HEAD>

	* src/auth/mech-gssapi.c:
	GSSAPI: Fixed memory leak on error conditions.
	[8c370896b657] <HEAD>

	* 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] <HEAD>

2009-07-16  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-07-15  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/test-hex-binary.c:
	Added missing test-hex-binary.c from earlier commit.
	[c4118cfa1085] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log.c, src/lib-index/mail-
	transaction-log.h:
	Added mail_transaction_log_get_tail().
	[c8be44ff1090] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-sync.c:
	IMAP: When QRESYNC is enabled, don't crash when a new mail is
	received while IDLEing.
	[4f9267f13944] <HEAD>

	* src/lib-storage/index/Makefile.am, src/lib-storage/index/test-index-
	fetch.c:
	Added unit test for mailbox_get_expunges().
	[85064a01ddfd] <HEAD>

	* src/lib-storage/index/index-fetch.c:
	Several fixes to mailbox_get_expunges().
	[ee69a1de3b30] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Compiler warning fix.
	[bbaa7a30b6cb] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Compiling fix.
	[d8792caeede1] <HEAD>

	* src/plugins/quota/Makefile.am:
	quota-fs: Building fixes.
	[4ea40abcc301] <HEAD>

2009-07-14  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction-finish.c:
	mail index transaction: Dropping duplicate expunges changed
	expunges' GUIDs.
	[e8b9f78d2b3c] <HEAD>

2009-07-13  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-view-sync.c:
	Mail index view syncs: Simplify code for getting list of expunges.
	[8c17eb6c28d6] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction-finish.c:
	Fix to previous flag update changes: Avoid crashes / infinite
	looping.
	[8bdfb66bf660] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction.c:
	Fixed expunging appended message that had atomic extension changes
	done.
	[2f54270904bf] <HEAD>

	* src/lib-index/mail-index.c:
	Previous commit accidentally removed mail_index_keywords_create().
	[d670b5d66302] <HEAD>

	* src/lib-index/mail-index-transaction.c, src/lib-index/mail-index.c:
	Moved mail_index_keywords_*() to mail-index.c.
	[ed9b4bc28913] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-07-27  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-fetch.c:
	IMAP: FETCH X-* parameters weren't working.
	[cf930dc6a7fe] <HEAD>

2009-07-10  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/bsearch-insert-pos.c, src/lib/bsearch-insert-pos.h:
	Added type safe array_bsearch_insert_pos().
	[5ab09480d6b4] <HEAD>

	* src/lib/array.c, src/lib/array.h:
	Added type safe array_bsearch().
	[55690917fefb] <HEAD>

	* src/plugins/expire/expire-env.c:
	expire: Log configuration at startup if mail_debug=yes.
	[26ff48e47764] <HEAD>

	* src/plugins/quota/Makefile.am:
	quota: Fixed compiling with older automakes.
	[e96ea07f1437] <HEAD>

2009-07-09  Timo Sirainen  <tss@iki.fi>

	* src/plugins/convert/convert-storage.c:
	convert plugin: Fixed changing hierarchy separators in mailbox names
	when alt_hierarchy_char isn't set.
	[c0914a6a2e36] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/acl/acl-backend-vfile-acllist.c:
	acl: Fixed previous mbox fix.
	[069679de3005] <HEAD>

	* src/master/service-process.c:
	master: Fail service if home directory path is relative.
	[155a5ddb26f3] <HEAD>

	* src/lib-storage/index/maildir/maildir-copy.c, src/lib-
	storage/index/maildir/maildir-save.c:
	Reverted changes committed accidentally in previous commit.
	[a032deb40060] <HEAD>

	* 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] <HEAD>

	* src/master/service-process.c:
	master: Give better error messages if UNIX uid/gid is too high/low.
	[771097ddce48] <HEAD>

2009-07-08  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Error message fix.
	[49bf801bf840] <HEAD>

	* src/dsync/test-dsync-brain.c:
	dsync: Improved brain unit test.
	[7de1407b4229] <HEAD>

	* src/dsync/dsync-brain.c, src/dsync/test-dsync-brain.c:
	dsync: Fixed uid conflict handling.
	[7b0bcf423fca] <HEAD>

	* src/plugins/quota/Makefile.am:
	quota-fs: Another compiling fix (for older autotools?)
	[2cd15c71923d] <HEAD>

	* src/lib/ioloop-notify-inotify.c:
	inotify: Give a better error message if user's watch limit exceeds.
	[556855724e6e] <HEAD>

	* src/lib/eacces-error.c:
	eacces_error_get*(): Show current directory if path is relative.
	[f564209e9396] <HEAD>

2009-07-07  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/expire/expire-plugin.c:
	expire plugin: If mail_debug=yes, log more debug information.
	[3788f3b0f9b2] <HEAD>

	* 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] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: dovecot-acl file caching fixes.
	[b64aa73a34dc] <HEAD>

	* src/plugins/acl/acl-backend-vfile-acllist.c:
	acl+mbox: Create also temp acllist file to control directory.
	[fd83d1f43ce5] <HEAD>

	* src/lib/safe-mkstemp.c:
	safe_mkstemp*(): Truncate prefix to original length if creation
	failed.
	[3f32abc198d6] <HEAD>

	* src/plugins/acl/acl-backend-vfile-acllist.c:
	acl+mbox: Create dovecot-acl-list to control dir.
	[ad43ac627724] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-storage.c:
	Compiling fix.
	[7a1da6de3cd8] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync.c:
	OSX+Maildir: Also don't log an error if readdir() fails with EINVAL.
	[41cebb4a3b0d] <HEAD>

	* 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] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Code cleanup.
	[44c2ba2ea75d] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Use *userok() functions only when authz_name != authn_name.
	Some more code cleanups.
	[43466b5b6869] <HEAD>

	* autogen.sh:
	autogen.sh: Look up config.rpath also from
	/usr/local/shared/gettext/.
	[38add5a084db] <HEAD>

	* 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] <HEAD>

	* src/auth/mech-gssapi.c:
	gssapi: Code cleanups. Logging error level changes.
	[07c4ddae1d47] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mail_location: Added support back for ~user/ expansion in paths.
	[520e408a4f6a] <HEAD>

	* src/plugins/quota/Makefile.am:
	quota-fs: Fixed previous "VPATH build" commit to work with all
	shells.
	[5d5cb8159954] <HEAD>

	* src/lib-storage/index/mbox/mbox-sync.c:
	mbox: Don't use UIDVALIDITY 1 for all new mailboxes.
	[d74d50dceeda] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: Default to user quota with NFS, not group quota.
	[7853731cb1c4] <HEAD>

2009-07-07  Matthias Andree  <matthias.andree@gmx.de>

	* 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] <HEAD>

2009-07-07  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/expire/expire-plugin.c:
	expire code cleanup: Use mailbox_get_vname().
	[2c90d6cf8b09] <HEAD>

	* src/plugins/quota/quota-storage.c, src/plugins/quota/quota.c:
	quota: Rules use virtual mailbox names now (as they always should
	have).
	[eda6f7c67058] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/auth-request-handler.c:
	auth: Ignore empty initial response strings.
	[90f8e2d091b5] <HEAD>

	* src/pop3-login/client-authenticate.c:
	pop3: Fixed AUTH PLAIN command when SASL initial response wasn't
	specified.
	[df84d8a0efbf] <HEAD>

	* src/lib/file-dotlock.c:
	file_dotlock_open_*() shouldn't try to fchmod() with no uid/gid
	change. Patch by Ralf Becker.
	[77b6f05df645] <HEAD>

2009-06-29  Timo Sirainen  <tss@iki.fi>

	* .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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-test/test-common.c:
	unit testing: If a warning or error is logged during unit test, fail
	it.
	[bf96497404f5] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-storage.c:
	dbox: Fixed setting mailbox GUID.
	[be220a26fc5e] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir: Code cleanups.
	[bb260536bdb5] <HEAD>

	* configure.in:
	Fixed building LDAP support as plugin. Patch by Paul Howarth.
	[49a1e47cb037] <HEAD>

2009-06-27  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Fixed inifinite looping.
	[986f8270a226] <HEAD>

	* src/plugins/acl/acl-mailbox.c:
	acl: When creating a new child mailbox, copy parent's ACLs to it.
	[43254b30c17f] <HEAD>

	* src/lib-storage/mail-storage.c:
	Fixed shared namespace initialization.
	[ac0a9729fe3c] <HEAD>

	* src/plugins/zlib/istream-bzlib.c, src/plugins/zlib/istream-zlib.c:
	zlib: Fixed error handling.
	[d2b2742dea75] <HEAD>

	* src/lib-dict/dict-sql-settings.c:
	dict sql: If pattern, table or value_field is unset, fail early with
	an error.
	[913f8a4bb043] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-sort-string.c:
	Mail sorting: Fixed potential excessive memory usage.
	[3f4ae64b27ac] <HEAD>

	* src/plugins/virtual/virtual-save.c:
	virtual: Fixed previous change.
	[8f74a0f149ad] <HEAD>

	* configure.in:
	configure --with-storages: Drop duplicate storages.
	[6350d105c34e] <HEAD>

	* src/plugins/virtual/virtual-save.c:
	virtual: Fixed saving messages with keywords.
	[56dc85882e9e] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/test-istream-dot.c:
	istream dot unit test fixes.
	[7e4fe0c07661] <HEAD>

2009-06-28  Daniel Mierswa  <impulze@impulze.org>

	* configure.in:
	Added --without-libcap configure option.
	[b20513ab8f5a] <HEAD>

2009-06-27  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/imap/imap-commands-util.c:
	Compiler warning fix.
	[5a413a1beb60] <HEAD>

	* 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] <HEAD>

	* src/lib/eacces-error.c:
	eacces_error_get(): Check also if user had write permissions to the
	given file.
	[8760bc0b1c3a] <HEAD>

2009-06-26  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-06-25  Timo Sirainen  <tss@iki.fi>

	* src/config/config-parser.c, src/lib-settings/settings-parser.c, src
	/lib-storage/mailbox-list.c:
	Increased some initial memory pool sizes.
	[29733d23d903] <HEAD>

	* src/lib-imap/test-imap-parser.c, src/lib-mail/test-istream-dot.c,
	src/lib-test/test-common.c:
	Improved test istream.
	[cdd6ef3c356c] <HEAD>

	* src/lib-mail/istream-dot.c:
	istream-dot fixes.
	[5ca3318cd3e2] <HEAD>

	* 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] <HEAD>

2009-06-24  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/mbox/mbox-save.c:
	mbox: Don't write garbage to mbox if message doesn't have a body.
	[d8556f68f6a7] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	Maildir saving: If GUID is specified, try to preserve it in the
	filename.
	[a1535b151afa] <HEAD>

	* src/auth/auth-worker-client.h:
	auth: Increased auth workers' max. input line length to 8192.
	[c8ff1a3722b7] <HEAD>

2009-06-23  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/config/config-request.c:
	config: Export also empty setting values also, if empty isn't the
	default.
	[498965c87314] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-namespace.c:
	Namespaces: Check alias_for namespaces after all namespaces have
	been parsed.
	[7ba2c40ed078] <HEAD>

	* src/lib-storage/mail-namespace.c:
	Don't (double) free mail_user if namespace initialization fails.
	[7c7ff145b171] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mailbox-list.c, src/lib-storage/mailbox-list.h:
	Mailbox list iteration: Added MAILBOX_LIST_ITER_SKIP_ALIASES flag.
	[87990dce79d4] <HEAD>

	* src/lib-master/master-service-settings.c:
	lib-master: Don't try to close(-1)
	[f5d95f4fd954] <HEAD>

	* src/lib/strescape.c, src/lib/strescape.h, src/lib/test-strescape.c:
	Added str_tabunescape().
	[aad42b172e1a] <HEAD>

	* src/lmtp/client.h, src/lmtp/commands.c:
	lmtp: Use dot istream for reading DATA input.
	[70b96df05e9a] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-commands-util.c:
	imap: Use imap_parse_system_flag().
	[0b7617d66ab1] <HEAD>

	* 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] <HEAD>

	* src/lib-imap/imap-parser.c, src/lib-imap/imap-parser.h:
	Inlined IMAP_ARG_*() macros' error handling functions.
	[a81dfcf5a78d] <HEAD>

	* src/lib-imap/test-imap-parser.c:
	imap-parser unit test fix.
	[5ef9cca6fa27] <HEAD>

2009-06-22  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/acl/acl-backend-vfile-acllist.c:
	acl: If dovecot-acl-list writing fails, delete it so it gets rebuilt
	later.
	[0cc9e2028580] <HEAD>

	* src/plugins/imap-acl/imap-acl-plugin.c:
	imap-acl: Handle empty rights (no rights) properly.
	[caf4e126670c] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Handle empty rights (no rights) properly.
	[e8b202fe3ef8] <HEAD>

	* src/lib-imap/imap-parser.c:
	imap_parser_read_args() didn't correctly return how many parameters
	were read.
	[fd7d2cb8fda6] <HEAD>

	* src/plugins/imap-acl/imap-acl-plugin.c:
	imap-acl: Command parameter reading wasn't done correctly.
	[a268f8fd89b7] <HEAD>

2009-06-21  Timo Sirainen  <tss@iki.fi>

	* src/lib/eacces-error.c:
	eacces_error_get*() works now properly when process's real uid !=
	effective uid.
	[e22e36a61fdd] <HEAD>

	* src/lib/restrict-access.c, src/lib/restrict-access.h:
	Added restrict_get_groups_list() for easily getting list of
	process's groups.
	[5074914f2dba] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-namespace.c:
	When accessing a shared namespace, don't change separators in
	mailbox name.
	[7bbae4008efd] <HEAD>

	* src/lib-storage/mailbox-list.c:
	mail_location: Allow using ":" characters in dir names by escaping
	it as "::".
	[1769b18aea5b] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	Mail storage service processes now sleep/die if time moves
	backwards.
	[b9f5982e68ee] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-06-17  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Crashfix to opening a newly created maildir.
	[ee874a76aaaf] <HEAD>

	* 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] <HEAD>

	* src/lib/array.c, src/lib/array.h:
	Added array_sort() for type-safe array sorting.
	[a6e1f054a808] <HEAD>

	* 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] <HEAD>

	* doc/solr-schema.xml, src/plugins/fts-solr/fts-backend-solr.c:
	solr: Don't use "any" copyfield, it doubles the index size.
	[1492d688d8a9] <HEAD>

2009-06-16  Timo Sirainen  <tss@iki.fi>

	* src/util/threadview.c:
	threadview: If mmap() fails, fail with an error instead of crashing.
	[a33722839adf] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Fixes to handling "." correctly in DATA.
	[a04a3ce0764e] <HEAD>

	* src/plugins/expire/expire-tool.c:
	expire-tool --test: Don't write LFs after timestamps.
	[acbbd522be43] <HEAD>

	* 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] <HEAD>

	* src/lib/strescape.c:
	str_append_unescaped() didn't unescape \\ correctly. The function
	wasn't used anywhere in Dovecot though.
	[464116e1d0ae] <HEAD>

2009-06-15  Timo Sirainen  <tss@iki.fi>

	* src/plugins/expire/expire-tool.c:
	expire-tool --test: Fixed timestamp logging.
	[d4ad8009a18b] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/cmd-rename.c:
	IMAP RENAME: If dest mailbox exists but source doesn't, fail with
	"Mailbox doesn't exist".
	[9291253df6de] <HEAD>

	* src/plugins/expire/Makefile.am:
	expire-tool, --without-shared-libs: Link mountpoint.o so quota
	plugin loading doesn't fail.
	[4d46c8517a90] <HEAD>

	* src/auth/auth-request.c:
	auth: Don't assert-crash if trying to log in as master user but with
	empty login username.
	[6462ba85d751] <HEAD>

	* src/lib/file-dotlock.c:
	safe_mkstemp() was used incorrectly. umask() no longer changes its
	behavior.
	[d394cca843a9] <HEAD>

	* src/lib-index/mail-transaction-log.c:
	Transaction log dotlocking ignored mail_nfs_index and
	dotlock_use_excl settings.
	[73aea4432453] <HEAD>

	* src/plugins/acl/acl-backend-vfile.c:
	acl: Don't assert-crash if removing all rights.
	[836646906a63] <HEAD>

	* src/imap-login/imap-proxy.c:
	imap proxy: Pass through to client unexpected untagged replies from
	remote server.
	[57a2431852f5] <HEAD>

	* src/imap/imap-status.c:
	IMAP: STATUS .. X-GUID returns mailbox GUID.
	[18caae3804e3] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-storage.c:
	Fixed using freed memory when opening mailboxes.
	[c0dd791aaaaa] <HEAD>

	* src/lib-storage/index/index-storage.c:
	Fixed opening mailbox when index directory didn't already exist.
	[7a63279e95ba] <HEAD>

	* 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] <HEAD>

2009-06-12  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-list.c:
	IMAP: Fixed LIST RETURN (STATUS ..) if namespace separator wasn't
	storage separator.
	[7b6fe859ec64] <HEAD>

	* src/lib-storage/mail-namespace.c, src/lib-storage/mail-namespace.h:
	Added mail_namespace_get_storage_name().
	[3111c362edff] <HEAD>

	* src/imap/cmd-list.c:
	IMAP: Fixed untagged error messages for LIST RETURN (STATUS ..)
	failures.
	[b09ad4858d22] <HEAD>

2009-06-11  Timo Sirainen  <tss@iki.fi>

	* src/util/Makefile.am, src/util/imap-utf7.c:
	imap_utf7: Renamed to imap-utf7. Also fixed usage error string to
	print LF.
	[a5f5584646ed] <HEAD>

	* src/lib-storage/index/mbox/istream-raw-mbox.c:
	mbox: Don't crash with invalid From_-lines.
	[1f7f7c0aa711] <HEAD>

2009-06-09  Timo Sirainen  <tss@iki.fi>

	* src/master/service-process.c:
	Compiler warning fix with non-Linux.
	[e03003e935b5] <HEAD>

	* src/lib-storage/test-mail-storage.h:
	Forgot to add test-mail-storage.h in an earlier comment.
	[df1d8e45c067] <HEAD>

2009-06-05  Timo Sirainen  <tss@iki.fi>

	* dovecot-example.conf:
	dovecot-example.conf: Changed auth_verbose comment.
	[f672303df2b6] <HEAD>

2009-06-04  Timo Sirainen  <tss@iki.fi>

	* TODO:
	TODO updated.
	[0aeea5034358] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Forgot to commit in previous API change commit.
	[19fc2147cc10] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-search.c:
	mail_search_args_simplify() no longer uses lib-index functions
	directly.
	[63f4a2825bbe] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/passdb-ldap.c:
	ldap: Fixed auth_bind=yes.
	[d9f5cc5365d1] <HEAD>

	* src/auth/auth-settings.c:
	auth: Fixed auth_debug_password -> auth_debug -> auth_Verbose
	cascading.
	[d86490ef27bd] <HEAD>

	* src/lib-mail/message-search.c:
	Message body search: Skip MIME boundaries and multipart footer.
	[227a64839587] <HEAD>

	* src/plugins/convert/convert-storage.c:
	convert plugin: After storage is locked, check another way to see if
	it still exists.
	[653bfe9ad192] <HEAD>

	* src/lib-master/master-service-settings.c, src/lib/module-dir.c, src
	/login-common/main.c:
	Increased some memory pool sizes.
	[1348d374e574] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	lib-storage: Avoid wasting data stack usage.
	[0a1f989bc5ad] <HEAD>

	* src/lib-storage/index/dbox/dbox-sync.c:
	dbox: When rebuilding dbox storage, reset recent flags to avoid
	assert-crashing.
	[563b17988ce1] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-sync.c:
	dox: When checking dbox header in sync, make sure we're using the
	latest index.
	[99a97c5c9912] <HEAD>

	* src/log/log-connection.c, src/log/log-connection.h, src/log/main.c:
	Fixed log process after recent lib-master changes.
	[0bf92fe23dea] <HEAD>

	* src/lib-storage/index/dbox/dbox-storage.c:
	dbox: Fixed creating new mailboxes.
	[97679435f892] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Non-listening processes should die when their std-client
	is destroyed.
	[d43232f22ace] <HEAD>

	* src/anvil/anvil-connection.c, src/anvil/anvil-connection.h,
	src/anvil/main.c:
	anvil: Fixed checking what the master connection is.
	[cab8f8009456] <HEAD>

2009-06-03  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Fixed crashing on deinit when listening on fifos.
	[e18fb0a361ef] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-06-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/imap/imap-commands-util.c:
	IMAP: Error handling fix for mailbox name validity checking.
	[438491c166cb] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Error handling fix. Don't expose hidden namespace names.
	[f8826c72f71b] <HEAD>

2009-06-01  Timo Sirainen  <tss@iki.fi>

	* src/lib-master/master-service.c:
	lib-master: When master dies, stop listening for new connections.
	[33727c70e89d] <HEAD>

	* src/auth/auth-client-connection.c:
	When auth client disconnected, it didn't update master service
	count.
	[ace6f94f60bc] <HEAD>

	* src/imap/main.c:
	imap: If CAPABILITY was used before login, "Logged in" was missing
	OK prefix.
	[02679d365af7] <HEAD>

	* src/imap/imap-fetch.c:
	IMAP FETCH: Previous change broke fetching RFC822*.
	[36311318a958] <HEAD>

	* src/imap/imap-fetch.c:
	IMAP FETCH: Binary searching fetch handlers was a bit broken.
	[befc876577e4] <HEAD>

	* src/imap/main.c:
	imap: After logging in, send CAPABILITY and tagged OK in the same IP
	packet.
	[8ecbc7fefeb2] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-05-31  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-index/mail-index.c, src/lib-storage/mailbox-list.c:
	More group permission handling fixes.
	[14ed9ca980d1] <HEAD>

	* 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] <HEAD>

	* src/imap/cmd-uid.c:
	IMAP: UID commands didn't set cmd->name properly. Patch by Richard
	Platel.
	[2e373584b0b9] <HEAD>

	* 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] <HEAD>

	* src/lib/mkdir-parents.c, src/lib/mkdir-parents.h:
	Added mkdir_chown().
	[4c44592de21e] <HEAD>

	* dovecot-master-example.conf:
	dovecot-master-example.conf: Added IPv6 listeners.
	[f4eca3bbd4ac] <HEAD>

	* 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] <HEAD>

	* src/plugins/expire/expire-plugin.c:
	expire-tool: Make sure expire plugin won't get used.
	[a7cb99756199] <HEAD>

	* src/lib-master/master-service.c, src/lib-master/master-service.h:
	lib-master: Added master_service_get_name().
	[84f96a722fcc] <HEAD>

	* src/plugins/expire/expire-tool.c:
	expire-tool --test: Log timestamps also in user-readable format.
	[1da29762c407] <HEAD>

	* src/lib-storage/index/maildir/maildir-mail.c:
	Maildir: Use i_stream_stat() instead of i_stream_get_fd()+fstat().
	Fixes zlib plugin.
	[b5f9a3387b5a] <HEAD>

	* configure.in:
	configure: If all passdb/userdb/sql drivers are compiled, don't
	print an empty line for them.
	[ab69375b8422] <HEAD>

	* doc/Makefile.am:
	thread-refs.txt was missing from release tarball.
	[1cfa4804ecbe] <HEAD>

	* src/lib-storage/index/index-thread-list.c:
	Removed unused code.
	[c5153391d689] <HEAD>

2009-05-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-service.c:
	mail_storage_service*() chdired to base_dir instead of user's home
	dir.
	[6a2660115d3d] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-05-28  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-config.c:
	virtual: If search rule is missing, use SEARCH_ALL.
	[11b8d0210b7a] <HEAD>

	* src/lib-storage/mail-search.c:
	mail_search_args_dup(): Don't return broken results if there are no
	search args.
	[16b4e9cfa1c9] <HEAD>

	* 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] <HEAD>

2009-05-26  Timo Sirainen  <tss@iki.fi>

	* src/lib-mail/Makefile.am, src/lib-mail/test-mbox-from.c:
	Added unit test for mbox-from.
	[82bb4c6a6d64] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/test-mail-transaction-log-view.c:
	mail-transaction-log-view compiling fix.
	[149f7c22217d] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service.c:
	DEBUG: lib-master no longer verifies fd leaks for programs running
	standalone.
	[674024d7bcb7] <HEAD>

	* src/lib-index/Makefile.am, src/lib-index/test-mail-transaction-log-
	append.c:
	Added unit test for mail-transaction-log-append.
	[ff9c8f94ee8d] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-append.c:
	Fixed bugs caused by recent mail-transaction-log-append refactoring.
	[50b879627fb1] <HEAD>

	* src/lib-mail/Makefile.am, src/lib-mail/test-message-header-parser.c:
	Added unit test for message-header-parser.
	[75a8a2a8103f] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/test-message-parser.c:
	test-message-parser: Improvements.
	[ca62d712d149] <HEAD>

	* src/lib-mail/test-message-parser.c:
	test-message-parser: Fixed and improvements.
	[54a56772aeb8] <HEAD>

	* src/lib-mail/message-parser.c:
	message_parser_init_from_parts(): Assert that
	MESSAGE_PARSER_FLAG_SKIP_BODY_BLOCK is set.
	[59bad3eabb93] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-sync.c:
	imap: Don't cancel sync if client disconnects in the middle. Fixes
	"Message count decreased" errors.
	[df12f1bc629f] <HEAD>

	* src/auth/auth-request.c, src/auth/passdb.c:
	auth: Improved "Password not in expected scheme" error message.
	[513691dbe21c] <HEAD>

	* src/lib-storage/mail-namespace.c:
	Fixed handling non-default namespace separators.
	[0b3225f7b3a6] <HEAD>

	* src/imap/main.c, src/pop3/main.c:
	imap, pop3: Fixed assert-crash on exit.
	[315a480f9942] <HEAD>

	* src/auth/mech-external.c:
	auth: Forgot to add mech-external.c in earlier commit.
	[976a4c9ca6b6] <HEAD>

	* src/plugins/virtual/virtual-mail.c:
	virtual: Don't assert-crash if trying to access an expunged mail.
	[304238bbd36c] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Fix to previous commit.
	[c920998cb44d] <HEAD>

	* 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] <HEAD>

	* src/plugins/convert/convert-storage.c:
	convert plugin: Don't crash after finishing conversion.
	[446ba4e8d37d] <HEAD>

2009-05-25  Timo Sirainen  <tss@iki.fi>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Virtual mailboxes shouldn't be counted in quota.
	[24fa8a39ec0b] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-05-25  timo  <timo@timo-desktop>

	* src/lda/main.c:
	lda: If temp file can't be created because home dir doesn't exist,
	create it.
	[b1c584654a0e] <HEAD>

2009-05-25  Timo Sirainen  <tss@iki.fi>

	* src/lda/main.c:
	lda: Log to specified log file, not to stderr.
	[ad0b052aef5e] <HEAD>

	* 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] <HEAD>

	* src/plugins/convert/convert-storage.c:
	convert plugin: If alt_hierarchy_char isn't specified, don't
	truncate mailbox names.
	[b7722e6ccccb] <HEAD>

	* src/plugins/convert/convert-tool.c:
	convert-tool didn't handle command line parameters correctly.
	[e76d521817d3] <HEAD>

	* src/lib-imap/imap-parser.c:
	imap-parser: Don't return early if line ends with CR but there's no
	LF.
	[704917a65a16] <HEAD>

	* src/lib-imap/Makefile.am, src/lib-imap/test-imap-parser.c:
	imap-parser unit testing started.
	[9297ae2ee45f] <HEAD>

	* 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] <HEAD>

	* .hgignore:
	.hgignore: Ignore all test-* binaries.
	[26cb0925f2c4] <HEAD>

	* dovecot-example.conf:
	dovecot-example.conf: Make it clear mail_log_group_events is
	boolean.
	[1aeb7fb9d1ea] <HEAD>

	* src/auth/Makefile.am, src/auth/mech.c:
	auth: Added support for EXTERNAL SASL mechanism.
	[8e7dcb58bd89] <HEAD>

	* src/auth/mech.c:
	auth: If initial SASL reply was given but empty, pass it to auth
	mechanisms.
	[116d94937979] <HEAD>

	* src/lib-mail/message-decoder.c:
	Message-decoder: Fixes to handling binary body parts.
	[fd3c13b9837b] <HEAD>

	* src/imap/imap-client.c:
	imap: Mailbox closing command shouldn't hang on waiting a delayed
	sync to finish.
	[46277443b90c] <HEAD>

	* src/lmtp/commands.c:
	lmtp: Handle MAIL FROM and RCPT TO parameters properly.
	[2784877c567c] <HEAD>

2009-05-24  Timo Sirainen  <tss@iki.fi>

	* src/imap/imap-client.c:
	IMAP: Make sure pending syncs are done before a mailbox-changing
	command is run.
	[2b95ca15f514] <HEAD>

2009-05-23  Timo Sirainen  <tss@iki.fi>

	* dovecot-example.conf:
	dovecot-example.conf: Drop _file from ssl_cert and ssl_key.
	[e448f770039f] <HEAD>

2009-05-22  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge plugin implements mailbox deletions now using
	mailbox_list_rename_mailbox().
	[8cf39c0b88d9] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings_parse_stream*() could have stopped after reading unknown
	settings.
	[9f2403f3e345] <HEAD>

	* src/imap/cmd-fetch.c:
	FETCH: If FETCH returned [EXPUNGEISSUED], it got stuck to all
	subsequent replies too.
	[8524ed76b929] <HEAD>

	* dovecot-master-example.conf, src/lmtp/main.c:
	Fixed LMTP server to actualy work.
	[7df8fddbc7a5] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/list/mailbox-list-fs.c:
	Mailbox renaming with LAYOUT=fs wasn't renaming control dirs if they
	were used.
	[79174ec42414] <HEAD>

2009-05-21  Timo Sirainen  <tss@iki.fi>

	* src/plugins/lazy-expunge/lazy-expunge-plugin.c:
	lazy-expunge plugin: Replaced maildir-specific expunge
	implementation with generic copy+expunge.
	[cf3f5258d47f] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-fetch.c:
	imap code cleanup: Use array instead of buffer for storing fetch
	handlers.
	[d6eda52bd74b] <HEAD>

	* 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] <HEAD>

	* src/auth/password-scheme.c:
	auth: Handle crypt() failing.
	[f595b68616e4] <HEAD>

2009-05-20  Timo Sirainen  <tss@iki.fi>

	* src/util/idxview.c:
	idxview: Show dbox record contents in human-readable form.
	[bc13674ac55f] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Fixed giving wrong map_uid_validity to new mailboxes.
	[e902652ce4eb] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-fetch.c:
	Added FETCH X-SAVEDATE. Based on patch by Alaa Ibrahim.
	[c47c961a9727] <HEAD>

	* src/lib-master/master-service.c:
	lib-master: Log to stderr by default when starting standalone.
	[e8f4e5acd932] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/mail-deliver.c:
	deliver_log_format: %s should contain subject in UTF8, not in MIME-
	encoded form.
	[6b06f4561fcb] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/db-ldap.c, src/auth/passdb-ldap.c, src/auth/userdb-ldap.c:
	auth: Fixed using ldap plugin.
	[94547703da25] <HEAD>

	* configure.in, src/master/main.c:
	dovecot --build-options: If SQL or LDAP was built as plugins, say
	it.
	[ed142749ce67] <HEAD>

2009-05-19  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-search.c:
	SEARCH INTREAD: Crashfix when deinitializing.
	[91b961fb07a5] <HEAD>

	* src/imap/imap-fetch-body.c:
	If FETCH gets too little message data, use "FETCH failed"
	disconnection reason.
	[a9ffb4614b5e] <HEAD>

	* src/lib/ostream-file.c:
	o_stream_send_istream(): Make sure istream->eof gets set after
	sending everything with sendfile().
	[a5bc58832be9] <HEAD>

	* src/lib/sendfile-util.c:
	safe_sendfile(): Error handling fixes for Linux and Solaris.
	[c96abc68b115] <HEAD>

2009-05-18  Timo Sirainen  <tss@iki.fi>

	* src/login-common/ssl-proxy.c:
	Fixed compiling without OpenSSL.
	[9c6597ba9e3e] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-05-17  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/env-util.c, src/lib/env-util.h:
	Added env_backup_*() for saving/restoring environment.
	[9bdd43acd083] <HEAD>

	* src/lib/env-util.c:
	env_clean(): Clear the environment memory pool also. We trust that
	nowadays our environment clearing code works everywhere.
	[6e80c8fb225e] <HEAD>

	* src/lib/env-util.c:
	env-util: Minor code cleanup.
	[92be0f90a9df] <HEAD>

	* src/lib-dict/dict-db.c:
	Berkeley DB dict: Transactions should be aborted with abort(), not
	discard().
	[1ab11ad931d0] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: Improved debug logging.
	[7344f1a53f0f] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-search.c, src/lib-storage/mail-search.h:
	Added mail_search_args_dup().
	[47d22004ea13] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Handle broken index files better.
	[9c7164014a11] <HEAD>

	* 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] <HEAD>

	* src/lib-sql/sql-pool.c:
	Dropping connections from sql connection pool could have crashed.
	[4ae7728a99f0] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Fixed several crashes.
	[78bf2b7276b0] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-thread-links.c:
	Message threading assert-crashfix.
	[789136ae7e21] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Assert-crashfix when opening mailbox.
	[b5889a18fb25] <HEAD>

	* src/lib-storage/index/index-search.c:
	Search: Added an assert.
	[34e4af1f5009] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/cmd-list.c:
	LIST: Previous prefix="", list=no change broke listing other list=no
	namespaces.
	[6e0ea2caf655] <HEAD>

2009-05-15  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-auth/auth-master.c, src/lib-auth/auth-master.h:
	lib-auth: Added auth_master_user_list_count().
	[602adc1f2f83] <HEAD>

	* src/util/doveadm.c:
	doveadm -v: Print progress counter.
	[468273e27777] <HEAD>

	* src/util/doveadm.c:
	doveadm: Memory usage improvements.
	[3d20388cee21] <HEAD>

	* src/lib-storage/mail-user.c:
	Use a larger initial "mail user" pool.
	[0fb684847ae1] <HEAD>

	* src/util/doveadm.c:
	doveadm: When iterating through all users, stop when receiving
	SIGTERM/SIGINT.
	[6df5bdefad00] <HEAD>

	* src/auth/userdb-sql.c:
	userdb sql: Fixed crashing when listing users.
	[41fda72aa80a] <HEAD>

	* src/lib-auth/auth-master.c:
	auth master: Fixed hanging when iterating through users.
	[3d628e998192] <HEAD>

	* src/auth/auth-master-connection.c:
	userdb listing: Don't crash with multiple userdbs.
	[de33ce3795da] <HEAD>

	* dovecot-example.conf, src/lib-storage/mail-storage-settings.c:
	mail_log_prefix default setting: Don't uppercase the service name.
	[7357b0da7589] <HEAD>

	* src/util/doveadm.c:
	doveadm: Added -a parameter to perform the operation to all users.
	[5ef2a14b4527] <HEAD>

	* 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] <HEAD>

	* src/lib-auth/auth-master.c, src/lib-auth/auth-master.h:
	lib-auth: Added support for iterating through all users.
	[77d6b5eb0963] <HEAD>

	* src/auth/userdb-passwd-file.c:
	userdb passwd-file: Fixes to user listing.
	[6557ed6fc4e1] <HEAD>

	* src/imap/cmd-append.c:
	APPEND: Don't assert-crash if message size parameter isn't given.
	[22369ac2c99c] <HEAD>

2009-05-14  Timo Sirainen  <tss@iki.fi>

	* src/login-common/ssl-proxy-openssl.c:
	login: Support per-connection ssl_cert/ssl_key.
	[a5973f031e7a] <HEAD>

	* src/imap-login/client.c, src/pop3-login/client.c:
	Crashfix to previous commit.
	[90312c7416c3] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings_dup(): Copy only the settings, leave the rest of the struct
	zeroed out.
	[8e7809057f85] <HEAD>

	* src/imap/imap-client.c:
	imap: When multiple commands are pipelined, try harder to combine
	their mailbox syncing together.
	[2da7dec937d4] <HEAD>

	* src/master/service-process.c:
	master: Improved "out of memory" error message.
	[e7a3c0e6ba0f] <HEAD>

	* dovecot-master-example.conf:
	dovecot-master-example.conf updated.
	[3dae622212f4] <HEAD>

	* src/master/service-process.c:
	master: vsz_limit wasn't being enforced.
	[435298234943] <HEAD>

2009-05-13  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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 <file, the setting value is read from the
	given file.
	[39c2db5f1fcc] <HEAD>

	* 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] <HEAD>

	* dovecot-example.conf:
	dovecot-example.conf: Clarified that commented sections or plugin
	settings aren't defaults.
	[f5b6974cbee7] <HEAD>

2009-05-12  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-pgsql.c:
	pgsql: We didn't read all the SQL packets replies from the server.
	[d467712aee77] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service.c:
	DEBUG: Preserve GDB environment when executing doveconf.
	[2eecf682262a] <HEAD>

	* src/lib-master/master-service.c:
	master services: When accepting connections, set them nonblocking.
	[f389f56a68a8] <HEAD>

	* src/auth/auth-settings.c:
	Compiler warning fix.
	[269cebf1aad4] <HEAD>

	* dovecot-master-example.conf, src/auth/auth-worker-server.c:
	Fixed using auth worker processes.
	[e5f4cce3ef7a] <HEAD>

	* src/auth/db-ldap.c:
	ldap: When using the same LDAP attribute multiple times, give an
	error message.
	[b4dcdc5ccd8e] <HEAD>

	* src/auth/db-ldap.c:
	LDAP: If LDAP_OPT_ERROR_STRING gives more information, log it.
	[11b6aab8a203] <HEAD>

2009-05-11  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings_parser_dup() fixes.
	[7604073a4ccc] <HEAD>

	* src/auth/auth-settings.c:
	auth settings: Make sure we have a section name defined.
	[5e80d667a827] <HEAD>

	* src/lib-test/test-common.lo, src/lib-test/test-common.o:
	test-common.l?o shouldn't have been added to hg.
	[36bdeba8f39a] <HEAD>

	* src/lib/data-stack.c:
	DEBUG: data-stack buffer overflow checking code was causing false
	positives.
	[8fc3639ef601] <HEAD>

2009-05-09  Timo Sirainen  <tss@iki.fi>

	* .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] <HEAD>

	* src/config/Makefile.am:
	config: Added missing header to Makefile.am
	[2090983d37fa] <HEAD>

	* src/lmtp/Makefile.am:
	lmtp: Added main.h to Makefile.am.
	[8e0ff6b00221] <HEAD>

	* src/Makefile.am:
	Makefile.am: anvil was missing from SUBDIRS
	[7919f307a5cd] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-view.c:
	Removed assert.
	[5e1a4020a277] <HEAD>

2009-05-07  Timo Sirainen  <tss@iki.fi>

	* src/lib-sql/driver-pgsql.c:
	pgsql: We hadn't called PQsetnonblocking().
	[0f03cd2679c6] <HEAD>

2009-05-06  Timo Sirainen  <tss@iki.fi>

	* src/config/config-parser.c:
	config: Code cleanup.
	[cbade54216a6] <HEAD>

	* configure.in:
	configure: Show also list of disabled passdbs/userdbs/sql drivers.
	[df8b1ae676fe] <HEAD>

	* configure.in:
	configure: Version number is nowadays 2.0, not 1.3.
	[e661cd70e425] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	master: Added dovecot stop and dovecot reload parameters.
	[64a7a1a3fe33] <HEAD>

	* src/lib-master/master-service-settings.c:
	Fixed running <path>/<binary> when building absolute path for
	doveconf -e.
	[031bfa5a8995] <HEAD>

	* src/master/main.c:
	dovecot: Fixed --parameters.
	[0b74ad9372d9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/config/config-request.c, src/lib-master/master-service-
	settings.h:
	config: Give master service settings to all requests.
	[c57038025171] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	dovecot: Forward dovecot -a, -n to doveconf.
	[955e68007ada] <HEAD>

2009-05-05  Timo Sirainen  <tss@iki.fi>

	* .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] <HEAD>

	* src/login-common/login-settings.c, src/login-common/login-
	settings.h:
	Removed login_dir setting. It's really not useful.
	[783a81c3deb7] <HEAD>

	* src/config/config-connection.c, src/config/config-connection.h:
	config: Removed unnecessary code.
	[770a02e0dbd2] <HEAD>

	* 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] <HEAD>

	* src/master/service.c:
	SERVICE_TYPE_AUTH_SOURCE wasn't used.
	[8f770c8ad198] <HEAD>

	* src/master/main.c, src/master/master-settings.c:
	Verify that service type string is known. Removed auth-destination
	type.
	[d83bfe8c38c2] <HEAD>

	* src/config/config-parser.c, src/config/config-parser.h,
	src/config/doveconf.c, src/config/main.c:
	doveconf/config cleanups.
	[e5303fd61b5c] <HEAD>

	* dovecot-master-example.conf:
	dovecot-master-example.conf updated.
	[e91bca10d5a1] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/auth/main.c:
	auth: Minor code cleanup.
	[b510683ab83c] <HEAD>

	* src/lib/failures.c, src/lib/failures.h:
	Added i_get_failure_handlers().
	[da94fa5953ec] <HEAD>

	* src/master/main.c:
	master: Check PID file existence at startup before doing anything.
	[b1c6b740a4a1] <HEAD>

	* src/master/service.c:
	services: If group isn't explicitly set, use user's primary group.
	[9e02485f6e3d] <HEAD>

	* src/pop3/main.c:
	pop3: Don't verify fd leaks here.
	[f41ce5378722] <HEAD>

2009-05-05  Mark Washenberger  <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] <HEAD>

	* 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] <HEAD>

2009-05-04  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	Fixed SSL parameter file reading in login processes.
	[5595d6d07a47] <HEAD>

	* dovecot-master-example.conf:
	Added names to services.
	[8d4b7abdcf3a] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/main.c:
	Minor error message fix.
	[7b110aa9fac5] <HEAD>

	* src/master/master-settings.c:
	service settings: Base relative chroots under base_dir.
	[66bb019c664c] <HEAD>

	* src/dict/dict-settings.c, src/lib-master/master-service-settings.c:
	settings_parser_check() return value was checked wrong.
	[189a92535cc7] <HEAD>

	* src/lib-storage/index/dbox/dbox-sync-rebuild.c:
	dbox: Compiling fix for previous maildir changes.
	[419b35be0823] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-mail/rfc2231-parser.c:
	Try to skip over errors in Content-Type parameters.
	[1cdee5c559ca] <HEAD>

2009-05-03  Timo Sirainen  <tss@iki.fi>

	* configure.in, src/lib/randgen.c:
	If /dev/arandom exists (OpenBSD), use it instead of /dev/urandom.
	[1849c4269ad8] <HEAD>

	* src/lib/primes.c:
	Compiler warning fix.
	[a035febf39d4] <HEAD>

2009-05-02  Timo Sirainen  <tss@iki.fi>

	* src/imap/cmd-idle.c:
	IDLE: Check DONE case-insensitively.
	[4067b6e7f515] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: Open the dovecot-virtual as readonly, we don't need to
	write to it.
	[10f2650ce56b] <HEAD>

2009-05-01  Timo Sirainen  <tss@iki.fi>

	* doc/Makefile.am, doc/dovecot-initd.sh:
	Added example init.d/dovecot script.
	[493de7a6d411] <HEAD>

	* src/lib-storage/index/shared/shared-storage.c:
	shared mailboxes: Don't crash if trying to open "shared/domain"
	namespace prefix as mailbox.
	[45ab7d730968] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	virtual: Don't show mailboxes as \Noselect.
	[f5eb54133c9d] <HEAD>

	* src/plugins/mbox-snarf/mbox-snarf-plugin.c:
	mbox-snarf plugin: Fixed memory/io leaking.
	[2e7503221cb7] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/mbox/istream-raw-mbox.c:
	mbox: Fix to handling CRs before From_ lines.
	[44bd81c9d11a] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: Allow search rules to begin with TAB instead of space.
	[39f66363ec56] <HEAD>

	* src/lib/file-dotlock.c:
	dotlocking: Don't generate "Will override dotlock in 0 secs"
	messages.
	[4f12a7c7f140] <HEAD>

	* src/lib/safe-mkstemp.c:
	safe_mkstemp()'s mode parameter didn't override umask as it was
	supposed to.
	[92d0383cc323] <HEAD>

2009-04-30  Timo Sirainen  <tss@iki.fi>

	* src/lib-dict/dict-file.c:
	dict-file: When replacing the dict file, preserve its permissions.
	[cc280979ea8d] <HEAD>

	* src/lib-storage/mailbox-list.c:
	When :MAILBOXDIR= was empty, we might have appended extra '/' to it,
	which caused problems.
	[c0c4e6e75366] <HEAD>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: When skipping subscriptions file, use the configured filename
	instead of hardcoded one.
	[430eabd745a1] <HEAD>

	* src/lib-master/master-service-settings.c, src/master/service-
	process.c:
	Fixed passing settings from userdb to mail processes.
	[f86e83fa9dd4] <HEAD>

	* src/lib-storage/index/maildir/maildir-sync.c:
	maildir: Don't assert-crash if we have no read-access to the
	Maildir.
	[dcad675890c1] <HEAD>

	* 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] <HEAD>

	* src/master/master-settings.c:
	master: Removed unused code.
	[afdeb38c338f] <HEAD>

	* src/master/service-process.c:
	Don't allow auth source/destination services to run as root.
	[bfe448b4951f] <HEAD>

	* src/master/service-log.c, src/master/service-process.c, src/master
	/service-process.h:
	master: Fixed logging process related bugs.
	[2f293c844e31] <HEAD>

	* src/config/config-connection.c:
	config: service names had an extra "service=".
	[150a98d2407c] <HEAD>

	* src/lib-dict/dict-file.c:
	dict-file: If file_dotlock_open() fails, log also the path.
	[ea0b68301004] <HEAD>

	* 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] <HEAD>

	* src/lib/array-decl.h:
	Defined ARRAY_TYPE(uint).
	[13bbdd7b15b8] <HEAD>

	* 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] <HEAD>

2009-04-29  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/mail-storage-service.c:
	mail-storage-service: Callmaster_service_init_finish().
	[cf026a9180f1] <HEAD>

	* src/lib-master/master-service-settings.c:
	master: Don't fail startup if the full path to dovecot wasn't in
	argv[0].
	[9ef2d07f786d] <HEAD>

	* 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] <HEAD>

	* src/util/rawlog.c:
	rawlog: If mail_debug=yes, log if dovecot.rawlog/ directory doesn't
	exist.
	[396cd2e86103] <HEAD>

	* src/lib-storage/mail-storage.c:
	Shared mailboxes: Fixed a bug where some mailboxes were added to
	root shared namespace.
	[fa8f044040e1] <HEAD>

	* src/lib-storage/index/maildir/maildir-uidlist.c:
	maildir: Don't show "* OK" messages about lock waits too early.
	[c9ca36745670] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	Virtual: If opening a virtual mailbox fails, don't leak
	memory/timeouts.
	[c26e1b2f32c0] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: If last search rule was invalid, we gave "Unknown error".
	[13698b875984] <HEAD>

	* dovecot-example.conf:
	dovecot-example.conf: Improved rawlog example.
	[6f4a4db41c44] <HEAD>

	* src/auth/db-ldap.c:
	ldap: If first request is over 60 seconds old while a new request
	comes, reconnect.
	[97984b1fd5f8] <HEAD>

	* src/login-common/ssl-proxy-openssl.c:
	ssl-proxy: Crashfix to previous commit.
	[39565c3eb1b3] <HEAD>

2009-04-28  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/index-search.c:
	Use the new mail_private.stats_* fields to stop non-blocking
	searches after about 250 ms.
	[9b8bf57405c8] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/index-search.c:
	Search: Perform all lookups from cache before attempting any
	uncached lookups.
	[3727bfc568b9] <HEAD>

	* 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] <HEAD>

2009-04-23  Timo Sirainen  <tss@iki.fi>

	* dovecot-example.conf, dovecot-master-example.conf:
	Added example dovecot-master.conf.
	[1cd9808147e3] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-04-22  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/imap-login/client.c, src/master/login-process.c:
	imap-login: Generated IMAP capability wasn't being used.
	[213c2f313bc1] <HEAD>

	* src/auth/main.c, src/master/master-settings.c:
	Don't crash if auth settings don't contain any sockets.
	[f8508e7aca6c] <HEAD>

	* src/imap-login/imap-proxy.c:
	imap-proxy: Don't break ID capability check if it's the last
	capability.
	[fa66e66850fa] <HEAD>

2009-04-21  Timo Sirainen  <tss@iki.fi>

	* src/lib-settings/settings.c:
	Settings parser: !included files without absolute paths are relative
	to their parent config file.
	[cab82d03d00d] <HEAD>

	* src/config/config-parser.c:
	Settings parser: !included files without absolute paths are relative
	to their parent config file.
	[92825cc9a59c] <HEAD>

2009-04-20  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/failures.c:
	Removed accidentally committed debug warning.
	[e3f61d434616] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Reversed the broken "fix" in previous commit.
	[fb8b7ebf0baf] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Some cleanups and fixes.
	[7c93e6c9cb0a] <HEAD>

	* src/lib/array.c:
	array_idx_clear() was broken when clearing an index outside the
	existing array.
	[9336cf20a96c] <HEAD>

	* src/imap/cmd-list.c:
	namespaces: list=children wasn't working correctly.
	[7c8fa884cd37] <HEAD>

	* src/lib-storage/index/shared/shared-list.c:
	shared mailboxes: LIST shared/% shouldn't list "%" entry.
	[1a49747f9445] <HEAD>

	* src/plugins/quota/quota-maildir.c:
	Maildir++ quota: Recalculation was broken if limits were defined by
	maildirsize file (and not quota_rules).
	[7be0a6c4bc6b] <HEAD>

	* src/lib-lda/mail-send.c:
	deliver: When forwarding messages, use -f parameter as return path
	and fallback to normalized Return-Path: header.
	[a3e0524e8af8] <HEAD>

2009-04-17  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/shared/shared-storage.c:
	Allow shared namespaces to have subscriptions=yes.
	[40607877c3f9] <HEAD>

	* src/plugins/fts-solr/solr-connection.c:
	fts-solr: Don't break with curl versions older than v7.17.
	[35c69f57621e] <HEAD>

	* configure.in, src/lib-storage/Makefile.am:
	configure --without-shared-libs: Don't link other libraries to
	libstorage.a.
	[43ce0506a90b] <HEAD>

	* src/master/main.c:
	Removed unused code.
	[761fc36e0e34] <HEAD>

	* src/lmtp/commands.c:
	lmtp: If mail is >128 kB, write it to a temporary file.
	[a80db92d296b] <HEAD>

	* 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] <HEAD>

2009-04-16  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/quota-maildir.c:
	maildir++ quota: Make sure we don't create maildirsize file to wrong
	namespace.
	[6284c1ff3e34] <HEAD>

	* src/plugins/imap-quota/imap-quota-plugin.c:
	imap-quota: Allow GETQUOTAROOT for public namespaces.
	[8517afb01903] <HEAD>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c:
	settings_dup() didn't copy STRLISTs.
	[be738988c8ab] <HEAD>

	* 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] <HEAD>

	* src/imap/main.c:
	imap: Initialize commands hash before plugins are initialized so
	they can register commands.
	[9ff1e79fffab] <HEAD>

	* src/lib-storage/mail-storage.c:
	When mailbox is successfully opened, mark its namespace as being
	usable.
	[dc220ff69fb8] <HEAD>

	* src/lib-storage/index/shared/shared-storage.c:
	shared mailboxes: Don't assert-crash if trying to look up "" user's
	mailboxes.
	[a061db71e166] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-sync.c:
	virtual: Crashfix. Also cleaned up the code a bit.
	[d33915e5da10] <HEAD>

	* .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] <HEAD>

	* src/lib-master/master-service-settings.h:
	Compiler warning fix.
	[749339f9d1df] <HEAD>

	* src/lib-lda/mail-deliver.c, src/lib-lda/mail-deliver.h:
	mail_deliver(): Support returning a destination mail.
	[b16ec327b266] <HEAD>

	* src/lib-storage/mail-storage-service.c, src/lib-storage/mail-
	storage-service.h:
	mail-storage-service: Fixes to handling multiple users.
	[03fe226e85d4] <HEAD>

	* src/lda/main.c:
	lmtp: Minor cleanup.
	[a9f61b63dc3d] <HEAD>

2009-04-15  Timo Sirainen  <tss@iki.fi>

	* src/master/login-process.c:
	Compile fix for old non-C99 compilers.
	[b1e9bb291e70] <HEAD>

	* src/lib-storage/index/index-search-result.c:
	Search result updating: Make sure search args are initialized.
	[755d3c958892] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-mail.c:
	virtual: Return original mailbox names with namespace prefix.
	[2ba85232848e] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-config.c:
	virtual: Fixed using !INBOX when INBOX wasn't in prefix=""
	namespace.
	[def8b99b1a02] <HEAD>

2009-04-14  Timo Sirainen  <tss@iki.fi>

	* src/plugins/fts-solr/fts-backend-solr.c:
	fts-solr: Fixes with virtual mailboxes.
	[4753aa4f1626] <HEAD>

2009-04-15  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-settings/settings-parser.c, src/lib-settings/settings-
	parser.h:
	Added settings_parser_dup().
	[a8dfff3ed857] <HEAD>

	* 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] <HEAD>

	* src/lib-lda/lda-settings.c, src/lib-lda/lda-settings.h:
	lda-settings doesn't need plugin_envs.
	[fdbc1902b4a9] <HEAD>

2009-04-14  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-04-13  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index.c, src/lib-index/mail-index.h:
	Removed duplicate mail_index_is_in_memory().
	[be8d15cb98e7] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-view.c:
	indexes: Added a new assert.
	[e2e481482c27] <HEAD>

	* 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] <HEAD>

	* dovecot-example.conf:
	dovecot-example.conf: Fixed mail_plugin_dir defaults.
	[748c0741b25b] <HEAD>

	* src/Makefile.am:
	lib-lda wasn't being built.
	[93dc8f46b4af] <HEAD>

	* src/lib-storage/index/maildir/maildir-save.c:
	maildir saving: If dovecot-uidlist reading failed, we might have
	gone forward and crashed.
	[98e2f0e3503e] <HEAD>

	* src/login-common/login-settings.c:
	Fix to "SSL support not compiled in" error message.
	[f6bbb5c6d57c] <HEAD>

	* .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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/master/master-settings.c:
	dovecot -n/-a shouldn't try to create login directory.
	[ebec4c879cc3] <HEAD>

	* src/master/syslog-util.c, src/master/syslog-util.h:
	Removed syslog-util.*, they were already moved to lib-master.
	[0f72263501c6] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/deliver/deliver.c:
	deliver: Code cleanup
	[1c3ca4aa62b2] <HEAD>

	* src/lib-storage/mail-user.c:
	mail_user_alloc() now duplicates also the unexpanded_set input
	settings.
	[31389897ca8c] <HEAD>

	* src/deliver/deliver.c:
	Fixed deliver -p.
	[e2f48d895420] <HEAD>

	* 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] <HEAD>

2009-04-11  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/util/doveadm.c:
	Removed unnecessary code.
	[a817f39d255f] <HEAD>

	* src/master/mail-process.c:
	dump-capability fix.
	[7ee8a3ea7b37] <HEAD>

	* src/lib-storage/index/mbox/mbox-storage.c:
	mbox: When doing autodetection, don't just create the missing mbox
	directory.
	[e77f2df8c666] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	Assume unknown settings returned by userdb lookup are plugin
	settings.
	[52bf76fa5b85] <HEAD>

	* src/lib-index/mail-index-map.c, src/lib-storage/index/shared/shared-
	list.c:
	Memory leak fixes.
	[eb8a2d17fd44] <HEAD>

	* src/lib-settings/settings-parser.c:
	Sort environment for settings in reverse order, or it won't work..
	[c77a3902dc5e] <HEAD>

	* src/lib-settings/settings-parser.c:
	Sort environ[] before feeding it to settings parser. This fixes
	running with valgrind.
	[dc3739ee4123] <HEAD>

	* src/util/maildirlock.c:
	Compile fix.
	[fb11dca591da] <HEAD>

2009-04-10  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Saving shouldn't give up so easily in using existing files.
	[c5ba9bc89ccb] <HEAD>

	* src/imap/client.c, src/imap/imap-settings.c,
	src/pop3/pop3-settings.c:
	Changed initial memory pool sizes.
	[8217998f8133] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-master/master-service.c, src/lib-master/master-service.h,
	src/util/doveadm.c:
	doveadm: Log to stderr.
	[4f64d429985a] <HEAD>

	* src/plugins/virtual/virtual-storage.c:
	Compiler warning fix.
	[52eb87931e91] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-service.c:
	Fixed problems with getting home directory.
	[daa079a90b66] <HEAD>

	* .hgignore, src/util/doveadm.c:
	Initial implementation of doveadm tool.
	[0b8009b5aff8] <HEAD>

	* 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] <HEAD>

2009-04-09  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib/restrict-access.c:
	restrict-access: If running as root, don't give "couldn't drop root
	group privileges" error.
	[ace05d7b6da0] <HEAD>

	* src/auth/auth-settings.c, src/auth/main.c:
	auth: Fixed listening in extra master/client sockets.
	[c1b201243d52] <HEAD>

	* src/lib-dict/dict-sql.c:
	dict-sql: Don't crash if iteration sees a NULL value in path.
	[40b5b098817b] <HEAD>

	* src/lib/restrict-access.c:
	restrict-access: Minor code cleanup.
	[af9ac89e0910] <HEAD>

	* src/lib/restrict-access.c:
	restrict-access: One more root dropping fix.
	[d591ee76ab9c] <HEAD>

	* src/master/dict-process.c:
	dict: Fixed crashes when dict process dies.
	[59165b07c874] <HEAD>

	* src/lib/restrict-access.c, src/lib/restrict-access.h:
	restrict-access: More fixes to root checking.
	[095837e6c073] <HEAD>

	* src/lib/restrict-access.c:
	restrict-access: Another fix to allow running processes as root.
	[1320550c00a2] <HEAD>

	* src/lib/restrict-access.c:
	Fix to previous restrict-access changes.
	[85a587bcc16f] <HEAD>

	* 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] <HEAD>

	* src/auth/mech-digest-md5.c:
	digest-md5: If client sent no input, log it as such instead of a
	more cryptic error.
	[25cf5d5b3d9c] <HEAD>

2009-04-08  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/login-common/main.c:
	Before starting imaps connections, check how full connection queue
	is.
	[f012c053aa5a] <HEAD>

2009-04-07  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/acl/acl-mailbox-list.c:
	Removed some unused code. Patch by Diego Liziero.
	[126a819f1fa7] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/shared/shared-storage.c:
	Shared mailboxes: If selecting prefix/<username>, try to open the
	user's INBOX.
	[5d3dd9eb82d9] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-storage.c:
	quota: Previous change broke other plugins.
	[e73f5828f8d8] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/mail-storage-settings.c, src/lib-storage/mail-
	storage-settings.h:
	Removed umask setting. It's no longer used.
	[a33777517e3a] <HEAD>

	* 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] <HEAD>

	* src/plugins/convert/Makefile.am, src/plugins/expire/Makefile.am,
	src/plugins/fts-squat/Makefile.am:
	Removed LIBICONV from unnecessary places.
	[17f06144e534] <HEAD>

	* src/lib-dovecot/Makefile.am:
	Link LTLIBICONV, not LIBICONV.
	[d249a28a6e1b] <HEAD>

	* src/plugins/quota/quota-storage.c:
	quota: Don't crash when modifying non-private namespaces.
	[792c3eb1e544] <HEAD>

2009-04-06  Timo Sirainen  <tss@iki.fi>

	* src/lib/lib-signals.c:
	FreeBSD compiling fix.
	[286ff5114588] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/quota/quota-fs.c:
	quota-fs: Compile fix for OSes without GRPQUOTA define.
	[bcca9c0385b7] <HEAD>

	* src/imap/imap-search.h:
	Compile fix: Include sys/time.h for struct timeval.
	[a5185de111a4] <HEAD>

	* 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] <HEAD>

	* src/master/mail-process.c:
	system_user -> system_groups_user change broke it completely.
	[d22e54cb4bda] <HEAD>

	* src/lib/module-dir.c:
	Compile fix when modules are disabled.
	[b9272de65955] <HEAD>

2009-04-03  Timo Sirainen  <tss@iki.fi>

	* src/plugins/quota/Makefile.am:
	rquota.x was missing from distribution tarball.
	[e4d1cc1d9b46] <HEAD>

	* src/lib-storage/index/index-mail-headers.c, src/lib-storage/index
	/index-mail.c:
	Compiler warning fixes on 64bit systems.
	[30db22205884] <HEAD>

	* src/plugins/quota/Makefile.am:
	Fixed quota compiling when using a separate build dir.
	[5650eba36f79] <HEAD>

2009-04-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/Makefile.am:
	Added missing dbox-map-private.h.
	[36e6adec9377] <HEAD>

	* src/auth/passdb-pam.c:
	pam: Compiling fix.
	[d2a1254e1e24] <HEAD>

	* 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] <HEAD>

2009-04-03  Timo Sirainen  <tss@iki.fi>

	* .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] <HEAD>

	* configure.in:
	This branch is v1.3.UNSTABLE.
	[fdcb1629ddcc] <HEAD>

	* .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] <HEAD>

2009-02-09  Timo Sirainen  <tss@iki.fi>

	* src/config/config-parser.c, src/config/config-parser.h,
	src/config/main.c:
	Removed some unnecessary code.
	[fb8f4adc61c4] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-02-03  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/master/mail-process.c:
	If mail_chroot is set, don't fail at startup in dump-capability.
	[0ed8a0f1b42b] <HEAD>

	* 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] <HEAD>

	* src/config/config-parser.c:
	config: Support !include and !include_try.
	[06015880f4c7] <HEAD>

2009-02-02  Timo Sirainen  <tss@iki.fi>

	* .hgignore, src/config/all-settings.h:
	all-settings.h was missing
	[b02e5a575db9] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-02-01  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-01-27  Timo Sirainen  <tss@iki.fi>

	* .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] <HEAD>

2009-04-03  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* TODO:
	Updated.
	[ffda403f7072] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-03-31  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-mail/message-size.c:
	Minor code cleanup.
	[639e16989018] <HEAD>

	* 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] <HEAD>

2009-03-30  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

2009-03-25  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-index/mail-index-modseq.c:
	mail_index_map_modseq_clone() caused memory corruption.
	[335b4d648c6f] <HEAD>

2009-03-02  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-03-25  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Don't allow copying the same message over 32768 times.
	[5ed59c9decaf] <HEAD>

	* 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] <HEAD>

2009-03-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-storage.c:
	dbox: No longer allow an empty MAILBOXDIR. Future code relies on
	this.
	[79928d158977] <HEAD>

	* 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] <HEAD>

2009-03-12  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

2009-03-23  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/util/idxview.c:
	idxview: SHow 16bit extension fields also as decimals.
	[48ea43893dfa] <HEAD>

	* src/lib-index/mail-index-transaction.c:
	mail_index_atomic_inc_ext() didn't handle multiple increments within
	a transaction.
	[e854f0140953] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Create missing storage directory automatically when needed.
	[314ea9000185] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Improved "Inconsistency in map index" error message.
	[5732e5a46cbb] <HEAD>

	* src/lib-index/mail-index-sync.c:
	mail_index_sync_get_offsets() now returns offset1 right.
	[dc858d9014ae] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-transaction-log-file.c:
	Don't reset modseqs when reseting index.
	[8f82eb1f5033] <HEAD>

	* 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] <HEAD>

	* src/util/idxview.c:
	idxview: Updated showing dbox data.
	[733e065099f5] <HEAD>

2009-03-20  Timo Sirainen  <tss@iki.fi>

	* src/lib/istream.c, src/lib/istream.h:
	Added i_stream_is_eof().
	[5deb3ee1d655] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-transaction.c, src/lib-index/mail-
	transaction-log-append.c:
	Removed some asserts that dbox code hits now.
	[c4ac37a70d58] <HEAD>

	* src/lib-index/mail-index-sync.c:
	Mailbox syncing: If syncing wrote to transaction log, update the
	tail offset to include them.
	[78644bad1263] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-sync.c, src/lib-index/mail-index.h:
	Added mail_index_sync_get_offsets().
	[b12ae0c97069] <HEAD>

2009-03-18  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-03-13  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/dbox-sync-file.c:
	dbox: More error handling.
	[a93c247f80dc] <HEAD>

2009-03-11  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/imap/imap-fetch-body.c, src/imap/imap-fetch.h:
	imap: Improve "FETCH .. got too little data" error messages.
	[f30dcf3f85cc] <HEAD>

2009-03-10  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib-storage/mail.c:
	Compile warning fix.
	[f8c2e4c437c9] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: When doing a cleanup, need to refresh map index after locking.
	[30a5b6c58793] <HEAD>

	* src/lib-index/mail-index-transaction-private.h, src/lib-index/mail-
	index-transaction.c:
	indexes: Removed unnecessary code.
	[e79ffa619bd1] <HEAD>

2009-03-09  Timo Sirainen  <tss@iki.fi>

	* src/lib-index/mail-transaction-log-file.c:
	Improved "corrupted transaction log file" error message.
	[c2f364d3f389] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Make sure we don't append to files that are already unlinked.
	[8dc36dbb74c8] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c, src/lib-storage/index/dbox
	/dbox-sync-file.c:
	dbox fixes
	[e71b29410395] <HEAD>

	* src/lib-index/mail-transaction-log-append.c:
	If indexes had been reset, extension changes may have been written
	wrong.
	[61795c86bce8] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-view-sync.c:
	indexes: Crashfix to error handling.
	[dc421589c090] <HEAD>

2009-03-06  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/dbox-file.c:
	dbox: Locking fix.
	[e6ea97e43753] <HEAD>

	* 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] <HEAD>

	* src/lib-index/mail-index-sync-ext.c, src/lib-index/mail-index-
	transaction.c:
	mail_index_atomic_inc_ext(): Added error checking.
	[ceb05b3db1d8] <HEAD>

	* src/util/idxview.c:
	idxview: Updated to show dbox message sizes.
	[b8774ddeaf7a] <HEAD>

2009-03-05  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Saving shouldn't close any files after all, otherwise locks
	are lost.
	[c3287bf89274] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-map.c:
	dbox: Don't close file we appended to if we're still reading from
	it.
	[a5f9f8b67066] <HEAD>

	* 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] <HEAD>

2009-03-04  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/plugins/virtual/virtual-mail.c:
	virtual: Fixed to work again after set_uid_cache_updates() addition.
	[0fc03e326ccc] <HEAD>

2009-02-25  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

2009-02-24  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* src/lib/ostream-file.c, src/lib/ostream-internal.h,
	src/lib/ostream.c, src/lib/ostream.h:
	Added o_stream_pwrite().
	[47076db1f911] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/util/idxview.c:
	idxview: Expand dbox map extension contents.
	[8d951b66a0e5] <HEAD>

	* src/lib/ostream-file.c:
	o_stream_send_istream(): Don't do backwards copying if the area
	doesn't really overlap.
	[334d29caa084] <HEAD>

	* src/lib/ostream-file.c:
	ostream: When copying backwards within a file, update in/outstream
	offsets.
	[3194ac1c6d75] <HEAD>

	* src/lib-index/mail-index-map.c:
	mail_index_map_ext_hdr_check(): Fixed a wrong check.
	[98c84ae0b659] <HEAD>

2009-02-19  Timo Sirainen  <tss@iki.fi>

	* src/util/idxview.c:
	idxview: Support specifying the name of dovecot.index file.
	[3ceb0878ab09] <HEAD>

2009-02-17  Timo Sirainen  <tss@iki.fi>

	* 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] <HEAD>

	* 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] <HEAD>

	* src/lib-storage/index/dbox/dbox-file.c:
	dbox: Removed some more unnecessary code.
	[0c600566d7ea] <HEAD>

2009-02-16  Timo Sirainen  <tss@iki.fi>

	* src/lib-storage/index/dbox/dbox-sync-rebuild.c:
	dbox: use mailbox uidvalidity file again for assigning new
	UIDVALIDITY.
	[60a6c6ff6873] <HEAD>

	* 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] <HEAD>

	* 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] <HEAD>

