- init_uevent_netlink_sock();
- init_udev_monitor_socket();
-
- printf("udevmonitor prints received from the kernel [UEVENT] and after\n"
- "the udev processing, the event which udev [UDEV] has generated\n\n");
-
- FD_ZERO(&readfds);
- if (uevent_netlink_sock > 0)
- FD_SET(uevent_netlink_sock, &readfds);
- if (udev_monitor_sock > 0)
- FD_SET(udev_monitor_sock, &readfds);
-
- while (1) {
+ /* set signal handlers */
+ memset(&act, 0x00, sizeof(struct sigaction));
+ act.sa_handler = (void (*)(int)) sig_handler;
+ sigemptyset(&act.sa_mask);
+ act.sa_flags = SA_RESTART;
+ sigaction(SIGINT, &act, NULL);
+ sigaction(SIGTERM, &act, NULL);
+
+ retval = init_udev_monitor_socket();
+ if (retval)
+ goto out;
+ retval = init_uevent_netlink_sock();
+ if (retval)
+ goto out;
+
+ printf("udevmonitor prints the received event from the kernel [UEVENT]\n"
+ "and the event which udev sends out after rule processing [UDEV]\n\n");
+
+ while (!udev_exit) {