summaryrefslogtreecommitdiffhomepage
path: root/alias.c
diff options
context:
space:
mode:
authorHans Dedecker <dedeckeh@gmail.com>2016-06-06 14:58:31 +0200
committerFelix Fietkau <nbd@nbd.name>2016-06-06 15:42:00 +0200
commit29521f9a232f039318fd8525c410b3127836626f (patch)
tree10b3ea2876ecbf09de1c839ff9e1baa9935ee676 /alias.c
parentfef10041f3a495d79f03f99bdf416a68a0ee91aa (diff)
device: Fix device find failure in avl list due to device name change
As device name is used as key in avl list a device name change will break the avl find logic. Function device_set_ifname offers api to set the device name and re-inserts the avl node in the list when the avl key value is changed. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'alias.c')
-rw-r--r--alias.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/alias.c b/alias.c
index e4bb700..6b938ca 100644
--- a/alias.c
+++ b/alias.c
@@ -59,13 +59,10 @@ static void alias_set_device(struct alias_device *alias, struct device *dev)
alias->dev.hidden = !dev;
if (dev) {
device_set_ifindex(&alias->dev, dev->ifindex);
- strcpy(alias->dev.ifname, dev->ifname);
- device_broadcast_event(&alias->dev, DEV_EVENT_UPDATE_IFNAME);
+ device_set_ifname(&alias->dev, dev->ifname);
device_add_user(&alias->dep, dev);
- } else {
- alias->dev.ifname[0] = 0;
- device_broadcast_event(&alias->dev, DEV_EVENT_UPDATE_IFNAME);
- }
+ } else
+ device_set_ifname(&alias->dev, "");
}
static int