comparison src/mail/ngx_mail_auth_http_module.c @ 665:0b460e61bdcd default tip

Merge with nginx 1.0.0.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 25 Apr 2011 04:22:17 +0400
parents 9773720b845e 8246d8a2c2be
children
comparison
equal deleted inserted replaced
572:06419a2298a9 665:0b460e61bdcd
10 #include <ngx_event_connect.h> 10 #include <ngx_event_connect.h>
11 #include <ngx_mail.h> 11 #include <ngx_mail.h>
12 12
13 13
14 typedef struct { 14 typedef struct {
15 ngx_peer_addr_t *peer; 15 ngx_addr_t *peer;
16 16
17 ngx_msec_t timeout; 17 ngx_msec_t timeout;
18 18
19 ngx_str_t host_header; 19 ngx_str_t host_header;
20 ngx_str_t uri; 20 ngx_str_t uri;
455 { 455 {
456 u_char *p; 456 u_char *p;
457 time_t timer; 457 time_t timer;
458 size_t len, size; 458 size_t len, size;
459 ngx_int_t rc, port, n; 459 ngx_int_t rc, port, n;
460 ngx_peer_addr_t *peer; 460 ngx_addr_t *peer;
461 struct sockaddr_in *sin; 461 struct sockaddr_in *sin;
462 462
463 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, s->connection->log, 0, 463 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, s->connection->log, 0,
464 "mail auth http process headers"); 464 "mail auth http process headers");
465 465
762 ngx_destroy_pool(ctx->pool); 762 ngx_destroy_pool(ctx->pool);
763 ngx_mail_session_internal_server_error(s); 763 ngx_mail_session_internal_server_error(s);
764 return; 764 return;
765 } 765 }
766 766
767 peer = ngx_pcalloc(s->connection->pool, sizeof(ngx_peer_addr_t)); 767 peer = ngx_pcalloc(s->connection->pool, sizeof(ngx_addr_t));
768 if (peer == NULL) { 768 if (peer == NULL) {
769 ngx_destroy_pool(ctx->pool); 769 ngx_destroy_pool(ctx->pool);
770 ngx_mail_session_internal_server_error(s); 770 ngx_mail_session_internal_server_error(s);
771 return; 771 return;
772 } 772 }
793 return; 793 return;
794 } 794 }
795 795
796 sin->sin_port = htons((in_port_t) port); 796 sin->sin_port = htons((in_port_t) port);
797 797
798 ctx->addr.data[ctx->addr.len] = '\0'; 798 sin->sin_addr.s_addr = ngx_inet_addr(ctx->addr.data, ctx->addr.len);
799 sin->sin_addr.s_addr = inet_addr((char *) ctx->addr.data);
800 if (sin->sin_addr.s_addr == INADDR_NONE) { 799 if (sin->sin_addr.s_addr == INADDR_NONE) {
801 ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, 800 ngx_log_error(NGX_LOG_ERR, s->connection->log, 0,
802 "auth http server %V sent invalid server " 801 "auth http server %V sent invalid server "
803 "address:\"%V\"", 802 "address:\"%V\"",
804 ctx->peer.name, &ctx->addr); 803 ctx->peer.name, &ctx->addr);
1404 return NGX_CONF_ERROR; 1403 return NGX_CONF_ERROR;
1405 } 1404 }
1406 1405
1407 ahcf->peer = u.addrs; 1406 ahcf->peer = u.addrs;
1408 1407
1409 ahcf->host_header = u.host; 1408 if (u.family != AF_UNIX) {
1409 ahcf->host_header = u.host;
1410
1411 } else {
1412 ngx_str_set(&ahcf->host_header, "localhost");
1413 }
1414
1410 ahcf->uri = u.uri; 1415 ahcf->uri = u.uri;
1411 1416
1412 if (ahcf->uri.len == 0) { 1417 if (ahcf->uri.len == 0) {
1413 ahcf->uri.len = sizeof("/") - 1; 1418 ngx_str_set(&ahcf->uri, "/");
1414 ahcf->uri.data = (u_char *) "/";
1415 } 1419 }
1416 1420
1417 return NGX_CONF_OK; 1421 return NGX_CONF_OK;
1418 } 1422 }
1419 1423