When WPS is used to connect a network, connect_callback should get called.
Before this change connect_callback was called only after non-WPS connection.
If WPS is used repeatedly, refcount continues increasing because this callback 
is not called.
This causes that a network is not released properly.
---
 gsupplicant/supplicant.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index cd91f95..ab50295 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -4507,10 +4507,18 @@ static void interface_wps_start_result(const char 
*error,
                                DBusMessageIter *iter, void *user_data)
 {
        struct interface_connect_data *data = user_data;
+       int err;
 
        SUPPLICANT_DBG("");
-       if (error)
+
+       err = 0;
+       if (error) {
                SUPPLICANT_DBG("error: %s", error);
+               err = parse_supplicant_error(iter);
+       }
+
+       if(data->callback)
+               data->callback(err, data->interface, data->user_data);
 
        g_free(data->path);
        g_free(data->ssid);
-- 
1.9.1
_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to