Mercurial > hg > nginx-vendor-0-6
diff src/imap/ngx_imap_parse.c @ 250:fbf2b2f66c9f NGINX_0_4_10
nginx 0.4.10
*) Feature: the POP3 proxy supports the APOP command.
*) Bugfix: if the select, poll or /dev/poll methods were used, then
while waiting authentication server response the IMAP/POP3 proxy
hogged CPU.
*) Bugfix: a segmentation fault might occur if the $server_addr
variable was used in the "map" directive.
*) Bugfix: the ngx_http_flv_module did not support the byte ranges for
full responses; bug appeared in 0.4.7.
*) Bugfix: nginx could not be built on Debian amd64; bug appeared in
0.4.9.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 23 Oct 2006 00:00:00 +0400 |
parents | 91372f004adf |
children | 644510700914 |
line wrap: on
line diff
--- a/src/imap/ngx_imap_parse.c +++ b/src/imap/ngx_imap_parse.c @@ -429,6 +429,10 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima { s->command = NGX_POP3_PASS; + } else if (c0 == 'A' && c1 == 'P' && c2 == 'O' && c3 == 'P') + { + s->command = NGX_POP3_APOP; + } else if (c0 == 'Q' && c1 == 'U' && c2 == 'I' && c3 == 'T') { s->command = NGX_POP3_QUIT; @@ -496,12 +500,20 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima case sw_argument: switch (ch) { - /* - * the space should be considered part of the at username - * or password, but not of argument in other commands - * - * case ' ': - */ + case ' ': + + /* + * the space should be considered as part of the at username + * or password, but not of argument in other commands + */ + + if (s->command == NGX_POP3_USER + || s->command == NGX_POP3_PASS) + { + break; + } + + /* fall through */ case CR: case LF: