Mercurial > hg > nginx-mail
comparison src/mail/ngx_mail_auth_http_module.c @ 410:cd9cb7a3ff9e
Merge with nginx 0.7.8.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 11 Aug 2008 22:07:06 +0400 |
parents | 52b28d322d76 12defd37f578 |
children | d67e93e97b4a |
comparison
equal
deleted
inserted
replaced
409:52b28d322d76 | 410:cd9cb7a3ff9e |
---|---|
527 default: /* NGX_MAIL_SMTP_PROTOCOL */ | 527 default: /* NGX_MAIL_SMTP_PROTOCOL */ |
528 ctx->err = ctx->errmsg; | 528 ctx->err = ctx->errmsg; |
529 continue; | 529 continue; |
530 } | 530 } |
531 | 531 |
532 p = ngx_pcalloc(s->connection->pool, size); | 532 p = ngx_pnalloc(s->connection->pool, size); |
533 if (p == NULL) { | 533 if (p == NULL) { |
534 ngx_close_connection(ctx->peer.connection); | 534 ngx_close_connection(ctx->peer.connection); |
535 ngx_destroy_pool(ctx->pool); | 535 ngx_destroy_pool(ctx->pool); |
536 ngx_mail_session_internal_server_error(s); | 536 ngx_mail_session_internal_server_error(s); |
537 return; | 537 return; |
592 sizeof("Auth-User") - 1) | 592 sizeof("Auth-User") - 1) |
593 == 0) | 593 == 0) |
594 { | 594 { |
595 s->login.len = ctx->header_end - ctx->header_start; | 595 s->login.len = ctx->header_end - ctx->header_start; |
596 | 596 |
597 s->login.data = ngx_palloc(s->connection->pool, s->login.len); | 597 s->login.data = ngx_pnalloc(s->connection->pool, s->login.len); |
598 if (s->login.data == NULL) { | 598 if (s->login.data == NULL) { |
599 ngx_close_connection(ctx->peer.connection); | 599 ngx_close_connection(ctx->peer.connection); |
600 ngx_destroy_pool(ctx->pool); | 600 ngx_destroy_pool(ctx->pool); |
601 ngx_mail_session_internal_server_error(s); | 601 ngx_mail_session_internal_server_error(s); |
602 return; | 602 return; |
613 sizeof("Auth-Pass") - 1) | 613 sizeof("Auth-Pass") - 1) |
614 == 0) | 614 == 0) |
615 { | 615 { |
616 s->passwd.len = ctx->header_end - ctx->header_start; | 616 s->passwd.len = ctx->header_end - ctx->header_start; |
617 | 617 |
618 s->passwd.data = ngx_palloc(s->connection->pool, s->passwd.len); | 618 s->passwd.data = ngx_pnalloc(s->connection->pool, |
619 s->passwd.len); | |
619 if (s->passwd.data == NULL) { | 620 if (s->passwd.data == NULL) { |
620 ngx_close_connection(ctx->peer.connection); | 621 ngx_close_connection(ctx->peer.connection); |
621 ngx_destroy_pool(ctx->pool); | 622 ngx_destroy_pool(ctx->pool); |
622 ngx_mail_session_internal_server_error(s); | 623 ngx_mail_session_internal_server_error(s); |
623 return; | 624 return; |
650 sizeof("Auth-Error-Code") - 1) | 651 sizeof("Auth-Error-Code") - 1) |
651 == 0) | 652 == 0) |
652 { | 653 { |
653 ctx->errcode.len = ctx->header_end - ctx->header_start; | 654 ctx->errcode.len = ctx->header_end - ctx->header_start; |
654 | 655 |
655 ctx->errcode.data = ngx_palloc(s->connection->pool, | 656 ctx->errcode.data = ngx_pnalloc(s->connection->pool, |
656 ctx->errcode.len); | 657 ctx->errcode.len); |
657 if (ctx->errcode.data == NULL) { | 658 if (ctx->errcode.data == NULL) { |
658 ngx_close_connection(ctx->peer.connection); | 659 ngx_close_connection(ctx->peer.connection); |
659 ngx_destroy_pool(ctx->pool); | 660 ngx_destroy_pool(ctx->pool); |
660 ngx_mail_session_internal_server_error(s); | 661 ngx_mail_session_internal_server_error(s); |
661 return; | 662 return; |
690 } | 691 } |
691 | 692 |
692 ctx->err.len = ctx->errcode.len + ctx->errmsg.len | 693 ctx->err.len = ctx->errcode.len + ctx->errmsg.len |
693 + sizeof(" " CRLF) - 1; | 694 + sizeof(" " CRLF) - 1; |
694 | 695 |
695 p = ngx_palloc(s->connection->pool, ctx->err.len); | 696 p = ngx_pnalloc(s->connection->pool, ctx->err.len); |
696 if (p == NULL) { | 697 if (p == NULL) { |
697 ngx_close_connection(ctx->peer.connection); | 698 ngx_close_connection(ctx->peer.connection); |
698 ngx_destroy_pool(ctx->pool); | 699 ngx_destroy_pool(ctx->pool); |
699 ngx_mail_session_internal_server_error(s); | 700 ngx_mail_session_internal_server_error(s); |
700 return; | 701 return; |
717 s->quit = 1; | 718 s->quit = 1; |
718 ngx_mail_send(s->connection->write); | 719 ngx_mail_send(s->connection->write); |
719 return; | 720 return; |
720 } | 721 } |
721 | 722 |
722 ngx_add_timer(s->connection->read, timer * 1000); | 723 ngx_add_timer(s->connection->read, (ngx_msec_t) (timer * 1000)); |
723 | 724 |
724 s->connection->read->handler = ngx_mail_auth_sleep_handler; | 725 s->connection->read->handler = ngx_mail_auth_sleep_handler; |
725 | 726 |
726 return; | 727 return; |
727 } | 728 } |
734 if (timer == 0) { | 735 if (timer == 0) { |
735 ngx_mail_auth_http_init(s); | 736 ngx_mail_auth_http_init(s); |
736 return; | 737 return; |
737 } | 738 } |
738 | 739 |
739 ngx_add_timer(s->connection->read, timer * 1000); | 740 ngx_add_timer(s->connection->read, (ngx_msec_t) (timer * 1000)); |
740 | 741 |
741 s->connection->read->handler = ngx_mail_auth_sleep_handler; | 742 s->connection->read->handler = ngx_mail_auth_sleep_handler; |
742 | 743 |
743 return; | 744 return; |
744 } | 745 } |
809 | 810 |
810 len = ctx->addr.len + 1 + ctx->port.len; | 811 len = ctx->addr.len + 1 + ctx->port.len; |
811 | 812 |
812 peer->name.len = len; | 813 peer->name.len = len; |
813 | 814 |
814 peer->name.data = ngx_palloc(s->connection->pool, len); | 815 peer->name.data = ngx_pnalloc(s->connection->pool, len); |
815 if (peer->name.data == NULL) { | 816 if (peer->name.data == NULL) { |
816 ngx_destroy_pool(ctx->pool); | 817 ngx_destroy_pool(ctx->pool); |
817 ngx_mail_session_internal_server_error(s); | 818 ngx_mail_session_internal_server_error(s); |
818 return; | 819 return; |
819 } | 820 } |
1278 return NGX_OK; | 1279 return NGX_OK; |
1279 } | 1280 } |
1280 | 1281 |
1281 escaped->len = text->len + n * 2; | 1282 escaped->len = text->len + n * 2; |
1282 | 1283 |
1283 p = ngx_palloc(pool, escaped->len); | 1284 p = ngx_pnalloc(pool, escaped->len); |
1284 if (p == NULL) { | 1285 if (p == NULL) { |
1285 return NGX_ERROR; | 1286 return NGX_ERROR; |
1286 } | 1287 } |
1287 | 1288 |
1288 (void) ngx_escape_uri(p, text->data, text->len, NGX_ESCAPE_MAIL_AUTH); | 1289 (void) ngx_escape_uri(p, text->data, text->len, NGX_ESCAPE_MAIL_AUTH); |
1349 header = conf->headers->elts; | 1350 header = conf->headers->elts; |
1350 for (i = 0; i < conf->headers->nelts; i++) { | 1351 for (i = 0; i < conf->headers->nelts; i++) { |
1351 len += header[i].key.len + 2 + header[i].value.len + 2; | 1352 len += header[i].key.len + 2 + header[i].value.len + 2; |
1352 } | 1353 } |
1353 | 1354 |
1354 p = ngx_palloc(cf->pool, len); | 1355 p = ngx_pnalloc(cf->pool, len); |
1355 if (p == NULL) { | 1356 if (p == NULL) { |
1356 return NGX_CONF_ERROR; | 1357 return NGX_CONF_ERROR; |
1357 } | 1358 } |
1358 | 1359 |
1359 conf->header.len = len; | 1360 conf->header.len = len; |
1391 if (ngx_strncmp(u.url.data, "http://", 7) == 0) { | 1392 if (ngx_strncmp(u.url.data, "http://", 7) == 0) { |
1392 u.url.len -= 7; | 1393 u.url.len -= 7; |
1393 u.url.data += 7; | 1394 u.url.data += 7; |
1394 } | 1395 } |
1395 | 1396 |
1396 if (ngx_parse_url(cf, &u) != NGX_OK) { | 1397 if (ngx_parse_url(cf->pool, &u) != NGX_OK) { |
1397 if (u.err) { | 1398 if (u.err) { |
1398 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | 1399 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
1399 "%s in auth_http \"%V\"", u.err, &u.url); | 1400 "%s in auth_http \"%V\"", u.err, &u.url); |
1400 } | 1401 } |
1401 | 1402 |