to not check for zlib header bytes. This is not preventable AFAICS.
LFS dependant parts of libcurl are left out because of off_t,
respectively off64_t confusion.
+ Persistent handles and "cookiestore" request option do interfere,
+ as libcurl safes the cookies to the file on curl_easy_destroy(),
+ cookies are not safed until the CURL handle will be recycled.
+ Thus one would either need to
+ * run PHP with http.persistent.handles.limit = 0
+ * call http_persistent_handles_clean() every request
+ * call $HttpRequest->flushCookies(), which is available
+ since libcurl v7.17.1 and does not work with the
+ procedural API
+ Anyway, none of these options is really perfect.
+
HTTP_LONG_CONSTANT("HTTP_AUTH_BASIC", CURLAUTH_BASIC);
HTTP_LONG_CONSTANT("HTTP_AUTH_DIGEST", CURLAUTH_DIGEST);
+#if HTTP_CURL_VERSION(7,19,3)
+ HTTP_LONG_CONSTANT("HTTP_AUTH_DIGEST_IE", CURLAUTH_DIGEST_IE);
+#endif
HTTP_LONG_CONSTANT("HTTP_AUTH_NTLM", CURLAUTH_NTLM);
HTTP_LONG_CONSTANT("HTTP_AUTH_GSSNEG", CURLAUTH_GSSNEGOTIATE);
HTTP_LONG_CONSTANT("HTTP_AUTH_ANY", CURLAUTH_ANY);
#endif
HTTP_LONG_CONSTANT("HTTP_PROXY_SOCKS5", CURLPROXY_SOCKS5);
HTTP_LONG_CONSTANT("HTTP_PROXY_HTTP", CURLPROXY_HTTP);
+#if HTTP_CURL_VERSION(7,19,4)
+ TTP_LONG_CONSTANT("HTTP_PROXY_HTTP_1_0", CURLPROXY_HTTP_1_0);
+#endif
return SUCCESS;
}
/* }}} */
HTTP_CURL_OPT(CURLOPT_PROGRESSFUNCTION, NULL);
HTTP_CURL_OPT(CURLOPT_URL, NULL);
HTTP_CURL_OPT(CURLOPT_NOPROGRESS, 1L);
+#if HTTP_CURL_VERSION(7,19,4)
+ HTTP_CURL_OPT(CURLOPT_NOPROXY, NULL);
+#endif
HTTP_CURL_OPT(CURLOPT_PROXY, NULL);
HTTP_CURL_OPT(CURLOPT_PROXYPORT, 0L);
HTTP_CURL_OPT(CURLOPT_PROXYTYPE, 0L);
HTTP_CURL_OPT(CURLOPT_PROXYUSERPWD, NULL);
HTTP_CURL_OPT(CURLOPT_PROXYAUTH, 0L);
+ HTTP_CURL_OPT(CURLOPT_HTTPPROXYTUNNEL, 0L);
HTTP_CURL_OPT(CURLOPT_DNS_CACHE_TIMEOUT, 60L);
HTTP_CURL_OPT(CURLOPT_IPRESOLVE, 0);
HTTP_CURL_OPT(CURLOPT_LOW_SPEED_LIMIT, 0L);
if ((zoption = http_request_option(request, options, "proxyauthtype", IS_LONG))) {
HTTP_CURL_OPT(CURLOPT_PROXYAUTH, Z_LVAL_P(zoption));
}
+ /* tunnel */
+ if ((zoption = http_request_option(request, options, "proxytunnel", IS_BOOL)) && Z_BVAL_P(zoption)) {
+ HTTP_CURL_OPT(CURLOPT_HTTPPROXYTUNNEL, 1L);
+ }
+ }
+#if HTTP_CURL_VERSION(7,19,4)
+ if ((zoption = http_request_option, request, options, "noproxy", IS_STRING))) {
+ HTTP_CURL_OPT(CURLOPT_NOPROXY, Z_STRVAL_P(zoption));
}
+#endif
/* dns */
if ((zoption = http_request_option(request, options, "dns_cache_timeout", IS_LONG))) {
add_assoc_double_ex(&array, "appconnect_time", sizeof("appconnect_time"), d);
}
#endif
+#if HTTP_CURL_VERSION(7,19,4)
+ if (CURLE_OK == curl_easy_getinfo(request->ch, CURLINFO_CONDITION_UNMET, &l)) {
+ add_assoc_long_ex(&array, "condition_unmet", sizeof("condition_unmet"), l);
+ }
+#endif
/* END */
#if HTTP_CURL_VERSION(7,19,1) && defined(HTTP_HAVE_OPENSSL)
{
*/
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_BASIC")-1, CURLAUTH_BASIC TSRMLS_CC);
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_DIGEST")-1, CURLAUTH_DIGEST TSRMLS_CC);
+#if HTTP_CURL_VERSION(7,19,3)
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_DIGEST_IE")-1, CURLAUTH_DIGEST_IE TSRMLS_CC);
+#endif
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_NTLM")-1, CURLAUTH_NTLM TSRMLS_CC);
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_GSSNEG")-1, CURLAUTH_GSSNEGOTIATE TSRMLS_CC);
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_ANY")-1, CURLAUTH_ANY TSRMLS_CC);
#endif
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("PROXY_SOCKS5")-1, CURLPROXY_SOCKS5 TSRMLS_CC);
zend_declare_class_constant_long(THIS_CE, ZEND_STRS("PROXY_HTTP")-1, CURLPROXY_HTTP TSRMLS_CC);
+# if HTTP_CURL_VERSION(7,19,4)
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("PROXY_HTTP_1_0")-1, CURLPROXY_HTTP_1_0 TSRMLS_CC);
+# endif
#endif /* WONKY */
return SUCCESS;
* Implement Request #14408 (Add a customizable timeout for HttpRequestPool::socketSelect)
* Implement Request #15775 (recursive http_request_body_encode)
* Added request options:
+ - proxytunnel: enable tunelling through the HTTP proxy
- postredir: enforcing RFC conformig POST after redirect (libcurl >= 7.17.1)
- address_scope: RFC4007 zone_id (libcurl >= 7.19.0)
+ - noproxy: comma separatet list of hosts (* means all hosts) not to use a proxy for (libcurl >= 7.19.4)
- ssl->issuercert: validate peer certificate issuer (libcurl >= 7.19.0)
- ssl->crlfile: require CRL check (libcurl >= 7.19.0 with openssl)
- ssl->certinfo: enable the certinfo gatherer (libcurl >= 7.19.1 with openssl)
+* Added authtype request option constant:
+ - HTTP_AUTH_DIGEST_IE
* Added proxytype request option constants:
- HTTP_PROXY_SOCKS4A
- HTTP_PROXY_SOCKS5_HOSTNAME
+ - HTTP_PROXY_HTTP_1_0
* Added request info members:
- redirect_url (libcurl >= 7.18.2)
- primary_ip (libcurl >= 7.19.0)
- appconnect_time (libcurl >= 7.19.0)
- certinfo (libcurl >= 7.19.1 with openssl)
+ - condition_unmet (libcurl >= 7.19.4)
]]></notes>
<contents>
<dir name="/">
<file role="test" name="HttpMessage_006.phpt"/>
<file role="test" name="HttpMessage_007.phpt"/>
<file role="test" name="HttpMessage_008.phpt"/>
+ <file role="test" name="HttpMessage_009_bug16700.phpt"/>
<file role="test" name="HttpQueryString_001.phpt"/>
<file role="test" name="HttpQueryString_002.phpt"/>
<file role="test" name="HttpQueryString_003.phpt"/>
'PRIMARY_IP' => 'HTTP_CURL_VERSION(7,19,0)',
'APPCONNECT_TIME' => 'HTTP_CURL_VERSION(7,19,0)',
'REDIRECT_URL' => 'HTTP_CURL_VERSION(7,18,2)',
+ 'CONDITION_UNMET' => 'HTTP_CURL_VERSION(7,19,4)',
);
$exclude = array(
'PRIVATE', 'LASTSOCKET', 'FTP_ENTRY_PATH', 'CERTINFO',