]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tvhlog: fix some problems with hexdump code
authorAdam Sutton <dev@adamsutton.me.uk>
Wed, 17 Apr 2013 12:14:44 +0000 (13:14 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Thu, 18 Apr 2013 10:54:39 +0000 (11:54 +0100)
src/tvhlog.c
src/tvhlog.h

index 381a8ec71ff461e9ae666d6c973a34d98f368352..5aad2f8083d8723034f02d8278471abae7fd33ca 100644 (file)
@@ -114,7 +114,7 @@ next:
 /* Log */
 void tvhlogv ( const char *file, int line,
                int notify, int severity,
-               const char *subsys, const char *fmt, va_list args )
+               const char *subsys, const char *fmt, va_list args, int noargs )
 {
   struct timeval now;
   struct tm tm;
@@ -166,7 +166,10 @@ void tvhlogv ( const char *file, int line,
   l = snprintf(buf, sizeof(buf), "%s: ", subsys);
   if (options & TVHLOG_OPT_FILELINE && severity >= LOG_DEBUG)
     l += snprintf(buf + l, sizeof(buf) - l, "(%s:%d) ", file, line);
-  l += vsnprintf(buf + l, sizeof(buf) - l, fmt, args);
+  if (noargs)
+    l += snprintf(buf + l, sizeof(buf) - l, "%s", fmt);
+  else
+    l += vsnprintf(buf + l, sizeof(buf) - l, fmt, args);
 
   /* Syslog */
   if (options & TVHLOG_OPT_SYSLOG) {
@@ -226,7 +229,7 @@ void _tvhlog ( const char *file, int line,
   va_list args;
   //pthread_mutex_lock(&tvhlog_mutex);
   va_start(args, fmt);
-  tvhlogv(file, line, notify, severity, subsys, fmt, args);
+  tvhlogv(file, line, notify, severity, subsys, fmt, args, 0);
   va_end(args);
   //pthread_mutex_unlock(&tvhlog_mutex);
 }
@@ -239,12 +242,11 @@ void
 _tvhlog_hexdump(const char *file, int line,
                 int notify, int severity,
                 const char *subsys,
-                const uint8_t *data, ssize_t len, ...)
+                const uint8_t *data, ssize_t len )
 {
   int i, c;
   char str[1024];
   va_list args;
-  va_start(args, len);
 
   //pthread_mutex_lock(&tvhlog_mutex);
   while (len > 0) {
@@ -266,7 +268,7 @@ _tvhlog_hexdump(const char *file, int line,
       c++;
     }
     str[c] = '\0';
-    tvhlogv(file, line, notify, severity, subsys, str, args);
+    tvhlogv(file, line, notify, severity, subsys, str, args, 1);
     len  -= HEXDUMP_WIDTH;
     data += HEXDUMP_WIDTH;
   }
index bde46a50bd5704ca82c3096ae59e450b5bbfad81..45a39cb205a7b3f80daa5846b4c50b68f9a3e4c4 100644 (file)
@@ -37,7 +37,7 @@ void tvhlog_set_subsys ( const char *subsys );
 void tvhlog_get_subsys ( char *subsys, size_t len );
 void tvhlogv           ( const char *file, int line,
                          int notify, int severity,
-                         const char *subsys, const char *fmt, va_list args );
+                         const char *subsys, const char *fmt, va_list args, int noargs );
 void _tvhlog           ( const char *file, int line,
                          int notify, int severity,
                          const char *subsys, const char *fmt, ... )
@@ -45,7 +45,7 @@ void _tvhlog           ( const char *file, int line,
 void _tvhlog_hexdump   ( const char *file, int line,
                          int notify, int severity,
                          const char *subsys,
-                         const uint8_t *data, ssize_t len, ... );
+                         const uint8_t *data, ssize_t len );
 
 
 /* Options */