return 0;
}
-static void print_device_properties(struct udev_device *dev)
+static void udev_setup_event_params(struct udev_device *dev,
+ struct event *event)
{
struct udev_list_entry *list, *entry;
- assert(dev);
-
- if (1) {
- list = udev_device_get_properties_list_entry(dev);
-
- assert(list);
+ list = udev_device_get_properties_list_entry(dev);
+ if (!list)
+ return;
- udev_list_entry_foreach(entry, list)
- DBG("property: %s - %s\n",
- udev_list_entry_get_name(entry),
- udev_device_get_property_value(dev,
- udev_list_entry_get_name(entry)));
- }
+ udev_list_entry_foreach(entry, list)
+ event_set_param(event,udev_list_entry_get_name(entry),
+ udev_list_entry_get_value(entry));
}
static int udev_handle_dev_action(struct udev_device *dev, const char *action)
return -1;
}
- print_device_properties(dev);
-
/* Ignore non disk or partition, ram, loop. */
if (!(strstr(devtype, "disk") || strstr(devtype, "partition"))
event->type = EVENT_TYPE_UDEV;
event->action = eva;
- event->device = devpath;
+ event->device = devnode;
+
+ event->n_params = 0;
+ event->params = NULL;
+ event_set_param(event, "DEVNAME", devnode);
- event->n_params = 1;
- event->params = talloc(event, struct param);
- event->params->name = "DEVNAME";
- event->params->value = devnode;
+ udev_setup_event_params(dev, event);
udev = udev_get_userdata(udev_device_get_udev(dev));
assert(udev);
if (result)
goto fail_monitor;
- waiter_register(waitset, udev_monitor_get_fd(udev->monitor), WAIT_IN,
+ waiter_register_io(waitset, udev_monitor_get_fd(udev->monitor), WAIT_IN,
udev_process, udev->monitor);
pb_log("%s: waiting on udev\n", __func__);