chiark / gitweb /
udev/libudev: event - move {OLD_,}INTERFACE handling from udevd to libudev
[elogind.git] / src / libudev / libudev-device.c
index d0296b7ccb5be1ad136a0849cf24675e4845a99c..978b03dd0da02dd97052c7d781da8ccc978b290d 100644 (file)
@@ -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;
 }