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