From 836aaddaf047e82129446e7c16fef660863fb9ba Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 23 Mar 2014 01:09:20 +0100 Subject: [PATCH] move ssl_ctx to struct uclient_http Signed-off-by: Felix Fietkau --- uclient-http.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/uclient-http.c b/uclient-http.c index 0ce43c2..b7c64c8 100644 --- a/uclient-http.c +++ b/uclient-http.c @@ -12,7 +12,6 @@ #include "uclient-utils.h" #include "uclient-backend.h" -static struct ustream_ssl_ctx *ssl_ctx; static uint32_t nc; enum auth_type { @@ -47,6 +46,7 @@ static const char * const request_types[__REQ_MAX] = { struct uclient_http { struct uclient uc; + struct ustream_ssl_ctx *ssl_ctx; struct ustream *us; struct ustream_fd ufd; @@ -653,13 +653,13 @@ static int uclient_setup_https(struct uclient_http *uh) if (ret) return ret; - if (!ssl_ctx) - ssl_ctx = ustream_ssl_context_new(false); + if (!uh->ssl_ctx) + uh->ssl_ctx = ustream_ssl_context_new(false); us->string_data = true; us->notify_state = uclient_ssl_notify_state; us->notify_read = uclient_ssl_notify_read; - ustream_ssl_init(&uh->ussl, &uh->ufd.stream, ssl_ctx, false); + ustream_ssl_init(&uh->ussl, &uh->ufd.stream, uh->ssl_ctx, false); return 0; } @@ -695,6 +695,9 @@ static void uclient_http_free(struct uclient *cl) { struct uclient_http *uh = container_of(cl, struct uclient_http, uc); + if (uh->ssl_ctx) + ustream_ssl_context_free(uh->ssl_ctx); + uclient_http_free_url_state(cl); blob_buf_free(&uh->headers); blob_buf_free(&uh->meta); -- 2.30.2