tree 5c5bd3fa70f6452c1199c879a35ad95d12a18845
parent 904a9f3617b5677f81465b449009caf68d600313
author Branko Čibej <brane@apache.org> 1479213248 +0000
committer Branko Čibej <brane@apache.org> 1479213248 +0000

[Reverted in r1769841.]

Make sure that serf_connection_create() initializes the config store.

* serf_private.h (serf__config_store_create_conn_config):
   Introduce an optional pool parameter for temporary allocations that,
   when provided, assures that this function will not return an error.
   Update the docstring.

* src/config_store.c (serf__config_store_create_conn_config):
   Only create a temporary pool (and, hence, possibly return an error)
   if an optional pool was not provided.

* src/outgoing.c
  (create_connection): New.
   Factor out most of the contents of serf_connection_create().
  (serf_connection_create): Call create_connection(), then initialize
   the connection's config store.
  (serf_connection_create2): Call create_connection() instead of
   serf_connection_create(). Update the invocation of
   serf__config_store_create_conn_config().

* test/test_internal.c
  (test_config_store_per_connection_different_host,
   test_config_store_per_connection_same_host,
   test_config_store_remove_objects):
   Update all invocations of serf__config_store_create_conn_config().


git-svn-id: https://svn.apache.org/repos/asf/serf/trunk@1769799 13f79535-47bb-0310-9956-ffa450edef68
