]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Thu, 19 May 2016 20:19:29 +0000 (23:19 +0300)]
lib-mail: Fixed istream-header-filter calling callback(hdr=NULL)
It should do it on the following parsings as well if there were any
callbacks that were called, or if the hdr==NULL callback added any
headers. This is important because the hdr==NULL call could do some
cleanups.
Timo Sirainen [Thu, 19 May 2016 12:19:21 +0000 (15:19 +0300)]
lib: iostream-temp is a blocking ostream.
It goes either to in-memory buffer or to a file.
Baofeng Wang [Mon, 16 May 2016 08:34:05 +0000 (11:34 +0300)]
config: fix possible out-of-bound access in parsing function
Add low-bound check when decreasing string pointer from tail.
Timo Sirainen [Wed, 18 May 2016 19:38:24 +0000 (22:38 +0300)]
lib-fs: istream-metawrap can now safely have a readable fd
Timo Sirainen [Wed, 18 May 2016 19:36:57 +0000 (22:36 +0300)]
lib: Changed istream.abs_start_offset to be relative start_offset
i_stream_get_absolute_offset() walks through the stream's parents to get the
absolute offset. This allows streams to change their start_offset after
they have already created (e.g. istream-metawrap).
Timo Sirainen [Wed, 18 May 2016 19:59:06 +0000 (22:59 +0300)]
dict: Removed duplicate commit reply character
This broke dict-client with error:
Invalid commit reply, expected id=1: OO1
Timo Sirainen [Wed, 18 May 2016 19:51:46 +0000 (22:51 +0300)]
lib: Compiler warning fix
Timo Sirainen [Wed, 18 May 2016 19:51:31 +0000 (22:51 +0300)]
lib: Fixed memory leak in ostream-file unit test
Aki Tuomi [Wed, 18 May 2016 13:03:34 +0000 (16:03 +0300)]
Make libbsd optional
Also use setproctitle properly if libbsd is indeed used.
Timo Sirainen [Wed, 18 May 2016 19:26:50 +0000 (22:26 +0300)]
lib-fs: istream-metawrap can't have a readable fd currently
Timo Sirainen [Wed, 18 May 2016 19:26:23 +0000 (22:26 +0300)]
lib: ostream-file unit test: Test sendfile()
Timo Sirainen [Wed, 18 May 2016 19:12:01 +0000 (22:12 +0300)]
lib: ostream-file: Fixed o_stream_send_istream() within same file
When copying content backwards.
Timo Sirainen [Wed, 18 May 2016 18:46:46 +0000 (21:46 +0300)]
lib-imap-storage: Fixed fetching partial headers for message/rfc822 part
Again broken by
333602c40 .
Timo Sirainen [Wed, 18 May 2016 18:41:49 +0000 (21:41 +0300)]
lib-imap-storage: Don't sort uninitialized array on invalid header list.
Timo Sirainen [Wed, 18 May 2016 18:14:28 +0000 (21:14 +0300)]
lib-imap-storage: Removed wrong assert.
Now that we're no longer putting the headers through istream-header-filter
it doesn't necessarily have CRLFs. Broken by
333602c40 .
Timo Sirainen [Wed, 18 May 2016 11:56:59 +0000 (14:56 +0300)]
lib-mail: istream-header-filter - Don't return -2 too early
We returned -2 after we already added the data to the buffer. We should
have returned -2 only on the next read() call if nothing was skipped.
Timo Sirainen [Wed, 18 May 2016 11:52:03 +0000 (14:52 +0300)]
lib-mail: Added asserts to message_get_*_size()
Timo Sirainen [Wed, 18 May 2016 11:27:03 +0000 (14:27 +0300)]
lib-imap-storage: Don't double-filter HEADER.FIELDS (..) headers.
Timo Sirainen [Wed, 18 May 2016 11:24:55 +0000 (14:24 +0300)]
lib-imap-storage: Minor error logging cleanup/fix.
We read from input, not from mail_input. In theory it could have the actual
error instead of mail_input (although right now it couldn't).
Timo Sirainen [Wed, 18 May 2016 16:22:40 +0000 (19:22 +0300)]
lib: istream-file: Fixed o_stream_send_istream()
Timo Sirainen [Wed, 18 May 2016 15:51:55 +0000 (18:51 +0300)]
lib-http: Fixed checking if istream or ostream needs waiting.
Timo Sirainen [Wed, 18 May 2016 15:48:27 +0000 (18:48 +0300)]
lib: If epoll_ctl() fails, panic instead of just fatal.
This makes it easier to fix such bugs.
Timo Sirainen [Wed, 18 May 2016 15:44:10 +0000 (18:44 +0300)]
lib-mail: Improve ostream-dot unit test
Timo Sirainen [Wed, 18 May 2016 15:41:33 +0000 (18:41 +0300)]
lib: ostream-escaped: Fixed setting offset
Timo Sirainen [Wed, 18 May 2016 15:42:14 +0000 (18:42 +0300)]
lib: Added comment to what ostream.offset actually is
Timo Sirainen [Wed, 18 May 2016 14:56:55 +0000 (17:56 +0300)]
lib-fs: ostream-metawrap: Fixed o_stream_send_istream() offset updates
Timo Sirainen [Wed, 18 May 2016 14:45:09 +0000 (17:45 +0300)]
lib: Don't set ostream buffer as blocking
Timo Sirainen [Wed, 18 May 2016 14:42:06 +0000 (17:42 +0300)]
lib: iostream-temp: Fixed sending more output after o_stream_send_istream()
Timo Sirainen [Wed, 18 May 2016 14:41:32 +0000 (17:41 +0300)]
lib: iostream-temp: Fixed o_stream_send_istream()
Timo Sirainen [Mon, 16 May 2016 10:21:57 +0000 (13:21 +0300)]
Removed buffer_reset().
It was just a wrapper to buffer_set_used_size() and its comment was a bit
confusing (or obsolete), since it wasn't actually immediately zeroing out
the buffer.
Timo Sirainen [Mon, 16 May 2016 10:19:50 +0000 (13:19 +0300)]
lib: Updated buffer_set_used_size() comment and added unit test.
Timo Sirainen [Mon, 16 May 2016 18:03:35 +0000 (21:03 +0300)]
global: Simplify code with the new o_stream_send_istream() API
Timo Sirainen [Mon, 16 May 2016 17:17:41 +0000 (20:17 +0300)]
lib: istream-sized should log errors with its own name, not parent's name
Timo Sirainen [Mon, 16 May 2016 17:12:40 +0000 (20:12 +0300)]
imap: Code cleanup - use istream-sized for GETMETADATA reply
This avoids doing the same work explicitly.
Timo Sirainen [Mon, 16 May 2016 17:06:30 +0000 (20:06 +0300)]
global: Use o_stream_nsend_istream() where useful
We can skip all of the io error handling and just leave it to
o_stream_nfinish().
Timo Sirainen [Mon, 16 May 2016 17:04:38 +0000 (20:04 +0300)]
lib: Added o_stream_nsend_istream()
Timo Sirainen [Mon, 16 May 2016 16:48:41 +0000 (19:48 +0300)]
lib: Simplified and clarified o_stream_send_istream() API
Timo Sirainen [Mon, 16 May 2016 16:33:40 +0000 (19:33 +0300)]
lib: Added ostream.blocking boolean
Similar to istream.blocking.
Timo Sirainen [Mon, 16 May 2016 16:26:26 +0000 (19:26 +0300)]
lib: Don't silently ignore partial writes for o_stream_nsend()
Normally o_stream_nsend() should be used only for blocking streams or
streams with infinite (or "enough") buffer space.
Timo Sirainen [Mon, 16 May 2016 16:16:55 +0000 (19:16 +0300)]
lmtp: Fixed error logging when writing to temp file
Timo Sirainen [Mon, 16 May 2016 13:58:44 +0000 (16:58 +0300)]
lib: Removed ostream.last_failed_errno
It's been identical to ostream.stream_errno for a while now.
Timo Sirainen [Mon, 16 May 2016 13:55:34 +0000 (16:55 +0300)]
lib-compression: Changed impossible errors to asserts.
o_stream_flush() no longer calls the stream's flush() if stream has failed.
Timo Sirainen [Mon, 16 May 2016 13:27:53 +0000 (16:27 +0300)]
lib: istream-file: Code cleanup
No functional changes
Timo Sirainen [Mon, 16 May 2016 13:09:52 +0000 (16:09 +0300)]
global: Don't assume o_stream_send_istream() return bytes sent.
This won't be true soon after its API changes.
Timo Sirainen [Mon, 16 May 2016 12:49:08 +0000 (15:49 +0300)]
global: Use [io]_stream_get_error() insted of %m
Timo Sirainen [Mon, 16 May 2016 12:34:49 +0000 (15:34 +0300)]
global: Code cleanup - remove unnecessary errno changes.
These were left behind from changing %m to [io]_stream_get_error()
Timo Sirainen [Mon, 16 May 2016 12:22:11 +0000 (15:22 +0300)]
dbox: iostream error logging improvements.
Timo Sirainen [Mon, 16 May 2016 18:53:00 +0000 (21:53 +0300)]
global: Replaced all i_stream_read_data() with _more() and _bytes()
Timo Sirainen [Mon, 16 May 2016 18:51:56 +0000 (21:51 +0300)]
global: Fixed slighty wrong i_stream_read_data() with _read_bytes()
These calls were reading one byte more than they were intended to read.
This didn't really cause any problems, but now they're correct.
Aki Tuomi [Wed, 18 May 2016 06:33:15 +0000 (09:33 +0300)]
doveadm-mailbox-delete: Restore recursive parameter
Aki Tuomi [Wed, 18 May 2016 06:29:04 +0000 (09:29 +0300)]
dict: Fix crash when no dictionaries defined
Timo Sirainen [Mon, 16 May 2016 21:00:43 +0000 (00:00 +0300)]
imap: Include sync timing information in tagged command replies.
Show it only when it's larger than 0 to avoid unnecessary output.
Aki Tuomi [Tue, 17 May 2016 20:51:43 +0000 (23:51 +0300)]
doveadm-mail-mailbox: Whitespace fix
Aki Tuomi [Tue, 17 May 2016 20:31:29 +0000 (23:31 +0300)]
doveadm-mailbox: Add update subcommand
Timo Sirainen [Sun, 15 May 2016 11:53:24 +0000 (14:53 +0300)]
lib-mail: Fixed istream-header-filter callback's matched with eoh
Reversed the matched-parameter handling for hdr->eoh, so it's consistent
with non-eoh headers.
Timo Sirainen [Thu, 12 May 2016 21:45:34 +0000 (17:45 -0400)]
lib-ldap: Fixed assert-crash when killing LDAP connection.
libldap may have already closed the fd, so with epoll io_remove() would
try to remove it and crash with:
Panic: epoll_ctl(del, 12) failed: Bad file descriptor
Stephan Bosch [Mon, 16 May 2016 16:43:52 +0000 (18:43 +0200)]
uri-util: Changed URI host/authority parsing API to not use a boolean.
The boolean indicated whether the basic reg-name syntax or the more limited Internet host name syntax was to be expected.
This change creates separate functions for this.
Stephan Bosch [Mon, 16 May 2016 16:21:30 +0000 (18:21 +0200)]
uri-util: Two ATTR_NULL specifications were misplaced or wrong.
Stephan Bosch [Mon, 16 May 2016 16:19:24 +0000 (18:19 +0200)]
uri-util: The uri_parse_host_name_dns() would segfault if the hostname_r parameter was NULL.
Phil Carmody [Mon, 8 Feb 2016 17:30:39 +0000 (19:30 +0200)]
lib: istream - migrate more to i_stream_read_more()
More coccinelle semantic patching, again hand-checked.
git grep 'i_stream_read_data' | sed s/:.*// | \
while read f; do spatch --sp-file istream0.cocci --in-place "$f" ; done
-- 8< --- istream0.cocci ---
@@
expression e1, e2, e3;
@@
- i_stream_read_data(e1, e2, e3, 0)
+ i_stream_read_more(e1, e2, e3)
-- 8< --- end
Signed-off-by: Phil Carmody <phil@dovecot.fi>
Phil Carmody [Mon, 8 Feb 2016 17:26:20 +0000 (19:26 +0200)]
lib: istream - more migration to i_stream_read_bytes()
This time a coccinelle semantic patch, again hand checked:
git grep 'i_stream_read_data' | sed s/:.*// | \
while read f; do spatch --sp-file istream.cocci --in-place "$f" ; done
-- 8< --- istream.cocci ---
@@
expression e1, e2, e3, e4;
@@
- i_stream_read_data(e1, e2, e3, e4 - 1)
+ i_stream_read_bytes(e1, e2, e3, e4)
-- 8< --- end
Signed-off-by: Phil Carmody <phil@dovecot.fi>
Phil Carmody [Mon, 8 Feb 2016 16:55:32 +0000 (18:55 +0200)]
lib: istream - migrate to i_stream_read_bytes()
Scripted to pick off the low hanging fruit, one liners with an explicit
'-1' in the final parameter, but hand-checked.
git grep 'i_stream_read_data.*, [^,]*- \?1)' | sed s/:.*// | \
xargs sed -i -e 's/i_stream_read_data(\(.*\), \(.*\), \(.*\), \(.*[^ ]\) \?- \?1)/i_stream_read_bytes(\1, \2, \3, \4)/'
Signed-off-by: Phil Carmody <phil@dovecot.fi>
Phil Carmody [Mon, 8 Feb 2016 16:43:32 +0000 (18:43 +0200)]
lib: istream - migrate to i_stream_read_more()
Scripted to find all the low-hanging-fruit (single line calls), but hand-checked:
git grep i_stream_read_data.*,\ 0\) | sed s/:.*// | \
xargs sed -i -e 's/i_stream_read_data(\(.*\), \(.*\), \(.*\), 0)/i_stream_read_more(\1, \2, \3)/'
Signed-off-by: Phil Carmody <phil@dovecot.fi>
Phil Carmody [Mon, 8 Feb 2016 16:32:10 +0000 (18:32 +0200)]
lib: istream - provide alternatives to i_stream_read_data()
Providing as a parameter the number of bytes that you would be
disappointed to receive was confusing compared to providing the
number that you would be happy to receive. This lets us get rid
of all the '-1's in the callers. The callers which used 0 as
a parameter were so common that it's worth providing a separate
API just to simplify their demands.
Deep down, these are still the same underlying function. Currently
we route the new API through the old one, but eventually, the old
API can be routed through the new one, so that the friendlier
interface has the simplest implementation.
Signed-off-by: Phil Carmody <phil@dovecot.fi>
Stephan Bosch [Sat, 14 May 2016 22:22:12 +0000 (00:22 +0200)]
uri-util: Added documentation for all functions in header.
Stephan Bosch [Sun, 8 May 2016 21:44:42 +0000 (23:44 +0200)]
uri-util: Made URI encoding functions accept NULL pointer for additional escaped characters.
Stephan Bosch [Sun, 8 May 2016 21:40:38 +0000 (23:40 +0200)]
uri-util: Made uri_data_encode() public.
Stephan Bosch [Sun, 8 May 2016 21:30:05 +0000 (23:30 +0200)]
uri-util: Improved implementation of uri_data_encode().
Stephan Bosch [Sun, 8 May 2016 21:12:07 +0000 (23:12 +0200)]
uri-util: Reworked URI scheme parsing.
Made uri_cut_scheme() use uri_parse_scheme() internally rather than the other way around.
Stephan Bosch [Sun, 8 May 2016 21:09:33 +0000 (23:09 +0200)]
lib-imap: Started using struct uri_host in struct imap_url.
Stephan Bosch [Sun, 8 May 2016 21:08:00 +0000 (23:08 +0200)]
lib-http: Started using struct uri_host in struct http_url.
Stephan Bosch [Sun, 8 May 2016 21:06:23 +0000 (23:06 +0200)]
uri-util: Split struct uri_host from uri_authority.
Adds support for parsing host separately and manipulating host struct.
Stephan Bosch [Sun, 8 May 2016 21:03:38 +0000 (23:03 +0200)]
uri-util: Added complete syntax comment.
Stephan Bosch [Sun, 8 May 2016 22:31:43 +0000 (00:31 +0200)]
uri-util: Added support for initializing the URI parser from data.
Stephan Bosch [Sun, 8 May 2016 22:30:14 +0000 (00:30 +0200)]
uri-util: Parsing of unreserved syntax erroneously included percent encoding.
This functionality is currently not used, so no problems would occur.
Stephan Bosch [Sun, 8 May 2016 20:59:09 +0000 (22:59 +0200)]
uri-util: Implemented proper parsing of DNS-based host name for URI schemes that use DNS host names, such as http and imap.
Stephan Bosch [Sun, 8 May 2016 20:56:59 +0000 (22:56 +0200)]
uri-util: Added public function for parsing single percent encoding instances.
Stephan Bosch [Sun, 8 May 2016 20:55:25 +0000 (22:55 +0200)]
uri-util: Removed have_port and have_host_ip flags.
Presence of port can be tested with port != 0.
Presence of IP can be tested with ip->family != 0.
Aki Tuomi [Sun, 15 May 2016 14:25:17 +0000 (17:25 +0300)]
lib-ldap: Do not create new context and lose settings
Stephan Bosch [Sat, 14 May 2016 20:49:53 +0000 (22:49 +0200)]
lib-mail: istream-qp-decoder: For efficiency, avoid copying data between decode buffer and stream buffer.
Instead, use the decode buffer directly as stream buffer.
Timo Sirainen [Sat, 14 May 2016 22:17:18 +0000 (01:17 +0300)]
lib-ldap: Compiling fix - don't pass through void return
Timo Sirainen [Fri, 13 May 2016 18:22:40 +0000 (14:22 -0400)]
imap: Set command start timestamps earlier.
Previously timing statistics in taglines weren't shown commands that didn't
read any parameters.
Also the timings now include the time speng reading command parameters from
client. For example:
a list "" {1}
+ OK
%
* LIST (\HasNoChildren) "/" INBOX
a OK List completed (0.001 + 1.214 secs).
Timo Sirainen [Fri, 13 May 2016 17:35:50 +0000 (13:35 -0400)]
lib: Fixed istream_seekable.stat() to return correct size.
It was supposed to read until end of the stream, but it did it only when
stat() was called while stream was still fully in memory.
Timo Sirainen [Fri, 13 May 2016 13:56:08 +0000 (09:56 -0400)]
lib-fs: Make sure fs-metawrap catches all write errors.
The full istream may not have been written in case ostream only partially
wrote the data (e.g. out of disk space?)
Timo Sirainen [Fri, 13 May 2016 13:48:13 +0000 (09:48 -0400)]
lib-fs: If fs-metawrap sees truncated header, it should return error.
Timo Sirainen [Fri, 13 May 2016 13:23:52 +0000 (09:23 -0400)]
lib: Fixed potential crash in i_stream_stat() failures.
We shouldn't have been copying parent's stream_errno here. Especially
because the parent can be NULL.
Aki Tuomi [Fri, 13 May 2016 10:10:04 +0000 (13:10 +0300)]
dict: Set default transaction commit callback
Removes need for NULL check on drivers
Timo Sirainen [Tue, 10 May 2016 21:09:02 +0000 (17:09 -0400)]
lib-storage: Fixed istream error handling while saving mails.
We might have logged them as write errors, or we might have ignored the
error if i_stream_read() failed. Now the behavior is consistent.
Timo Sirainen [Tue, 10 May 2016 21:06:54 +0000 (17:06 -0400)]
lib-storage: Moved common code to index_storage_save_continue()
Stephan Bosch [Tue, 10 May 2016 18:37:55 +0000 (20:37 +0200)]
Added LIBDOVECOT_SQL_INCLUDE to dovecot-config and dovecot.m4.
Martti Rannanjärvi [Mon, 9 May 2016 08:08:33 +0000 (11:08 +0300)]
lib: remove failed bool from sized_istream struct
This is no longer needed as we are now checking for
stream_errno also in istream.c
Martti Rannanjärvi [Tue, 10 May 2016 10:51:29 +0000 (13:51 +0300)]
doc: remove doveadm mount manpages
Timo Sirainen [Thu, 12 May 2016 19:10:47 +0000 (15:10 -0400)]
lib-fs: Added FS_PROPERTY_FASTCOPY_CHANGED_METADATA
Timo Sirainen [Thu, 12 May 2016 12:09:56 +0000 (08:09 -0400)]
lib-http: Queue's delayed timeout handler wasn't removed after work was done.
Timo Sirainen [Thu, 12 May 2016 11:24:39 +0000 (07:24 -0400)]
lib-fs: Minor code cleanup
Timo Sirainen [Thu, 12 May 2016 11:23:51 +0000 (07:23 -0400)]
lib-fs: Set fs error on fs_write_stream_abort()
Probably would be nice for fs_write_stream_abort() to have an error string
parameter, which could be used instead of this generic error.
Timo Sirainen [Thu, 12 May 2016 11:23:04 +0000 (07:23 -0400)]
lib-fs: Added asserts to make sure async writes are finished before close
Timo Sirainen [Thu, 12 May 2016 11:21:38 +0000 (07:21 -0400)]
fs-metawrap: Minor code cleanup
temp_output==NULL, so these calls are equal.
Timo Sirainen [Thu, 12 May 2016 11:18:49 +0000 (07:18 -0400)]
fs-metawrap: Propagate fs_write_stream_abort() to parent always
It needed to be done also when temp_output==NULL, because we had already
started sending it to parent, but async parent wasn't being finished.
Timo Sirainen [Thu, 12 May 2016 11:15:41 +0000 (07:15 -0400)]
fs-randomfail: Set fs error always when injecting failure.
It was done in some places, but not everywhere.