X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudev-event.c;h=02c5c99dc1b4b6cfc2b7b46497c3ac1bb2dbc435;hp=e297df03834a62c94ae29cca47208bf1c0a51c53;hb=dc4c7e463df35776631150e4e18a4ba41749843c;hpb=1822e9b033fcd91a7dfd3b0bfd12cfbbd93fc470 diff --git a/udev/udev-event.c b/udev/udev-event.c index e297df038..02c5c99dc 100644 --- a/udev/udev-event.c +++ b/udev/udev-event.c @@ -295,13 +295,17 @@ found: 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)