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
if (scope == 0 && g_strcmp0(dst, "0.0.0.0") == 0) {
GSList *list;
if (scope == 0 && g_strcmp0(dst, "0.0.0.0") == 0) {
GSList *list;
if (family == AF_INET6) {
g_free(ipdevice->ipv6_gateway);
if (family == AF_INET6) {
g_free(ipdevice->ipv6_gateway);
g_free(ipaddress->gateway);
ipaddress->gateway = g_strdup(gateway);
}
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>",
}
connman_info("%s {add} route %s gw %s scope %u <%s>",
if (scope == 0 && g_strcmp0(dst, "0.0.0.0") == 0) {
GSList *list;
if (scope == 0 && g_strcmp0(dst, "0.0.0.0") == 0) {
GSList *list;
if (family == AF_INET6) {
g_free(ipdevice->ipv6_gateway);
if (family == AF_INET6) {
g_free(ipdevice->ipv6_gateway);
g_free(ipaddress->gateway);
ipaddress->gateway = NULL;
}
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>",
}
connman_info("%s {del} route %s gw %s scope %u <%s>",