mirror of
https://github.com/moparisthebest/curl
synced 2025-03-03 02:41:59 -05:00
http: use calculated offsets inst of integer literals for header parsing
Assumed to be a minor coding style improvement with no behavior change. A modern compiler is expected to have the calculation optimized during compilation. It may be deemed okay even if that's not the case, since the added overhead is considered very low. Closes #7032
This commit is contained in:
parent
df269fe407
commit
dbb88523ab
25
lib/http.c
25
lib/http.c
@ -3386,7 +3386,8 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
if(!k->http_bodyless &&
|
||||
!data->set.ignorecl && checkprefix("Content-Length:", headp)) {
|
||||
curl_off_t contentlength;
|
||||
CURLofft offt = curlx_strtoofft(headp + 15, NULL, 10, &contentlength);
|
||||
CURLofft offt = curlx_strtoofft(headp + strlen("Content-Length:"),
|
||||
NULL, 10, &contentlength);
|
||||
|
||||
if(offt == CURL_OFFT_OK) {
|
||||
if(data->set.max_filesize &&
|
||||
@ -3485,7 +3486,9 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
* of chunks, and a chunk-data set to zero signals the
|
||||
* end-of-chunks. */
|
||||
|
||||
result = Curl_build_unencoding_stack(data, headp + 18, TRUE);
|
||||
result = Curl_build_unencoding_stack(data,
|
||||
headp + strlen("Transfer-Encoding:"),
|
||||
TRUE);
|
||||
if(result)
|
||||
return result;
|
||||
}
|
||||
@ -3498,17 +3501,20 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
* 2616). zlib cannot handle compress. However, errors are
|
||||
* handled further down when the response body is processed
|
||||
*/
|
||||
result = Curl_build_unencoding_stack(data, headp + 17, FALSE);
|
||||
result = Curl_build_unencoding_stack(data,
|
||||
headp + strlen("Content-Encoding:"),
|
||||
FALSE);
|
||||
if(result)
|
||||
return result;
|
||||
}
|
||||
else if(checkprefix("Retry-After:", headp)) {
|
||||
/* Retry-After = HTTP-date / delay-seconds */
|
||||
curl_off_t retry_after = 0; /* zero for unknown or "now" */
|
||||
time_t date = Curl_getdate_capped(&headp[12]);
|
||||
time_t date = Curl_getdate_capped(headp + strlen("Retry-After:"));
|
||||
if(-1 == date) {
|
||||
/* not a date, try it as a decimal number */
|
||||
(void)curlx_strtoofft(&headp[12], NULL, 10, &retry_after);
|
||||
(void)curlx_strtoofft(headp + strlen("Retry-After:"),
|
||||
NULL, 10, &retry_after);
|
||||
}
|
||||
else
|
||||
/* convert date to number of seconds into the future */
|
||||
@ -3527,7 +3533,7 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
The forth means the requested range was unsatisfied.
|
||||
*/
|
||||
|
||||
char *ptr = headp + 14;
|
||||
char *ptr = headp + strlen("Content-Range:");
|
||||
|
||||
/* Move forward until first digit or asterisk */
|
||||
while(*ptr && !ISDIGIT(*ptr) && *ptr != '*')
|
||||
@ -3550,7 +3556,8 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
Curl_share_lock(data, CURL_LOCK_DATA_COOKIE,
|
||||
CURL_LOCK_ACCESS_SINGLE);
|
||||
Curl_cookie_add(data,
|
||||
data->cookies, TRUE, FALSE, headp + 11,
|
||||
data->cookies, TRUE, FALSE,
|
||||
headp + strlen("Set-Cookie:"),
|
||||
/* If there is a custom-set Host: name, use it
|
||||
here, or else use real peer host name. */
|
||||
data->state.aptr.cookiehost?
|
||||
@ -3635,7 +3642,7 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
(conn->handler->flags & PROTOPT_SSL)) {
|
||||
CURLcode check =
|
||||
Curl_hsts_parse(data->hsts, data->state.up.hostname,
|
||||
&headp[ sizeof("Strict-Transport-Security:") -1 ]);
|
||||
headp + strlen("Strict-Transport-Security:"));
|
||||
if(check)
|
||||
infof(data, "Illegal STS header skipped\n");
|
||||
#ifdef DEBUGBUILD
|
||||
@ -3659,7 +3666,7 @@ CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
|
||||
/* the ALPN of the current request */
|
||||
enum alpnid id = (conn->httpversion == 20) ? ALPN_h2 : ALPN_h1;
|
||||
result = Curl_altsvc_parse(data, data->asi,
|
||||
&headp[ strlen("Alt-Svc:") ],
|
||||
headp + strlen("Alt-Svc:"),
|
||||
id, conn->host.name,
|
||||
curlx_uitous(conn->remote_port));
|
||||
if(result)
|
||||
|
Loading…
x
Reference in New Issue
Block a user