chiark / gitweb /
ata_id: export more advanced ATA features
[elogind.git] / udev / udevadm-monitor.c
index 73516069ba6f42efd12c7b0a15772b99dc7450e6..00b130dafea6a823183e4da61e1fe50fe3189721 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2008 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2004-2009 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
@@ -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;
@@ -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) {
@@ -204,7 +209,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[])
                if (udev_monitor != NULL)
                        FD_SET(udev_monitor_get_fd(udev_monitor), &readfds);
 
-               fdcount = select(UDEV_MAX(udev_monitor_get_fd(kernel_monitor), udev_monitor_get_fd(udev_monitor))+1,
+               fdcount = select(MAX(udev_monitor_get_fd(kernel_monitor), udev_monitor_get_fd(udev_monitor))+1,
                                 &readfds, NULL, NULL, NULL);
                if (fdcount < 0) {
                        if (errno != EINTR)