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

Mailing List Archive: Cherokee: commits

[3401] cherokee/trunk/cherokee: This patch changes substantially the way in which errors and warnings

 

 

Cherokee commits RSS feed   Index | Next | Previous | View Threaded


cherokee at cherokee-project

Jun 29, 2009, 7:42 AM

Post #1 of 1 (85 views)
Permalink
[3401] cherokee/trunk/cherokee: This patch changes substantially the way in which errors and warnings

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

Log Message:
-----------
This patch changes substantially the way in which errors and warnings
are logged. From now on, warnings, regular errors, and critical issues
are logged in the error log. That was supposed to be the default
behavior, although most of the code used the PRINT_ERROR macro which
was not working with the logging subsystem. In this change-set a few
new macros are introduced so regular functions can log errors without
having access to the connection or the virtual server objects. Most of
the PRINT_ERROR references ought to be replaced with either LOG_ERROR,
LOG_WARNING or LOG_CRITICAL. So far only the cherokee/server.c
references have been replaced for testing purposes. More related
commits to come.

Modified Paths:
--------------
cherokee/trunk/cherokee/common-internal.h
cherokee/trunk/cherokee/fcgi_manager.c
cherokee/trunk/cherokee/handler_cgi.c
cherokee/trunk/cherokee/handler_fcgi.c
cherokee/trunk/cherokee/handler_file.c
cherokee/trunk/cherokee/init.c
cherokee/trunk/cherokee/logger.c
cherokee/trunk/cherokee/logger.h
cherokee/trunk/cherokee/logger_combined.c
cherokee/trunk/cherokee/logger_custom.c
cherokee/trunk/cherokee/logger_custom.h
cherokee/trunk/cherokee/logger_ncsa.c
cherokee/trunk/cherokee/logger_ncsa.h
cherokee/trunk/cherokee/macros.h
cherokee/trunk/cherokee/server.c
cherokee/trunk/cherokee/thread.c
cherokee/trunk/cherokee/threading.c
cherokee/trunk/cherokee/threading.h
cherokee/trunk/cherokee/trace.c
cherokee/trunk/cherokee/util.c
cherokee/trunk/cherokee/util.h
cherokee/trunk/cherokee/validator_pam.c

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

Modified: cherokee/trunk/cherokee/common-internal.h
===================================================================
--- cherokee/trunk/cherokee/common-internal.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/common-internal.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -97,41 +97,49 @@
#endif

#ifdef HAVE_PTHREAD
-# define CHEROKEE_MUTEX_T(n) pthread_mutex_t n
-# define CHEROKEE_RWLOCK_T(n) pthread_rwlock_t n
-# define CHEROKEE_THREAD_JOIN(t) pthread_join(t,NULL)
-# define CHEROKEE_THREAD_SELF pthread_self()
+# define CHEROKEE_MUTEX_T(n) pthread_mutex_t n
+# define CHEROKEE_RWLOCK_T(n) pthread_rwlock_t n
+# define CHEROKEE_THREAD_JOIN(t) pthread_join(t,NULL)
+# define CHEROKEE_THREAD_SELF pthread_self()

-# define CHEROKEE_MUTEX_LOCK(m) pthread_mutex_lock(m)
-# define CHEROKEE_MUTEX_UNLOCK(m) pthread_mutex_unlock(m)
-# define CHEROKEE_MUTEX_INIT(m,n) pthread_mutex_init(m,n)
-# define CHEROKEE_MUTEX_DESTROY(m) pthread_mutex_destroy(m)
-# define CHEROKEE_MUTEX_TRY_LOCK(m) pthread_mutex_trylock(m)
+# define CHEROKEE_THREAD_PROP_GET(p) pthread_getspecific(p)
+# define CHEROKEE_THREAD_PROP_SET(p,v) pthread_setspecific(p,v)
+# define CHEROKEE_THREAD_PROP_NEW(p,f) pthread_key_create2(p,f)

-# define CHEROKEE_RWLOCK_INIT(m,n) pthread_rwlock_init(m,n)
-# define CHEROKEE_RWLOCK_READER(m) pthread_rwlock_rdlock(m)
-# define CHEROKEE_RWLOCK_WRITER(m) pthread_rwlock_wrlock(m)
-# define CHEROKEE_RWLOCK_TRYREADER(m) pthread_rwlock_tryrdlock(m)
-# define CHEROKEE_RWLOCK_TRYWRITER(m) pthread_rwlock_trywrlock(m)
-# define CHEROKEE_RWLOCK_UNLOCK(m) pthread_rwlock_unlock(m)
-# define CHEROKEE_RWLOCK_DESTROY(m) pthread_rwlock_destroy(m)
+# define CHEROKEE_MUTEX_LOCK(m) pthread_mutex_lock(m)
+# define CHEROKEE_MUTEX_UNLOCK(m) pthread_mutex_unlock(m)
+# define CHEROKEE_MUTEX_INIT(m,n) pthread_mutex_init(m,n)
+# define CHEROKEE_MUTEX_DESTROY(m) pthread_mutex_destroy(m)
+# define CHEROKEE_MUTEX_TRY_LOCK(m) pthread_mutex_trylock(m)
+
+# define CHEROKEE_RWLOCK_INIT(m,n) pthread_rwlock_init(m,n)
+# define CHEROKEE_RWLOCK_READER(m) pthread_rwlock_rdlock(m)
+# define CHEROKEE_RWLOCK_WRITER(m) pthread_rwlock_wrlock(m)
+# define CHEROKEE_RWLOCK_TRYREADER(m) pthread_rwlock_tryrdlock(m)
+# define CHEROKEE_RWLOCK_TRYWRITER(m) pthread_rwlock_trywrlock(m)
+# define CHEROKEE_RWLOCK_UNLOCK(m) pthread_rwlock_unlock(m)
+# define CHEROKEE_RWLOCK_DESTROY(m) pthread_rwlock_destroy(m)
#else
# define CHEROKEE_MUTEX_T(n)
# define CHEROKEE_RWLOCK_T(n)
# define CHEROKEE_THREAD_JOIN(t)
-# define CHEROKEE_THREAD_SELF 0
+# define CHEROKEE_THREAD_SELF 0

+# define CHEROKEE_THREAD_PROP_GET(p) NULL
+# define CHEROKEE_THREAD_PROP_SET(p,v) NULL
+# define CHEROKEE_THREAD_PROP_NEW(p,f) 0
+
# define CHEROKEE_MUTEX_LOCK(m)
# define CHEROKEE_MUTEX_UNLOCK(m)
# define CHEROKEE_MUTEX_INIT(m,n)
# define CHEROKEE_MUTEX_DESTROY(m)
-# define CHEROKEE_MUTEX_TRY_LOCK(m) 0
+# define CHEROKEE_MUTEX_TRY_LOCK(m) 0

# define CHEROKEE_RWLOCK_INIT(m,n)
# define CHEROKEE_RWLOCK_READER(m)
# define CHEROKEE_RWLOCK_WRITER(m)
-# define CHEROKEE_RWLOCK_TRYREADER(m) 0
-# define CHEROKEE_RWLOCK_TRYWRITER(m) 0
+# define CHEROKEE_RWLOCK_TRYREADER(m) 0
+# define CHEROKEE_RWLOCK_TRYWRITER(m) 0
# define CHEROKEE_RWLOCK_UNLOCK(m)
# define CHEROKEE_RWLOCK_DESTROY(m)
#endif

Added: cherokee/trunk/cherokee/error_log.c
===================================================================
--- cherokee/trunk/cherokee/error_log.c (rev 0)
+++ cherokee/trunk/cherokee/error_log.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -0,0 +1,85 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/* Cherokee
+ *
+ * Authors:
+ * Alvaro Lopez Ortega <alvaro[at]alobbs.com>
+ *
+ * Copyright (C) 2001-2009 Alvaro Lopez Ortega
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+#include "common-internal.h"
+#include "error_log.h"
+#include "util.h"
+
+static cherokee_logger_t *default_error_logger = NULL;
+
+ret_t
+cherokee_error_log_set_log (cherokee_logger_t *logger)
+{
+ default_error_logger = logger;
+ return ret_ok;
+}
+
+ret_t
+cherokee_error_log (cherokee_error_type_t type, const char *format, ...)
+{
+ va_list ap;
+ cherokee_logger_t *logger;
+ cherokee_buffer_t tmp = CHEROKEE_BUF_INIT;
+
+ /* Error message formatting */
+ cherokee_buf_add_bogonow (&tmp, false);
+
+ switch (type) {
+ case cherokee_err_warning:
+ cherokee_buffer_add_str (&tmp, " (warning) ");
+ break;
+ case cherokee_err_error:
+ cherokee_buffer_add_str (&tmp, " (error) ");
+ break;
+ case cherokee_err_critical:
+ cherokee_buffer_add_str (&tmp, " (critical) ");
+ break;
+ }
+
+ va_start (ap, format);
+ cherokee_buffer_add_va_list (&tmp, format, ap);
+ va_end (ap);
+
+ /* Logging: 1st option - connection's logger */
+ logger = LOGGER (CHEROKEE_THREAD_PROP_GET (thread_logger_error_ptr));
+
+ /* Logging: 2nd option - default logger */
+ if (logger == NULL) {
+ logger = default_error_logger;
+ }
+
+ /* Do logging */
+ if (logger) {
+ cherokee_logger_write_error (logger, &tmp);
+ }
+
+ if ((logger == NULL) ||
+ (type == cherokee_err_critical))
+ {
+ fprintf (stderr, "%s", tmp.buf);
+ }
+
+ cherokee_buffer_mrproper (&tmp);
+ return ret_ok;
+}

Added: cherokee/trunk/cherokee/error_log.h
===================================================================
--- cherokee/trunk/cherokee/error_log.h (rev 0)
+++ cherokee/trunk/cherokee/error_log.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/* Cherokee
+ *
+ * Authors:
+ * Alvaro Lopez Ortega <alvaro[at]alobbs.com>
+ *
+ * Copyright (C) 2001-2009 Alvaro Lopez Ortega
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+#if !defined (CHEROKEE_INSIDE_CHEROKEE_H) && !defined (CHEROKEE_COMPILATION)
+# error "Only <cherokee/cherokee.h> can be included directly, this file may disappear or change contents."
+#endif
+
+#ifndef CHEROKEE_ERROR_LOG_H
+#define CHEROKEE_ERROR_LOG_H
+
+#include <cherokee/common.h>
+#include <cherokee/logger.h>
+
+typedef enum {
+ cherokee_err_warning,
+ cherokee_err_error,
+ cherokee_err_critical
+} 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)
+#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__)
+#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)
+
+
+ret_t cherokee_error_log (cherokee_error_type_t type, const char *format, ...);
+ret_t cherokee_error_log_set_log (cherokee_logger_t *logger);
+
+#endif /* CHEROKEE_ERROR_LOG_H */

Modified: cherokee/trunk/cherokee/fcgi_manager.c
===================================================================
--- cherokee/trunk/cherokee/fcgi_manager.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/fcgi_manager.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -29,6 +29,7 @@
#include "connection-protected.h"
#include "handler_fastcgi.h"
#include "source_interpreter.h"
+#include "error_log.h"

#include <unistd.h>

