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 connman@connman.net https://lists.connman.net/mailman/listinfo/connman