diff options
Diffstat (limited to 'nanohttp/nanohttp-common.c')
-rw-r--r-- | nanohttp/nanohttp-common.c | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/nanohttp/nanohttp-common.c b/nanohttp/nanohttp-common.c index e31c20f..df968c3 100644 --- a/nanohttp/nanohttp-common.c +++ b/nanohttp/nanohttp-common.c @@ -1,5 +1,5 @@ /****************************************************************** -* $Id: nanohttp-common.c,v 1.13 2004/10/15 13:29:36 snowdrop Exp $ +* $Id: nanohttp-common.c,v 1.14 2004/10/20 14:17:41 snowdrop Exp $ * * CSOAP Project: A http client/server library in C * Copyright (C) 2003 Ferhat Ayaz @@ -34,7 +34,8 @@ #include <utils/alloc.h> #endif -static log_level_t loglevel = HLOG_DEBUG; +static log_level_t loglevel = HLOG_DEBUG;
+static char logfile[75] = {'\0'}; log_level_t log_set_level(log_level_t level) @@ -45,11 +46,26 @@ log_set_level(log_level_t level) } -log_level_t +log_level_t log_get_level() { return loglevel; } +
+
+void log_set_file(const char *filename)
+{
+ if (filename)
+ strncpy(logfile, filename, 75);
+ else
+ logfile[0] = '\0';
+}
+
+char *log_get_file()
+{
+ if (logfile[0] == '\0') return NULL;
+ return logfile;
+}
static void @@ -57,7 +73,8 @@ log_write(log_level_t level, const char *prefix, const char *func, const char *format, va_list ap) { char buffer[1054]; - char buffer2[1054]; + char buffer2[1054];
+ FILE *f; if (level < loglevel) return; @@ -65,7 +82,17 @@ log_write(log_level_t level, const char *prefix, sprintf(buffer, "*%s*: [%s] %s\n", prefix, func, format); vsprintf(buffer2, buffer, ap); printf(buffer2); - fflush(stdout); + fflush(stdout);
+
+ if (log_get_file()) {
+ f = fopen(log_get_file(), "a");
+ if (!f) f = fopen(log_get_file(), "w");
+ if (f) {
+ fprintf(f, buffer2);
+ fflush(f);
+ fclose(f);
+ }
+ } } void @@ -574,6 +601,15 @@ part_t *part_new(const char *id, const char* filename, return part; } +void part_free(part_t *part)
+{
+ if (part == NULL)
+ return;
+
+ hpairnode_free_deep(part->header);
+
+ free(part);
+}
attachments_t *attachments_new() /* should be used internally */ { @@ -612,7 +648,7 @@ void attachments_free(attachments_t *message) part = message->parts; while (part) { tmp = part->next; - mime_part_free(part); + part_free(part); part= tmp; } |