socklen_t addrlen;
};
+enum udev_monitor_netlink_group {
+ UDEV_MONITOR_KERNEL = 1,
+ UDEV_MONITOR_UDEV = 2,
+};
+
/**
* udev_monitor_new_from_socket:
* @udev: udev library context
return udev_monitor;
}
-struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, unsigned int group)
+struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name)
{
struct udev_monitor *udev_monitor;
+ unsigned int group;
if (udev == NULL)
return NULL;
+
+ if (name == NULL)
+ return NULL;
+ if (strcmp(name, "kernel") == 0)
+ group = UDEV_MONITOR_KERNEL;
+ else if (strcmp(name, "udev") == 0)
+ group = UDEV_MONITOR_UDEV;
+ else
+ return NULL;
+
udev_monitor = calloc(1, sizeof(struct udev_monitor));
if (udev_monitor == NULL)
return NULL;
/* udev and kernel device events */
struct udev_monitor;
-enum udev_monitor_netlink_group {
- UDEV_MONITOR_KERNEL = 1,
- UDEV_MONITOR_UDEV = 2,
-};
extern struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char *socket_path);
-extern struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, enum udev_monitor_netlink_group group);
+extern struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name);
extern int udev_monitor_enable_receiving(struct udev_monitor *udev_monitor);
extern struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
extern void udev_monitor_unref(struct udev_monitor *udev_monitor);
printf("monitor will print the received events for:\n");
if (print_udev) {
- udev_monitor = udev_monitor_new_from_netlink(udev, UDEV_MONITOR_UDEV);
+ udev_monitor = udev_monitor_new_from_netlink(udev, "udev");
if (udev_monitor == NULL) {
rc = 1;
goto out;
printf("UDEV - the event which udev sends out after rule processing\n");
}
if (print_kernel) {
- kernel_monitor = udev_monitor_new_from_netlink(udev, UDEV_MONITOR_KERNEL);
+ kernel_monitor = udev_monitor_new_from_netlink(udev, "kernel");
if (kernel_monitor == NULL) {
fprintf(stderr, "unable to subscribe to kernel events\n");
rc = 3;
rc = 4;
goto out;
}
- printf("UEVENT - the kernel uevent\n");
+ printf("KERNEL - the kernel uevent\n");
}
printf("\n");
device = udev_monitor_receive_device(kernel_monitor);
if (device == NULL)
continue;
- print_device(device, "UEVENT", env);
+ print_device(device, "KERNEL", env);
udev_device_unref(device);
}
goto exit;
}
- kernel_monitor = udev_monitor_new_from_netlink(udev, UDEV_MONITOR_KERNEL);
+ kernel_monitor = udev_monitor_new_from_netlink(udev, "kernel");
if (kernel_monitor == NULL || udev_monitor_enable_receiving(kernel_monitor) < 0) {
fprintf(stderr, "error initializing netlink socket\n");
err(udev, "error initializing netlink socket\n");