Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2006 Pekka Riikonen
+ Copyright (C) 1997 - 2007 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
if (!silclog.scheduled) {
if (silclog.no_init == FALSE) {
fprintf(stderr,
- "Warning, trying to output without log files initialization, "
+ "Warning, log files not initialized, "
"log output is going to stderr\n");
silclog.no_init = TRUE;
}
FILE *fp = NULL;
SilcLog log;
+ if (!scheduler)
+ scheduler = silc_schedule_get_global();
+
log = silc_log_get_context(type);
if (!log)
return FALSE;
int len;
if ((strchr(debug_string, '(') && strchr(debug_string, ')')) ||
strchr(debug_string, '$'))
- string = strdup(debug_string);
+ string = silc_strdup(debug_string);
else
string = silc_string_regexify(debug_string);
len = strlen(string);
void silc_log_output_debug(char *file, const char *function,
int line, char *string)
{
+ SilcTimeStruct curtime;
+
#ifndef SILC_SYMBIAN
if (!silclog.debug)
goto end;
}
#endif /* !SILC_SYMBIAN */
+ silc_time_value(0, &curtime);
+
#ifdef SILC_WIN32
if (strrchr(function, '\\'))
fprintf(stderr, "%s:%d: %s\n", strrchr(function, '\\') + 1, line, string);
#ifdef SILC_SYMBIAN
silc_symbian_debug(function, line, string);
#else
- fprintf(stderr, "%s:%d: %s\n", function, line, string);
+ fprintf(stderr, "%02d:%02d:%02d %s:%d: %s\n", curtime.hour,
+ curtime.minute, curtime.second, function, line,
+ string);
fflush(stderr);
#endif /* SILC_SYMBIAN */
-
+
end:
silc_free(string);
}
int line, void *data_in,
SilcUInt32 len, char *string)
{
- int i, k;
- int off, pos, count;
- unsigned char *data = (unsigned char *)data_in;
-
#ifndef SILC_SYMBIAN
if (!silclog.debug_hexdump)
goto end;
fprintf(stderr, "%s:%d: %s\n", function, line, string);
- k = 0;
- pos = 0;
- count = 16;
- off = len % 16;
- while (1) {
- if (off) {
- if ((len - pos) < 16 && (len - pos <= len - off))
- count = off;
- } else {
- if (pos == len)
- count = 0;
- }
- if (off == len)
- count = len;
-
- if (count)
- fprintf(stderr, "%08X ", k++ * 16);
-
- for (i = 0; i < count; i++) {
- fprintf(stderr, "%02X ", data[pos + i]);
-
- if ((i + 1) % 4 == 0)
- fprintf(stderr, " ");
- }
-
- if (count && count < 16) {
- int j;
-
- for (j = 0; j < 16 - count; j++) {
- fprintf(stderr, " ");
-
- if ((j + count + 1) % 4 == 0)
- fprintf(stderr, " ");
- }
- }
-
- for (i = 0; i < count; i++) {
- char ch;
-
- if (data[pos] < 32 || data[pos] >= 127)
- ch = '.';
- else
- ch = data[pos];
-
- fprintf(stderr, "%c", ch);
- pos++;
- }
-
- if (count)
- fprintf(stderr, "\n");
-
- if (count < 16)
- break;
- }
+ silc_hexdump(data_in, len, stderr);
end:
silc_free(string);