udev_list_cleanup_entries(event->udev, &event->run_list);
free(event->tmp_node);
free(event->program_result);
+ free(event->name);
dbg(event->udev, "free event %p\n", event);
free(event);
}
err(event->udev, "missing file parameter for attr\n");
else {
const char *val;
- char value[UTIL_NAME_SIZE] = "";
+ char value[UTIL_NAME_SIZE];
size_t size;
+ value[0] = '\0';
+ /* read the value specified by [usb/]*/
util_resolve_subsys_kernel(event->udev, attr, value, sizeof(value), 1);
- val = udev_device_get_sysattr_value(event->dev, attr);
- if (val != NULL)
- util_strlcpy(value, val, sizeof(value));
+ /* try to read attribute of the current device */
+ if (value[0] == '\0') {
+ val = udev_device_get_sysattr_value(event->dev, attr);
+ if (val != NULL)
+ util_strlcpy(value, val, sizeof(value));
+ }
- /* try the current device, other matches may have selected */
+ /* try to read the attribute of the parent device, other matches have selected */
if (value[0] == '\0' && event->dev_parent != NULL && event->dev_parent != event->dev) {
val = udev_device_get_sysattr_value(event->dev_parent, attr);
if (val != NULL)
goto exit;
}
- if (event->name_ignore) {
+ if (event->name != NULL && event->name[0] == '\0') {
info(event->udev, "device node creation supressed\n");
goto exit;
}
- if (event->name[0] == '\0') {
+ if (event->name == NULL) {
info(event->udev, "no node name set, will use kernel name '%s'\n",
udev_device_get_sysname(event->dev));
- util_strlcpy(event->name, udev_device_get_sysname(event->dev), sizeof(event->name));
+ event->name = strdup(udev_device_get_sysname(event->dev));
+ if (event->name == NULL)
+ goto exit;
}
/* set device node name */
info(event->udev, "device event will be ignored\n");
goto exit;
}
- if (event->name[0] == '\0') {
- info(event->udev, "device renaming supressed\n");
+ if (event->name == NULL)
goto exit;
- }
/* look if we want to change the name of the netif */
if (strcmp(event->name, udev_device_get_sysname(dev)) != 0) {