summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-11-25 13:00:53 +0000
committerIgor Sysoev <igor@sysoev.ru>2008-11-25 13:00:53 +0000
commitecbb69ad7f775a71d82d5b1c79493e33913a4620 (patch)
treeecb44add92b25f2d705dd1e9de8783228e9c995b
parent33930d82ce80dd4cd2c20e732940d4c88e411a98 (diff)
downloadnginx-ecbb69ad7f775a71d82d5b1c79493e33913a4620.tar.gz
*) increase ngx_conf_log_error() buffer
*) always log an error code
-rw-r--r--src/core/ngx_conf_file.c38
-rw-r--r--src/core/ngx_conf_file.h2
2 files changed, 28 insertions, 12 deletions
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index 31d00de39..d06c4da8e 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -959,31 +959,47 @@ void ngx_cdecl
ngx_conf_log_error(ngx_uint_t level, ngx_conf_t *cf, ngx_err_t err,
char *fmt, ...)
{
- u_char errstr[NGX_MAX_CONF_ERRSTR], *buf, *last;
+ u_char errstr[NGX_MAX_CONF_ERRSTR], *p, *last;
va_list args;
last = errstr + NGX_MAX_CONF_ERRSTR;
va_start(args, fmt);
- buf = ngx_vsnprintf(errstr, last - errstr, fmt, args);
+ p = ngx_vsnprintf(errstr, last - errstr, fmt, args);
va_end(args);
- *buf = '\0';
-
if (err) {
- buf = ngx_snprintf(buf, last - buf - 1, " (%d: ", err);
- buf = ngx_strerror_r(err, buf, last - buf - 1);
- *buf++ = ')';
- *buf = '\0';
+
+ if (p > last - 50) {
+
+ /* leave a space for an error code */
+
+ p = last - 50;
+ *p++ = '.';
+ *p++ = '.';
+ *p++ = '.';
+ }
+
+#if (NGX_WIN32)
+ p = ngx_snprintf(p, last - p, ((unsigned) err < 0x80000000)
+ ? " (%d: " : " (%Xd: ", err);
+#else
+ p = ngx_snprintf(p, last - p, " (%d: ", err);
+#endif
+
+ p = ngx_strerror_r(err, p, last - p);
+
+ *p++ = ')';
}
if (cf->conf_file == NULL) {
- ngx_log_error(level, cf->log, 0, "%s", errstr);
+ ngx_log_error(level, cf->log, 0, "%*s", p - errstr, errstr);
return;
}
- ngx_log_error(level, cf->log, 0, "%s in %s:%ui",
- errstr, cf->conf_file->file.name.data, cf->conf_file->line);
+ ngx_log_error(level, cf->log, 0, "%*s in %s:%ui",
+ p - errstr, errstr,
+ cf->conf_file->file.name.data, cf->conf_file->line);
}
diff --git a/src/core/ngx_conf_file.h b/src/core/ngx_conf_file.h
index fd881e724..763de44dd 100644
--- a/src/core/ngx_conf_file.h
+++ b/src/core/ngx_conf_file.h
@@ -71,7 +71,7 @@
#define NGX_CONF_MODULE 0x464E4F43 /* "CONF" */
-#define NGX_MAX_CONF_ERRSTR 256
+#define NGX_MAX_CONF_ERRSTR 1024
struct ngx_command_s {