@@ -287,11 +288,7 @@
switch (type) {
case FCGI_STDERR:
if (CONN_VSRV(conn)->logger != NULL) {
- cherokee_buffer_t tmp = CHEROKEE_BUF_INIT;
-
- cherokee_buffer_add (&tmp, data, len);
- cherokee_logger_write_string (CONN_VSRV(conn)->logger, "%s\n", tmp.buf);
- cherokee_buffer_mrproper (&tmp);
+ LOG_ERROR ("%s\n", data);
}
exit(1);
break;

Modified: cherokee/trunk/cherokee/handler_cgi.c
===================================================================
--- cherokee/trunk/cherokee/handler_cgi.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/handler_cgi.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -54,8 +54,8 @@
#include "header.h"
#include "header-protected.h"
#include "post.h"
+#include "error_log.h"

-
#define ENTRIES "handler,cgi"

#ifdef _WIN32
@@ -609,9 +609,7 @@
if (re >= 0) {
re = setuid (info.st_uid);
if (re != 0) {
- cherokee_logger_write_string (CONN_VSRV(conn)->logger,
- "%s: couldn't set UID %d\n",
- script, info.st_uid);
+ LOG_ERROR("%s: couldn't set UID %d\n", script, info.st_uid);
}
}
}

Modified: cherokee/trunk/cherokee/handler_fcgi.c
===================================================================
--- cherokee/trunk/cherokee/handler_fcgi.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/handler_fcgi.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -33,6 +33,7 @@
#include "thread.h"
#include "source_interpreter.h"
#include "bogotime.h"
+#include "error_log.h"

#include "fastcgi.h"

@@ -116,11 +117,7 @@
/* printf ("READ:STDERR (%d): %s", len, data?data:""); */

