diff src/imap/ngx_imap_parse.c @ 421:01456a419cf9

nginx-0.0.10-2004-09-10-18:32:02 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 10 Sep 2004 14:32:02 +0000
parents 47709bff4468
children edaefb2a20fc
line wrap: on
line diff
--- a/src/imap/ngx_imap_parse.c
+++ b/src/imap/ngx_imap_parse.c
@@ -39,7 +39,7 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
                         s->command = NGX_POP3_USER;
 
                     } else if (c[0] == 'P' && c[1] == 'A'
-                               && c[2] == 'A' && c[3] == 'S')
+                               && c[2] == 'S' && c[3] == 'S')
                     {
                         s->command = NGX_POP3_PASS;
 
@@ -56,10 +56,12 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
 #endif
 
                     } else {
+                        s->state = sw_start;
                         return NGX_IMAP_PARSE_INVALID_COMMAND;
                     }
 
                 } else {
+                    s->state = sw_start;
                     return NGX_IMAP_PARSE_INVALID_COMMAND;
                 }
 
@@ -78,6 +80,7 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
             }
 
             if (ch < 'A' || ch > 'Z') {
+                s->state = sw_start;
                 return NGX_IMAP_PARSE_INVALID_COMMAND;
             }
 
@@ -98,6 +101,7 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
                 break;
             default:
                 if (s->args.nelts > 2) {
+                    s->state = sw_start;
                     return NGX_IMAP_PARSE_INVALID_COMMAND;
                 }
 
@@ -145,6 +149,7 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
                 state = sw_done;
                 break;
             default:
+                s->state = sw_start;
                 return NGX_IMAP_PARSE_INVALID_COMMAND;
             }
             break;
@@ -167,6 +172,7 @@ ngx_int_t ngx_pop3_parse_command(ngx_ima
             s->arg_start = NULL;
         }
 
+        s->state = sw_start;
         return NGX_OK;
 
     } else {