Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

CURLOPT_DNS_SHUFFLE_ADDRESSES (3)

Name

CURLOPT_DNS_SHUFFLE_ADDRESSES - Shuffle addresses when a hostname returns more than one

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SHUFFLE_ADDRESSES, long onoff);

Description

curl_easy_setopt options                      CURLOPT_DNS_SHUFFLE_ADDRESSES(3)



NAME
       CURLOPT_DNS_SHUFFLE_ADDRESSES  -  Shuffle  addresses  when  a  hostname
       returns more than one

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SHUFFLE_ADDRESSES, long onoff);

DESCRIPTION
       When a name is resolved and more than one IP address is returned, shuf-
       fle  the order of all returned addresses so that they will be used in a
       random order.  This is similar to the ordering behavior  of  gethostby-
       name which is no longer used on most platforms.

       Addresses  will  not  be  reshuffled  if a name resolution is completed
       using the DNS cache. CURLOPT_DNS_CACHE_TIMEOUT(3) can be used  together
       with  this  option  to  reduce  DNS  cache  timeout  or disable caching
       entirely if frequent reshuffling is needed.

       Since the addresses returned will be reordered  randomly,  their  order
       will  not  be  in  accordance  with RFC 3484 or any other deterministic
       order that may be generated by the system's name resolution implementa-
       tion.  This  may have performance impacts and may cause IPv4 to be used
       before IPv6 or vice versa.

DEFAULT
       0 (disabled)

PROTOCOLS
       All

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
         curl_easy_setopt(curl, CURLOPT_DNS_SHUFFLE_ADDRESSES, 1L);

         curl_easy_perform(curl);

         /* always cleanup */
         curl_easy_cleanup(curl);
       }

AVAILABILITY
       Added in 7.60.0

RETURN VALUE
       CURLE_OK or an error such as CURLE_UNKNOWN_OPTION.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+
SEE ALSO
       CURLOPT_DNS_CACHE_TIMEOUT(3), CURLOPT_IPRESOLVE(3),



NOTES
       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source   was    downloaded    from     https://github.com/curl/curl/ar-
       chive/curl-7_64_0.zip

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.60.0                   3 March 2018
                                              CURLOPT_DNS_SHUFFLE_ADDRESSES(3)