chiark / gitweb /
Increase UTIL_LINE_SIZE from 2048 to 16384
[elogind.git] / udev / udevadm-monitor.c
index 73516069ba6f42efd12c7b0a15772b99dc7450e6..4063c48303c08544a579ab07fa94d50acfd2a34c 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) {
@@ -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);
@@ -204,7 +211,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)