Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_H..._CLIENT_IP(3)  Library Functions Manual  CURLOPT_H..._CLIENT_IP(3)

NAME
       CURLOPT_HAPROXY_CLIENT_IP - set HAProxy PROXY protocol client IP

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_HAPROXY_CLIENT_IP,
				 char *client_ip);

DESCRIPTION
       When this parameter is set to a valid IPv4 or IPv6 numerical address in
       its  printable  ASCII  string  version,	the  library sends this	as the
       client address in the HAProxy PROXY protocol v1 header at beginning  of
       the connection.

       The  client  address is reported	upstream as the	source and destination
       address of the non-existing client connection (since 8.20.0).

       This option is an alternative to	CURLOPT_HAPROXYPROTOCOL(3) as that one
       cannot use a specified address.

       Using this option multiple times	makes the last set string override the
       previous	ones. Set it to	NULL to	disable	its use	again.

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

       As  with	 most  libcurl options,	the user of this option	must make sure
       that the	correct	data (address) is passed on. libcurl does little to no
       verification.

       Note that if you	want to	send a different HAProxy client	IP in a	subse-
       quent request, you need to make sure that it is done over a fresh  con-
       nection as libcurl does not send	it again while reusing connections.

DEFAULT
       NULL, no	HAProxy	header is sent

PROTOCOLS
       This functionality affects all supported	protocols

EXAMPLE
       int main(void)
       {
	 CURL *curl = curl_easy_init();
	 if(curl) {
	   CURLcode result;
	   curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
	   curl_easy_setopt(curl, CURLOPT_HAPROXY_CLIENT_IP, "1.1.1.1");
	   result = curl_easy_perform(curl);
	 }
       }

AVAILABILITY
       Added in	curl 8.2.0

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLOPT_HAPROXYPROTOCOL(3), CURLOPT_PROXY(3)

libcurl				  2026-06-11	     CURLOPT_H..._CLIENT_IP(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_HAPROXY_CLIENT_IP&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help