[dovecot/core] a5bf9e: lib-dict-extra: Compiler warning fix

GitHub noreply at github.com
Mon Jun 20 00:30:16 UTC 2016


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: a5bf9e64b33bad8e589dff73907710837c186976
      https://github.com/dovecot/core/commit/a5bf9e64b33bad8e589dff73907710837c186976
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-dict-extra/dict-fs.c

  Log Message:
  -----------
  lib-dict-extra: Compiler warning fix


  Commit: e7a0878fd23bd175b66346a284ffc2c4f1d48fe9
      https://github.com/dovecot/core/commit/e7a0878fd23bd175b66346a284ffc2c4f1d48fe9
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-response-parser.c

  Log Message:
  -----------
  lib-http: response parser: Added check for the range of the response status value.

A value of 666 was accepted inappropriately.


  Commit: 4a4f676c4c9634abe1c111ea1ee621d07d808d5f
      https://github.com/dovecot/core/commit/4a4f676c4c9634abe1c111ea1ee621d07d808d5f
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-host.c
    M src/lib-http/http-client-private.h
    M src/lib-http/http-client-queue.c
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  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.


  Commit: adc47546e129d4ded671dfb1bb7dc31c4823d5f8
      https://github.com/dovecot/core/commit/adc47546e129d4ded671dfb1bb7dc31c4823d5f8
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  lib-http: client: Fixed reference counting for requests that are aborted due to having a broken outgoing payload stream.


  Commit: 2cbef0faed1c4d3a99ab580ed4abf7344bb9fbf1
      https://github.com/dovecot/core/commit/2cbef0faed1c4d3a99ab580ed4abf7344bb9fbf1
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c

  Log Message:
  -----------
  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.


  Commit: d2b6ff054e61f86d93b00dc7fa36adaaa6dc711c
      https://github.com/dovecot/core/commit/d2b6ff054e61f86d93b00dc7fa36adaaa6dc711c
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  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.


  Commit: 0102e440ac9c078f9358cd0c98d8a27f4d2edd10
      https://github.com/dovecot/core/commit/0102e440ac9c078f9358cd0c98d8a27f4d2edd10
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h
    M src/lib-http/http-client.c

  Log Message:
  -----------
  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.


  Commit: 8d5c693b138715098a8cc43e5226c795ae2461ad
      https://github.com/dovecot/core/commit/8d5c693b138715098a8cc43e5226c795ae2461ad
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-peer.c

  Log Message:
  -----------
  lib-http: client: peer: Improved debug message that shows the loss of a connection.


  Commit: d63cb134209aa5c4313cb8f0730722103fc45826
      https://github.com/dovecot/core/commit/d63cb134209aa5c4313cb8f0730722103fc45826
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  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.


  Commit: 2b7757bef345a3e61e4ef3520d31b8ceaa654939
      https://github.com/dovecot/core/commit/2b7757bef345a3e61e4ef3520d31b8ceaa654939
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib/net.c
    M src/lib/net.h

  Log Message:
  -----------
  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.


  Commit: fff17849305e66e9310fb10175559ce50ae6ba00
      https://github.com/dovecot/core/commit/fff17849305e66e9310fb10175559ce50ae6ba00
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client.c
    M src/lib-http/http-client.h

  Log Message:
  -----------
  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.


  Commit: 48e1753a801fc4e39b90091db15fe05accf13e68
      https://github.com/dovecot/core/commit/48e1753a801fc4e39b90091db15fe05accf13e68
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-private.h
    M src/lib-http/http-client-request.c
    M src/lib-http/http-client.c

  Log Message:
  -----------
  lib-http: client: Prevent useless and unexpected request callbacks during http_client_deinit().

Requests are now destroyed before queues, hosts, peers and connections.
As a side-effect, requests are now removed from the client request list at http_client_request_destroy(), so that requests with lingering references will no longer make http_client_wait() hang.


  Commit: 07b6d2bd9b8af054416b90cd0b816233e18364e3
      https://github.com/dovecot/core/commit/07b6d2bd9b8af054416b90cd0b816233e18364e3
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: Reworked connection close handling.

Now, the peer is immediately notified of the lost connection.
Before, this step was only taken when the connection was fully dereferenced.
To prevent recursive notifications between peer and connection, handling the loss of a connection is deferred to the request handler.
When a peer is freed, any associated lingering connections have conn->peer set to NULL.


  Commit: 8d558a5763725741c77682a4229014222252b4e0
      https://github.com/dovecot/core/commit/8d558a5763725741c77682a4229014222252b4e0
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client-peer.c
    M src/lib-http/http-client-private.h

  Log Message:
  -----------
  lib-http: client: Fixed bug in handling of lost connections while returning from another ioloop.

