Provided by: libcurl4-doc_7.68.0-1ubuntu2.25_all bug

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, shuffle the order of all returned
       addresses so that they will be used in a random order.  This is  similar  to  the  ordering  behavior  of
       gethostbyname 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
       implementation.  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.

SEE ALSO

       CURLOPT_DNS_CACHE_TIMEOUT(3), CURLOPT_IPRESOLVE(3),