- add "ipresolve" request option
[m6w6/ext-http] / http_request_api.c
index b2f997bc70eb10fd2df4338e9ee7398ecbd35048..ea63dfa6df2ee4d4f35bcd0f1d793ea4b2c6864d 100644 (file)
@@ -114,6 +114,10 @@ PHP_MINIT_FUNCTION(http_request)
        HTTP_LONG_CONSTANT("HTTP_VERSION_NONE", CURL_HTTP_VERSION_NONE);
        HTTP_LONG_CONSTANT("HTTP_VERSION_1_0", CURL_HTTP_VERSION_1_0);
        HTTP_LONG_CONSTANT("HTTP_VERSION_1_1", CURL_HTTP_VERSION_1_1);
+       
+       HTTP_LONG_CONSTANT("HTTP_IPRESOLVE_V4", CURL_IPRESOLVE_V4);
+       HTTP_LONG_CONSTANT("HTTP_IPRESOLVE_V6", CURL_IPRESOLVE_V6);
+       HTTP_LONG_CONSTANT("HTTP_IPRESOLVE_ANY", CURL_IPRESOLVE_WHATEVER);
 
 #if HTTP_CURL_VERSION(7,15,2)
        HTTP_LONG_CONSTANT("HTTP_PROXY_SOCKS4", CURLPROXY_SOCKS4);
@@ -348,6 +352,7 @@ PHP_HTTP_API void _http_request_defaults(http_request *request)
                HTTP_CURL_OPT(CURLOPT_PROXYUSERPWD, NULL);
                HTTP_CURL_OPT(CURLOPT_PROXYAUTH, 0L);
                HTTP_CURL_OPT(CURLOPT_DNS_CACHE_TIMEOUT, 60L);
+               HTTP_CURL_OPT(CURLOPT_IPRESOLVE, 0);
                HTTP_CURL_OPT(CURLOPT_LOW_SPEED_LIMIT, 0L);
                HTTP_CURL_OPT(CURLOPT_LOW_SPEED_TIME, 0L);
 #if HTTP_CURL_VERSION(7,15,5)
@@ -476,6 +481,9 @@ PHP_HTTP_API STATUS _http_request_prepare(http_request *request, HashTable *opti
        if ((zoption = http_request_option(request, options, "dns_cache_timeout", IS_LONG))) {
                HTTP_CURL_OPT(CURLOPT_DNS_CACHE_TIMEOUT, Z_LVAL_P(zoption));
        }
+       if ((zoption = http_request_option(request, options, "ipresolve", IS_LONG)) && Z_LVAL_P(zoption)) {
+               HTTP_CURL_OPT(CURLOPT_IPRESOLVE, Z_LVAL_P(zoption));
+       }
        
        /* limits */
        if ((zoption = http_request_option(request, options, "low_speed_limit", IS_LONG))) {