At one instance the http_client_connection_is_ready() function could have destroyed the connection while the caller still depended on it.
Renamed the http_client_connection_is_ready() function to http_client_connection_check_ready().
This now returns -1 when the connection got destroyed. Before it returned a bool that just indicated whether the connection was ready or not.
So, there is no need anymore to preserve a connection reference while calling this function.


  Commit: 4c4ec1720ed08661c1963cd4beb4f217c6bbcea5
      https://github.com/dovecot/core/commit/4c4ec1720ed08661c1963cd4beb4f217c6bbcea5
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/test-http-client.c

  Log Message:
  -----------
  lib-http: test-http-client: Callback is not called for explicitly aborted requests.

Test request context was not freed in that case.


  Commit: 5ad09b076d224d517d77020d3b821e5979881238
      https://github.com/dovecot/core/commit/5ad09b076d224d517d77020d3b821e5979881238
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Added -D option to easily enable debug mode.


  Commit: 9ae8eaf77cd188f3e29fbca045fd8ec6cdfe6ffe
      https://github.com/dovecot/core/commit/9ae8eaf77cd188f3e29fbca045fd8ec6cdfe6ffe
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Added cleanup code to make sure no child processes get orphaned at failures.

Also handles SIGSEGV and SIGABRT.


  Commit: ddb65fbdc2478d83caab5e7a05fae411500a0e41
      https://github.com/dovecot/core/commit/ddb65fbdc2478d83caab5e7a05fae411500a0e41
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/test-http-payload.c

  Log Message:
  -----------
  lib-http: test-http-payload: Added tests for the use of nested ioloops.


  Commit: 534195d811f76b41337b24a9c9cc9889dfa1a352
      https://github.com/dovecot/core/commit/534195d811f76b41337b24a9c9cc9889dfa1a352
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/Makefile.am
    A src/lib-http/test-http-client-errors.c

  Log Message:
  -----------
  lib-http: client: Created test program that triggers most possible error conditions.


  Commit: 024ade62275e0960cf52f117f20ee7048e21e4c8
      https://github.com/dovecot/core/commit/024ade62275e0960cf52f117f20ee7048e21e4c8
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c

  Log Message:
  -----------
  lib-http: Improved error logging for net_set_*_buffer_size() failures.


  Commit: 91ebc77e7efa3b26ec68214e1b0884ffe37849af
      https://github.com/dovecot/core/commit/91ebc77e7efa3b26ec68214e1b0884ffe37849af
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/test-http-client-errors.c

  Log Message:
  -----------
  lib-http: client: Added test for http_client_request_delay_msecs() in test_http_client_errors.


  Commit: ce91fd50870c729c0571c089c7a980fe199e7c25
      https://github.com/dovecot/core/commit/ce91fd50870c729c0571c089c7a980fe199e7c25
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-request.c

  Log Message:
  -----------
  lib-http: client: Allow retrying requests that failed internally.


  Commit: 29d5559f1934ec12ccad93413502c0873f18b9b5
      https://github.com/dovecot/core/commit/29d5559f1934ec12ccad93413502c0873f18b9b5
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/http-client-connection.c
    M src/lib-http/http-client.c
    M src/lib-http/http-client.h

  Log Message:
  -----------
  lib-http: client: Implemented no_auto_retry setting that disables all automatic request retries.

This currently only applies to requests sent over a connection that is subsequently lost before a response is received.
Before, such requests were always implicitly resumbitted for a new connection, without the application knowing about it.
By enabling the no_auto_retry client setting, the application is always notified of connection loss through the request's response callback.
As a consequence, requests need to be retried explicitly using the http_client_request_try_retry().


  Commit: 8c0379c3c2fa966900dd4bcb329108c3fcac7c1f
      https://github.com/dovecot/core/commit/8c0379c3c2fa966900dd4bcb329108c3fcac7c1f
  Author: Stephan Bosch <stephan at dovecot.fi>
  Date:   2016-06-20 (Mon, 20 Jun 2016)

  Changed paths:
    M src/lib-http/test-http-client-errors.c

  Log Message:
  -----------
  lib-http: client: Added tests for manual handling of connection loss retries to test-http-client-errors.


Compare: https://github.com/dovecot/core/compare/adda15c338b0...8c0379c3c2fa


More information about the dovecot-cvs mailing list