if (CONN_VSRV(conn)->logger != NULL) {
- cherokee_buffer_t tmp = CHEROKEE_BUF_INIT;
-
- cherokee_buffer_add (&tmp, data, len);
- cherokee_logger_write_string (CONN_VSRV(conn)->logger, "%s\n", tmp.buf);
- cherokee_buffer_mrproper (&tmp);
+ LOG_ERROR("%s\n", data);
}
else if (SOURCE_INT(hdl->src_ref)->debug) {
PRINT_MSG ("%.*s\n", len, data);

Modified: cherokee/trunk/cherokee/handler_file.c
===================================================================
--- cherokee/trunk/cherokee/handler_file.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/handler_file.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -43,6 +43,7 @@
#include "iocache.h"
#include "util.h"
#include "handler_dirlist.h"
+#include "error_log.h"

#define ENTRIES "handler,file"

@@ -170,10 +171,8 @@

req_time = cherokee_dtm_str2time (header);
if (unlikely (req_time == DTM_TIME_EVAL)) {
- cherokee_logger_write_string (
- CONN_VSRV(conn)->logger,
- "Warning: Unparseable time '%s'\n",
- header);
+ LOG_WARNING("Unparseable time '%s'\n", header);
+
/* restore end of line */
*end = tmp;
return ret_ok;
@@ -251,10 +250,8 @@

req_time = cherokee_dtm_str2time (header);
if (unlikely (req_time == DTM_TIME_EVAL)) {
- cherokee_logger_write_string (
- CONN_VSRV(conn)->logger,
- "Warning: Unparseable time '%s'\n",
- header);
+ LOG_WARNING ("Unparseable time '%s'\n", header);
+
*end = tmp;
return ret_ok;
}

Modified: cherokee/trunk/cherokee/init.c
===================================================================
--- cherokee/trunk/cherokee/init.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/init.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -58,6 +58,7 @@
/* Init the bogotime mechanism
*/
cherokee_bogotime_init();
+ cherokee_bogotime_update();

/* Init threading stuff
*/

Modified: cherokee/trunk/cherokee/logger.c
===================================================================
--- cherokee/trunk/cherokee/logger.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -259,21 +259,6 @@


ret_t
-cherokee_logger_write_error (cherokee_logger_t *logger, void *conn)
-{
- ret_t ret = ret_error;
-
- if (logger->write_error) {
- CHEROKEE_MUTEX_LOCK (&PRIV(logger)->mutex);
- ret = logger->write_error (logger, conn);
- CHEROKEE_MUTEX_UNLOCK (&PRIV(logger)->mutex);
- }
-
- return ret;
-}
-
-
-ret_t
cherokee_logger_get_error_writer (cherokee_logger_t *logger,
cherokee_logger_writer_t **writer)
{
@@ -289,28 +274,20 @@
}


-
ret_t
-cherokee_logger_write_string (cherokee_logger_t *logger, const char *format, ...)
+cherokee_logger_write_error (cherokee_logger_t *logger,
+ cherokee_buffer_t *error)
{
- va_list ap;
+ ret_t ret;

if (logger == NULL)
return ret_ok;

- if (logger->write_string) {
- ret_t ret;
- cherokee_buffer_t tmp = CHEROKEE_BUF_INIT;
-
+ if (logger->write_error) {
CHEROKEE_MUTEX_LOCK(&PRIV(logger)->mutex);
- va_start (ap, format);
- cherokee_buffer_add_va_list (&tmp, (char *)format, ap);
- va_end (ap);
+ ret = logger->write_error (logger, error);
CHEROKEE_MUTEX_UNLOCK(&PRIV(logger)->mutex);

- ret = logger->write_string (logger, tmp.buf);
-
- cherokee_buffer_mrproper (&tmp);
return ret;
}


Modified: cherokee/trunk/cherokee/logger.h
===================================================================
--- cherokee/trunk/cherokee/logger.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -45,8 +45,7 @@
typedef ret_t (* logger_func_reopen_t) (void *logger);
typedef ret_t (* logger_func_get_error_writer_t) (void *logger, void *writer);
typedef ret_t (* logger_func_write_access_t) (void *logger, void *conn);
-typedef ret_t (* logger_func_write_error_t) (void *logger, void *conn);
-typedef ret_t (* logger_func_write_string_t) (void *logger, const char *format);
+typedef ret_t (* logger_func_write_error_t) (void *logger, cherokee_buffer_t *error);


typedef struct {
@@ -60,8 +59,6 @@
logger_func_get_error_writer_t get_error_writer;
logger_func_write_access_t write_access;
logger_func_write_error_t write_error;
- logger_func_write_string_t write_string;
-
} cherokee_logger_t;

#define LOGGER(x) ((cherokee_logger_t *)(x))
@@ -95,8 +92,7 @@
ret_t cherokee_logger_get_error_writer (cherokee_logger_t *logger, cherokee_logger_writer_t **writer);

ret_t cherokee_logger_write_access (cherokee_logger_t *logger, void *conn);
-ret_t cherokee_logger_write_error (cherokee_logger_t *logger, void *conn);
-ret_t cherokee_logger_write_string (cherokee_logger_t *logger, const char *format, ...);
+ret_t cherokee_logger_write_error (cherokee_logger_t *logger, cherokee_buffer_t *error);

ret_t cherokee_logger_set_backup_mode (cherokee_logger_t *logger, cherokee_boolean_t active);
ret_t cherokee_logger_get_backup_mode (cherokee_logger_t *logger, cherokee_boolean_t *active);

Modified: cherokee/trunk/cherokee/logger_combined.c
===================================================================
--- cherokee/trunk/cherokee/logger_combined.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger_combined.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -51,7 +51,6 @@
LOGGER(n)->get_error_writer = (logger_func_get_error_writer_t) cherokee_logger_ncsa_get_error_writer;
LOGGER(n)->write_error = (logger_func_write_error_t) cherokee_logger_ncsa_write_error;
LOGGER(n)->write_access = (logger_func_write_access_t) cherokee_logger_ncsa_write_access;
- LOGGER(n)->write_string = (logger_func_write_string_t) cherokee_logger_ncsa_write_string;

/* Init the base class: NCSA
*/

Modified: cherokee/trunk/cherokee/logger_custom.c
===================================================================
--- cherokee/trunk/cherokee/logger_custom.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger_custom.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -448,7 +448,6 @@
LOGGER(n)->get_error_writer = (logger_func_get_error_writer_t) cherokee_logger_custom_get_error_writer;
LOGGER(n)->write_error = (logger_func_write_error_t) cherokee_logger_custom_write_error;
LOGGER(n)->write_access = (logger_func_write_access_t) cherokee_logger_custom_write_access;
- LOGGER(n)->write_string = (logger_func_write_string_t) cherokee_logger_custom_write_string;

/* Init properties
*/
@@ -585,7 +584,7 @@

ret_t
cherokee_logger_custom_write_error (cherokee_logger_custom_t *logger,
- cherokee_connection_t *conn)
+ cherokee_buffer_t *error)
{
ret_t ret;
cherokee_buffer_t *log;
@@ -594,28 +593,27 @@
*/
cherokee_logger_writer_get_buf (logger->writer_error, &log);

- /* Render the template
+ /* Add the new string
*/
- ret = cherokee_template_render (&logger->template_error, log, conn);
+ ret = cherokee_buffer_add_buffer (log, error);
if (unlikely (ret != ret_ok)) {
- goto error;
+ ret = ret_error;
+ goto out;
}

- cherokee_buffer_add_char (log, '\n');
-
- /* It's an error. Flush it!
+ /* It's an error, flush it right away.
*/
ret = cherokee_logger_writer_flush (logger->writer_error, true);
if (unlikely (ret != ret_ok)) {
- goto error;
+ ret = ret_error;
+ goto out;
}

- cherokee_logger_writer_release_buf (logger->writer_error);
- return ret_ok;
+ ret = ret_ok;

-error:
+out:
cherokee_logger_writer_release_buf (logger->writer_error);
- return ret_error;
+ return ret;
}

ret_t

Modified: cherokee/trunk/cherokee/logger_custom.h
===================================================================
--- cherokee/trunk/cherokee/logger_custom.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger_custom.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -53,7 +53,7 @@
ret_t cherokee_logger_custom_get_error_writer (cherokee_logger_custom_t *logger, cherokee_logger_writer_t **writer);

ret_t cherokee_logger_custom_write_access (cherokee_logger_custom_t *logger, cherokee_connection_t *conn);
-ret_t cherokee_logger_custom_write_error (cherokee_logger_custom_t *logger, cherokee_connection_t *conn);
+ret_t cherokee_logger_custom_write_error (cherokee_logger_custom_t *logger, cherokee_buffer_t *error);
ret_t cherokee_logger_custom_write_string (cherokee_logger_custom_t *logger, const char *string);

#endif /* CHEROKEE_LOGGER_CUSTOM_H */

Modified: cherokee/trunk/cherokee/logger_ncsa.c
===================================================================
--- cherokee/trunk/cherokee/logger_ncsa.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger_ncsa.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -76,7 +76,6 @@
LOGGER(n)->get_error_writer = (logger_func_get_error_writer_t) cherokee_logger_ncsa_get_error_writer;
LOGGER(n)->write_error = (logger_func_write_error_t) cherokee_logger_ncsa_write_error;
LOGGER(n)->write_access = (logger_func_write_access_t) cherokee_logger_ncsa_write_access;
- LOGGER(n)->write_string = (logger_func_write_string_t) cherokee_logger_ncsa_write_string;

n->writer_access = NULL;
n->writer_error = NULL;
@@ -299,39 +298,6 @@
}


-ret_t
-cherokee_logger_ncsa_write_string (cherokee_logger_ncsa_t *logger, const char *string)
-{
- ret_t ret;
- cherokee_buffer_t *log;
-
- /* Get the buffer
- */
- cherokee_logger_writer_get_buf (logger->writer_access, &log);
-
- ret = cherokee_buffer_add (log, string, strlen(string));
- if (unlikely (ret != ret_ok))
- goto error;
-
- /* Flush buffer if full
- */
- if (log->len < logger->writer_access->max_bufsize)
- goto ok;
-
- ret = cherokee_logger_writer_flush (logger->writer_access, true);
- if (unlikely (ret != ret_ok))
- goto error;
-
-ok:
- cherokee_logger_writer_release_buf (logger->writer_access);
- return ret_ok;
-
-error:
- cherokee_logger_writer_release_buf (logger->writer_access);
- return ret_error;
-}
-
-
ret_t
cherokee_logger_ncsa_write_access (cherokee_logger_ncsa_t *logger, cherokee_connection_t *cnt)
{
@@ -368,7 +334,8 @@


ret_t
-cherokee_logger_ncsa_write_error (cherokee_logger_ncsa_t *logger, cherokee_connection_t *cnt)
+cherokee_logger_ncsa_write_error (cherokee_logger_ncsa_t *logger,
+ cherokee_buffer_t *error)
{
ret_t ret;
cherokee_buffer_t *log;
@@ -379,22 +346,25 @@

/* Add the new string
*/
- ret = build_log_string (logger, cnt, log);
- if (unlikely (ret != ret_ok))
- goto error;
+ ret = cherokee_buffer_add_buffer (log, error);
+ if (unlikely (ret != ret_ok)) {
+ ret = ret_error;
+ goto out;
+ }

- /* It's an error. Flush it!
+ /* It's an error, flush it right away.
*/
ret = cherokee_logger_writer_flush (logger->writer_error, true);
- if (unlikely (ret != ret_ok))
- goto error;
+ if (unlikely (ret != ret_ok)) {
+ ret = ret_error;
+ goto out;
+ }

- cherokee_logger_writer_release_buf (logger->writer_error);
- return ret_ok;
+ ret = ret_ok;

-error:
+out:
cherokee_logger_writer_release_buf (logger->writer_error);
- return ret_error;
+ return ret;
}



Modified: cherokee/trunk/cherokee/logger_ncsa.h
===================================================================
--- cherokee/trunk/cherokee/logger_ncsa.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/logger_ncsa.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -64,7 +64,6 @@
ret_t cherokee_logger_ncsa_get_error_writer (cherokee_logger_ncsa_t *logger, cherokee_logger_writer_t **writer);

ret_t cherokee_logger_ncsa_write_access (cherokee_logger_ncsa_t *logger, cherokee_connection_t *conn);
-ret_t cherokee_logger_ncsa_write_error (cherokee_logger_ncsa_t *logger, cherokee_connection_t *conn);
-ret_t cherokee_logger_ncsa_write_string (cherokee_logger_ncsa_t *logger, const char *string);
+ret_t cherokee_logger_ncsa_write_error (cherokee_logger_ncsa_t *logger, cherokee_buffer_t *error);

#endif /* CHEROKEE_LOGGER_NCSA_H */

Modified: cherokee/trunk/cherokee/macros.h
===================================================================
--- cherokee/trunk/cherokee/macros.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/macros.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -282,20 +282,20 @@
/* Printing macros
*/
#ifdef __GNUC__
-# define PRINT_MSG(fmt,arg...) fprintf(stderr, fmt, ##arg)
-# define PRINT_ERROR(fmt,arg...) fprintf(stderr, "%s:%d: "fmt, __FILE__, __LINE__, ##arg)
-# define PRINT_ERRNO(err,fmt,arg...) cherokee_print_errno(err, "%s:%d: "fmt"\n", __FILE__, __LINE__, ##arg)
+# define PRINT_MSG(fmt,arg...) fprintf(stderr, fmt, ##arg)
+# define PRINT_ERROR(fmt,arg...) fprintf(stderr, "%s:%d - "fmt, __FILE__, __LINE__, ##arg)
+# define PRINT_ERRNO(err,fmt,arg...) cherokee_print_errno(err, "%s:%d - "fmt"\n", __FILE__, __LINE__, ##arg)
#else
-# define PRINT_MSG(fmt,...) fprintf(stderr, fmt, __VA_ARGS__)
-# define PRINT_ERROR(fmt,...) fprintf(stderr, "%s:%d: "fmt, __FILE__, __LINE__, __VA_ARGS__)
-# define PRINT_ERRNO(err,fmt,...) cherokee_print_errno(err, "%s:%d: "fmt"\n", __FILE__, __LINE__, __VA_ARGS__)
+# define PRINT_MSG(fmt,...) fprintf(stderr, fmt, __VA_ARGS__)
+# define PRINT_ERROR(fmt,...) fprintf(stderr, "%s:%d - "fmt, __FILE__, __LINE__, __VA_ARGS__)
+# define PRINT_ERRNO(err,fmt,...) cherokee_print_errno(err, "%s:%d - "fmt"\n", __FILE__, __LINE__, __VA_ARGS__)
#endif

#ifdef DEBUG
# ifdef __GNUC__
-# define PRINT_DEBUG(fmt,arg...) do { fprintf(stdout, "%s:%d: " fmt,__FILE__,__LINE__,##arg); fflush(stdout); } while (0)
+# define PRINT_DEBUG(fmt,arg...) do { fprintf(stdout, "%s:%d - " fmt,__FILE__,__LINE__,##arg); fflush(stdout); } while (0)
# else
-# define PRINT_DEBUG(fmt,...) do { fprintf(stdout, "%s:%d: " fmt,__FILE__,__LINE__,__VA_ARGS__); fflush(stdout); } while (0)
+# define PRINT_DEBUG(fmt,...) do { fprintf(stdout, "%s:%d - " fmt,__FILE__,__LINE__,__VA_ARGS__); fflush(stdout); } while (0)
# endif
#else
# ifdef __GNUC__
@@ -305,9 +305,9 @@
# endif
#endif

-#define PRINT_ERRNO_S(e,str) PRINT_ERRNO(e, str, "")
-#define PRINT_ERROR_S(str) PRINT_ERROR("%s",str)
-#define PRINT_MSG_S(str) PRINT_MSG("%s",str)
+#define PRINT_ERRNO_S(e,str) PRINT_ERRNO(e, str, "")
+#define PRINT_ERROR_S(str) PRINT_ERROR("%s",str)
+#define PRINT_MSG_S(str) PRINT_MSG("%s",str)

/* Tracing facility
*/

Modified: cherokee/trunk/cherokee/server.c
===================================================================
--- cherokee/trunk/cherokee/server.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/server.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -27,6 +27,7 @@
#include "server.h"
#include "bind.h"
#include "spawner.h"
+#include "error_log.h"

#include <fcntl.h>
#include <sys/types.h>
@@ -324,8 +325,8 @@
if (srv->user_orig == 0) {
error = initgroups (ent->pw_name, srv->group);
if (error == -1) {
- PRINT_ERROR ("initgroups: Unable to set groups for user `%s' and GID %d\n",
- ent->pw_name, srv->group);
+ LOG_ERROR ("initgroups: Unable to set groups for user `%s' and GID %d\n",
+ ent->pw_name, srv->group);
}
}

@@ -334,8 +335,8 @@
if (srv->group != srv->group_orig) {
error = setgid (srv->group);
if (error != 0) {
- PRINT_ERROR ("Can't change group to GID %d, running with GID=%d\n",
- srv->group, srv->group_orig);
+ LOG_ERROR ("Can't change group to GID %d, running with GID=%d\n",
+ srv->group, srv->group_orig);
}
}

@@ -344,8 +345,8 @@
if (srv->user != srv->user_orig) {
error = setuid (srv->user);
if (error != 0) {
- PRINT_ERROR ("Can't change user to UID %d, running with UID=%d\n",
- srv->user, srv->user_orig);
+ LOG_ERROR ("Can't change user to UID %d, running with UID=%d\n",
+ srv->user, srv->user_orig);
}
}

@@ -531,8 +532,8 @@

ret = cherokee_fdpoll_get_fdlimits (srv->fdpoll_method, &sys_fd_limit, &poll_fd_limit);
if (ret != ret_ok) {
- PRINT_ERROR ("cherokee_fdpoll_get_fdlimits: failed %d (poll_type %d)\n",
- (int)ret, (int) srv->fdpoll_method);
+ LOG_CRITICAL ("cherokee_fdpoll_get_fdlimits: failed %d (poll_type %d)\n",
+ (int)ret, (int) srv->fdpoll_method);
return ret_error;
}

@@ -540,8 +541,8 @@
*/
if ((sys_fd_limit > 0) &&
(cherokee_fdlimit > sys_fd_limit)) {
- PRINT_ERROR ("system_fd_limit %d > %d sys_fd_limit\n",
- cherokee_fdlimit, sys_fd_limit);
+ LOG_CRITICAL ("system_fd_limit %d > %d sys_fd_limit\n",
+ cherokee_fdlimit, sys_fd_limit);
return ret_error;
}

@@ -551,8 +552,8 @@
if ((poll_fd_limit > 0) &&
(fds_per_thread > poll_fd_limit))
{
- PRINT_ERROR ("fds_per_thread %d > %d poll_fd_limit (reduce that limit)\n",
- fds_per_thread, poll_fd_limit);
+ LOG_ERROR ("fds_per_thread %d > %d poll_fd_limit (reduce that limit)\n",
+ fds_per_thread, poll_fd_limit);
fds_per_thread = poll_fd_limit - listen_fds;
}
}
@@ -584,7 +585,7 @@
conns_per_thread,
keepalive_per_thread);
if (unlikely(ret < ret_ok)) {
- PRINT_ERROR("cherokee_thread_new (main_thread) failed %d\n", ret);
+ LOG_CRITICAL ("cherokee_thread_new (main_thread) failed %d\n", ret);
return ret;
}

@@ -619,7 +620,7 @@
conns_per_thread,
keepalive_per_thread);
if (unlikely(ret < ret_ok)) {
- PRINT_ERROR("cherokee_thread_new() failed %d\n", ret);
+ LOG_CRITICAL ("cherokee_thread_new() failed %d\n", ret);
return ret;
}

