mirror of
https://github.com/nginx/nginx.git
synced 2025-06-12 13:42:55 +08:00
light optimization of ngx_http_test_content_type()
This commit is contained in:
parent
7741b350e9
commit
77fd67cc38
@ -1530,38 +1530,38 @@ ngx_http_core_find_static_location(ngx_http_request_t *r,
|
|||||||
void *
|
void *
|
||||||
ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash)
|
ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash)
|
||||||
{
|
{
|
||||||
u_char c, *p;
|
u_char c, *lowcase;
|
||||||
ngx_uint_t i, hash;
|
size_t len;
|
||||||
|
ngx_uint_t i, hash;
|
||||||
|
|
||||||
if (r->headers_out.content_type.len == 0) {
|
if (r->headers_out.content_type.len == 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
len = r->headers_out.content_type_len;
|
||||||
|
|
||||||
if (r->headers_out.content_type_lowcase == NULL) {
|
if (r->headers_out.content_type_lowcase == NULL) {
|
||||||
|
|
||||||
p = ngx_pnalloc(r->pool, r->headers_out.content_type_len);
|
lowcase = ngx_pnalloc(r->pool, len);
|
||||||
|
if (lowcase == NULL) {
|
||||||
if (p == NULL) {
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
r->headers_out.content_type_lowcase = p;
|
r->headers_out.content_type_lowcase = lowcase;
|
||||||
|
|
||||||
hash = 0;
|
hash = 0;
|
||||||
|
|
||||||
for (i = 0; i < r->headers_out.content_type_len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
c = ngx_tolower(r->headers_out.content_type.data[i]);
|
c = ngx_tolower(r->headers_out.content_type.data[i]);
|
||||||
hash = ngx_hash(hash, c);
|
hash = ngx_hash(hash, c);
|
||||||
*p++ = c;
|
lowcase[i] = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
r->headers_out.content_type_hash = hash;
|
r->headers_out.content_type_hash = hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ngx_hash_find(types_hash,
|
return ngx_hash_find(types_hash, r->headers_out.content_type_hash,
|
||||||
r->headers_out.content_type_hash,
|
r->headers_out.content_type_lowcase, len);
|
||||||
r->headers_out.content_type_lowcase,
|
|
||||||
r->headers_out.content_type_len);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user