GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
CURLOPT_HEADEROPT(3) curl_easy_setopt options CURLOPT_HEADEROPT(3)

CURLOPT_HEADEROPT - send HTTP headers to both proxy and host or separately

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADEROPT, long bitmask);

Pass a long that is a bitmask of options of how to deal with headers. The two mutually exclusive options are:

CURLHEADER_UNIFIED - the headers specified in CURLOPT_HTTPHEADER(3) will be used in requests both to servers and proxies. With this option enabled, CURLOPT_PROXYHEADER(3) will not have any effect.

CURLHEADER_SEPARATE - makes CURLOPT_HTTPHEADER(3) headers only get sent to a server and not to a proxy. Proxy headers must be set with CURLOPT_PROXYHEADER(3) to get used. Note that if a non-CONNECT request is sent to a proxy, libcurl will send both server headers and proxy headers. When doing CONNECT, libcurl will send CURLOPT_PROXYHEADER(3) headers only to the proxy and then CURLOPT_HTTPHEADER(3) headers only to the server.

CURLHEADER_SEPARATE (changed in 7.42.1, used CURLHEADER_UNIFIED before then)

HTTP

CURL *curl = curl_easy_init();
if(curl) {
  CURLcode ret;
  struct curl_slist *list;
  list = curl_slist_append(NULL, "Shoesize: 10");
  list = curl_slist_append(list, "Accept:");
  curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
  curl_easy_setopt(curl, CURLOPT_PROXY, "http://localhost:8080");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
  /* HTTPS over a proxy makes a separate CONNECT to the proxy, so tell
     libcurl to not send the custom headers to the proxy. Keep them
     separate! */
  curl_easy_setopt(curl, CURLOPT_HEADEROPT, CURLHEADER_SEPARATE);
  ret = curl_easy_perform(curl);
  curl_slist_free_all(list);
  curl_easy_cleanup(curl);
}

Added in 7.37.0

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

CURLOPT_HTTPHEADER(3), CURLOPT_PROXYHEADER(3),
November 26, 2021 libcurl 7.83.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.