@@ -695,8 +696,8 @@

ret = cherokee_virtual_server_init_tls (vserver);
if (ret < ret_ok) {
- PRINT_ERROR ("Can not initialize TLS for `%s' virtual host\n",
- cherokee_buffer_is_empty(&vserver->name) ? "unknown" : vserver->name.buf);
+ LOG_CRITICAL ("Can not initialize TLS for `%s' virtual host\n",
+ cherokee_buffer_is_empty(&vserver->name) ? "unknown" : vserver->name.buf);
error = true;

} else if (ret == ret_ok) {
@@ -738,16 +739,15 @@
*/
ret = cherokee_sys_fdlimit_set (new_limit);
if (ret < ret_ok) {
- PRINT_ERROR ("WARNING: Unable to raise file descriptor limit to %d\n",
- new_limit);
+ LOG_WARNING ("Unable to raise file descriptor limit to %d\n", new_limit);
}

/* Update the new value
*/
ret = cherokee_sys_fdlimit_get (&cherokee_fdlimit);
if (ret < ret_ok) {
- PRINT_ERROR_S ("ERROR: Unable to get file descriptor limit\n");
- return ret;
+ LOG_CRITICAL_S ("ERROR: Unable to get file descriptor limit\n");
+ return ret_error;
}

return ret_ok;
@@ -778,8 +778,8 @@
/* Verify if there are enough fds.
*/
if (cherokee_fdlimit < FD_NUM_MIN_SYSTEM) {
- PRINT_ERROR("Number of system fds too low: %d < %d\n",
- cherokee_fdlimit, FD_NUM_MIN_SYSTEM);
+ LOG_CRITICAL ("Number of system fds too low: %d < %d\n",
+ cherokee_fdlimit, FD_NUM_MIN_SYSTEM);
return ret_error;
}

@@ -792,8 +792,8 @@
*/
srv->fdlimit_available = (cherokee_fdlimit - FD_NUM_SPARE);
if (srv->fdlimit_available < FD_NUM_MIN_AVAILABLE) {
- PRINT_ERROR("Number of max. fds too low: %d < %d\n",
- srv->fdlimit_available, FD_NUM_MIN_AVAILABLE);
+ LOG_CRITICAL ("Number of max. fds too low: %d < %d\n",
+ srv->fdlimit_available, FD_NUM_MIN_AVAILABLE);
return ret_error;
}

@@ -886,7 +886,7 @@
{
ent = getpwuid (srv->user);
if (ent == NULL) {
- PRINT_ERROR ("Can't get username for UID %d\n", srv->user);
+ LOG_CRITICAL ("Can't get username for UID %d\n", srv->user);
return ret_error;
}
}
@@ -1090,7 +1090,7 @@
*/
prio = atoi (conf->key.buf);
if (prio <= 0) {
- PRINT_ERROR ("Invalid Source entry '%s'\n", conf->key.buf);
+ LOG_CRITICAL ("Invalid Source entry '%s'\n", conf->key.buf);
return ret_error;
}

@@ -1100,8 +1100,8 @@
*/
ret = cherokee_config_node_read (conf, "type", &buf);
if (ret != ret_ok) {
- PRINT_ERROR_S ("ERROR: Source: An entry 'type' is needed\n");
- return ret;
+ LOG_CRITICAL ("Source %d: An entry 'type' is required.\n", prio);
+ return ret_error;
}

if (equal_buf_str (buf, "interpreter")) {
@@ -1121,7 +1121,7 @@
if (ret != ret_ok) return ret;

} else {
- PRINT_ERROR ("ERROR: Source: Unknown type '%s'\n", buf->buf);
+ LOG_CRITICAL ("ERROR: Source: Unknown type '%s'\n", buf->buf);
return ret_error;
}

@@ -1139,7 +1139,7 @@

prio = atoi (conf->key.buf);
if (prio <= 0) {
- PRINT_ERROR ("Invalid Virtual Server entry '%s'\n", conf->key.buf);
+ LOG_CRITICAL ("Invalid Virtual Server entry '%s'\n", conf->key.buf);
return ret_error;
}

@@ -1178,7 +1178,7 @@
*/
cherokee_list_get_len (&srv->vservers, &len);
if (len == 0) {
- PRINT_ERROR_S ("No virtual hosts have been added.\n");
+ LOG_CRITICAL_S ("No virtual hosts have been added.\n");
return ret_error;
}

@@ -1186,7 +1186,7 @@
*/
vsrv = VSERVER(srv->vservers.prev);
if (! equal_buf_str (&vsrv->name, "default")) {
- PRINT_ERROR_S ("Lowest priority virtual server must be 'default'.\n");
+ LOG_CRITICAL_S ("Lowest priority virtual server must be 'default'.\n");
return ret_error;
}

@@ -1396,7 +1396,27 @@
return ret_ok;
}

