From: Patrik Flykt Date: Fri, 4 Feb 2011 13:14:22 +0000 (+0200) Subject: wifi: Check invalid key/passphrase in gsupplicant connect callback X-Git-Tag: 2.0_alpha~1758 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6a4734af1afd44156c5d4862987a6b8fc5ebd3a8;p=framework%2Fconnectivity%2Fconnman.git wifi: Check invalid key/passphrase in gsupplicant connect callback Use network struct as connect callback user data and set network error to CONNMAN_NETWORK_ERROR_INVALID_KEY if gsupplicant indicates key/passphrase error. For other errors < 0 set network error to CONNMAN_NETWORK_ERROR_CONFIGURE_FAIL. --- diff --git a/plugins/wifi.c b/plugins/wifi.c index c4089c0..78da6ac 100644 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -329,7 +329,17 @@ static void network_remove(struct connman_network *network) static void connect_callback(int result, GSupplicantInterface *interface, void *user_data) { - connman_error("%s", __func__); + struct connman_network *network = user_data; + + DBG("network %p result %d", network, result); + + if (result == -ENOKEY) { + connman_network_set_error(network, + CONNMAN_NETWORK_ERROR_INVALID_KEY); + } else if (result < 0) { + connman_network_set_error(network, + CONNMAN_NETWORK_ERROR_CONFIGURE_FAIL); + } } static GSupplicantSecurity network_security(const char *security) @@ -428,7 +438,7 @@ static int network_connect(struct connman_network *network) wifi->network = connman_network_ref(network); return g_supplicant_interface_connect(interface, ssid, - connect_callback, NULL); + connect_callback, network); } return -EINPROGRESS;