Mercurial > hg > nginx-mail
comparison src/mail/ngx_mail_parse.c @ 322:d16d691432c9 NGINX_0_6_5
nginx 0.6.5
*) Feature: $nginx_version variable.
Thanks to Nick S. Grechukh.
*) Feature: the mail proxy supports AUTHENTICATE in IMAP mode.
Thanks to Maxim Dounin.
*) Feature: the mail proxy supports STARTTLS in SMTP mode.
Thanks to Maxim Dounin.
*) Bugfix: now nginx escapes space in $memcached_key variable.
*) Bugfix: nginx was incorrectly built by Sun Studio on
Solaris/amd64.
Thanks to Jiang Hong.
*) Bugfix: of minor potential bugs.
Thanks to Coverity's Scan.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 23 Jul 2007 00:00:00 +0400 |
parents | f745bf973510 |
children | 390b8f8309d6 d4cac61d8e95 |
comparison
equal
deleted
inserted
replaced
321:a87830ef6fdd | 322:d16d691432c9 |
---|---|
352 } else { | 352 } else { |
353 goto invalid; | 353 goto invalid; |
354 } | 354 } |
355 break; | 355 break; |
356 | 356 |
357 case 12: | |
358 if ((c[0] == 'A'|| c[0] == 'a') | |
359 && (c[1] == 'U'|| c[1] == 'u') | |
360 && (c[2] == 'T'|| c[2] == 't') | |
361 && (c[3] == 'H'|| c[3] == 'h') | |
362 && (c[4] == 'E'|| c[4] == 'e') | |
363 && (c[5] == 'N'|| c[5] == 'n') | |
364 && (c[6] == 'T'|| c[6] == 't') | |
365 && (c[7] == 'I'|| c[7] == 'i') | |
366 && (c[8] == 'C'|| c[8] == 'c') | |
367 && (c[9] == 'A'|| c[9] == 'a') | |
368 && (c[10] == 'T'|| c[10] == 't') | |
369 && (c[11] == 'E'|| c[11] == 'e')) | |
370 { | |
371 s->command = NGX_IMAP_AUTHENTICATE; | |
372 | |
373 } else { | |
374 goto invalid; | |
375 } | |
376 break; | |
377 | |
357 default: | 378 default: |
358 goto invalid; | 379 goto invalid; |
359 } | 380 } |
360 | 381 |
361 switch (ch) { | 382 switch (ch) { |
571 s->quoted = 0; | 592 s->quoted = 0; |
572 s->no_sync_literal = 0; | 593 s->no_sync_literal = 0; |
573 s->literal_len = 0; | 594 s->literal_len = 0; |
574 } | 595 } |
575 | 596 |
576 s->state = sw_start; | 597 s->state = (s->command != NGX_IMAP_AUTHENTICATE) ? sw_start : sw_argument; |
577 | 598 |
578 return NGX_OK; | 599 return NGX_OK; |
579 | 600 |
580 invalid: | 601 invalid: |
581 | 602 |
644 | 665 |
645 } else if (c0 == 'R' && c1 == 'S' && c2 == 'E' && c3 == 'T') | 666 } else if (c0 == 'R' && c1 == 'S' && c2 == 'E' && c3 == 'T') |
646 { | 667 { |
647 s->command = NGX_SMTP_RSET; | 668 s->command = NGX_SMTP_RSET; |
648 | 669 |
670 } else if (c0 == 'R' && c1 == 'C' && c2 == 'P' && c3 == 'T') | |
671 { | |
672 s->command = NGX_SMTP_RCPT; | |
673 | |
674 } else if (c0 == 'V' && c1 == 'R' && c2 == 'F' && c3 == 'Y') | |
675 { | |
676 s->command = NGX_SMTP_VRFY; | |
677 | |
678 } else if (c0 == 'E' && c1 == 'X' && c2 == 'P' && c3 == 'N') | |
679 { | |
680 s->command = NGX_SMTP_EXPN; | |
681 | |
682 } else if (c0 == 'H' && c1 == 'E' && c2 == 'L' && c3 == 'P') | |
683 { | |
684 s->command = NGX_SMTP_HELP; | |
685 | |
649 } else { | 686 } else { |
650 goto invalid; | 687 goto invalid; |
651 } | 688 } |
652 | 689 #if (NGX_MAIL_SSL) |
690 } else if (p - c == 8) { | |
691 | |
692 if ((c[0] == 'S'|| c[0] == 's') | |
693 && (c[1] == 'T'|| c[1] == 't') | |
694 && (c[2] == 'A'|| c[2] == 'a') | |
695 && (c[3] == 'R'|| c[3] == 'r') | |
696 && (c[4] == 'T'|| c[4] == 't') | |
697 && (c[5] == 'T'|| c[5] == 't') | |
698 && (c[6] == 'L'|| c[6] == 'l') | |
699 && (c[7] == 'S'|| c[7] == 's')) | |
700 { | |
701 s->command = NGX_SMTP_STARTTLS; | |
702 | |
703 } else { | |
704 goto invalid; | |
705 } | |
706 #endif | |
653 } else { | 707 } else { |
654 goto invalid; | 708 goto invalid; |
655 } | 709 } |
656 | 710 |
657 switch (ch) { | 711 switch (ch) { |