Author: jmb
Date: Sun Feb 25 16:52:53 2007
New Revision: 3189
URL:
http://svn.semichrome.net?rev=3189&view=rev
Log:
Ensure handle options are reset appropriately (fixes 1668354)
Modified:
trunk/netsurf/content/fetch.c
Modified: trunk/netsurf/content/fetch.c
URL:
http://svn.semichrome.net/trunk/netsurf/content/fetch.c?rev=3189&r1=3...
==============================================================================
--- trunk/netsurf/content/fetch.c (original)
+++ trunk/netsurf/content/fetch.c Sun Feb 25 16:52:53 2007
@@ -652,10 +652,11 @@
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 @@
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 @@
/* 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);
}