summaryrefslogtreecommitdiffstats
path: root/nanohttp/nanohttp-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'nanohttp/nanohttp-common.c')
-rw-r--r--nanohttp/nanohttp-common.c48
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;
}