+static ret_t
+set_default_server_logger (cherokee_server_t *srv)
+{
+ cherokee_list_t *i;
+ cherokee_logger_t *logger;

+ logger = VSERVER(srv->vservers.prev)->logger;
+ if (logger == NULL) {
+ list_for_each (i, &srv->vservers) {
+ if (VSERVER(i)->logger) {
+ logger = VSERVER(i)->logger;
+ break;
+ }
+ }
+ }
+
+ cherokee_error_log_set_log (logger);
+ return ret_ok;
+}
+
+
static ret_t
configure_server (cherokee_server_t *srv)
{
@@ -1512,6 +1532,10 @@
cherokee_list_add (&listener->listed, &srv->listeners);
}

+ /* Set default logger
+ */
+ set_default_server_logger (srv);
+
return ret_ok;
}

@@ -1579,7 +1603,7 @@
child_pid = fork();
switch (child_pid) {
case -1:
- PRINT_ERROR_S ("Could not fork\n");
+ LOG_CRITICAL_S ("Could not fork\n");
break;

case 0:

Modified: cherokee/trunk/cherokee/thread.c
===================================================================
--- cherokee/trunk/cherokee/thread.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/thread.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -167,6 +167,10 @@
n->fastcgi_servers = NULL;
n->fastcgi_free_func = NULL;

+ /* Thread Local Storage
+ */
+ CHEROKEE_THREAD_PROP_SET (thread_logger_error_ptr, NULL);
+
/* Event poll object
*/
if (fdpoll_type == cherokee_poll_UNSET)
@@ -509,6 +513,10 @@
list_for_each_safe (i, tmp, LIST(&thd->polling_list)) {
conn = CONN(i);

+ /* Thread logger
+ */
+ CHEROKEE_THREAD_PROP_SET (thread_logger_error_ptr, conn->logger_ref);
+
/* Has it been too much without any work?
*/
if (conn->timeout < cherokee_bogonow_now) {
@@ -578,6 +586,10 @@
TRACE (ENTRIES, "thread (%p) processing conn (%p), phase %d '%s'\n",
thd, conn, conn->phase, cherokee_connection_get_phase_str (conn));

+ /* Thread logger
+ */
+ CHEROKEE_THREAD_PROP_SET (thread_logger_error_ptr, conn->logger_ref);
+
/* Has the connection been too much time w/o any work
*/
if (conn->timeout < cherokee_bogonow_now) {
@@ -833,6 +845,10 @@
continue;
}

+ /* Thread logger
+ */
+ CHEROKEE_THREAD_PROP_SET (thread_logger_error_ptr, conn->logger_ref);
+
/* If it's a POST we've to read more data
*/
if (http_method_with_input (conn->header.method)) {

Modified: cherokee/trunk/cherokee/threading.c
===================================================================
--- cherokee/trunk/cherokee/threading.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/threading.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -32,6 +32,12 @@
# endif
#endif

+/* Thread Local Storage variables */
+#ifdef HAVE_PTHREAD
+pthread_key_t thread_logger_error_ptr = 0;
+#endif
+
+
ret_t
cherokee_threading_init (void)
{
@@ -54,6 +60,10 @@
# endif
#endif

+#ifdef HAVE_PTHREAD
+ pthread_key_create (&thread_logger_error_ptr, NULL);
+#endif
+
return ret_ok;
}

@@ -68,6 +78,10 @@
# endif
#endif

+#ifdef HAVE_PTHREAD
+ pthread_key_delete (thread_logger_error_ptr);
+#endif
+
return ret_ok;
}


Modified: cherokee/trunk/cherokee/threading.h
===================================================================
--- cherokee/trunk/cherokee/threading.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/threading.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -45,6 +45,8 @@
# define CHEROKEE_MUTEX_ERRORCHECK NULL
# endif

+extern pthread_key_t thread_logger_error_ptr;
+
/* Global if */
#endif


Modified: cherokee/trunk/cherokee/trace.c
===================================================================
--- cherokee/trunk/cherokee/trace.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/trace.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -151,15 +151,8 @@
}

if (trace.print_time) {
- cherokee_bogotime_try_update();
- cherokee_buffer_add_va (&entries, "[%02d/%02d/%d %02d:%02d:%02d.%03d] ",
- cherokee_bogonow_tmloc.tm_mday,
- cherokee_bogonow_tmloc.tm_mon,
- cherokee_bogonow_tmloc.tm_year + 1900,
- cherokee_bogonow_tmloc.tm_hour,
- cherokee_bogonow_tmloc.tm_min,
- cherokee_bogonow_tmloc.tm_sec,
- cherokee_bogonow_tv.tv_usec / 1000);
+ cherokee_buf_add_bogonow (&entries, true);
+ cherokee_buffer_add_char (&entries, ' ');
}

cherokee_buffer_add_va (&entries, "%18s:%04d (%30s): ", file, line, func);

Modified: cherokee/trunk/cherokee/util.c
===================================================================
--- cherokee/trunk/cherokee/util.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/util.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -24,6 +24,8 @@

#include "common-internal.h"
#include "util.h"
+#include "logger.h"
+#include "bogotime.h"

#include <stdlib.h>
#include <stdarg.h>
@@ -1311,6 +1313,26 @@
}


+ret_t
+cherokee_buf_add_bogonow (cherokee_buffer_t *buf,
+ cherokee_boolean_t update)
+{
+ if (update) {
+ cherokee_bogotime_try_update();
+ }
+
+ cherokee_buffer_add_va (buf, "[%02d/%02d/%d %02d:%02d:%02d.%03d]",
+ cherokee_bogonow_tmloc.tm_mday,
+ cherokee_bogonow_tmloc.tm_mon,
+ cherokee_bogonow_tmloc.tm_year + 1900,
+ cherokee_bogonow_tmloc.tm_hour,
+ cherokee_bogonow_tmloc.tm_min,
+ cherokee_bogonow_tmloc.tm_sec,
+ cherokee_bogonow_tv.tv_usec / 1000);
+ return ret_ok;
+}
+
+
void
cherokee_print_errno (int error, const char *format, ...)
{

Modified: cherokee/trunk/cherokee/util.h
===================================================================
--- cherokee/trunk/cherokee/util.h 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/util.h 2009-06-29 14:42:27 UTC (rev 3401)
@@ -117,8 +117,8 @@
cuint_t *port);

int cherokee_string_is_ipv6 (cherokee_buffer_t *ip);
+ret_t cherokee_buf_add_bogonow (cherokee_buffer_t *buf, cherokee_boolean_t update);

-
/* Time management functions
*/
struct tm *cherokee_gmtime (const time_t *timep, struct tm *result);
@@ -170,6 +170,7 @@
void cherokee_trace (const char *entry, const char *file, int line, const char *func, const char *fmt, ...);
void cherokee_print_errno (int error, const char *format, ...);

+
/* Path management
*/
ret_t cherokee_path_short (cherokee_buffer_t *path);

Modified: cherokee/trunk/cherokee/validator_pam.c
===================================================================
--- cherokee/trunk/cherokee/validator_pam.c 2009-06-29 14:02:21 UTC (rev 3400)
+++ cherokee/trunk/cherokee/validator_pam.c 2009-06-29 14:42:27 UTC (rev 3401)
@@ -168,11 +168,7 @@
#ifdef HAVE_PAM_FAIL_DELAY
ret = pam_fail_delay (pamhandle, 0);
if (ret != PAM_SUCCESS) {
- cherokee_buffer_t msg = CHEROKEE_BUF_INIT;
-
- cherokee_buffer_add_str (&msg, "Setting pam fail delay failed\n");
- cherokee_logger_write_string (CONN_VSRV(conn)->logger, "%s", msg.buf);
- cherokee_buffer_mrproper (&msg);
+ LOG_ERROR_S ("Setting pam fail delay failed\n");

conn->error_code = http_internal_error;
return ret_error;
@@ -198,15 +194,10 @@
#endif

if (ret != PAM_SUCCESS) {
- cherokee_buffer_t msg = CHEROKEE_BUF_INIT;
+ LOG_ERROR ("PAM: user '%s' - not authenticated: %s\n",
+ conn->validator->user.buf,
+ pam_strerror(pamhandle, ret));

- cherokee_buffer_add_str (&msg, "PAM: user '");
- cherokee_buffer_add_buffer (&msg, &conn->validator->user);
- cherokee_buffer_add_va (&msg, "' - not authenticated: %s\n", pam_strerror(pamhandle, ret));
-
- cherokee_logger_write_string (CONN_VSRV(conn)->logger, "%s", msg.buf);
- cherokee_buffer_mrproper (&msg);
-
goto unauthorized;
}

@@ -214,15 +205,10 @@
*/
ret = pam_acct_mgmt (pamhandle, PAM_DISALLOW_NULL_AUTHTOK);
if (ret != PAM_SUCCESS) {
- cherokee_buffer_t msg = CHEROKEE_BUF_INIT;
+ LOG_ERROR ("PAM: user '%s' - invalid account: %s\n",
+ conn->validator->user.buf,
+ pam_strerror(pamhandle, ret));

- cherokee_buffer_add_str (&msg, "PAM: user '");
- cherokee_buffer_add_buffer (&msg, &conn->validator->user);
- cherokee_buffer_add_va (&msg, "' - invalid account: %s\n", pam_strerror(pamhandle, ret));
-
- cherokee_logger_write_string (CONN_VSRV(conn)->logger, "%s", msg.buf);
- cherokee_buffer_mrproper (&msg);
-
goto unauthorized;
}

Cherokee commits RSS feed   Index | Next | Previous | View Threaded
 
 


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