mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-02-20 08:37:55 +07:00
udev/libudev: event - move {OLD_,}INTERFACE handling from udevd to libudev
This should be internal to the library as it is only about reflecting the sysfs state in the udev_device. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
parent
95186c2ee4
commit
ced0d2419e
@ -1926,6 +1926,7 @@ void udev_device_set_db_persist(struct udev_device *udev_device)
|
||||
int udev_device_rename(struct udev_device *udev_device, const char *name)
|
||||
{
|
||||
_cleanup_free_ char *dirname = NULL;
|
||||
const char *interface;
|
||||
char *new_syspath;
|
||||
int r;
|
||||
|
||||
@ -1942,6 +1943,13 @@ int udev_device_rename(struct udev_device *udev_device, const char *name)
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
interface = udev_device_get_property_value(udev_device, "INTERFACE");
|
||||
if (interface) {
|
||||
/* like DEVPATH_OLD, INTERFACE_OLD is not saved to the db, but only stays around for the current event */
|
||||
udev_device_add_property(udev_device, "INTERFACE_OLD", interface);
|
||||
udev_device_add_property(udev_device, "INTERFACE", name);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -867,20 +867,12 @@ void udev_event_execute_rules(struct udev_event *event,
|
||||
log_warning_errno(r, "could not rename interface '%d' from '%s' to '%s': %m", udev_device_get_ifindex(dev),
|
||||
udev_device_get_sysname(dev), event->name);
|
||||
else {
|
||||
const char *interface_old;
|
||||
|
||||
/* remember old name */
|
||||
interface_old = udev_device_get_sysname(dev);
|
||||
|
||||
r = udev_device_rename(dev, event->name);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "renamed interface '%d' from '%s' to '%s', but could not update udev_device: %m",
|
||||
udev_device_get_ifindex(dev), udev_device_get_sysname(dev), event->name);
|
||||
else {
|
||||
udev_device_add_property(dev, "INTERFACE_OLD", interface_old);
|
||||
udev_device_add_property(dev, "INTERFACE", event->name);
|
||||
else
|
||||
log_debug("changed devpath to '%s'", udev_device_get_devpath(dev));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user