Mercurial > hg > nginx
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 |