mirror of
https://github.com/moparisthebest/curl
synced 2024-11-11 03:55:03 -05:00
when we get the auth headers, we still need to read out the full body response
as otherwise we can re-send requests on the same connection nicely
This commit is contained in:
parent
a2eef05198
commit
5ea04a852e
@ -737,6 +737,8 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||||||
conn->newurl = strdup(data->change.url);
|
conn->newurl = strdup(data->change.url);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef USE_SSLEAY
|
||||||
|
/* NTLM support requires the SSL crypto libs */
|
||||||
else if(Curl_compareheader(k->p,
|
else if(Curl_compareheader(k->p,
|
||||||
"WWW-Authenticate:", "NTLM") &&
|
"WWW-Authenticate:", "NTLM") &&
|
||||||
(401 == k->httpcode) &&
|
(401 == k->httpcode) &&
|
||||||
@ -748,6 +750,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||||||
|
|
||||||
conn->newurl = strdup(data->change.url); /* clone string */
|
conn->newurl = strdup(data->change.url); /* clone string */
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else if(checkprefix("WWW-Authenticate:", k->p) &&
|
else if(checkprefix("WWW-Authenticate:", k->p) &&
|
||||||
(401 == k->httpcode) &&
|
(401 == k->httpcode) &&
|
||||||
data->set.httpdigest /* Digest authentication is
|
data->set.httpdigest /* Digest authentication is
|
||||||
@ -789,6 +792,8 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||||||
*ptr = '\0'; /* zero terminate */
|
*ptr = '\0'; /* zero terminate */
|
||||||
conn->newurl = strdup(start); /* clone string */
|
conn->newurl = strdup(start); /* clone string */
|
||||||
*ptr = backup; /* restore ending letter */
|
*ptr = backup; /* restore ending letter */
|
||||||
|
|
||||||
|
k->returnbeforebody = TRUE; /* don't wait for contents */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if 0 /* for consideration */
|
#if 0 /* for consideration */
|
||||||
@ -846,7 +851,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||||||
write a piece of the body */
|
write a piece of the body */
|
||||||
if(conn->protocol&PROT_HTTP) {
|
if(conn->protocol&PROT_HTTP) {
|
||||||
/* HTTP-only checks */
|
/* HTTP-only checks */
|
||||||
if (conn->newurl) {
|
if (conn->newurl && k->returnbeforebody) {
|
||||||
/* abort after the headers if "follow Location" is set */
|
/* abort after the headers if "follow Location" is set */
|
||||||
infof (data, "Send request to this URL: %s\n", conn->newurl);
|
infof (data, "Send request to this URL: %s\n", conn->newurl);
|
||||||
k->keepon &= ~KEEP_READ;
|
k->keepon &= ~KEEP_READ;
|
||||||
@ -1258,6 +1263,7 @@ CURLcode Curl_readwrite_init(struct connectdata *conn)
|
|||||||
k->maxfd = (conn->sockfd>conn->writesockfd?
|
k->maxfd = (conn->sockfd>conn->writesockfd?
|
||||||
conn->sockfd:conn->writesockfd)+1;
|
conn->sockfd:conn->writesockfd)+1;
|
||||||
k->hbufp = data->state.headerbuff;
|
k->hbufp = data->state.headerbuff;
|
||||||
|
k->returnbeforebody=FALSE;
|
||||||
|
|
||||||
Curl_pgrsTime(data, TIMER_PRETRANSFER);
|
Curl_pgrsTime(data, TIMER_PRETRANSFER);
|
||||||
Curl_speedinit(data);
|
Curl_speedinit(data);
|
||||||
|
Loading…
Reference in New Issue
Block a user