Mercurial > hg > nginx-vendor-1-0
diff src/mail/ngx_mail_imap_handler.c @ 570:8246d8a2c2be NGINX_0_8_37
nginx 0.8.37
*) Feature: the ngx_http_split_clients_module.
*) Feature: the "map" directive supports keys more than 255 characters.
*) Bugfix: nginx ignored the "private" and "no-store" values in the
"Cache-Control" backend response header line.
*) Bugfix: a "stub" parameter of an "include" SSI directive was not
used, if empty response has 200 status code.
*) Bugfix: if a proxied or FastCGI request was internally redirected to
another proxied or FastCGI location, then a segmentation fault might
occur in a worker process; the bug had appeared in 0.8.33.
Thanks to Yichun Zhang.
*) Bugfix: IMAP connections may hang until they timed out while talking
to Zimbra server.
Thanks to Alan Batie.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 17 May 2010 00:00:00 +0400 |
parents | 33394d1255b0 |
children | ad25218fd14b |
line wrap: on
line diff
--- a/src/mail/ngx_mail_imap_handler.c +++ b/src/mail/ngx_mail_imap_handler.c @@ -39,8 +39,7 @@ ngx_mail_imap_init_session(ngx_mail_sess cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); - s->out.len = sizeof(imap_greeting) - 1; - s->out.data = imap_greeting; + ngx_str_set(&s->out, imap_greeting); c->read->handler = ngx_mail_imap_init_protocol; @@ -136,8 +135,7 @@ ngx_mail_imap_auth_state(ngx_event_t *re tag = 1; s->text.len = 0; - s->out.len = sizeof(imap_ok) - 1; - s->out.data = imap_ok; + ngx_str_set(&s->out, imap_ok); if (rc == NGX_OK) { @@ -186,8 +184,7 @@ ngx_mail_imap_auth_state(ngx_event_t *re case NGX_IMAP_LOGOUT: s->quit = 1; - s->text.len = sizeof(imap_bye) - 1; - s->text.data = imap_bye; + ngx_str_set(&s->text, imap_bye); break; case NGX_IMAP_NOOP: @@ -208,8 +205,7 @@ ngx_mail_imap_auth_state(ngx_event_t *re rc = ngx_mail_auth_login_username(s, c, 0); tag = 0; - s->out.len = sizeof(imap_password) - 1; - s->out.data = imap_password; + ngx_str_set(&s->out, imap_password); s->mail_state = ngx_imap_auth_login_password; break; @@ -229,8 +225,7 @@ ngx_mail_imap_auth_state(ngx_event_t *re } else if (rc == NGX_IMAP_NEXT) { tag = 0; - s->out.len = sizeof(imap_next) - 1; - s->out.data = imap_next; + ngx_str_set(&s->out, imap_next); } switch (rc) { @@ -245,16 +240,14 @@ ngx_mail_imap_auth_state(ngx_event_t *re case NGX_MAIL_PARSE_INVALID_COMMAND: s->state = 0; - s->out.len = sizeof(imap_invalid_command) - 1; - s->out.data = imap_invalid_command; + ngx_str_set(&s->out, imap_invalid_command); s->mail_state = ngx_imap_start; break; } if (tag) { if (s->tag.len == 0) { - s->tag.len = sizeof(imap_star) - 1; - s->tag.data = (u_char *) imap_star; + ngx_str_set(&s->tag, imap_star); } if (s->tagged_line.len < s->tag.len + s->text.len + s->out.len) { @@ -364,24 +357,21 @@ ngx_mail_imap_authenticate(ngx_mail_sess case NGX_MAIL_AUTH_LOGIN: - s->out.len = sizeof(imap_username) - 1; - s->out.data = imap_username; + ngx_str_set(&s->out, imap_username); s->mail_state = ngx_imap_auth_login_username; return NGX_OK; case NGX_MAIL_AUTH_LOGIN_USERNAME: - s->out.len = sizeof(imap_password) - 1; - s->out.data = imap_password; + ngx_str_set(&s->out, imap_password); s->mail_state = ngx_imap_auth_login_password; return ngx_mail_auth_login_username(s, c, 1); case NGX_MAIL_AUTH_PLAIN: - s->out.len = sizeof(imap_plain_next) - 1; - s->out.data = imap_plain_next; + ngx_str_set(&s->out, imap_plain_next); s->mail_state = ngx_imap_auth_plain; return NGX_OK;