comparison src/mail/ngx_mail_auth_http_module.c @ 326:9fc4ab6673f9 NGINX_0_6_7

nginx 0.6.7 *) Change: now the paths specified in the "include", "auth_basic_user_file", "perl_modules", "ssl_certificate", "ssl_certificate_key", and "ssl_client_certificate" directives are relative to directory of nginx configuration file nginx.conf, but not to nginx prefix directory. *) Change: the --sysconfdir=PATH option in configure was canceled. *) Change: the special make target "upgrade1" was defined for online upgrade of 0.1.x versions. *) Feature: the "server_name" and "valid_referers" directives support regular expressions. *) Feature: the "server" directive in the "upstream" context supports the "backup" parameter. *) Feature: the ngx_http_perl_module supports the $r->discard_request_body. *) Feature: the "add_header Last-Modified ..." directive changes the "Last-Modified" response header line. *) Bugfix: if an response different than 200 was returned to an request with body and connection went to the keep-alive state after the request, then nginx returned 400 for the next request. *) Bugfix: a segmentation fault occurred in worker process if invalid address was set in the "auth_http" directive. *) Bugfix: now nginx uses default listen backlog value 511 on all platforms except FreeBSD. Thanks to Jiang Hong. *) Bugfix: a worker process may got caught in an endless loop, if an "server" inside "upstream" block was marked as "down"; bug appeared in 0.6.6. *) Bugfix: now Solaris sendfilev() is not used to transfer the client request body to FastCGI-server via the unix domain socket.
author Igor Sysoev <http://sysoev.ru>
date Wed, 15 Aug 2007 00:00:00 +0400
parents fc223117327f
children 390b8f8309d6
comparison
equal deleted inserted replaced
325:f395c7a4c8a8 326:9fc4ab6673f9
19 ngx_str_t host_header; 19 ngx_str_t host_header;
20 ngx_str_t uri; 20 ngx_str_t uri;
21 ngx_str_t header; 21 ngx_str_t header;
22 22
23 ngx_array_t *headers; 23 ngx_array_t *headers;
24
25 u_char *file;
26 ngx_uint_t line;
24 } ngx_mail_auth_http_conf_t; 27 } ngx_mail_auth_http_conf_t;
25 28
26 29
27 typedef struct ngx_mail_auth_http_ctx_s ngx_mail_auth_http_ctx_t; 30 typedef struct ngx_mail_auth_http_ctx_s ngx_mail_auth_http_ctx_t;
28 31
1309 return NGX_CONF_ERROR; 1312 return NGX_CONF_ERROR;
1310 } 1313 }
1311 1314
1312 ahcf->timeout = NGX_CONF_UNSET_MSEC; 1315 ahcf->timeout = NGX_CONF_UNSET_MSEC;
1313 1316
1317 ahcf->file = cf->conf_file->file.name.data;
1318 ahcf->line = cf->conf_file->line;
1319
1314 return ahcf; 1320 return ahcf;
1315 } 1321 }
1316 1322
1317 1323
1318 static char * 1324 static char *
1328 1334
1329 if (conf->peer == NULL) { 1335 if (conf->peer == NULL) {
1330 conf->peer = prev->peer; 1336 conf->peer = prev->peer;
1331 conf->host_header = prev->host_header; 1337 conf->host_header = prev->host_header;
1332 conf->uri = prev->uri; 1338 conf->uri = prev->uri;
1339
1340 if (conf->peer == NULL) {
1341 ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
1342 "no \"http_auth\" is defined for server in %s:%ui",
1343 conf->file, conf->line);
1344
1345 return NGX_CONF_ERROR;
1346 }
1333 } 1347 }
1334 1348
1335 ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000); 1349 ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000);
1336 1350
1337 if (conf->headers == NULL) { 1351 if (conf->headers == NULL) {
1381 u.url = value[1]; 1395 u.url = value[1];
1382 u.default_port = 80; 1396 u.default_port = 80;
1383 u.uri_part = 1; 1397 u.uri_part = 1;
1384 u.one_addr = 1; 1398 u.one_addr = 1;
1385 1399
1400 if (ngx_strncmp(u.url.data, "http://", 7) == 0) {
1401 u.url.len -= 7;
1402 u.url.data += 7;
1403 }
1404
1386 if (ngx_parse_url(cf, &u) != NGX_OK) { 1405 if (ngx_parse_url(cf, &u) != NGX_OK) {
1387 if (u.err) { 1406 if (u.err) {
1388 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, 1407 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
1389 "%s in auth_http \"%V\"", u.err, &u.url); 1408 "%s in auth_http \"%V\"", u.err, &u.url);
1390 } 1409 }
1410
1411 return NGX_CONF_ERROR;
1391 } 1412 }
1392 1413
1393 ahcf->peer = u.addrs; 1414 ahcf->peer = u.addrs;
1394 1415
1395 ahcf->host_header = u.host; 1416 ahcf->host_header = u.host;