Здравствуйте.<br><br>Почему-то не получается сохранить cookie из http-обработчика. Не подскажите, где ошибка?<br><br>Сам обработчик:<br><br>static ngx_int_t ngx_http_test_handler(ngx_http_request_t *r)<br>{<br>&nbsp; ngx_table_elt_t** raw_cookies = static_cast&lt;ngx_table_elt_t**&gt;(r-&gt;headers_in.cookies.elts);<br>
&nbsp; cout &lt;&lt; stdstr(raw_cookies[0]-&gt;value) &lt;&lt; endl; // stdstr() конвертирует ngx_str_t в std::string<br><br>&nbsp; ngx_table_elt_t* set_cookie = static_cast&lt;ngx_table_elt_t*&gt;(ngx_list_push(&amp;r-&gt;headers_out.headers));<br>
&nbsp; set_cookie-&gt;hash = 1;<br>&nbsp; set_cookie-&gt;key.len = sizeof(&quot;Set-Cookie&quot;) - 1;<br>&nbsp; set_cookie-&gt;key.data = (u_char*)&quot;Set-Cookie&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
<br>&nbsp; set_cookie-&gt;value.len = sizeof(&quot;foobar&quot;) - 1;<br>&nbsp; set_cookie-&gt;value.data = (u_char*)&quot;foobar&quot;; // этот cookie не будет сохранен у клиента<br><br>&nbsp; ngx_http_send_header(r);<br><br>&nbsp; return NGX_OK;<br>
}<br><br>Устанавливается обработчик так:<br><br>static ngx_command_t&nbsp; ngx_http_test_commands[] = {<br><br>&nbsp;&nbsp;&nbsp; { ngx_string(&quot;test&quot;),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ngx_http_test_install_handler,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NGX_HTTP_LOC_CONF_OFFSET,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ngx_null_command<br>}<br>&nbsp;<br>static char* ngx_http_test_install_handler(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)<br>{<br>&nbsp; ngx_http_core_loc_conf_t* clcf = static_cast&lt;ngx_http_core_loc_conf_t*&gt;(ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module));<br>
&nbsp; clcf-&gt;handler = ngx_http_test_handler;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br>&nbsp; return NGX_CONF_OK;<br>
}<br><br>nginx 0.6.29<br><br>Спасибо.<br><br>--<br>С уважением,<br>Сергей Самохин.<br>