1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
Index: buckets/ssl_buckets.c
===================================================================
--- buckets/ssl_buckets.c (revision 2130)
+++ buckets/ssl_buckets.c (working copy)
@@ -1192,21 +1192,16 @@
context->server_cert_userdata = data;
}
-static serf_ssl_context_t *ssl_init_context(void)
+static serf_ssl_context_t *ssl_init_context(serf_bucket_alloc_t *allocator)
{
serf_ssl_context_t *ssl_ctx;
- apr_pool_t *pool;
- serf_bucket_alloc_t *allocator;
init_ssl_libraries();
- apr_pool_create(&pool, NULL);
- allocator = serf_bucket_allocator_create(pool, NULL, NULL);
-
ssl_ctx = serf_bucket_mem_alloc(allocator, sizeof(*ssl_ctx));
ssl_ctx->refcount = 0;
- ssl_ctx->pool = pool;
+ ssl_ctx->pool = serf_bucket_allocator_get_pool(allocator);
ssl_ctx->allocator = allocator;
ssl_ctx->ctx = SSL_CTX_new(SSLv23_client_method());
@@ -1263,8 +1258,6 @@
static apr_status_t ssl_free_context(
serf_ssl_context_t *ssl_ctx)
{
- apr_pool_t *p;
-
/* If never had the pending buckets, don't try to free them. */
if (ssl_ctx->decrypt.pending != NULL) {
serf_bucket_destroy(ssl_ctx->decrypt.pending);
@@ -1277,10 +1270,7 @@
SSL_free(ssl_ctx->ssl);
SSL_CTX_free(ssl_ctx->ctx);
- p = ssl_ctx->pool;
-
serf_bucket_mem_free(ssl_ctx->allocator, ssl_ctx);
- apr_pool_destroy(p);
return APR_SUCCESS;
}
@@ -1294,7 +1284,7 @@
ctx = serf_bucket_mem_alloc(allocator, sizeof(*ctx));
if (!ssl_ctx) {
- ctx->ssl_ctx = ssl_init_context();
+ ctx->ssl_ctx = ssl_init_context(allocator);
}
else {
ctx->ssl_ctx = ssl_ctx;
|