Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_DNS_SHUFFLE_ADDRESSES (3)

Name

CURLOPT_DNS_SHUFFLE_ADDRESSES - shuffle IP addresses for hostname

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 IP addresses for hostname

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
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source       was       downloaded      from       https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

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



libcurl 7.83.1                September 08, 2021
                                              CURLOPT_DNS_SHUFFLE_ADDRESSES(3)