How to unset header in nginx module
Tsukasa Hamano
hamano at osstech.co.jp
Fri Mar 16 16:58:14 UTC 2012
Hi,
I'd like to delete particular headers_in like a apr_table_unset() in
request handler of my module.
I wrote examples from the article:
http://wiki.nginx.org/HeadersManagement
static void unset_header(ngx_http_request_t *r, u_char *key){
ngx_list_part_t *part;
ngx_table_elt_t *h;
ngx_uint_t i;
size_t len = strlen((char *)key);
part = &r->headers_in.headers.part;
h = part->elts;
for (i = 0; ; i++) {
if (i >= part->nelts) {
if (part->next == NULL) {
break;
}
part = part->next;
h = part->elts;
i = 0;
}
if (len != h[i].key.len || ngx_strcasecmp(key, h[i].key.data) != 0) {
h[i].hash = 0;
h[i].key.len = 0;
h[i].key.data = NULL;
h[i].value.len = 0;
h[i].value.data = NULL;
h[i].lowcase_key = NULL;
}
}
}
But this code send empty header(only colon) line to backend.
like this:
:
Should I reconstruct list of headers_in.headers?
Or, should I modify http main module that to avoid sending null header?
Or, Is there any better(faster) way?
Thank you.
--
Open Source Solution Technology Corporation
Tsukasa Hamano <hamano at osstech.co.jp>
fingerprint = 2285 2111 6D34 3816 3C2E A5B9 16BE D101 6069 BE55
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: OpenPGP Digital Signature
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20120317/98c10832/attachment.bin>
More information about the nginx
mailing list