]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
9 years agolib-http: client: Added settings to configure the connection's socket kernel buffer...
Stephan Bosch [Thu, 19 May 2016 22:04:12 +0000 (00:04 +0200)] 
lib-http: client: Added settings to configure the connection's socket kernel buffer sizes.

This is mainly useful for use in the lib-http test suite.

9 years agolib: Implemented net_set_send_buffer_size() and net_set_recv_buffer_size().
Stephan Bosch [Thu, 19 May 2016 22:02:49 +0000 (00:02 +0200)] 
lib: Implemented net_set_send_buffer_size() and net_set_recv_buffer_size().

These functions allow manipulating the kernel socket buffer sizes for a socket file descriptor.

9 years agolib-http: client: Removed curiously duplicated code.
Stephan Bosch [Thu, 19 May 2016 21:42:14 +0000 (23:42 +0200)] 
lib-http: client: Removed curiously duplicated code.

Probably a patch got applied with sufficient fuzz that it duplicated this code fragment, while it actually already existed.

9 years agolib-http: client: peer: Improved debug message that shows the loss of a connection.
Stephan Bosch [Sat, 21 May 2016 11:17:58 +0000 (13:17 +0200)] 
lib-http: client: peer: Improved debug message that shows the loss of a connection.

9 years agolib-http: client: Made peer object reference-counted to prevent invalid memory access...
Stephan Bosch [Fri, 20 May 2016 22:16:21 +0000 (00:16 +0200)] 
lib-http: client: Made peer object reference-counted to prevent invalid memory access in request handling routine.

Resetting the peer->handling_requests flag risked triggering a segfault, since the peer object could be deleted from within the request handler loop.

9 years agolib-http: client: Improved request reference counting in connection code.
Stephan Bosch [Sat, 21 May 2016 11:16:08 +0000 (13:16 +0200)] 
lib-http: client: Improved request reference counting in connection code.

It should now always be clear when the connection object holds a reference to a request and when it is released.
Only while the reference is held, req->conn points to a connection.
This also makes the assertion in http_client_request_unref() more robust and clear.

9 years agolib-http: client: Fixed reference counting for requests that are aborted due to an...
Stephan Bosch [Sun, 22 May 2016 08:42:01 +0000 (10:42 +0200)] 
lib-http: client: Fixed reference counting for requests that are aborted due to an early server response.

An additional http_client_request_unref() is (now) unneccessary.

9 years agolib-http: client: Fixed reference counting for requests that are aborted due to havin...
Stephan Bosch [Thu, 19 May 2016 21:40:26 +0000 (23:40 +0200)] 
lib-http: client: Fixed reference counting for requests that are aborted due to having a broken outgoing payload stream.

9 years agolib-http: Changed http_client_request_error to set request to NULL
Timo Sirainen [Wed, 18 May 2016 16:40:32 +0000 (19:40 +0300)] 
lib-http: Changed http_client_request_error to set request to NULL

It's going to internally unreference it, so the caller should be aware of it
also.

I also changed request state check to be an assert, since I don't think
there's any safe way this could work otherwise.

9 years agolib-http: response parser: Added check for the range of the response status value.
Stephan Bosch [Fri, 20 May 2016 22:16:38 +0000 (00:16 +0200)] 
lib-http: response parser: Added check for the range of the response status value.

A value of 666 was accepted inappropriately.

9 years agocassandra: Added metrics=path connect setting.
Timo Sirainen [Wed, 25 May 2016 19:29:47 +0000 (22:29 +0300)] 
cassandra: Added metrics=path connect setting.

Cassandra's metrics are written to the path in JSON format. It can be a file
or a FIFO. The path supports expanding the standard global %variables, such
as %{pid}

9 years agodict: Added missing main.h from previous commit
Timo Sirainen [Wed, 25 May 2016 19:08:04 +0000 (22:08 +0300)] 
dict: Added missing main.h from previous commit

9 years agodict: Show command statistics in process title.
Timo Sirainen [Wed, 25 May 2016 17:00:01 +0000 (20:00 +0300)] 
dict: Show command statistics in process title.

9 years agolib: Fixed crashes in timing_get_median() and timing_get_95th()
Timo Sirainen [Wed, 25 May 2016 16:56:47 +0000 (19:56 +0300)] 
lib: Fixed crashes in timing_get_median() and timing_get_95th()

These were writing outside allocated memory. They weren't actually used
anywhere yet though.

9 years agolib: Added timing_reset()
Timo Sirainen [Wed, 25 May 2016 16:45:58 +0000 (19:45 +0300)] 
lib: Added timing_reset()

9 years agodsync: race condition where done/finish is received after one side has closed
J. Nick Koston [Fri, 20 May 2016 00:15:49 +0000 (19:15 -0500)] 
dsync: race condition where done/finish is received after one side has closed

