Author: Giovanni Giacobbi <giovanni@giacobbi.net>
- Copyright (C) 1997 - 2002 Pekka Riikonen
+ Copyright (C) 1997 - 2005 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
* This is the main logging channel id. There are currently four known
* logging channels (plus the debugging output channel), and they are
* ordered by importance.
+ *
* See the source code for SILC coding conventions about how to choose
* the right output channel.
*
#define SILC_NOT_IMPLEMENTED(string) \
SILC_LOG_INFO(("*********** %s: NOT IMPLEMENTED YET", string));
#else
-#define SILC_LOG_DEBUG(fmt)
-#define SILC_NOT_IMPLEMENTED(string)
+#define SILC_LOG_DEBUG(fmt) do { } while(0)
+#define SILC_NOT_IMPLEMENTED(string) do { } while(0)
#endif /* SILC_DEBUG */
/***/
*/
#if defined(SILC_DEBUG)
#define SILC_LOG_HEXDUMP(fmt, data, len) silc_log_output_hexdump(__FILE__, \
- __FUNCTION__, \
- __LINE__, \
- (data), (len), \
+ __FUNCTION__, \
+ __LINE__, \
+ (void *)(data), (len), \
silc_format fmt)
#else
-#define SILC_LOG_HEXDUMP(fmt, data, len)
+#define SILC_LOG_HEXDUMP(fmt, data, len) do { } while(0)
#endif /* SILC_DEBUG */
/***/
*
* This is the main function for logging output. Please note that you
* should rather use one of the logging wrapper macros.
+ *
* If you really want to use this function, its usage is quite simple.
* The `type' parameter identifies the channel to use, while the `string'
* parameter must be a dynamic allocated (null-terminated) buffer, because
* If there has been an error during the opening of this channel, NULL
* is returned, even if the file has been previously set with
* silc_log_set_file().
+ *
* The returned pointer points to internally allocated storage and must
* not be freed, modified or stored.
*
*
* SYNOPSIS
*
- * bool silc_log_set_file(SilcLogType type, char *filename,
+ * bool silc_log_set_file(SilcLogType type, char *filename,
* SilcUInt32 maxsize,
* SilcSchedule scheduler);
*
* logging file for the channel `type'. If you specify an illegal filename
* a warning message is printed and FALSE is returned. In this case
* logging settings are not changed.
+ *
* You can disable logging for a channel by specifying NULL filename, the
- * maxsize in this case is not important.
- * The `scheduler' parameter is needed by the internal logging to allow
- * buffered output and thus to save HD activity.
+ * maxsize in this case is not important. The `scheduler' parameter is
+ * needed by the internal logging to allow buffered output and thus to
+ * save HD activity.
*
***/
bool silc_log_set_file(SilcLogType type, char *filename, SilcUInt32 maxsize,
* trigger the callback function. If the callback function returns TRUE
* SilcLog will assume the input as handled and won't run its default
* handler.
+ *
* You can disable/remove a callback by setting it to NULL or calling the
- * function silc_log_reset_callbacks.
- * If set, the callback function must be in the form described by
- * SilcLogCb.
+ * function silc_log_reset_callbacks. If set, the callback function
+ * must be in the form described by SilcLogCb.
*
* SEE ALSO
* silc_log_reset_callbacks
*
* SYNOPSIS
*
- * void silc_log_output_debug(char *file, char *function,
+ * void silc_log_output_debug(char *file, const char *function,
* int line, char *string);
*
* DESCRIPTION
* dynamic allocated (null-terminated) buffer.
*
***/
-void silc_log_output_debug(char *file, char *function,
+void silc_log_output_debug(char *file, const char *function,
int line, char *string);
/****f* silcutil/SilcLogAPI/silc_log_output_hexdump
* `string' must be a dynamic allocated (null-terminated) buffer.
*
***/
-void silc_log_output_hexdump(char *file, char *function,
+void silc_log_output_hexdump(char *file, const char *function,
int line, void *data_in,
SilcUInt32 len, char *string);