http\Url changes; adjust class' properties docs
[mdref/mdref-http] / http / Client / Curl.md
index d0f692b751cecb19a23a3510a9619a08b0c4974f..82b86ab060c46336107d9ec65aef9bcee8a9d60b 100644 (file)
@@ -2,6 +2,13 @@
 
 The http\Client\Curl namespace holds option value constants specific to the curl driver of the http\Client.
 
+## Changelog
+
+Version | Change
+--------|-------
+2.1.0   | Added $dns_interface, $dns_local_ip4, $dns_local_ip6 options, $expect_100_timeout.
+2.1.2   | Added request option constants:<br> http\Client\Curl::POSTREDIR_303,<br> http\Client\Curl::AUTH_SPNEGO,<br> http\Client\Curl::SSL_VERSION_TLSv1_0,<br> http\Client\Curl::SSL_VERSION_TLSv1_1 and<br> http\Client\Curl::SSL_VERSION_TLSv1_2 
+
 ## Constants:
 
 ### HTTP Protocol Version
@@ -15,12 +22,18 @@ The http\Client\Curl namespace holds option value constants specific to the curl
   
 ### SSL Protocol Version
 
+* SSL_VERSION_TLSv1_0  
+  Use TLS v1.0 encryption.
+* SSL_VERSION_TLSv1_1  
+  Use TLS v1.1 encryption.
+* SSL_VERSION_TLSv1_2  
+  Use TLS v1.2 encryption.
 * SSL_VERSION_TLSv1  
-  Use TLSv1 encryption.
+  Use any TLS v1 encryption.
 * SSL_VERSION_SSLv2  
-  Use SSLv2 encryption.
+  Use SSL v2 encryption.
 * SSL_VERSION_SSLv3  
-  Use SSLv3 encryption.
+  Use SSL v3 encryption.
 * SSL_VERSION_ANY  
   Use any encryption.
 
@@ -45,6 +58,8 @@ The http\Client\Curl namespace holds option value constants specific to the curl
   Use NTLM authentication.
 * AUTH_GSSNEG  
   Use GSS-Negotiate authentication.
+* AUTH_SPNEGO  
+  Use HTTP Netgotiate authentication (SPNEGO, RFC4559). Available if libcurl is v7.38.0 or more recent.
 * AUTH_ANY  
   Use any authentication.
 
@@ -69,12 +84,15 @@ The http\Client\Curl namespace holds option value constants specific to the curl
   Keep POSTing on 301 redirects. Available if libcurl is v7.19.1 or more recent.
 * POSTREDIR_302  
   Keep POSTing on 302 redirects. Available if libcurl is v7.19.1 or more recent.
+* POSTREDIR_303  
+  Keep POSTing on 303 redirects. Available if libcurl is v7.19.1 or more recent.
 * POSTREDIR_ALL  
   Keep POSTing on any redirect. Available if libcurl is v7.19.1 or more recent.
 
 
 ## Options:
 
+The option names used here are more or less derived from the corresponding CURLOPT_* names.
 ### HTTP
 
 * int $protocol  
@@ -106,13 +124,19 @@ The http\Client\Curl namespace holds option value constants specific to the curl
 * array $resolve  
   A list of HOST:PORT:ADDRESS mappings which pre-populate the DNS cache. Available if libcurl is v7.21.3 or more recent.
 * string $dns_servers  
-  Comma separated list of custom DNS servers of the form HOST[:PORT]. Available if libcurl is v7.24.0 or more recent.
-  
+  Comma separated list of custom DNS servers of the form HOST[:PORT]. Available if libcurl is v7.24.0 or more recent and has built-in c-ares support.
+* string $dns_interface  
+  The name of the network interface ***name*** that the DNS resolver should bind to. Available if libcurl is v7.33.0 or more recent and has built-in c-ares support.
+* string $dns_local_ip4  
+  The local IPv4 ***address*** that the resolver should bind to. Available if libcurl is v7.33.0 or more recent and has built-in c-ares support.
+* string $dns_local_ip6  
+  The local IPv6 ***address*** that the resolver should bind to. Available if libcurl is v7.33.0 or more recent and has built-in c-ares support.
+
 ### Limits
 
 * int $low_speed_limit  
   Minimum speed in bytes per second.
-* int $low_speed_time
+* int $low_speed_time  
   Maximum time in seconds the transfer can be below $low_speed_limit before cancelling.
 * int $maxfilesize  
   Maximum download size.
@@ -140,7 +164,9 @@ The http\Client\Curl namespace holds option value constants specific to the curl
   Seconds to wait before sending keepalive probes. Available if libcurl is v7.25.0 or more recent.
 * int $tcp_keepintvl  
   Interval in seconds to wait between sending keepalive probes. Available if libcurl is v7.25.0 or more recent.
-
+* bool $tcp_nodelay  
+  Disable [Nagle's algotrithm](http://tools.ietf.org/html/rfc896).
+  
 ### Authentication
 
 * string $httpauth  
@@ -203,6 +229,8 @@ The http\Client\Curl namespace holds option value constants specific to the curl
   Seconds the complete transfer may take.
 * float $connecttimeout  
   Seconds the connect may take.
+* float $expect_100_timeout  
+  Senconds to wait for the server to send a response to "Expect: 100-Continue" before just proceeding with the request. Available if libcurl is v7.36.0 or more recent.
 
 ### SSL
 
@@ -242,4 +270,3 @@ The http\Client\Curl namespace holds option value constants specific to the curl
     File with the concatenation of CRL in PEM format. Available if libcurl was built with OpenSSL support.
   * bool $certinfo  
     Enable gathering of SSL certificate chain information. Available if libcurl is v7.19.1 or more recent.
-