static apr_status_t setup(test_baton_t **tb_p, serf_connection_setup_t conn_setup, int use_proxy, apr_pool_t *pool) { apr_status_t status; test_baton_t *tb; apr_uri_t url; tb = apr_pcalloc(pool, sizeof(*tb)); *tb_p = tb; tb->pool = pool; tb->context = serf_context_create(pool); tb->bkt_alloc = serf_bucket_allocator_create(pool, NULL, NULL); status = default_server_address(&tb->serv_addr, pool); if (status != APR_SUCCESS) return status; if (use_proxy) { status = default_proxy_address(&tb->proxy_addr, pool); if (status != APR_SUCCESS) return status; /* Configure serf to use the proxy server */ serf_config_proxy(tb->context, tb->proxy_addr); } status = apr_uri_parse(pool, SERV_URL, &url); if (status != APR_SUCCESS) return status; status = serf_connection_create2(&tb->connection, tb->context, url, conn_setup ? conn_setup : default_conn_setup, tb, default_closed_connection, tb, pool); return status; }
/* Setup the client context, ready to connect and send requests to a server.*/ static apr_status_t setup(test_baton_t **tb_p, serf_connection_setup_t conn_setup, const char *serv_url, int use_proxy, apr_size_t message_count, apr_pool_t *pool) { test_baton_t *tb; apr_status_t status; tb = apr_pcalloc(pool, sizeof(*tb)); *tb_p = tb; tb->pool = pool; tb->context = serf_context_create(pool); tb->bkt_alloc = serf_bucket_allocator_create(pool, NULL, NULL); tb->accepted_requests = apr_array_make(pool, message_count, sizeof(int)); tb->sent_requests = apr_array_make(pool, message_count, sizeof(int)); tb->handled_requests = apr_array_make(pool, message_count, sizeof(int)); tb->serv_url = serv_url; tb->conn_setup = conn_setup; status = default_server_address(&tb->serv_addr, pool); if (status != APR_SUCCESS) return status; if (use_proxy) { status = default_proxy_address(&tb->proxy_addr, pool); if (status != APR_SUCCESS) return status; /* Configure serf to use the proxy server */ serf_config_proxy(tb->context, tb->proxy_addr); } status = use_new_connection(tb, pool); return status; }