From cf17b3806579982ed1977d0e5d29c2285c0813fd Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 25 Feb 2007 16:52:53 +0000 Subject: Ensure handle options are reset appropriately (fixes 1668354) svn path=/trunk/netsurf/; revision=3189 --- content/fetch.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'content/fetch.c') diff --git a/content/fetch.c b/content/fetch.c index 558b96fc0..fc686ace1 100644 --- a/content/fetch.c +++ b/content/fetch.c @@ -652,10 +652,11 @@ CURLcode fetch_set_options(struct fetch *f) const char *auth; #undef SETOPT -#define SETOPT(option, value) \ +#define SETOPT(option, value) { \ code = curl_easy_setopt(f->curl_handle, option, value); \ if (code != CURLE_OK) \ - return code; + return code; \ + } SETOPT(CURLOPT_URL, f->url); SETOPT(CURLOPT_PRIVATE, f); @@ -665,16 +666,25 @@ CURLcode fetch_set_options(struct fetch *f) SETOPT(CURLOPT_REFERER, f->send_referer ? f->referer : 0); SETOPT(CURLOPT_HTTPHEADER, f->headers); if (f->post_urlenc) { + SETOPT(CURLOPT_HTTPPOST, 0); + SETOPT(CURLOPT_HTTPGET, 0L); SETOPT(CURLOPT_POSTFIELDS, f->post_urlenc); } else if (f->post_multipart) { + SETOPT(CURLOPT_POSTFIELDS, 0); + SETOPT(CURLOPT_HTTPGET, 0L); SETOPT(CURLOPT_HTTPPOST, f->post_multipart); } else { + SETOPT(CURLOPT_POSTFIELDS, 0); + SETOPT(CURLOPT_HTTPPOST, 0); SETOPT(CURLOPT_HTTPGET, 1L); } f->cookie_string = urldb_get_cookie(f->url); - if (f->cookie_string) + if (f->cookie_string) { SETOPT(CURLOPT_COOKIE, f->cookie_string); + } else { + SETOPT(CURLOPT_COOKIE, 0); + } #ifdef WITH_AUTH if ((auth = urldb_get_auth_details(f->url)) != NULL) { @@ -709,8 +719,12 @@ CURLcode fetch_set_options(struct fetch *f) /* Disable certificate verification */ SETOPT(CURLOPT_SSL_VERIFYPEER, 0L); SETOPT(CURLOPT_SSL_VERIFYHOST, 0L); + SETOPT(CURLOPT_SSL_CTX_FUNCTION, 0); + SETOPT(CURLOPT_SSL_CTX_DATA, 0); } else { /* do verification */ + SETOPT(CURLOPT_SSL_VERIFYPEER, 1L); + SETOPT(CURLOPT_SSL_VERIFYHOST, 2L); SETOPT(CURLOPT_SSL_CTX_FUNCTION, fetch_sslctxfun); SETOPT(CURLOPT_SSL_CTX_DATA, f); } -- cgit v1.2.3