]> git.kaiwu.me - nginx.git/commitdiff
ngx_log_errno()
authorIgor Sysoev <igor@sysoev.ru>
Mon, 27 Apr 2009 13:17:33 +0000 (13:17 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 27 Apr 2009 13:17:33 +0000 (13:17 +0000)
src/core/ngx_conf_file.c
src/core/ngx_log.c
src/core/ngx_log.h
src/os/win32/ngx_event_log.c

index c95834ae7e97aa6897d74857e95433523f0fd782..7c641e024ce9c9e50c3ee1d933e10e4a88736465 100644 (file)
@@ -965,27 +965,7 @@ ngx_conf_log_error(ngx_uint_t level, ngx_conf_t *cf, ngx_err_t err,
     va_end(args);
 
     if (err) {
-
-        if (p > last - 50) {
-
-            /* leave a space for an error code */
-
-            p = last - 50;
-            *p++ = '.';
-            *p++ = '.';
-            *p++ = '.';
-        }
-
-#if (NGX_WIN32)
-        p = ngx_slprintf(p, last, ((unsigned) err < 0x80000000)
-                                       ? " (%d: " : " (%Xd: ", err);
-#else
-        p = ngx_slprintf(p, last, " (%d: ", err);
-#endif
-
-        p = ngx_strerror_r(err, p, last - p);
-
-        *p++ = ')';
+        p = ngx_log_errno(p, last, err);
     }
 
     if (cf->conf_file == NULL) {
index 90b437a13b5ed33208d25bd12d893f039212a0a3..3fb697b7d98298082134e208130e85346042a6c8 100644 (file)
@@ -126,29 +126,7 @@ ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
 #endif
 
     if (err) {
-
-        if (p > last - 50) {
-
-            /* leave a space for an error code */
-
-            p = last - 50;
-            *p++ = '.';
-            *p++ = '.';
-            *p++ = '.';
-        }
-
-#if (NGX_WIN32)
-        p = ngx_slprintf(p, last, ((unsigned) err < 0x80000000)
-                                       ? " (%d: " : " (%Xd: ", err);
-#else
-        p = ngx_slprintf(p, last, " (%d: ", err);
-#endif
-
-        p = ngx_strerror_r(err, p, last - p);
-
-        if (p < last) {
-            *p++ = ')';
-        }
+        p = ngx_log_errno(p, last, err);
     }
 
     if (level != NGX_LOG_DEBUG && log->handler) {
@@ -236,39 +214,47 @@ ngx_log_stderr(ngx_err_t err, const char *fmt, ...)
     p = ngx_vslprintf(errstr, last, fmt, args);
     va_end(args);
 
-    if (p > errstr + NGX_MAX_ERROR_STR - NGX_LINEFEED_SIZE) {
-        p = errstr + NGX_MAX_ERROR_STR - NGX_LINEFEED_SIZE;
+    if (err) {
+        p = ngx_log_errno(p, last, err);
     }
 
-    if (err) {
+    if (p > last - NGX_LINEFEED_SIZE) {
+        p = last - NGX_LINEFEED_SIZE;
+    }
+
+    ngx_linefeed(p);
 
-        if (p > last - 50) {
+    (void) ngx_write_fd(ngx_stderr, errstr, p - errstr);
+}
 
-            /* leave a space for an error code */
 
-            p = last - 50;
-            *p++ = '.';
-            *p++ = '.';
-            *p++ = '.';
-        }
+u_char *
+ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err)
+{
+    if (buf > last - 50) {
+
+        /* leave a space for an error code */
+
+        buf = last - 50;
+        *buf++ = '.';
+        *buf++ = '.';
+        *buf++ = '.';
+    }
 
 #if (NGX_WIN32)
-        p = ngx_slprintf(p, last, ((unsigned) err < 0x80000000)
+    buf = ngx_slprintf(buf, last, ((unsigned) err < 0x80000000)
                                        ? " (%d: " : " (%Xd: ", err);
 #else
-        p = ngx_slprintf(p, last, " (%d: ", err);
+    buf = ngx_slprintf(buf, last, " (%d: ", err);
 #endif
 
-        p = ngx_strerror_r(err, p, last - p);
+    buf = ngx_strerror_r(err, buf, last - buf);
 
-        if (p < last) {
-            *p++ = ')';
-        }
+    if (buf < last) {
+        *buf++ = ')';
     }
 
-    ngx_linefeed(p);
-
-    (void) ngx_write_fd(ngx_stderr, errstr, p - errstr);
+    return buf;
 }
 
 
index 078578318777bf15101c27b2021cc1160887f395..f5335ba4713186b8785845903209a6eb887ad254 100644 (file)
@@ -200,6 +200,7 @@ ngx_log_t *ngx_log_create_errlog(ngx_cycle_t *cycle, ngx_str_t *name);
 char *ngx_set_error_log_levels(ngx_conf_t *cf, ngx_log_t *log);
 void ngx_cdecl ngx_log_abort(ngx_err_t err, const char *fmt, ...);
 void ngx_cdecl ngx_log_stderr(ngx_err_t err, const char *fmt, ...);
+u_char *ngx_log_errno(u_char *buf, u_char *last, ngx_err_t err);
 
 
 extern ngx_module_t  ngx_errlog_module;
index d7b9bcafe7aded1aff135da3f50ed679adb0b05a..7cdeae7099dbeaaa72d59c919c96f0f139881682 100644 (file)
@@ -33,24 +33,7 @@ ngx_event_log(ngx_err_t err, const char *fmt, ...)
     va_end(args);
 
     if (err) {
-
-        if (p > last - 50) {
-
-            /* leave a space for an error code */
-
-            p = last - 50;
-            *p++ = '.';
-            *p++ = '.';
-            *p++ = '.';
-        }
-
-        p = ngx_slprintf(p, last, ((unsigned) err < 0x80000000)
-                                       ? " (%d: " : " (%Xd: ", err);
-        p = ngx_strerror_r(err, p, last - p);
-
-        if (p < last) {
-            *p++ = ')';
-        }
+        p = ngx_log_errno(p, last, err);
     }
 
     if (p > last - NGX_LINEFEED_SIZE - 1) {