Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Cherokee: commits
[3402] cherokee/trunk/cherokee: Add support for LOG_ERRNO and LOG_ERRNO_S
 

Index | Next | Previous | View Flat


cherokee at cherokee-project

Jun 29, 2009, 11:36 AM


Views: 93
Permalink
[3402] cherokee/trunk/cherokee: Add support for LOG_ERRNO and LOG_ERRNO_S

Revision: 3402
http://svn.cherokee-project.com/changeset/3402
Author: alo
Date: 2009-06-29 20:36:27 +0200 (Mon, 29 Jun 2009)

Log Message:
-----------
Add support for LOG_ERRNO and LOG_ERRNO_S

Modified Paths:
--------------
cherokee/trunk/cherokee/error_log.c
cherokee/trunk/cherokee/error_log.h

Modified: cherokee/trunk/cherokee/error_log.c
===================================================================
--- cherokee/trunk/cherokee/error_log.c 2009-06-29 14:42:27 UTC (rev 3401)
+++ cherokee/trunk/cherokee/error_log.c 2009-06-29 18:36:27 UTC (rev 3402)
@@ -42,7 +42,8 @@
cherokee_logger_t *logger;
cherokee_buffer_t tmp = CHEROKEE_BUF_INIT;

- /* Error message formatting */
+ /* Error message formatting
+ */
cherokee_buf_add_bogonow (&tmp, false);

switch (type) {
@@ -61,15 +62,18 @@
cherokee_buffer_add_va_list (&tmp, format, ap);
va_end (ap);

- /* Logging: 1st option - connection's logger */
+ /* Logging: 1st option - connection's logger
+ */
logger = LOGGER (CHEROKEE_THREAD_PROP_GET (thread_logger_error_ptr));

- /* Logging: 2nd option - default logger */
+ /* Logging: 2nd option - default logger
+ */
if (logger == NULL) {
logger = default_error_logger;
}

- /* Do logging */
+ /* Do logging
+ */
if (logger) {
cherokee_logger_write_error (logger, &tmp);
}
@@ -83,3 +87,37 @@
cherokee_buffer_mrproper (&tmp);
return ret_ok;
}
+
+
+ret_t cherokee_error_errno_log (int error, cherokee_error_type_t type, const char *format, ...)
+{
+ va_list ap;
+ const char *errstr;
+ char err_tmp[ERROR_MAX_BUFSIZE];
+ cherokee_buffer_t buffer = CHEROKEE_BUF_INIT;
+
+ /* Get the error string
+ */
+ errstr = cherokee_strerror_r (error, err_tmp, sizeof(err_tmp));
+ if (errstr == NULL)
+ errstr = "unknwon error (?)";
+
+ /* Render
+ */
+ cherokee_buffer_ensure_size (&buffer, 128);
+ va_start (ap, format);
+ cherokee_buffer_add_va_list (&buffer, format, ap);
+ va_end (ap);
+
+ /* Replace error
+ */
+ cherokee_buffer_replace_string (&buffer, (char *)"${errno}", 8,
+ (char *) errstr, strlen(errstr));
+
+ /* Log & clean up
+ */
+ cherokee_error_log (type, "%s", buffer.buf);
+ cherokee_buffer_mrproper (&buffer);
+
+ return ret_ok;
+}

Modified: cherokee/trunk/cherokee/error_log.h
===================================================================
--- cherokee/trunk/cherokee/error_log.h 2009-06-29 14:42:27 UTC (rev 3401)
+++ cherokee/trunk/cherokee/error_log.h 2009-06-29 18:36:27 UTC (rev 3402)
@@ -39,21 +39,25 @@
} cherokee_error_type_t;

#ifdef __GNUC__
-# define LOG_WARNING(fmt,arg...) cherokee_error_log(cherokee_err_warning, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
-# define LOG_ERROR(fmt,arg...) cherokee_error_log(cherokee_err_error, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
-# define LOG_CRITICAL(fmt,arg...) cherokee_error_log(cherokee_err_critical, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
+# define LOG_WARNING(fmt,arg...) cherokee_error_log(cherokee_err_warning, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
+# define LOG_ERROR(fmt,arg...) cherokee_error_log(cherokee_err_error, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
+# define LOG_CRITICAL(fmt,arg...) cherokee_error_log(cherokee_err_critical, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
+# define LOG_ERRNO(t,e,fmt,arg...) cherokee_error_errno_log(e, t, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
#else
# define LOG_WARNING(t,fmt,...) cherokee_error_log(cherokee_err_warning, "%s:%d - "fmt, __FILE__, __LINE__, __VA_ARGS__)
# define LOG_ERROR(t,fmt,...) cherokee_error_log(cherokee_err_error, "%s:%d - "fmt, __FILE__, __LINE__, __VA_ARGS__)
# define LOG_CRITIAL(t,fmt,...) cherokee_error_log(cherokee_err_critical, "%s:%d - "fmt, __FILE__, __LINE__, __VA_ARGS__)
+# define LOG_ERRNO(t,e,fmt,...) cherokee_error_errno_log(e, t, "%s:%d - "fmt, __FILE__, __LINE__, __VA_ARGS__)
#endif

-#define LOG_WARNING_S(str) LOG_WARNING("%s", str)
-#define LOG_ERROR_S(str) LOG_ERROR("%s", str)
-#define LOG_CRITICAL_S(str) LOG_CRITICAL("%s", str)
+#define LOG_WARNING_S(str) LOG_WARNING("%s", str)
+#define LOG_ERROR_S(str) LOG_ERROR("%s", str)
+#define LOG_CRITICAL_S(str) LOG_CRITICAL("%s", str)
+#define LOG_ERRNO_S(t,e,str) LOG_ERRNO(t,e,"%s",str)

-
ret_t cherokee_error_log (cherokee_error_type_t type, const char *format, ...);
+ret_t cherokee_error_errno_log (int error, cherokee_error_type_t type, const char *format, ...);
ret_t cherokee_error_log_set_log (cherokee_logger_t *logger);

+
#endif /* CHEROKEE_ERROR_LOG_H */

Subject User Time
[3402] cherokee/trunk/cherokee: Add support for LOG_ERRNO and LOG_ERRNO_S cherokee at cherokee-project Jun 29, 2009, 11:36 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.