From: Felix Fietkau Date: Sun, 23 Mar 2014 00:09:20 +0000 (+0100) Subject: move ssl_ctx to struct uclient_http X-Git-Url: http://git.archive.openwrt.org/?a=commitdiff_plain;ds=sidebyside;h=836aaddaf047e82129446e7c16fef660863fb9ba;p=project%2Fuclient.git move ssl_ctx to struct uclient_http Signed-off-by: Felix Fietkau --- 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);