projects
/
oweals
/
gnunet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
expand GNUNET_OS_ProjectData API to also enable de-duplcation of logic for --help
[oweals/gnunet.git]
/
src
/
util
/
common_logging.c
diff --git
a/src/util/common_logging.c
b/src/util/common_logging.c
index 492d00dc69a118787585eb701311449b5cd2654a..0cefa194d128bebe8311614e53f0e14f4061f124 100644
(file)
--- a/
src/util/common_logging.c
+++ b/
src/util/common_logging.c
@@
-1,6
+1,6
@@
/*
This file is part of GNUnet.
/*
This file is part of GNUnet.
- Copyright (C) 2006-2013
Christian Grothoff (and other contributing authors)
+ Copyright (C) 2006-2013
GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
@@
-14,8
+14,8
@@
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 5
9 Temple Place - Suite 330
,
- Boston, MA 0211
1-1307
, USA.
+ Free Software Foundation, Inc., 5
1 Franklin Street, Fifth Floor
,
+ Boston, MA 0211
0-1301
, USA.
*/
/**
*/
/**
@@
-149,7
+149,7
@@
static struct CustomLogger *loggers;
/**
* Number of log calls to ignore.
*/
/**
* Number of log calls to ignore.
*/
-int skip_log = 0;
+
static
int skip_log = 0;
/**
* File descriptor to use for "stderr", or NULL for none.
/**
* File descriptor to use for "stderr", or NULL for none.
@@
-342,10
+342,15
@@
setup_log_file (const struct tm *tm)
if ( (NULL != leftsquare) && (']' == leftsquare[1]) )
{
char *logfile_copy = GNUNET_strdup (fn);
if ( (NULL != leftsquare) && (']' == leftsquare[1]) )
{
char *logfile_copy = GNUNET_strdup (fn);
+
logfile_copy[leftsquare - fn] = '\0';
logfile_copy[leftsquare - fn + 1] = '\0';
logfile_copy[leftsquare - fn] = '\0';
logfile_copy[leftsquare - fn + 1] = '\0';
- snprintf (fn, PATH_MAX, "%s%d%s",
- logfile_copy, getpid (), &logfile_copy[leftsquare - fn + 2]);
+ snprintf (fn,
+ PATH_MAX,
+ "%s%d%s",
+ logfile_copy,
+ getpid (),
+ &logfile_copy[leftsquare - fn + 2]);
GNUNET_free (logfile_copy);
}
if (0 == strcmp (fn, last_fn))
GNUNET_free (logfile_copy);
}
if (0 == strcmp (fn, last_fn))
@@
-405,8
+410,13
@@
setup_log_file (const struct tm *tm)
* @return 0 on success, regex-specific error otherwise
*/
static int
* @return 0 on success, regex-specific error otherwise
*/
static int
-add_definition (char *component, char *file, char *function, int from_line,
- int to_line, int level, int force)
+add_definition (const char *component,
+ const char *file,
+ const char *function,
+ int from_line,
+ int to_line,
+ int level,
+ int force)
{
struct LogDef n;
int r;
{
struct LogDef n;
int r;
@@
-461,8
+471,11
@@
add_definition (char *component, char *file, char *function, int from_line,
* @return 0 to disallow the call, 1 to allow it
*/
int
* @return 0 to disallow the call, 1 to allow it
*/
int
-GNUNET_get_log_call_status (int caller_level, const char *comp,
- const char *file, const char *function, int line)
+GNUNET_get_log_call_status (int caller_level,
+ const char *comp,
+ const char *file,
+ const char *function,
+ int line)
{
struct LogDef *ld;
int i;
{
struct LogDef *ld;
int i;
@@
-696,13
+709,17
@@
GNUNET_log_setup (const char *comp,
/**
/**
- * Add a custom logger.
+ * Add a custom logger. Note that installing any custom logger
+ * will disable the standard logger. When multiple custom loggers
+ * are installed, all will be called. The standard logger will
+ * only be used if no custom loggers are present.
*
* @param logger log function
* @param logger_cls closure for @a logger
*/
void
*
* @param logger log function
* @param logger_cls closure for @a logger
*/
void
-GNUNET_logger_add (GNUNET_Logger logger, void *logger_cls)
+GNUNET_logger_add (GNUNET_Logger logger,
+ void *logger_cls)
{
struct CustomLogger *entry;
{
struct CustomLogger *entry;
@@
-721,7
+738,8
@@
GNUNET_logger_add (GNUNET_Logger logger, void *logger_cls)
* @param logger_cls closure for @a logger
*/
void
* @param logger_cls closure for @a logger
*/
void
-GNUNET_logger_remove (GNUNET_Logger logger, void *logger_cls)
+GNUNET_logger_remove (GNUNET_Logger logger,
+ void *logger_cls)
{
struct CustomLogger *pos;
struct CustomLogger *prev;
{
struct CustomLogger *pos;
struct CustomLogger *prev;
@@
-756,17
+774,26
@@
CRITICAL_SECTION output_message_cs;
* @param msg the actual message
*/
static void
* @param msg the actual message
*/
static void
-output_message (enum GNUNET_ErrorType kind, const char *comp,
- const char *datestr, const char *msg)
+output_message (enum GNUNET_ErrorType kind,
+ const char *comp,
+ const char *datestr,
+ const char *msg)
{
struct CustomLogger *pos;
{
struct CustomLogger *pos;
+
#if WINDOWS
EnterCriticalSection (&output_message_cs);
#endif
#if WINDOWS
EnterCriticalSection (&output_message_cs);
#endif
- if (NULL != GNUNET_stderr)
+ /* only use the standard logger if no custom loggers are present */
+ if ( (NULL != GNUNET_stderr) &&
+ (NULL == loggers) )
{
{
- FPRINTF (GNUNET_stderr, "%s %s %s %s", datestr, comp,
- GNUNET_error_type_to_string (kind), msg);
+ FPRINTF (GNUNET_stderr,
+ "%s %s %s %s",
+ datestr,
+ comp,
+ GNUNET_error_type_to_string (kind),
+ msg);
fflush (GNUNET_stderr);
}
pos = loggers;
fflush (GNUNET_stderr);
}
pos = loggers;