]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Fri, 15 Jan 2016 13:12:30 +0000 (15:12 +0200)]
dsync: Fixed syncing subscription state with doveadm backup.
If DSYNC_MAILBOX_TREES_SYNC_TYPE_PRESERVE_REMOTE was set, we could still have
preserved the local subscription state. Also cleaned up the code a bit to
make it clearer.
Timo Sirainen [Fri, 15 Jan 2016 13:04:21 +0000 (15:04 +0200)]
imapc: Fixed mailbox name escaping for STATUS
Timo Sirainen [Thu, 14 Jan 2016 16:52:01 +0000 (18:52 +0200)]
imapc: Fixed mailbox name escaping for CREATE, DELETE, RENAME, SUBSCRIBE, UNSUBSCRIBE
Timo Sirainen [Thu, 14 Jan 2016 16:50:23 +0000 (18:50 +0200)]
imapc: Fixed escaping/unescaping mailbox names.
This fixes accessing mailbox names with '%' (the escape_char). It also fixes
local namespace separator being different from the remote separator.
Timo Sirainen [Thu, 14 Jan 2016 16:47:40 +0000 (18:47 +0200)]
lib-storage: Added mailbox_list_[un]escape_name_params()
This allows calling the mailbox_list_[un]escape_name() with wanted parameters
instead of taking them from mailbox_list.
Timo Sirainen [Thu, 14 Jan 2016 14:28:06 +0000 (16:28 +0200)]
imapc: Don't duplicate standard mailbox flags in LIST replies.
We added the standard \NoSelect, \NonExistent, \NoInferiors and \Subscribed
to special_use string, which caused them to be sent duplicated.
Timo Sirainen [Wed, 13 Jan 2016 12:30:03 +0000 (14:30 +0200)]
virtual plugin: Added support for filtering mailboxes by METADATA entries.
Usage:
<mailbox patterns as usual>
[-]/<metadata-entry-name>:<value-wildcard>
There can be multiple metadata entries. All the entries must match.
For example:
*
/private/vendor/vendor.dovecot/virtual:*
-/private/vendor/vendor.dovecot/virtual:ignore
This matches all mailboxes, which contain a virtual METADATA entry that has
any value except "ignore".
Note that the current implementation requires still opening all the mailboxes
before matching the METADATA entries. This could be avoided in v2.3 with some
lib-storage API changes.
Timo Sirainen [Wed, 13 Jan 2016 12:22:22 +0000 (14:22 +0200)]
lib-imap-storage: imap_metadata_get*() returned 1 also when value wasn't found.
Timo Sirainen [Wed, 13 Jan 2016 11:46:33 +0000 (13:46 +0200)]
virtual plugin: Cleaned up behavior of '!' prefix with '+' and '-'
It makes a bit more sense now. Mainly the difference is that "!foo*" means
to save mails to a mailbox called "foo*", instead of including mailboxes
matching "!foo*" pattern to the virtual mailbox. It's unlikely anyone was
relying on this behavior.
Timo Sirainen [Wed, 13 Jan 2016 11:41:05 +0000 (13:41 +0200)]
virtual plugin: Don't treat "+-box" as a negative entry.
This was already documented by wiki to work as a mailbox named "-box",
although it didn't actually work that way. There wasn't any practical
difference between "+-box" and "-box", so this change is unlikely to break
anyone's config. It was mainly done as code cleanup.
Timo Sirainen [Wed, 13 Jan 2016 11:31:54 +0000 (13:31 +0200)]
virtual plugin: Minor cleanup/fix - find the namespace after we have processed special prefixes.
We already skipped over them earlier, but the logic wasn't exactly the same
as when they were actually being processed, so there could have been some
unexpected mismatches.
Timo Sirainen [Wed, 13 Jan 2016 10:24:03 +0000 (12:24 +0200)]
global: freshen copyright
git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-5]/$1-2016/g;s/ (201[0-5]) Dovecot/ $1-2016 Dovecot/'
Timo Sirainen [Wed, 13 Jan 2016 09:22:20 +0000 (11:22 +0200)]
lib-storage: Fixed autoexpunge=yes to work with namespace's root mailbox.
namespace { mailbox "" { autoexpunge = .. } }
Teemu Huovila [Wed, 23 Dec 2015 12:45:08 +0000 (14:45 +0200)]
lib-fts: Create library for development packages.
Timo Sirainen [Mon, 11 Jan 2016 17:00:07 +0000 (19:00 +0200)]
lib: i_stream_get_error() now returns "EOF" if stream_errno==0 and eof==TRUE.
This can be used to replace a lot of code like:
input->stream_errno == 0 ? "EOF" : i_stream_get_error(input)
with simply:
i_stream_get_error(input)
Timo Sirainen [Sat, 9 Jan 2016 20:55:15 +0000 (22:55 +0200)]
Removed now-unused is-tagged.py
Timo Sirainen [Fri, 8 Jan 2016 16:12:21 +0000 (18:12 +0200)]
auth: Don't crash if passwd-file can't be opened
Timo Sirainen [Fri, 8 Jan 2016 15:04:27 +0000 (17:04 +0200)]
lib-settings: If SET_UINT_OCT has invalid value, we ignored the error and returned garbage value.
Timo Sirainen [Fri, 8 Jan 2016 15:02:56 +0000 (17:02 +0200)]
lib-settings: Fixed parsing '0' value for SET_UINT_OCT.
This was used only by service { *_listener { mode } }
Timo Sirainen [Fri, 8 Jan 2016 11:24:32 +0000 (13:24 +0200)]
lib-mail: message-parser was counting body_size wrong for truncated MIME headers after
7d800c55
Timo Sirainen [Thu, 7 Jan 2016 20:14:59 +0000 (22:14 +0200)]
lib-storage: mailbox_exists() shouldn't return INBOX as nonexistent if it's not created yet.
Timo Sirainen [Thu, 7 Jan 2016 20:02:18 +0000 (22:02 +0200)]
update-version.sh: Explicitly specify git directory.
Timo Sirainen [Tue, 5 Jan 2016 16:17:26 +0000 (11:17 -0500)]
pop3: Make sure pop3_lock_session=yes creates the lock's directory if it's missing.
This happened at least with mbox if the root .imap/ didn't exist yet.
Timo Sirainen [Tue, 5 Jan 2016 16:08:01 +0000 (11:08 -0500)]
auth: Fixed allow_nets=local to work correctly with non-local remote IP
Timo Sirainen [Tue, 5 Jan 2016 16:01:26 +0000 (11:01 -0500)]
imap: Don't hang at ambiguous commands when they were pipelined already before login
For example if all of these are sent in a single IP packet:
a login user pass
b select inbox
c noop
d unselect
Timo Sirainen [Mon, 4 Jan 2016 19:34:01 +0000 (14:34 -0500)]
imap: Avoid crashing at deinit if mail_user_unref() triggers mail_storage_callbacks
This could have happened with Maildir/mbox and autoexpunging.
Timo Sirainen [Mon, 4 Jan 2016 19:23:46 +0000 (14:23 -0500)]
lib-storage: Fixed autoexpunge for namespaces with non-empty prefix
Timo Sirainen [Mon, 4 Jan 2016 19:15:50 +0000 (14:15 -0500)]
auth: If allow_nets has an invalid value, don't attempt to compare it anymore.
This fixes a potential crash because net_is_in_network() was called with
garbage net_ip.
Timo Sirainen [Mon, 4 Jan 2016 19:10:44 +0000 (14:10 -0500)]
lib: Added unit tests for net_is_in_network() about IPv4-mapped IPv6 addresses
Timo Sirainen [Mon, 4 Jan 2016 19:00:19 +0000 (14:00 -0500)]
lib: Fixed assert-crash with net_is_in_network(family=ipv6, family=0, ..)
Timo Sirainen [Mon, 4 Jan 2016 18:51:34 +0000 (20:51 +0200)]
dict: Avoid a crash when dict connection is already closed when async lookup finishes.
Timo Sirainen [Mon, 4 Jan 2016 18:12:18 +0000 (13:12 -0500)]
imap: Make sure pending input is handled when a pending command has input locked.
This hopefully fixes the last assert-crash in client_check_command_hangs()
Timo Sirainen [Mon, 4 Jan 2016 17:40:39 +0000 (12:40 -0500)]
imap: Fixed crash in IDLE if DONE is received while sending large output to client.
Fixes assert-crash with backtrace:
Timo Sirainen [Mon, 4 Jan 2016 17:02:12 +0000 (12:02 -0500)]
lib-storage: mail_add_temp_wanted_fields() was reading already-freed memory.
This mainly happened with mail_log plugin enabled.
Timo Sirainen [Mon, 4 Jan 2016 16:47:24 +0000 (11:47 -0500)]
imap: Don't assert-crash if hibernation resumes IDLE, which sends a lot of data to client.
Timo Sirainen [Thu, 31 Dec 2015 02:26:01 +0000 (04:26 +0200)]
mysql: Don't require connect setting to have host-parameter if option_file is set.
The option_file could also specify the host.
Timo Sirainen [Wed, 30 Dec 2015 13:21:46 +0000 (08:21 -0500)]
lib-mail: message-parser wasn't returning hdr=NULL blocks after
078c2c8c
Timo Sirainen [Wed, 30 Dec 2015 13:21:24 +0000 (08:21 -0500)]
lib-mail: Small test-message-header-parser unit test update
Timo Sirainen [Mon, 28 Dec 2015 11:49:29 +0000 (06:49 -0500)]
dsync: Don't restrict what mailbox names can be created (except basic sanity checks)
The mailbox names already exist on the other side, so we don't want to add
arbitrary limits to them.
Timo Sirainen [Wed, 23 Dec 2015 09:48:12 +0000 (11:48 +0200)]
lib-http: Add more timing information to debug logs when HTTP connections get closed.
Timo Sirainen [Thu, 17 Dec 2015 03:52:03 +0000 (05:52 +0200)]
imap: Make static analyzer happier.
Timo Sirainen [Wed, 16 Dec 2015 13:37:26 +0000 (15:37 +0200)]
imap: Fixed potential assert-crash with command pipelining.
Should fix assert-crash:
Panic: file imap-fetch.c: line 554: assertion failed: (ctx->client->output_cmd_lock == NULL || ctx->client->output_cmd_lock == cmd)
Timo Sirainen [Wed, 16 Dec 2015 13:26:02 +0000 (15:26 +0200)]
doveadm-server: Added -D parameter to enable debugging at startup.
This mainly makes it show why plugin loads fail.
Timo Sirainen [Wed, 16 Dec 2015 13:25:22 +0000 (15:25 +0200)]
doveadm-server: Fixed loading doveadm plugins that use doveadm_dump_register()
Timo Sirainen [Wed, 16 Dec 2015 13:06:52 +0000 (15:06 +0200)]
lib-compress: lz4 istream wasn't detected reliably in some situations.
We requested too few bytes from istream, so there wasn't any guarantee that
the istream actually had all the bytes. This caused a problem for example
with mdbox when the previous mail was already fetched and the stream happened
to end in the middle of the lz4 header.
Timo Sirainen [Wed, 16 Dec 2015 12:11:04 +0000 (14:11 +0200)]
configure: Changed version number to v2.2.devel.
The actual version numbers live only on the release-branches from now on.
Timo Sirainen [Wed, 16 Dec 2015 09:59:41 +0000 (11:59 +0200)]
imap: Fixed potential crash when logging about pending commands at logout.
Timo Sirainen [Wed, 16 Dec 2015 09:29:36 +0000 (11:29 +0200)]
lib-dict: Improve EACCES error logging for dict-file.
Timo Sirainen [Tue, 15 Dec 2015 15:32:09 +0000 (17:32 +0200)]
lib-mail: message-parser didn't detect MIME part boundaries in the middle of MIME part headers.
Instead the --boundary line was thought to be part of the header itself.
Timo Sirainen [Tue, 15 Dec 2015 15:29:11 +0000 (17:29 +0200)]
lib-mail: message_header_parser_next() updates istream position immediately now.
Earlier it updated the position only on the next call or at deinit. This was
because some earlier code kept pointers to the stream data and stored them
to the returned struct message_header_line, but we don't do this anymore.
This allows more easily accessing the same istream for other purposes during
the header parsing.
Timo Sirainen [Mon, 14 Dec 2015 15:42:34 +0000 (17:42 +0200)]
lib: Avoid passing NULL to qsort() or bsearch() on empty array.
This wouldn't normally matter because count=0 so it wouldn't be dereferenced
anyway. But it triggered a run-time warning from clang, so lets fix it.
Timo Sirainen [Mon, 14 Dec 2015 10:36:23 +0000 (12:36 +0200)]
imapc: Removed commented out code.
It was probably accidentally committed debug code.
Timo Sirainen [Sun, 13 Dec 2015 19:25:32 +0000 (21:25 +0200)]
doveadm expunge: Using "all" parameter didn't work.
Timo Sirainen [Sun, 13 Dec 2015 10:33:20 +0000 (12:33 +0200)]
stats: Avoid assert-crash with dsync.
dsync creates two mail_users and they're deinited at the same time.
stats_global_user isn't set after the first one is deinited, so the next
deinit crashed because it wasn't set.
Fixes:
Panic: file stats-plugin.c: line 324 (stats_user_deinit): assertion failed:
(stats_global_user == user)
Timo Sirainen [Fri, 11 Dec 2015 15:40:36 +0000 (17:40 +0200)]
configure: Minor cleanup - avoid code duplication.
Timo Sirainen [Fri, 11 Dec 2015 15:39:05 +0000 (17:39 +0200)]
dovecot-config: Fixed setting LIBDOVECOT_LIBFTS[_DEPS]
Timo Sirainen [Fri, 11 Dec 2015 14:33:43 +0000 (16:33 +0200)]
director: Don't mark the host desynced if director is alone in ring.
Timo Sirainen [Thu, 10 Dec 2015 12:40:01 +0000 (14:40 +0200)]
director: Don't trigger a ring resync if only last_updown_change has changed.
Timo Sirainen [Thu, 10 Dec 2015 09:14:26 +0000 (11:14 +0200)]
Makefile: Make ChangeLog depend on .git/index instead of .git/ORIG_HEAD
ORIG_HEAD doesn't necessarily exist, so maybe index is good for this.
Timo Sirainen [Wed, 9 Dec 2015 17:40:18 +0000 (19:40 +0200)]
Switched .hgignore to .gitignore
Timo Sirainen [Wed, 9 Dec 2015 17:40:10 +0000 (19:40 +0200)]
Removed .hgsigs and .hgtags
Timo Sirainen [Wed, 9 Dec 2015 16:38:00 +0000 (18:38 +0200)]
Makefile, update-version.sh: Switched from hg to git.
Timo Sirainen [Wed, 9 Dec 2015 15:37:13 +0000 (17:37 +0200)]
TODO updated
Timo Sirainen [Wed, 9 Dec 2015 15:36:49 +0000 (17:36 +0200)]
acl: Empty lines and comments in dovecot-acl files weren't handled correctly.
Timo Sirainen [Wed, 9 Dec 2015 13:31:37 +0000 (15:31 +0200)]
virtual: Fixed assert-crash when opening virtual mailbox triggered backend mailbox autocreation.
Fixes assert:
Panic: file virtual-storage.c: line 335 (virtual_mailbox_opened_hook):
assertion failed: (!bbox->open_tracked)
Timo Sirainen [Wed, 9 Dec 2015 11:51:35 +0000 (13:51 +0200)]
lib-storage: Fixed mail_search_args_simplify() with empty args.
This fixes assert-crash in doveadm mailbox list.
Timo Sirainen [Wed, 9 Dec 2015 11:02:46 +0000 (13:02 +0200)]
director: If doveadm attempts to change tag for an existing host, return error.
Timo Sirainen [Wed, 9 Dec 2015 11:02:19 +0000 (13:02 +0200)]
doveadm director update: Tag can't be changed - don't allow -t parameter
Timo Sirainen [Wed, 9 Dec 2015 10:43:18 +0000 (12:43 +0200)]
imap: Added assert to make sure client_command_context isn't freed too early.
Timo Sirainen [Wed, 9 Dec 2015 08:49:22 +0000 (10:49 +0200)]
quota-fs: Fixed getting NFS rquota when the quota was disabled.
Timo Sirainen [Tue, 8 Dec 2015 13:47:28 +0000 (15:47 +0200)]
fts: When indexing header names with lib-fts, add them using "data" language.
Timo Sirainen [Tue, 8 Dec 2015 11:28:01 +0000 (13:28 +0200)]
fts: Fixed searching for HEADER "" with lib-fts
Timo Sirainen [Tue, 8 Dec 2015 11:23:19 +0000 (13:23 +0200)]
lib-storage: mail_search_args_simplify() handles now ALL better.
Timo Sirainen [Tue, 8 Dec 2015 11:13:24 +0000 (13:13 +0200)]
lib-storage: mail_search_args_simplify() code cleanup - allow merging first arg
Timo Sirainen [Tue, 8 Dec 2015 11:13:10 +0000 (13:13 +0200)]
lib-storage: Fix to
a776ee107aa2 - merged-flag wasn't reset between all args.
Timo Sirainen [Tue, 8 Dec 2015 10:55:40 +0000 (12:55 +0200)]
lib-storage: Code cleanup - moved BODY/TEXT "" optimization to mail_search_args_simplify()
Timo Sirainen [Tue, 8 Dec 2015 10:24:42 +0000 (12:24 +0200)]
lib-settings: Allow using comma as deflist separator.
This means that when adding new block {}s via e.g. userdb or post-login
script, the block names can now be set with block=a,b,c instead of
"block=a b c". This is beneficial with e.g. passwd-file or userdb
default_fields where spaces are used to separate parameters entirely.
Timo Sirainen [Tue, 8 Dec 2015 08:18:48 +0000 (10:18 +0200)]
quota-fs: Recalculate relative quota rules when FS limit changes are detected.
Timo Sirainen [Tue, 8 Dec 2015 08:17:10 +0000 (10:17 +0200)]
lmtp: Memory leak fixes on handling some RCPT TO failures.
Timo Sirainen [Mon, 7 Dec 2015 19:09:47 +0000 (21:09 +0200)]
Added signature for changeset
f833b8160e39
Timo Sirainen [Mon, 7 Dec 2015 19:09:38 +0000 (21:09 +0200)]
Added tag 2.2.20 for changeset
f833b8160e39
Timo Sirainen [Mon, 7 Dec 2015 19:09:35 +0000 (21:09 +0200)]
Released v2.2.20.
Timo Sirainen [Mon, 7 Dec 2015 14:06:15 +0000 (16:06 +0200)]
lib-ssl-iostream, login-*: Hide unnecessary "EVP_PKEY_get1_EC_KEY:expecting a ec key" errors.
Timo Sirainen [Mon, 7 Dec 2015 09:29:29 +0000 (11:29 +0200)]
doveadm: Fixed reseting getopt() with glibc when processing multiple commands in a single process.
This means commands run with doveadm batch or multiple commands in a single
doveadm-server connection.
glibc's getopt() man page says that optind=1 should reset it for scanning a
new argument vector, but this doesn't actually seem to work. Setting
optind=0 does work though, so use it everywhere.
Timo Sirainen [Mon, 7 Dec 2015 09:21:59 +0000 (11:21 +0200)]
doveadm-server: Reset getopt() before calling non-mail commands.
This fixes parsing their parameters when using multiple such commands within
a single doveadm connection.
Timo Sirainen [Sun, 6 Dec 2015 18:48:55 +0000 (20:48 +0200)]
lib-storage: mail_search_args_simplify() handles now "(a OR b) AND (a OR c)" -> "a OR (b AND c)"
Timo Sirainen [Sun, 6 Dec 2015 18:46:52 +0000 (20:46 +0200)]
lib-storage: mail_search_args_simplify() refactoring
Removed parent_arg from mail_search_args_simplify_extract_common_and() in
preperation for the next changeset.
Timo Sirainen [Sun, 6 Dec 2015 17:27:45 +0000 (19:27 +0200)]
lib-storage: mail_search_args_simplify() handles now "a AND (a OR b)" -> "a"
Timo Sirainen [Sun, 6 Dec 2015 17:26:44 +0000 (19:26 +0200)]
lib-storage: Make sure mail_sesarch_args_simplify_sub() is called enough times.
Timo Sirainen [Sun, 6 Dec 2015 17:25:20 +0000 (19:25 +0200)]
lib-storage: Minor test-mail-search-args-simplify unit test improvements
Timo Sirainen [Sun, 6 Dec 2015 16:14:08 +0000 (18:14 +0200)]
lib-storage: mail_search_args_simplify() handles now "(a AND b) OR (a AND c)" -> "a AND (b OR c)"
Timo Sirainen [Sun, 6 Dec 2015 16:12:24 +0000 (18:12 +0200)]
lib-storage: mail_search_args_simplify() handles now "a OR (a AND b)" -> "a"
Timo Sirainen [Sun, 6 Dec 2015 16:09:17 +0000 (18:09 +0200)]
lib-storage: Made mail_search_arg_[one_]equals() public.
Timo Sirainen [Sun, 6 Dec 2015 16:08:20 +0000 (18:08 +0200)]
lib-storage: mail_search_args_equal() ignored some differences.
- fuzzy flag
- MAIL_SEARCH_ARG_FLAG_USE_TZ
- INTHREAD thread type
Timo Sirainen [Sun, 6 Dec 2015 16:06:45 +0000 (18:06 +0200)]
lib-storage: mail_search_arg*_dup() didn't preserve fuzzy-flag.
Timo Sirainen [Sun, 6 Dec 2015 14:46:30 +0000 (16:46 +0200)]
lib-storage: SEARCH BODY "" wasn't properly being translated to SEARCH_ALL.
Instead if the next parameter was "" this happened (which could have been an
accidental space in doveadm search-query).
Timo Sirainen [Sun, 6 Dec 2015 14:09:55 +0000 (16:09 +0200)]
lib-storage: dovecot.index.pvt* ignored several settings.
mmap_disable=yes, dotlock_use_excl=yes and nfs_flush_index=yes weren't used.
Timo Sirainen [Sun, 6 Dec 2015 13:39:53 +0000 (15:39 +0200)]
quota-fs: File count limits with NetBSD shouldn't be multiplied by DEV_BSIZE
Timo Sirainen [Sun, 6 Dec 2015 13:10:10 +0000 (15:10 +0200)]
lib-charset: Added UTF-7 state checking unit test.
This was an idea of a way to test for a bug in FreeBSD iconv(), but nobody
reported if it did anything. So lets add it here and see.
Timo Sirainen [Sun, 6 Dec 2015 12:57:22 +0000 (14:57 +0200)]
lmtp: quota_full_tempfail=yes didn't work with lmtp_rcpt_check_quota=yes