On Tuesday 26 April 2016 16:52:22 Pankaj Chaudhary wrote:
> Hi Francis,
>
> thank you for your input!
>
> I have requirement to create own cookie based on input and wirte the that
> cookie in header.
> whenever i need that i can read from header and use it.
>
>
> for example:-
>
> I have created my own cookie "thissomevalue" worte in header and later the
> same read from header.
>
You shouldn't do that (I believe even in Apache) because it's an expensive
operation in comparison to just storing the value in local variable.
> Please check my code and let me know why i am not able to read the value
> from header.
Because you write your value in one structure, but try to find it in another.
>
> Below code snippet to set header value in request header:-
>
> ngx_table_elt_t *cookie;
> cookie = ngx_list_push(&r->headers_in.headers);
Here you have inserted your value into header list (r->headers_in.headers).
> cookie->lowcase_key = (u_char*) "cookie";
> ngx_str_set(&cookie->key, "Cookie");
> ngx_str_set(&cookie->value, "somevalue");
> cookie->hash = ngx_crc32_long(cookie->lowcase_key, cookie->key.len);
>
>
> Below code snippet to read set value from header:-
>
> ngx_http_core_main_conf_t *clcf;
> ngx_str_t *type;
> ngx_uint_t key;
> ngx_str_t val = ngx_string("cookie");
> clcf = ngx_http_get_module_main_conf(r, ngx_http_core_module);
> key= ngx_hash_key_lc(val.data, val.len);
> type = ngx_hash_find(&clcf->headers_in_hash, key, val.data, val.len);
>
Here you are trying to find your value in the static input headers hash
(clcf->headers_in_hash), that is created in ngx_http_init_headers_in_hash()
on configuration stage.
wbr, Valentin V. Bartenev
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx