X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Fvolume_id%2Fvol_id.c;h=d8302bc22923ede0a52d345107b5682a66a1955e;hp=dcfb0bb92f8bdfa7c27421378ab5f87b0d1a5bd0;hb=e5931bb7d86226a3823bdf5f4ec01c857827d386;hpb=7d563a17f3967890331daf08d43f2f005418139b diff --git a/extras/volume_id/vol_id.c b/extras/volume_id/vol_id.c index dcfb0bb92..d8302bc22 100644 --- a/extras/volume_id/vol_id.c +++ b/extras/volume_id/vol_id.c @@ -1,7 +1,7 @@ /* * vol_id - read filesystem label and uuid * - * Copyright (C) 2005-2006 Kay Sievers + * Copyright (C) 2005-2008 Kay Sievers * * 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 @@ -39,11 +39,18 @@ #define BLKGETSIZE64 _IOR(0x12,114,size_t) +static int debug; + static void log_fn(struct udev *udev, int priority, const char *file, int line, const char *fn, const char *format, va_list args) { - vsyslog(priority, format, args); + if (debug) { + fprintf(stderr, "%s: ", fn != NULL ? fn : file); + vfprintf(stderr, format, args); + } else { + vsyslog(priority, format, args); + } } static void vid_log(int priority, const char *file, int line, const char *format, ...) @@ -113,6 +120,7 @@ int main(int argc, char *argv[]) { "skip-raid", 0, NULL, 's' }, { "probe-all", 0, NULL, 'a' }, { "offset", 2, NULL, 'o' }, + { "debug", 0, NULL, 'd' }, { "help", 0, NULL, 'h' }, {} }; @@ -151,11 +159,16 @@ int main(int argc, char *argv[]) while (1) { int option; - option = getopt_long(argc, argv, "lLutxsaoh", options, NULL); + option = getopt_long(argc, argv, "lLutxsaodh", options, NULL); if (option == -1) break; switch (option) { + case 'd': + debug = 1; + if (udev_get_log_priority(udev) < LOG_INFO) + udev_set_log_priority(udev, LOG_INFO); + break; case 'l': print = PRINT_LABEL; break; @@ -183,14 +196,15 @@ int main(int argc, char *argv[]) break; case 'h': printf("Usage: vol_id [options] \n" - " --export export key/value pairs\n" - " --type filesystem type\n" - " --label filesystem label\n" - " --label-raw raw label\n" - " --uuid filesystem uuid\n" - " --skip-raid don't probe for raid\n" - " --probe-all find possibly conflicting signatures\n" - " --offset skip given number of bytes of input\n" + " --export export key/value pairs\n" + " --type filesystem type\n" + " --label filesystem label\n" + " --label-raw raw label\n" + " --uuid filesystem uuid\n" + " --skip-raid don't probe for raid\n" + " --probe-all find possibly conflicting signatures\n" + " --offset= probe at the given offset\n" + " --debug print debug output to stderr\n" " --help\n\n"); goto exit; default: @@ -222,7 +236,7 @@ int main(int argc, char *argv[]) if (ioctl(fd, BLKGETSIZE64, &size) != 0) size = 0; - dbg(udev, "BLKGETSIZE64=%llu\n", (unsigned long long)size); + info(udev, "BLKGETSIZE64=%llu (%lluGB)\n", (unsigned long long)size, (unsigned long long)size >> 30); /* try to drop all privileges before reading disk content */ if (getuid() == 0) {