We do not tell the remote we are closing if they have
already told us because they close the
connection after sending ITEM_FINISH or ITEM_DONE and will
not be ever receive anything else from us unless
it just happens to get combined into the same packet
as a previous response and is already in the buffer.

9 years agolib-stats: Allow unregistering + re-registering stats.
Timo Sirainen [Tue, 24 May 2016 12:52:37 +0000 (15:52 +0300)] 
lib-stats: Allow unregistering + re-registering stats.

Fixes:
Panic: stats_register() called after stats_alloc_size() was already called - this will break existing allocations

This could have happened with doveadm HTTP API when using multiple commands
in same HTTP connection.

9 years agolib-index: Fixed assert-crash caused by previous cache compression change.
Timo Sirainen [Mon, 23 May 2016 20:24:31 +0000 (23:24 +0300)] 
lib-index: Fixed assert-crash caused by previous cache compression change.

We can't call mail_cache_map() when cache file isn't open or we'll crash:

Panic: file mail-cache.c: line 468 (mail_cache_map): assertion failed: (cache->need_compress_file_seq != 0 || MAIL_INDEX_IS_IN_MEMORY(cache->index))

9 years agolib-index: Make sure cache compression doesn't clear the file unneededly.
Timo Sirainen [Mon, 23 May 2016 15:46:09 +0000 (18:46 +0300)] 
lib-index: Make sure cache compression doesn't clear the file unneededly.

This probably never happened with current code, except when the cache file
was already broken.

mail_cache_compress() unmapped cache when map_with_read==TRUE, but we never
mapped it back. This would cause cache copying code to think cache was
unusable and not copy anything.

9 years agoauth: Support %variable expansion for LDAP field names.
Timo Sirainen [Mon, 23 May 2016 14:47:50 +0000 (17:47 +0300)] 
auth: Support %variable expansion for LDAP field names.

For example this is now allowed:

user_attrs = \
  =namespace/%{ldap:enabledNamespace}/enabled=yes \
  ...

9 years agolib-ldap: Use ldap_unbind_ext() instead of ldap_destroy()
Timo Sirainen [Mon, 23 May 2016 10:12:41 +0000 (13:12 +0300)] 
lib-ldap: Use ldap_unbind_ext() instead of ldap_destroy()

This allows it to compile with older LDAP libraries. Their behavior (at least
in OpenLDAP) is identical as long as LDAP_OPT_CLIENT_CONTROLS haven't been
changed, which we haven't.

9 years agolib-ldap: Support libldap without LDAP_OPT_X_TLS_NEWCTX.
Timo Sirainen [Mon, 23 May 2016 10:08:20 +0000 (13:08 +0300)] 
lib-ldap: Support libldap without LDAP_OPT_X_TLS_NEWCTX.

9 years agodoveadm backup: Fixed unnecessary mailbox deletion.
Timo Sirainen [Fri, 20 May 2016 12:55:52 +0000 (15:55 +0300)] 
doveadm backup: Fixed unnecessary mailbox deletion.

Broken by 79490ec1a. The idea is to delete the mailbox early to avoid
unnecessary work, but we deleted it too early. If the last mail(s) were
deleted instead of just expunging them we deleted the whole mailbox.

9 years agolib: Minor panic message improvement.
Timo Sirainen [Fri, 20 May 2016 10:53:01 +0000 (13:53 +0300)] 
lib: Minor panic message improvement.

9 years agolib-mail: Fixed istream-header-filter calling callback(hdr=NULL)
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.

9 years agolib: iostream-temp is a blocking ostream.
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.

9 years agoconfig: fix possible out-of-bound access in parsing function
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.

9 years agolib-fs: istream-metawrap can now safely have a readable fd
Timo Sirainen [Wed, 18 May 2016 19:38:24 +0000 (22:38 +0300)] 
lib-fs: istream-metawrap can now safely have a readable fd

9 years agolib: Changed istream.abs_start_offset to be relative start_offset
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).

9 years agodict: Removed duplicate commit reply character
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

9 years agolib: Compiler warning fix
Timo Sirainen [Wed, 18 May 2016 19:51:46 +0000 (22:51 +0300)] 
lib: Compiler warning fix

9 years agolib: Fixed memory leak in ostream-file unit test
Timo Sirainen [Wed, 18 May 2016 19:51:31 +0000 (22:51 +0300)] 
lib: Fixed memory leak in ostream-file unit test

9 years agoMake libbsd optional
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.

9 years agolib-fs: istream-metawrap can't have a readable fd currently
Timo Sirainen [Wed, 18 May 2016 19:26:50 +0000 (22:26 +0300)] 
lib-fs: istream-metawrap can't have a readable fd currently

9 years agolib: ostream-file unit test: Test sendfile()
Timo Sirainen [Wed, 18 May 2016 19:26:23 +0000 (22:26 +0300)] 
lib: ostream-file unit test: Test sendfile()

