chiark / gitweb /
vol_id: fix logging from libvolume_id's log function
[elogind.git] / extras / volume_id / vol_id.c
index 518962c10bd5ddd6b649ef7910ff168ace04cc3d..dcf56d87e9fb4562c1fe3f54de8075232637795c 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * vol_id - udev callout to read filesystem label and uuid
+ * vol_id - read filesystem label and uuid
  *
- * Copyright (C) 2005 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2005-2006 Kay Sievers <kay.sievers@vrfy.org>
  *
  *     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 the
@@ -31,7 +31,7 @@
 #include <sys/ioctl.h>
 
 #include "../../udev.h"
-#include "libvolume_id/libvolume_id.h"
+#include "lib/libvolume_id.h"
 
 #define BLKGETSIZE64 _IOR(0x12,114,size_t)
 
@@ -60,6 +60,21 @@ void log_message(int priority, const char *format, ...)
 }
 #endif
 
+static void vid_log(int priority, const char *file, int line, const char *format, ...)
+{
+#ifdef USE_LOG
+       char log_str[1024];
+       va_list args;
+
+       va_start(args, format);
+       vsnprintf(log_str, sizeof(log_str), format, args);
+       log_str[sizeof(log_str)-1] = '\0';
+       log_message(priority, "%s:%i %s", file, line, log_str);
+       va_end(args);
+#endif
+       return;
+}
+
 static void set_str(char *to, const char *from, size_t count)
 {
        size_t i, j, len;
@@ -117,6 +132,9 @@ int main(int argc, char *argv[])
 
        logging_init("vol_id");
 
+       /* hook in our debug into libvolume_id */
+       volume_id_log_fn = vid_log;
+
        for (i = 1 ; i < argc; i++) {
                char *arg = argv[i];