Hi,
On Tue, 2015-03-24 at 16:03 +0200, Slava Monich wrote:
> 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);
> + }
> +
Why do we care about how wpa_supplicant internally handles its networks
at this point, especially for the wpa_cli tool? AFAIK wpa_supplicant
will clear out networks after ~2 mins if they haven't been seen in a
later scan.
What is the logic to remove something that apparently isn't matching the
provided user data? How is this even possible?
> g_free(interface->network_path);
> interface->network_path = g_strdup(path);
>
Cheers,
Patrik
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman