diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-03-23 01:09:20 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-03-23 01:09:20 +0100 |
commit | 836aaddaf047e82129446e7c16fef660863fb9ba (patch) | |
tree | b7b666af254b41bbbd85bec4b047ddf3ed4f892d /uclient-http.c | |
parent | 99e8d306d0cb552f85c44c0571cf5b6f9e8249c7 (diff) | |
download | uclient-836aaddaf047e82129446e7c16fef660863fb9ba.tar.gz |
move ssl_ctx to struct uclient_http
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'uclient-http.c')
-rw-r--r-- | uclient-http.c | 11 |
1 files 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); |