9 years agolib: ostream-file: Fixed o_stream_send_istream() within same file
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.

9 years agolib-imap-storage: Fixed fetching partial headers for message/rfc822 part
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.

9 years agolib-imap-storage: Don't sort uninitialized array on invalid header list.
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.

9 years agolib-imap-storage: Removed wrong assert.
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.

9 years agolib-mail: istream-header-filter - Don't return -2 too early
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.

9 years agolib-mail: Added asserts to message_get_*_size()
Timo Sirainen [Wed, 18 May 2016 11:52:03 +0000 (14:52 +0300)] 
lib-mail: Added asserts to message_get_*_size()

9 years agolib-imap-storage: Don't double-filter HEADER.FIELDS (..) headers.
Timo Sirainen [Wed, 18 May 2016 11:27:03 +0000 (14:27 +0300)] 
lib-imap-storage: Don't double-filter HEADER.FIELDS (..) headers.

9 years agolib-imap-storage: Minor error logging cleanup/fix.
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).

9 years agolib: istream-file: Fixed o_stream_send_istream()
Timo Sirainen [Wed, 18 May 2016 16:22:40 +0000 (19:22 +0300)] 
lib: istream-file: Fixed o_stream_send_istream()

9 years agolib-http: Fixed checking if istream or ostream needs waiting.
Timo Sirainen [Wed, 18 May 2016 15:51:55 +0000 (18:51 +0300)] 
lib-http: Fixed checking if istream or ostream needs waiting.

9 years agolib: If epoll_ctl() fails, panic instead of just fatal.
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.

9 years agolib-mail: Improve ostream-dot unit test
Timo Sirainen [Wed, 18 May 2016 15:44:10 +0000 (18:44 +0300)] 
lib-mail: Improve ostream-dot unit test

9 years agolib: ostream-escaped: Fixed setting offset
Timo Sirainen [Wed, 18 May 2016 15:41:33 +0000 (18:41 +0300)] 
lib: ostream-escaped: Fixed setting offset

9 years agolib: Added comment to what ostream.offset actually is
Timo Sirainen [Wed, 18 May 2016 15:42:14 +0000 (18:42 +0300)] 
lib: Added comment to what ostream.offset actually is

9 years agolib-fs: ostream-metawrap: Fixed o_stream_send_istream() offset updates
Timo Sirainen [Wed, 18 May 2016 14:56:55 +0000 (17:56 +0300)] 
lib-fs: ostream-metawrap: Fixed o_stream_send_istream() offset updates

9 years agolib: Don't set ostream buffer as blocking
Timo Sirainen [Wed, 18 May 2016 14:45:09 +0000 (17:45 +0300)] 
lib: Don't set ostream buffer as blocking

9 years agolib: iostream-temp: Fixed sending more output after o_stream_send_istream()
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()

9 years agolib: iostream-temp: Fixed 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()

9 years agoRemoved buffer_reset().
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.

9 years agolib: Updated buffer_set_used_size() comment and added unit test.
Timo Sirainen [Mon, 16 May 2016 10:19:50 +0000 (13:19 +0300)] 
lib: Updated buffer_set_used_size() comment and added unit test.

9 years agoglobal: Simplify code with the new o_stream_send_istream() API
Timo Sirainen [Mon, 16 May 2016 18:03:35 +0000 (21:03 +0300)] 
global: Simplify code with the new o_stream_send_istream() API

9 years agolib: istream-sized should log errors with its own name, not parent's name
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

9 years agoimap: Code cleanup - use istream-sized for GETMETADATA reply
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.

9 years agoglobal: Use o_stream_nsend_istream() where useful
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().

9 years agolib: Added o_stream_nsend_istream()
Timo Sirainen [Mon, 16 May 2016 17:04:38 +0000 (20:04 +0300)] 
lib: Added o_stream_nsend_istream()

9 years agolib: Simplified and clarified o_stream_send_istream() API
Timo Sirainen [Mon, 16 May 2016 16:48:41 +0000 (19:48 +0300)] 
lib: Simplified and clarified o_stream_send_istream() API

9 years agolib: Added ostream.blocking boolean
Timo Sirainen [Mon, 16 May 2016 16:33:40 +0000 (19:33 +0300)] 
lib: Added ostream.blocking boolean

Similar to istream.blocking.

9 years agolib: Don't silently ignore partial writes for o_stream_nsend()
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.

9 years agolmtp: Fixed error logging when writing to temp file
Timo Sirainen [Mon, 16 May 2016 16:16:55 +0000 (19:16 +0300)] 
lmtp: Fixed error logging when writing to temp file

9 years agolib: Removed ostream.last_failed_errno
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.

9 years agolib-compression: Changed impossible errors to asserts.
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.

