comparison src/mail/ngx_mail_smtp_handler.c @ 467:d67e93e97b4a

Merge with nginx 0.7.30.
author Maxim Dounin <mdounin@mdounin.ru>
date Sun, 11 Jan 2009 17:17:57 +0300
parents 9b19e26b2660 dac47e9ef0d5
children 2580fe1c5a9a
comparison
equal deleted inserted replaced
444:4c92e29a7375 467:d67e93e97b4a
226 sscf = ngx_mail_get_module_srv_conf(s, ngx_mail_smtp_module); 226 sscf = ngx_mail_get_module_srv_conf(s, ngx_mail_smtp_module);
227 227
228 timeout = sscf->greeting_delay ? sscf->greeting_delay : cscf->timeout; 228 timeout = sscf->greeting_delay ? sscf->greeting_delay : cscf->timeout;
229 ngx_add_timer(c->read, timeout); 229 ngx_add_timer(c->read, timeout);
230 230
231 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 231 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
232 ngx_mail_close_connection(c); 232 ngx_mail_close_connection(c);
233 } 233 }
234 234
235 if (sscf->greeting_delay) { 235 if (sscf->greeting_delay) {
236 c->read->handler = ngx_mail_smtp_invalid_pipelining; 236 c->read->handler = ngx_mail_smtp_invalid_pipelining;
268 268
269 c->read->handler = ngx_mail_smtp_init_protocol; 269 c->read->handler = ngx_mail_smtp_init_protocol;
270 270
271 ngx_add_timer(c->read, cscf->timeout); 271 ngx_add_timer(c->read, cscf->timeout);
272 272
273 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 273 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
274 ngx_mail_close_connection(c); 274 ngx_mail_close_connection(c);
275 return; 275 return;
276 } 276 }
277 277
278 sscf = ngx_mail_get_module_srv_conf(s, ngx_mail_smtp_module); 278 sscf = ngx_mail_get_module_srv_conf(s, ngx_mail_smtp_module);
645 ngx_mail_smtp_srv_conf_t *sscf; 645 ngx_mail_smtp_srv_conf_t *sscf;
646 646
647 sscf = ngx_mail_get_module_srv_conf(s, ngx_mail_smtp_module); 647 sscf = ngx_mail_get_module_srv_conf(s, ngx_mail_smtp_module);
648 648
649 if (!(sscf->auth_methods & NGX_MAIL_AUTH_NONE_ENABLED)) { 649 if (!(sscf->auth_methods & NGX_MAIL_AUTH_NONE_ENABLED)) {
650 ngx_mail_smtp_log_rejected_command(s, c, 650 ngx_mail_smtp_log_rejected_command(s, c, "client was rejected: \"%V\"");
651 "client was rejected: \"%V\"");
652 651
653 s->out.len = sizeof(smtp_auth_required) - 1; 652 s->out.len = sizeof(smtp_auth_required) - 1;
654 s->out.data = smtp_auth_required; 653 s->out.data = smtp_auth_required;
655 654
656 return NGX_OK; 655 return NGX_OK;
670 cmd.len = end->data + end->len - arg->data; 669 cmd.len = end->data + end->len - arg->data;
671 cmd.data = arg->data; 670 cmd.data = arg->data;
672 671
673 s->smtp_from.len = cmd.len; 672 s->smtp_from.len = cmd.len;
674 673
675 s->smtp_from.data = ngx_palloc(c->pool, cmd.len); 674 s->smtp_from.data = ngx_pnalloc(c->pool, cmd.len);
676 if (s->smtp_from.data == NULL) { 675 if (s->smtp_from.data == NULL) {
677 return NGX_ERROR; 676 return NGX_ERROR;
678 } 677 }
679 678
680 ngx_memcpy(s->smtp_from.data, cmd.data, cmd.len); 679 ngx_memcpy(s->smtp_from.data, cmd.data, cmd.len);
680
681 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
682 "smtp mail from:\"%V\"", &s->smtp_from);
681 683
682 s->out.len = sizeof(smtp_ok) - 1; 684 s->out.len = sizeof(smtp_ok) - 1;
683 s->out.data = smtp_ok; 685 s->out.data = smtp_ok;
684 686
685 return NGX_OK; 687 return NGX_OK;
703 cmd.len = end->data + end->len - arg->data; 705 cmd.len = end->data + end->len - arg->data;
704 cmd.data = arg->data; 706 cmd.data = arg->data;
705 707
706 s->smtp_to.len = cmd.len; 708 s->smtp_to.len = cmd.len;
707 709
708 s->smtp_to.data = ngx_palloc(c->pool, cmd.len); 710 s->smtp_to.data = ngx_pnalloc(c->pool, cmd.len);
709 if (s->smtp_to.data == NULL) { 711 if (s->smtp_to.data == NULL) {
710 return NGX_ERROR; 712 return NGX_ERROR;
711 } 713 }
712 714
713 ngx_memcpy(s->smtp_to.data, cmd.data, cmd.len); 715 ngx_memcpy(s->smtp_to.data, cmd.data, cmd.len);
716
717 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
718 "smtp rcpt to:\"%V\"", &s->smtp_to);
714 719
715 s->auth_method = NGX_MAIL_AUTH_NONE; 720 s->auth_method = NGX_MAIL_AUTH_NONE;
716 721
717 return NGX_DONE; 722 return NGX_DONE;
718 } 723 }
782 if (n > 0) { 787 if (n > 0) {
783 s->buffer->last += n; 788 s->buffer->last += n;
784 } 789 }
785 790
786 if (n == NGX_AGAIN) { 791 if (n == NGX_AGAIN) {
787 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { 792 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
788 ngx_mail_session_internal_server_error(s); 793 ngx_mail_session_internal_server_error(s);
789 return NGX_ERROR; 794 return NGX_ERROR;
790 } 795 }
791 796
792 return NGX_AGAIN; 797 return NGX_AGAIN;