r1391, r1392, r1393 merge:

auth_http related changes:
*) stop configuration on error
*) allow "http://" in auth_http URL
*) test http_auth absence
This commit is contained in:
Igor Sysoev 2007-09-22 18:41:35 +00:00
parent 8e2c9a3126
commit d8ea8ca5f8
1 changed files with 21 additions and 0 deletions

View File

@ -21,6 +21,9 @@ typedef struct {
ngx_str_t header;
ngx_array_t *headers;
u_char *file;
ngx_uint_t line;
} ngx_mail_auth_http_conf_t;
@ -1311,6 +1314,9 @@ ngx_mail_auth_http_create_conf(ngx_conf_t *cf)
ahcf->timeout = NGX_CONF_UNSET_MSEC;
ahcf->file = cf->conf_file->file.name.data;
ahcf->line = cf->conf_file->line;
return ahcf;
}
@ -1330,6 +1336,14 @@ ngx_mail_auth_http_merge_conf(ngx_conf_t *cf, void *parent, void *child)
conf->peer = prev->peer;
conf->host_header = prev->host_header;
conf->uri = prev->uri;
if (conf->peer == NULL) {
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
"no \"http_auth\" is defined for server in %s:%ui",
conf->file, conf->line);
return NGX_CONF_ERROR;
}
}
ngx_conf_merge_msec_value(conf->timeout, prev->timeout, 60000);
@ -1383,11 +1397,18 @@ ngx_mail_auth_http(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
u.uri_part = 1;
u.one_addr = 1;
if (ngx_strncmp(u.url.data, "http://", 7) == 0) {
u.url.len -= 7;
u.url.data += 7;
}
if (ngx_parse_url(cf, &u) != NGX_OK) {
if (u.err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in auth_http \"%V\"", u.err, &u.url);
}
return NGX_CONF_ERROR;
}
ahcf->peer = u.addrs;