(52) Empty reply from server

Valentin V. Bartenev vbart at nginx.com
Tue Apr 26 12:53:26 UTC 2016


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



More information about the nginx mailing list