X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_request_api.c;h=d6a370481dbe2da6cb0c90cbb9e276f7f8f50d6d;hp=96a613fd66a1a1fb5e95e10d7d21c27bcac7da36;hb=dd199f9961262ed43fa544240df15a9d6d7d0f08;hpb=6c4aac679c57cea2e3f7524974509595dc1a31a2 diff --git a/http_request_api.c b/http_request_api.c index 96a613f..d6a3704 100644 --- a/http_request_api.c +++ b/http_request_api.c @@ -420,6 +420,32 @@ PHP_HTTP_API void _http_request_reset(http_request *request) } /* }}} */ +/* {{{ STATUS http_request_enable_cookies(http_request *) */ +PHP_HTTP_API STATUS _http_request_enable_cookies(http_request *request) +{ + TSRMLS_FETCH_FROM_CTX(request->tsrm_ls); + if (CURLE_OK == curl_easy_setopt(request->ch, CURLOPT_COOKIEFILE, "")) { + return SUCCESS; + } + http_error(HE_WARNING, HTTP_E_REQUEST, "Could not enable cookies for this session"); + return FAILURE; +} +/* }}} */ + +/* {{{ STATUS http_request_reset_cookies(http_request *) */ +PHP_HTTP_API STATUS _http_request_reset_cookies(http_request *request) +{ + TSRMLS_FETCH_FROM_CTX(request->tsrm_ls); +#if HTTP_CURL_VERSION(7,14,1) + if (CURLE_OK == curl_easy_setopt(request->ch, CURLOPT_COOKIELIST, "ALL")) { + return SUCCESS; + } +#endif + http_error(HE_WARNING, HTTP_E_REQUEST, "Could not reset cookies"); + return FAILURE; +} +/* }}} */ + /* {{{ void http_request_defaults(http_request *) */ PHP_HTTP_API void _http_request_defaults(http_request *request) { @@ -755,15 +781,9 @@ PHP_HTTP_API STATUS _http_request_prepare(http_request *request, HashTable *opti } } - /* session cookies */ - if ((zoption = http_request_option(request, options, "cookiesession", IS_BOOL))) { - if (Z_BVAL_P(zoption)) { - /* accept cookies for this session */ - HTTP_CURL_OPT(CURLOPT_COOKIEFILE, ""); - } else { - /* don't load session cookies from cookiestore */ - HTTP_CURL_OPT(CURLOPT_COOKIESESSION, 1); - } + /* don't load session cookies from cookiestore */ + if ((zoption = http_request_option(request, options, "cookiesession", IS_BOOL)) && Z_BVAL_P(zoption)) { + HTTP_CURL_OPT(CURLOPT_COOKIESESSION, 1); } /* cookiestore, read initial cookies from that file and store cookies back into that file */