ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Не сохраняются cookie из http-обработчика


  • To: nginx-ru@xxxxxxxxx
  • Subject: Не сохраняются cookie из http-обработчика
  • From: "Sergey S." <neavirc@xxxxxxxxx>
  • Date: Wed, 26 Mar 2008 08:52:02 -0700
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=QPzUWML9QvLaGhD/pyVNnjQrvCxX+1z0oUnQP8J91xs=; b=ZpxeDYaVoz/NgXg3QBTOzDpCzRG/nMUserWj+X4h5rT4l/cW2AN8HmsTYB4ihY0w7H4i959oJ8B49C+kfzK1+1ITqKMblHfWUMdnzsHGzHBVKrRGt9on8hul7IViXwlTUJw1y10bT4auEWCQrU5aY2aQwt8kl5OuK7OVpdt4cYo=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:to:subject:mime-version:content-type; b=ZLdISZeQGyQSIUkzUnZK+zXcqmb2E1bRaB0oBexscp8W3QYv9Jd5JYjNFWmLWxxFljQ1Y410IVvyMQI+X9nCMBvwBvaHugTqOBbmzoXZf/qbjk6Sn0rcXQKoyexa4/1kOKn2zt84E7EvcvPTGMMxI0diy0my+gb45OYN111u+6A=

Здравствуйте.

Почему-то не получается сохранить cookie из http-обработчика. Не подскажите, где ошибка?

Сам обработчик:

static ngx_int_t ngx_http_test_handler(ngx_http_request_t *r)
{
  ngx_table_elt_t** raw_cookies = static_cast<ngx_table_elt_t**>(r->headers_in.cookies.elts);
  cout << stdstr(raw_cookies[0]->value) << endl; // stdstr() конвертирует ngx_str_t в std::string

  ngx_table_elt_t* set_cookie = static_cast<ngx_table_elt_t*>(ngx_list_push(&r->headers_out.headers));
  set_cookie->hash = 1;
  set_cookie->key.len = sizeof("Set-Cookie") - 1;
  set_cookie->key.data = ""

  set_cookie->value.len = sizeof("foobar") - 1;
  set_cookie->value.data = "" // этот cookie не будет сохранен у клиента

  ngx_http_send_header(r);

  return NGX_OK;
}

Устанавливается обработчик так:

static ngx_command_t  ngx_http_test_commands[] = {

    { ngx_string("test"),
      NGX_HTTP_LOC_CONF|NGX_CONF_NOARGS,
      ngx_http_test_install_handler,
      NGX_HTTP_LOC_CONF_OFFSET,
      0,
      NULL },
      // ...
      ngx_null_command
}
 
static char* ngx_http_test_install_handler(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{
  ngx_http_core_loc_conf_t* clcf = static_cast<ngx_http_core_loc_conf_t*>(ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module));
  clcf->handler = ngx_http_test_handler;                                                                                                                                                                        

  return NGX_CONF_OK;
}

nginx 0.6.29

Спасибо.

--
С уважением,
Сергей Самохин.


 




Copyright © Lexa Software, 1996-2009.