+ if (request->ch) {
+ HTTP_CURL_OPT(PROGRESSFUNCTION, NULL);
+ HTTP_CURL_OPT(URL, NULL);
+ HTTP_CURL_OPT(NOPROGRESS, 1);
+ HTTP_CURL_OPT(PROXY, NULL);
+ HTTP_CURL_OPT(PROXYPORT, 0);
+ HTTP_CURL_OPT(PROXYUSERPWD, NULL);
+ HTTP_CURL_OPT(PROXYAUTH, 0);
+ HTTP_CURL_OPT(INTERFACE, NULL);
+ HTTP_CURL_OPT(PORT, 0);
+ HTTP_CURL_OPT(USERPWD, NULL);
+ HTTP_CURL_OPT(HTTPAUTH, 0);
+ HTTP_CURL_OPT(ENCODING, NULL);
+ HTTP_CURL_OPT(FOLLOWLOCATION, 0);
+ HTTP_CURL_OPT(UNRESTRICTED_AUTH, 0);
+ HTTP_CURL_OPT(REFERER, NULL);
+ HTTP_CURL_OPT(USERAGENT, "PECL::HTTP/" PHP_EXT_HTTP_VERSION " (PHP/" PHP_VERSION ")");
+ HTTP_CURL_OPT(HTTPHEADER, NULL);
+ HTTP_CURL_OPT(COOKIE, NULL);
+#if LIBCURL_VERSION_NUM >= 0x070e01
+ HTTP_CURL_OPT(COOKIELIST, NULL);
+#endif
+ HTTP_CURL_OPT(COOKIEFILE, NULL);
+ HTTP_CURL_OPT(COOKIEJAR, NULL);
+ HTTP_CURL_OPT(RESUME_FROM, 0);
+ HTTP_CURL_OPT(MAXFILESIZE, 0);
+ HTTP_CURL_OPT(TIMECONDITION, 0);
+ HTTP_CURL_OPT(TIMEVALUE, 0);
+ HTTP_CURL_OPT(TIMEOUT, 0);
+ HTTP_CURL_OPT(CONNECTTIMEOUT, 3);
+ HTTP_CURL_OPT(SSLCERT, NULL);
+ HTTP_CURL_OPT(SSLCERTTYPE, NULL);
+ HTTP_CURL_OPT(SSLCERTPASSWD, NULL);
+ HTTP_CURL_OPT(SSLKEY, NULL);
+ HTTP_CURL_OPT(SSLKEYTYPE, NULL);
+ HTTP_CURL_OPT(SSLKEYPASSWD, NULL);
+ HTTP_CURL_OPT(SSLENGINE, NULL);
+ HTTP_CURL_OPT(SSLVERSION, 0);
+ HTTP_CURL_OPT(SSL_VERIFYPEER, 0);
+ HTTP_CURL_OPT(SSL_VERIFYHOST, 0);
+ HTTP_CURL_OPT(SSL_CIPHER_LIST, NULL);
+ HTTP_CURL_OPT(CAINFO, NULL);
+ HTTP_CURL_OPT(CAPATH, NULL);
+ HTTP_CURL_OPT(RANDOM_FILE, NULL);
+ HTTP_CURL_OPT(EGDSOCKET, NULL);
+ HTTP_CURL_OPT(POSTFIELDS, NULL);
+ HTTP_CURL_OPT(POSTFIELDSIZE, 0);
+ HTTP_CURL_OPT(HTTPPOST, NULL);
+ HTTP_CURL_OPT(IOCTLDATA, NULL);
+ HTTP_CURL_OPT(READDATA, NULL);
+ HTTP_CURL_OPT(INFILESIZE, 0);
+ HTTP_CURL_OPT(HTTP_VERSION, CURL_HTTP_VERSION_NONE);
+ HTTP_CURL_OPT(CUSTOMREQUEST, NULL);
+ HTTP_CURL_OPT(NOBODY, 0);
+ HTTP_CURL_OPT(POST, 0);
+ HTTP_CURL_OPT(UPLOAD, 0);
+ HTTP_CURL_OPT(HTTPGET, 1);
+ }
+}
+/* }}} */
+
+PHP_HTTP_API void _http_request_set_progress_callback(http_request *request, zval *cb)
+{
+ TSRMLS_FETCH_FROM_CTX(request->tsrm_ls);
+
+ if (request->_progress_callback) {
+ zval_ptr_dtor(&request->_progress_callback);
+ }
+ if ((request->_progress_callback = cb)) {
+ ZVAL_ADDREF(cb);
+ HTTP_CURL_OPT(NOPROGRESS, 0);
+ HTTP_CURL_OPT(PROGRESSDATA, request);
+ HTTP_CURL_OPT(PROGRESSFUNCTION, http_curl_progress_callback);
+ } else {
+ HTTP_CURL_OPT(NOPROGRESS, 1);
+ HTTP_CURL_OPT(PROGRESSDATA, NULL);
+ HTTP_CURL_OPT(PROGRESSFUNCTION, NULL);