9 years agolib: istream-file: Code cleanup
Timo Sirainen [Mon, 16 May 2016 13:27:53 +0000 (16:27 +0300)] 
lib: istream-file: Code cleanup

No functional changes

9 years agoglobal: Don't assume o_stream_send_istream() return bytes sent.
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.

9 years agoglobal: Use [io]_stream_get_error() insted of %m
Timo Sirainen [Mon, 16 May 2016 12:49:08 +0000 (15:49 +0300)] 
global: Use [io]_stream_get_error() insted of %m

9 years agoglobal: Code cleanup - remove unnecessary errno changes.
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()

9 years agodbox: iostream error logging improvements.
Timo Sirainen [Mon, 16 May 2016 12:22:11 +0000 (15:22 +0300)] 
dbox: iostream error logging improvements.

9 years agoglobal: Replaced all i_stream_read_data() with _more() and _bytes()
Timo Sirainen [Mon, 16 May 2016 18:53:00 +0000 (21:53 +0300)] 
global: Replaced all i_stream_read_data() with _more() and _bytes()

9 years agoglobal: Fixed slighty wrong i_stream_read_data() with _read_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.

9 years agodoveadm-mailbox-delete: Restore recursive parameter
Aki Tuomi [Wed, 18 May 2016 06:33:15 +0000 (09:33 +0300)] 
doveadm-mailbox-delete: Restore recursive parameter

9 years agodict: Fix crash when no dictionaries defined
Aki Tuomi [Wed, 18 May 2016 06:29:04 +0000 (09:29 +0300)] 
dict: Fix crash when no dictionaries defined

9 years agoimap: Include sync timing information in tagged command replies.
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.

9 years agodoveadm-mail-mailbox: Whitespace fix
Aki Tuomi [Tue, 17 May 2016 20:51:43 +0000 (23:51 +0300)] 
doveadm-mail-mailbox: Whitespace fix

9 years agodoveadm-mailbox: Add update subcommand
Aki Tuomi [Tue, 17 May 2016 20:31:29 +0000 (23:31 +0300)] 
doveadm-mailbox: Add update subcommand

9 years agolib-mail: Fixed istream-header-filter callback's matched with eoh
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.

9 years agolib-ldap: Fixed assert-crash when killing LDAP connection.
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

9 years agouri-util: Changed URI host/authority parsing API to not use a boolean.
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.

9 years agouri-util: Two ATTR_NULL specifications were misplaced or wrong.
Stephan Bosch [Mon, 16 May 2016 16:21:30 +0000 (18:21 +0200)] 
uri-util: Two ATTR_NULL specifications were misplaced or wrong.

9 years agouri-util: The uri_parse_host_name_dns() would segfault if the hostname_r parameter...
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.

9 years agolib: istream - migrate more to i_stream_read_more()
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>
9 years agolib: istream - more migration to i_stream_read_bytes()
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>
9 years agolib: istream - migrate to i_stream_read_bytes()
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>
9 years agolib: istream - migrate to i_stream_read_more()
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>
9 years agolib: istream - provide alternatives to i_stream_read_data()
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>
9 years agouri-util: Added documentation for all functions in header.
Stephan Bosch [Sat, 14 May 2016 22:22:12 +0000 (00:22 +0200)] 
uri-util: Added documentation for all functions in header.

9 years agouri-util: Made URI encoding functions accept NULL pointer for additional escaped...
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.

9 years agouri-util: Made uri_data_encode() public.
Stephan Bosch [Sun, 8 May 2016 21:40:38 +0000 (23:40 +0200)] 
uri-util: Made uri_data_encode() public.

9 years agouri-util: Improved implementation of uri_data_encode().
Stephan Bosch [Sun, 8 May 2016 21:30:05 +0000 (23:30 +0200)] 
uri-util: Improved implementation of uri_data_encode().

9 years agouri-util: Reworked URI scheme parsing.
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.

9 years agolib-imap: Started using struct uri_host in struct imap_url.
Stephan Bosch [Sun, 8 May 2016 21:09:33 +0000 (23:09 +0200)] 
lib-imap: Started using struct uri_host in struct imap_url.

9 years agolib-http: Started using struct uri_host in struct http_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.

9 years agouri-util: Split struct uri_host from uri_authority.
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.

9 years agouri-util: Added complete syntax comment.
Stephan Bosch [Sun, 8 May 2016 21:03:38 +0000 (23:03 +0200)] 
uri-util: Added complete syntax comment.

9 years agouri-util: Added support for initializing the URI parser from data.
Stephan Bosch [Sun, 8 May 2016 22:31:43 +0000 (00:31 +0200)] 
uri-util: Added support for initializing the URI parser from data.

9 years agouri-util: Parsing of unreserved syntax erroneously included percent encoding.
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.

9 years agouri-util: Implemented proper parsing of DNS-based host name for URI schemes that...
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.