Remove previously created network after creating a new one.
This prevents wpa_supplicant network objects (wpa_cli list_net)
from piling up.
---
gsupplicant/supplicant.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index cd91f95..749eb20 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -4024,6 +4024,11 @@ static void
interface_select_network_params(DBusMessageIter *iter,
&interface->network_path);
}
+static void objpath_param(DBusMessageIter *iter, void *path)
+{
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &path);
+}
+
static void interface_add_network_result(const char *error,
DBusMessageIter *iter, void *user_data)
{
@@ -4041,6 +4046,15 @@ static void interface_add_network_result(const char
*error,
SUPPLICANT_DBG("PATH: %s", path);
+ if (interface->network_path && strcmp(interface->network_path, path)) {
+ /* Prevent unused wpa_supplicant networks from piling up */
+ SUPPLICANT_DBG("Removing network %s", interface->network_path);
+ supplicant_dbus_method_call(interface->path,
+ SUPPLICANT_INTERFACE ".Interface", "RemoveNetwork",
+ objpath_param, NULL, interface->network_path,
+ interface);
+ }
+
g_free(interface->network_path);
interface->network_path = g_strdup(path);
--
1.8.3.2
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman