mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-02-20 08:37:55 +07:00
libudev: introduce udev_device_properties_copy()
To copy properties from one device to another. Drop the equivalent functionality from udevd. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
parent
b8adef56d8
commit
87a58f2043
@ -2030,3 +2030,18 @@ struct udev_device *udev_device_new_from_nulstr(struct udev *udev, char *nulstr,
|
||||
|
||||
return device;
|
||||
}
|
||||
|
||||
int udev_device_copy_properties(struct udev_device *dst, struct udev_device *src) {
|
||||
struct udev_list_entry *entry;
|
||||
|
||||
for ((entry = udev_device_get_properties_list_entry(src)); entry; entry = udev_list_entry_get_next(entry)) {
|
||||
const char *key, *value;
|
||||
|
||||
key = udev_list_entry_get_name(entry);
|
||||
value = udev_list_entry_get_value(entry);
|
||||
|
||||
udev_device_add_property(dst, key, value);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ int udev_get_rules_path(struct udev *udev, char **path[], usec_t *ts_usec[]);
|
||||
/* libudev-device.c */
|
||||
struct udev_device *udev_device_new_from_nulstr(struct udev *udev, char *nulstr, ssize_t buflen);
|
||||
struct udev_device *udev_device_shallow_clone(struct udev_device *old_device);
|
||||
int udev_device_copy_properties(struct udev_device *dst, struct udev_device *src);
|
||||
mode_t udev_device_get_devnode_mode(struct udev_device *udev_device);
|
||||
uid_t udev_device_get_devnode_uid(struct udev_device *udev_device);
|
||||
gid_t udev_device_get_devnode_gid(struct udev_device *udev_device);
|
||||
|
@ -837,18 +837,8 @@ void udev_event_execute_rules(struct udev_event *event,
|
||||
}
|
||||
|
||||
if (major(udev_device_get_devnum(dev)) == 0 &&
|
||||
streq(udev_device_get_action(dev), "move")) {
|
||||
struct udev_list_entry *entry;
|
||||
|
||||
for ((entry = udev_device_get_properties_list_entry(event->dev_db)); entry; entry = udev_list_entry_get_next(entry)) {
|
||||
const char *key, *value;
|
||||
|
||||
key = udev_list_entry_get_name(entry);
|
||||
value = udev_list_entry_get_value(entry);
|
||||
|
||||
udev_device_add_property(dev, key, value);
|
||||
}
|
||||
}
|
||||
streq(udev_device_get_action(dev), "move"))
|
||||
udev_device_copy_properties(dev, event->dev_db);
|
||||
|
||||
udev_rules_apply_to_event(rules, event,
|
||||
timeout_usec, timeout_warn_usec,
|
||||
|
Loading…
Reference in New Issue
Block a user