comparison src/mail/ngx_mail_auth_http_module.c @ 1477:59e1caf2be94

style fix and optimizations
author Igor Sysoev <igor@sysoev.ru>
date Thu, 13 Sep 2007 20:27:28 +0000
parents fdd064faf26a
children d0cce8369848
comparison
equal deleted inserted replaced
1476:67578e966dcc 1477:59e1caf2be94
143 ngx_string("cram-md5") 143 ngx_string("cram-md5")
144 }; 144 };
145 145
146 static ngx_str_t ngx_mail_smtp_errcode = ngx_string("535 5.7.0"); 146 static ngx_str_t ngx_mail_smtp_errcode = ngx_string("535 5.7.0");
147 147
148 static ngx_uint_t ngx_mail_start_states[] = {
149 ngx_pop3_start,
150 ngx_imap_start,
151 ngx_smtp_start
152 };
153
154 static ngx_mail_auth_state_pt ngx_mail_auth_states[] = {
155 ngx_mail_pop3_auth_state,
156 ngx_mail_imap_auth_state,
157 ngx_mail_smtp_auth_state
158 };
159
160
148 void 161 void
149 ngx_mail_auth_http_init(ngx_mail_session_t *s) 162 ngx_mail_auth_http_init(ngx_mail_session_t *s)
150 { 163 {
151 ngx_int_t rc; 164 ngx_int_t rc;
152 ngx_pool_t *pool; 165 ngx_pool_t *pool;
866 s->auth_wait = 0; 879 s->auth_wait = 0;
867 ngx_mail_auth_http_init(s); 880 ngx_mail_auth_http_init(s);
868 return; 881 return;
869 } 882 }
870 883
871 switch (s->protocol) { 884 s->mail_state = ngx_mail_start_states[s->protocol];
872 885 rev->handler = ngx_mail_auth_states[s->protocol];
873 case NGX_MAIL_POP3_PROTOCOL:
874 s->mail_state = ngx_pop3_start;
875 s->connection->read->handler = ngx_pop3_auth_state;
876 break;
877
878 case NGX_MAIL_IMAP_PROTOCOL:
879 s->mail_state = ngx_imap_start;
880 s->connection->read->handler = ngx_imap_auth_state;
881 break;
882
883 default: /* NGX_MAIL_SMTP_PROTOCOL */
884 s->mail_state = ngx_smtp_start;
885 s->connection->read->handler = ngx_smtp_auth_state;
886 break;
887 }
888 886
889 s->auth_method = NGX_MAIL_AUTH_PLAIN; 887 s->auth_method = NGX_MAIL_AUTH_PLAIN;
890 888
891 c->log->action = "in auth state"; 889 c->log->action = "in auth state";
892 890
893 ngx_mail_send(s->connection->write); 891 ngx_mail_send(c->write);
894 892
895 if (c->destroyed) { 893 if (c->destroyed) {
896 return; 894 return;
897 } 895 }
898 896
899 cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); 897 cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module);
900 898
901 ngx_add_timer(rev, cscf->timeout); 899 ngx_add_timer(rev, cscf->timeout);
902 900
903 if (rev->ready) { 901 if (rev->ready) {
904 s->connection->read->handler(rev); 902 rev->handler(rev);
905 return; 903 return;
906 } 904 }
907 905
908 if (ngx_handle_read_event(rev, 0) == NGX_ERROR) { 906 if (ngx_handle_read_event(rev, 0) == NGX_ERROR) {
909 ngx_mail_close_connection(s->connection); 907 ngx_mail_close_connection(c);
910 } 908 }
911 909
912 return; 910 return;
913 } 911 }
914 912
915 if (rev->active) { 913 if (rev->active) {
916 if (ngx_handle_read_event(rev, 0) == NGX_ERROR) { 914 if (ngx_handle_read_event(rev, 0) == NGX_ERROR) {
917 ngx_mail_close_connection(s->connection); 915 ngx_mail_close_connection(c);
918 } 916 }
919 } 917 }
920 } 918 }
921 919
922 920