comparison 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
comparison
equal deleted inserted replaced
251:16ffa8ae5759 252:644510700914
439 439
440 } else if (c0 == 'C' && c1 == 'A' && c2 == 'P' && c3 == 'A') 440 } else if (c0 == 'C' && c1 == 'A' && c2 == 'P' && c3 == 'A')
441 { 441 {
442 s->command = NGX_POP3_CAPA; 442 s->command = NGX_POP3_CAPA;
443 443
444 } else if (c0 == 'A' && c1 == 'U' && c2 == 'T' && c3 == 'H')
445 {
446 s->command = NGX_POP3_AUTH;
447
444 } else if (c0 == 'N' && c1 == 'O' && c2 == 'O' && c3 == 'P') 448 } else if (c0 == 'N' && c1 == 'O' && c2 == 'O' && c3 == 'P')
445 { 449 {
446 s->command = NGX_POP3_NOOP; 450 s->command = NGX_POP3_NOOP;
447 #if (NGX_IMAP_SSL) 451 #if (NGX_IMAP_SSL)
448 } else if (c0 == 'S' && c1 == 'T' && c2 == 'L' && c3 == 'S') 452 } else if (c0 == 'S' && c1 == 'T' && c2 == 'L' && c3 == 'S')
569 arg->len = s->arg_end - s->arg_start; 573 arg->len = s->arg_end - s->arg_start;
570 arg->data = s->arg_start; 574 arg->data = s->arg_start;
571 s->arg_start = NULL; 575 s->arg_start = NULL;
572 } 576 }
573 577
578 s->state = (s->command != NGX_POP3_AUTH) ? sw_start : sw_argument;
579 return NGX_OK;
580
581 invalid:
582
574 s->state = sw_start; 583 s->state = sw_start;
575 584 s->arg_start = NULL;
576 return NGX_OK;
577
578 invalid:
579
580 s->state = sw_start;
581 585
582 return NGX_IMAP_PARSE_INVALID_COMMAND; 586 return NGX_IMAP_PARSE_INVALID_COMMAND;
583 } 587 }