Ensure ipconfig data and operations are cleared out when a service is
freed.
This is at least a partial fix and maybe a full fix for issues 21000
<http://bugs.meego.com/show_bug.cgi?id=21000> and 21285
<http://bugs.meego.com/show_bug.cgi?id=21285>.
connman_provider_unref(service->provider);
if (service->ipconfig_ipv4 != NULL) {
connman_provider_unref(service->provider);
if (service->ipconfig_ipv4 != NULL) {
+ connman_ipconfig_set_ops(service->ipconfig_ipv4, NULL);
+ connman_ipconfig_set_data(service->ipconfig_ipv4, NULL);
connman_ipconfig_unref(service->ipconfig_ipv4);
service->ipconfig_ipv4 = NULL;
}
if (service->ipconfig_ipv6 != NULL) {
connman_ipconfig_unref(service->ipconfig_ipv4);
service->ipconfig_ipv4 = NULL;
}
if (service->ipconfig_ipv6 != NULL) {
+ connman_ipconfig_set_ops(service->ipconfig_ipv6, NULL);
+ connman_ipconfig_set_data(service->ipconfig_ipv6, NULL);
connman_ipconfig_unref(service->ipconfig_ipv6);
service->ipconfig_ipv6 = NULL;
}
connman_ipconfig_unref(service->ipconfig_ipv6);
service->ipconfig_ipv6 = NULL;
}