From e25a8f5e79b81f5c5b12f74d1b8b197d2a13b2ac Mon Sep 17 00:00:00 2001 From: "leena.gunda@wipro.com" Date: Wed, 6 Oct 2010 19:01:12 +0530 Subject: [PATCH] Display IPv4/IPv6 gateway in PropertyChanged signal ConnMan should emit the IP PropertyChanged signal when the IP is set but also when a route for the device is set. Fixes BMC#7895 --- src/ipconfig.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/ipconfig.c b/src/ipconfig.c index 0a7eb8b..2b60e2d 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -707,6 +707,7 @@ void __connman_ipconfig_newroute(int index, int family, unsigned char scope, if (scope == 0 && g_strcmp0(dst, "0.0.0.0") == 0) { GSList *list; + GList *config_list; if (family == AF_INET6) { g_free(ipdevice->ipv6_gateway); @@ -728,6 +729,20 @@ void __connman_ipconfig_newroute(int index, int family, unsigned char scope, g_free(ipaddress->gateway); ipaddress->gateway = g_strdup(gateway); } + + for (config_list = g_list_first(ipconfig_list); config_list; + config_list = g_list_next(config_list)) { + struct connman_ipconfig *ipconfig = config_list->data; + + if (index != ipconfig->index) + continue; + + if (ipconfig->ops == NULL) + continue; + + if (ipconfig->ops->ip_bound) + ipconfig->ops->ip_bound(ipconfig); + } } connman_info("%s {add} route %s gw %s scope %u <%s>", @@ -748,6 +763,7 @@ void __connman_ipconfig_delroute(int index, int family, unsigned char scope, if (scope == 0 && g_strcmp0(dst, "0.0.0.0") == 0) { GSList *list; + GList *config_list; if (family == AF_INET6) { g_free(ipdevice->ipv6_gateway); @@ -769,6 +785,20 @@ void __connman_ipconfig_delroute(int index, int family, unsigned char scope, g_free(ipaddress->gateway); ipaddress->gateway = NULL; } + + for (config_list = g_list_first(ipconfig_list); config_list; + config_list = g_list_next(config_list)) { + struct connman_ipconfig *ipconfig = config_list->data; + + if (index != ipconfig->index) + continue; + + if (ipconfig->ops == NULL) + continue; + + if (ipconfig->ops->ip_release) + ipconfig->ops->ip_release(ipconfig); + } } connman_info("%s {del} route %s gw %s scope %u <%s>", -- 2.7.4