diff src/imap/ngx_imap_parse.c @ 252:644510700914 NGINX_0_4_11

nginx 0.4.11 *) Feature: the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5. *) Feature: the ngx_http_perl_module supports the $r->allow_ranges method. *) Bugfix: if the APOP was enabled in the POP3 proxy, then the USER/PASS commands might not work; bug appeared in 0.4.10.
author Igor Sysoev <http://sysoev.ru>
date Wed, 25 Oct 2006 00:00:00 +0400
parents fbf2b2f66c9f
children
line wrap: on
line diff
--- a/src/imap/ngx_imap_parse.c
+++ b/src/imap/ngx_imap_parse.c
@@ -441,6 +441,10 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
                     {
                         s->command = NGX_POP3_CAPA;
 
+                    } else if (c0 == 'A' && c1 == 'U' && c2 == 'T' && c3 == 'H')
+                    {
+                        s->command = NGX_POP3_AUTH;
+
                     } else if (c0 == 'N' && c1 == 'O' && c2 == 'O' && c3 == 'P')
                     {
                         s->command = NGX_POP3_NOOP;
@@ -571,13 +575,13 @@ done:
         s->arg_start = NULL;
     }
 
-    s->state = sw_start;
-
+    s->state = (s->command != NGX_POP3_AUTH) ? sw_start : sw_argument;
     return NGX_OK;
 
 invalid:
 
     s->state = sw_start;
+    s->arg_start = NULL;
 
     return NGX_IMAP_PARSE_INVALID_COMMAND;
 }