Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

CURLOPT_INTERFACE (3)

Name

CURLOPT_INTERFACE - source interface for outgoing traffic

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERFACE, char *inter-
face);

Description

CURLOPT_INTERFACE(3)       curl_easy_setopt options       CURLOPT_INTERFACE(3)



NAME
       CURLOPT_INTERFACE - source interface for outgoing traffic

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERFACE, char *inter-
       face);

DESCRIPTION
       Pass a char * as parameter. This sets the interface name to use as out-
       going  network  interface.  The  name  can  be an interface name, an IP
       address, or a host name.

       If the parameter starts with "if!" then it is treated as only as inter-
       face  name  and  no  attempt will ever be named to do treat it as an IP
       address or to do name resolution on it.  If the parameter  starts  with
       "host!" it is treated as either an IP address or a hostname.  Hostnames
       are resolved synchronously.  Using the if! format is highly recommended
       when  using  the  multi interfaces to avoid allowing the code to block.
       If "if!" is specified but the parameter  does  not  match  an  existing
       interface, CURLE_INTERFACE_FAILED is returned from the libcurl function
       used to perform the transfer.

       libcurl does not support using network interface names for this  option
       on Windows.

       The  application  does not have to keep the string around after setting
       this option.

DEFAULT
       NULL, use whatever the TCP stack finds suitable

PROTOCOLS
       All

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/foo.bin");

         curl_easy_setopt(curl, CURLOPT_INTERFACE, "eth0");

         ret = curl_easy_perform(curl);

         curl_easy_cleanup(curl);
       }

AVAILABILITY
       The "if!" and "host!" syntax was added in 7.24.0.

RETURN VALUE
       Returns CURLE_OK on success or CURLE_OUT_OF_MEMORY if there was  insuf-
       ficient heap space.


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


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+
SEE ALSO
       CURLOPT_SOCKOPTFUNCTION(3), CURLOPT_TCP_NODELAY(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.37.0                    17 Jun 2014             CURLOPT_INTERFACE(3)