comparison 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
comparison
equal deleted inserted replaced
420:33a8253115b4 421:01456a419cf9
37 && c[2] == 'E' && c[3] == 'R') 37 && c[2] == 'E' && c[3] == 'R')
38 { 38 {
39 s->command = NGX_POP3_USER; 39 s->command = NGX_POP3_USER;
40 40
41 } else if (c[0] == 'P' && c[1] == 'A' 41 } else if (c[0] == 'P' && c[1] == 'A'
42 && c[2] == 'A' && c[3] == 'S') 42 && c[2] == 'S' && c[3] == 'S')
43 { 43 {
44 s->command = NGX_POP3_PASS; 44 s->command = NGX_POP3_PASS;
45 45
46 } else if (c[0] == 'Q' && c[1] == 'U' 46 } else if (c[0] == 'Q' && c[1] == 'U'
47 && c[2] == 'I' && c[3] == 'T') 47 && c[2] == 'I' && c[3] == 'T')
54 { 54 {
55 s->command = NGX_POP3_NOOP; 55 s->command = NGX_POP3_NOOP;
56 #endif 56 #endif
57 57
58 } else { 58 } else {
59 s->state = sw_start;
59 return NGX_IMAP_PARSE_INVALID_COMMAND; 60 return NGX_IMAP_PARSE_INVALID_COMMAND;
60 } 61 }
61 62
62 } else { 63 } else {
64 s->state = sw_start;
63 return NGX_IMAP_PARSE_INVALID_COMMAND; 65 return NGX_IMAP_PARSE_INVALID_COMMAND;
64 } 66 }
65 67
66 switch (ch) { 68 switch (ch) {
67 case ' ': 69 case ' ':
76 } 78 }
77 break; 79 break;
78 } 80 }
79 81
80 if (ch < 'A' || ch > 'Z') { 82 if (ch < 'A' || ch > 'Z') {
83 s->state = sw_start;
81 return NGX_IMAP_PARSE_INVALID_COMMAND; 84 return NGX_IMAP_PARSE_INVALID_COMMAND;
82 } 85 }
83 86
84 break; 87 break;
85 88
96 state = sw_done; 99 state = sw_done;
97 s->arg_end = p - 1; 100 s->arg_end = p - 1;
98 break; 101 break;
99 default: 102 default:
100 if (s->args.nelts > 2) { 103 if (s->args.nelts > 2) {
104 s->state = sw_start;
101 return NGX_IMAP_PARSE_INVALID_COMMAND; 105 return NGX_IMAP_PARSE_INVALID_COMMAND;
102 } 106 }
103 107
104 state = sw_argument; 108 state = sw_argument;
105 s->arg_start = p - 1; 109 s->arg_start = p - 1;
143 switch (ch) { 147 switch (ch) {
144 case LF: 148 case LF:
145 state = sw_done; 149 state = sw_done;
146 break; 150 break;
147 default: 151 default:
152 s->state = sw_start;
148 return NGX_IMAP_PARSE_INVALID_COMMAND; 153 return NGX_IMAP_PARSE_INVALID_COMMAND;
149 } 154 }
150 break; 155 break;
151 156
152 /* suppress warning */ 157 /* suppress warning */
165 arg->len = s->arg_end - s->arg_start; 170 arg->len = s->arg_end - s->arg_start;
166 arg->data = s->arg_start; 171 arg->data = s->arg_start;
167 s->arg_start = NULL; 172 s->arg_start = NULL;
168 } 173 }
169 174
175 s->state = sw_start;
170 return NGX_OK; 176 return NGX_OK;
171 177
172 } else { 178 } else {
173 s->state = state; 179 s->state = state;
174 return NGX_AGAIN; 180 return NGX_AGAIN;