X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-monitor.c;h=d136c6070abe5604b32333eaf6e0c5b2cfb26e9a;hb=38a3cde11bc77af49a96245b8a8a0f2b583a344c;hp=90388db58e38c3113d67f4c5f0552e886a1656d6;hpb=fc206fbe3e326f5acfc64243f9e04eecad121e27;p=elogind.git diff --git a/udev/udevadm-monitor.c b/udev/udevadm-monitor.c index 90388db58..d136c6070 100644 --- a/udev/udevadm-monitor.c +++ b/udev/udevadm-monitor.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2009 Kay Sievers + * Copyright (C) 2004-2010 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 @@ -67,6 +67,7 @@ static void print_device(struct udev_device *device, const char *source, int pro int udevadm_monitor(struct udev *udev, int argc, char *argv[]) { struct sigaction act; + sigset_t mask; int option; int prop = 0; int print_kernel = 0; @@ -110,7 +111,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) char *devtype; util_strscpy(subsys, sizeof(subsys), optarg); - devtype = strchr(subsys, ':'); + devtype = strchr(subsys, '/'); if (devtype != NULL) { devtype[0] = '\0'; devtype++; @@ -120,10 +121,10 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) } case 'h': printf("Usage: udevadm monitor [--property] [--kernel] [--udev] [--help]\n" - " --property print the event properties\n" - " --kernel print kernel uevents\n" - " --udev print udev events\n" - " --subsystem-match= filter events\n" + " --property print the event properties\n" + " --kernel print kernel uevents\n" + " --udev print udev events\n" + " --subsystem-match= filter events by subsystem\n" " --help\n\n"); default: goto out; @@ -142,6 +143,10 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) act.sa_flags = SA_RESTART; sigaction(SIGINT, &act, NULL); sigaction(SIGTERM, &act, NULL); + sigemptyset(&mask); + sigaddset(&mask, SIGINT); + sigaddset(&mask, SIGTERM); + sigprocmask(SIG_UNBLOCK, &mask, NULL); printf("monitor will print the received events for:\n"); if (print_udev) { @@ -153,6 +158,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) rc = 1; goto out; } + udev_monitor_set_receive_buffer_size(udev_monitor, 128*1024*1024); udev_list_entry_foreach(entry, udev_list_get_entry(&subsystem_match_list)) { const char *subsys = udev_list_entry_get_name(entry); @@ -178,6 +184,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) rc = 3; goto out; } + udev_monitor_set_receive_buffer_size(kernel_monitor, 128*1024*1024); udev_list_entry_foreach(entry, udev_list_get_entry(&subsystem_match_list)) { const char *subsys = udev_list_entry_get_name(entry);