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

Reply via email to