/* default profile is NULL and new connected profile is NULL */
if (!profile) {
- profile = __netconfig_get_default_profile();
+ char *tmp_profile = __netconfig_get_default_profile();
- if (profile && netconfig_is_cellular_profile(profile) &&
- !netconfig_is_cellular_internet_profile(profile)) {
+ if (tmp_profile && netconfig_is_cellular_profile(tmp_profile) &&
+ !netconfig_is_cellular_internet_profile(tmp_profile)) {
DBG("not a default cellular profile");
- profile = NULL;
+ g_free(tmp_profile);
+ tmp_profile = NULL;
}
- if (!profile) {
+ if (!tmp_profile) {
__netconfig_update_default_connection_info();
return;
}
+
+ netconfig_default_connection_info.profile = g_strdup(tmp_profile);
+ __netconfig_get_default_connection_info(tmp_profile);
+ __netconfig_update_default_connection_info();
+ g_free(tmp_profile);
+ return;
}
netconfig_default_connection_info.profile = g_strdup(profile);
__netconfig_get_default_connection_info(profile);
__netconfig_update_default_connection_info();
-
}
void netconfig_update_default(void)
while (g_variant_iter_loop(next, "{sv}", &key1, &variant)) {
if (g_strcmp0(key1, "Interface") == 0) {
value = g_variant_get_string(variant, NULL);
- if (ifname)
- g_free(ifname);
ifname = g_strdup(value);
+ g_free(key1);
+ g_variant_unref(variant);
+ break;
}
}
}