summaryrefslogtreecommitdiffstats
path: root/customdhcpcd/src/logwriter.c
diff options
context:
space:
mode:
Diffstat (limited to 'customdhcpcd/src/logwriter.c')
-rw-r--r--customdhcpcd/src/logwriter.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/customdhcpcd/src/logwriter.c b/customdhcpcd/src/logwriter.c
index 0a78995..d41bbfb 100644
--- a/customdhcpcd/src/logwriter.c
+++ b/customdhcpcd/src/logwriter.c
@@ -151,10 +151,23 @@ void logSendToQt(int type) {
}
}
-void logLoggerToQt(int level, const char *fmt, va_list args) {
- vsnprintf(mesg, sizeof(mesg), fmt, args);
- strcat(mesg, "\n");
- logToQt(level, DHCPCD_LOG, mesg);
+void logLoggerToQt(int level, const char *fmt, ...) {
+ // Format string into buffer
+ va_list argptr;
+ va_start (argptr, fmt);
+ int size = 255 + 2;
+ char *string = (char *) malloc (size);
+ int required = vsnprintf (string, size, fmt, argptr);
+ if (required >= size)
+ {
+ size = required + 2;
+ string = (char *) realloc (string, size);
+ vsnprintf (string, size, fmt, argptr);
+ }
+ va_end (argptr);
+
+ strcat(string, "\n");
+ logToQt(level, DHCPCD_LOG, string);
}
static void print_addresses (FILE *f, const struct address_head *addresses)