summaryrefslogtreecommitdiff
path: root/src/ipconfig.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipconfig.c')
-rw-r--r--src/ipconfig.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ipconfig.c b/src/ipconfig.c
index e2b6576b..4d8c569e 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -632,8 +632,19 @@ void __connman_ipconfig_newlink(int index, unsigned short type,
return;
ipdevice = g_hash_table_lookup(ipdevice_hash, GINT_TO_POINTER(index));
- if (ipdevice != NULL)
+ if (ipdevice != NULL) {
+ char *ifname = connman_inet_ifname(index);
+ if (g_strcmp0(ipdevice->ifname, ifname) != 0) {
+ DBG("interface name changed %s -> %s",
+ ipdevice->ifname, ifname);
+
+ g_free(ipdevice->ifname);
+ ipdevice->ifname = ifname;
+ } else
+ g_free(ifname);
+
goto update;
+ }
ipdevice = g_try_new0(struct connman_ipdevice, 1);
if (ipdevice == NULL)