aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_conf_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_conf_file.c')
-rw-r--r--src/core/ngx_conf_file.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index ae4231f51..bea7a4c52 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -127,6 +127,7 @@ ngx_log_debug(cf->log, "token %d" _ rc);
&& ngx_strcmp(name->data, cmd->name.data) == 0)
{
+ found = 1;
#if 0
ngx_log_debug(cf->log, "command '%s'" _ cmd->name.data);
#endif
@@ -204,7 +205,6 @@ ngx_log_debug(cf->log, "rv: %d" _ rv);
#endif
if (rv == NGX_CONF_OK) {
- found = 1;
break;
} else if (rv == NGX_CONF_ERROR) {
@@ -220,7 +220,7 @@ ngx_log_debug(cf->log, "rv: %d" _ rv);
cf->conf_file->line);
} else {
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
- "%s %s in %s:%d",
+ "\"%s\" directive %s in %s:%d",
name->data, rv,
cf->conf_file->file.name.data,
cf->conf_file->line);
@@ -245,6 +245,10 @@ ngx_log_debug(cf->log, "rv: %d" _ rv);
rc = NGX_ERROR;
break;
}
+
+ if (rc == NGX_ERROR) {
+ break;
+ }
}
if (filename) {
@@ -471,6 +475,30 @@ ngx_log_debug(cf->log, "FOUND %d:'%s'" _ word->len _ word->data);
}
+void ngx_conf_log_error(int level, ngx_conf_t *cf, ngx_err_t err,
+ char *fmt, ...)
+{
+ int len;
+ char errstr[MAX_CONF_ERRSTR];
+ va_list args;
+
+ va_start(args, fmt);
+ len = ngx_vsnprintf(errstr, sizeof(errstr) - 1, fmt, args);
+ va_end(args);
+
+ if (err) {
+ len += ngx_snprintf(errstr + len, sizeof(errstr) - len - 1,
+ " (%d: ", err);
+ len += ngx_strerror_r(err, errstr + len, sizeof(errstr) - len - 1);
+ errstr[len++] = ')';
+ errstr[len++] = '\0';
+ }
+
+ ngx_log_error(level, cf->log, 0, "%s in %s:%d",
+ errstr, cf->conf_file->file.name.data, cf->conf_file->line);
+}
+
+
char *ngx_conf_set_core_flag_slot(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf)
{