CURLOPT_HEADEROPT: added

Modified the logic so that CURLOPT_HEADEROPT now controls if PROXYHEADER
is actually used or not.
This commit is contained in:
Daniel Stenberg 2014-02-04 23:37:29 +01:00
parent ac887eedbc
commit ef6be35bae
9 changed files with 59 additions and 28 deletions

View file

@ -200,7 +200,7 @@ char *Curl_checkProxyheaders(const struct connectdata *conn,
size_t thislen = strlen(thisheader);
struct SessionHandle *data = conn->data;
for(head = (conn->bits.proxy && data->set.proxyheaders)?
for(head = (conn->bits.proxy && data->set.sep_headers)?
data->set.proxyheaders:data->set.headers;
head; head=head->next) {
if(Curl_raw_nequal(head->data, thisheader, thislen))
@ -1550,7 +1550,7 @@ CURLcode Curl_add_custom_headers(struct connectdata *conn,
{
char *ptr;
struct curl_slist *headers=
(is_proxy && conn->data->set.proxyheaders)?
(is_proxy && conn->data->set.sep_headers)?
conn->data->set.proxyheaders:conn->data->set.headers;
while(headers) {

View file

@ -1081,6 +1081,14 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
data->set.proxyheaders = va_arg(param, struct curl_slist *);
break;
case CURLOPT_HEADEROPT:
/*
* Set header option.
*/
arg = va_arg(param, long);
data->set.sep_headers = (arg & CURLHEADER_SEPARATE)? TRUE: FALSE;
break;
case CURLOPT_HTTP200ALIASES:
/*
* Set a list of aliases for HTTP 200 in response header

View file

@ -1467,6 +1467,7 @@ struct UserDefined {
struct curl_slist *headers; /* linked list of extra headers */
struct curl_slist *proxyheaders; /* linked list of extra CONNECT headers */
struct curl_httppost *httppost; /* linked list of POST data */
bool sep_headers; /* handle host and proxy headers separately */
bool cookiesession; /* new cookie session? */
bool crlf; /* convert crlf on ftp upload(?) */
struct curl_slist *quote; /* after connection is established */