Fix Wi-Fi WEP OPEN and WEP SHARED 2.1b_release accepted/tizen_2.1/20130425.035319 submit/tizen_2.1/20130424.231140
authorJaehyun Kim <jeik01.kim@samsung.com>
Tue, 16 Apr 2013 08:43:48 +0000 (17:43 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Tue, 16 Apr 2013 08:43:48 +0000 (17:43 +0900)
Unable to connect with the WEP(open key) mode AP again with correct password if connecting the AP with wrong password before.
Fix this issue.

gsupplicant/supplicant.c
packaging/connman.spec
plugins/wifi.c
src/network.c
src/service.c

index 11dc137..8007b46 100644 (file)
@@ -3356,6 +3356,17 @@ static void add_network_security_proto(DBusMessageIter *dict,
        g_free(proto);
 }
 
+#if defined TIZEN_EXT
+static void add_network_security_none(DBusMessageIter *dict,
+                                       GSupplicantSSID *ssid)
+{
+       const char *auth_alg = "OPEN";
+
+       supplicant_dbus_dict_append_basic(dict, "auth_alg",
+                                       DBUS_TYPE_STRING, &auth_alg);
+}
+#endif
+
 static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid)
 {
        char *key_mgmt;
@@ -3363,6 +3374,12 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid)
        switch (ssid->security) {
        case G_SUPPLICANT_SECURITY_UNKNOWN:
        case G_SUPPLICANT_SECURITY_NONE:
+#if defined TIZEN_EXT
+               key_mgmt = "NONE";
+               add_network_security_none(dict, ssid);
+               add_network_security_ciphers(dict, ssid);
+               break;
+#endif
        case G_SUPPLICANT_SECURITY_WEP:
                key_mgmt = "NONE";
                add_network_security_wep(dict, ssid);
index ed4dee3..4f9edf2 100644 (file)
@@ -1,5 +1,5 @@
 Name:           connman
-Version:        1.3_16
+Version:        1.3_17
 Release:        1
 License:        GPLv2
 Summary:        Connection Manager
index c6dbede..7cbc59c 100644 (file)
@@ -1198,6 +1198,9 @@ static int network_disconnect(struct connman_network *network)
        struct connman_device *device = connman_network_get_device(network);
        struct wifi_data *wifi;
        int err;
+#if defined TIZEN_EXT
+       struct connman_service *service;
+#endif
 
        DBG("network %p", network);
 
@@ -1205,6 +1208,22 @@ static int network_disconnect(struct connman_network *network)
        if (wifi == NULL || wifi->interface == NULL)
                return -ENODEV;
 
+#if defined TIZEN_EXT
+       if (connman_network_get_associating(network) == TRUE)
+               connman_network_set_error(network,
+                                       CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL);
+       else {
+               service = connman_service_lookup_from_network(network);
+
+               if (service != NULL &&
+                       (__connman_service_is_connected_state(service,
+                                       CONNMAN_IPCONFIG_TYPE_IPV4) == FALSE &&
+                       __connman_service_is_connected_state(service,
+                                       CONNMAN_IPCONFIG_TYPE_IPV6) == FALSE) &&
+                       (connman_service_get_favorite(service) == FALSE))
+                                       __connman_service_set_passphrase(service, NULL);
+       }
+#endif
        connman_network_set_associating(network, FALSE);
 
        if (wifi->disconnecting == TRUE)
index 2d1bd38..6928c3a 100644 (file)
@@ -1843,7 +1843,7 @@ int connman_network_set_proxy(struct connman_network *network,
 
        DBG("network %p proxies %s", network, proxies);
 
-       service = __connman_service_lookup_from_network(network);
+       service = connman_service_lookup_from_network(network);
        if (service == NULL)
                return -EINVAL;
 
@@ -1861,7 +1861,7 @@ const char *connman_network_get_ifname(struct connman_network *network)
        struct connman_ipconfig *ipconfig;
        const char *ifname = NULL;
 
-       service = __connman_service_lookup_from_network(network);
+       service = connman_service_lookup_from_network(network);
        if (service == NULL)
                return NULL;
 
index cc35fb2..a1fa800 100644 (file)
@@ -5366,7 +5366,13 @@ int __connman_service_indicate_error(struct connman_service *service,
 
        set_error(service, error);
 
+#if defined TIZEN_EXT
+       if (service->favorite == FALSE &&
+                       (service->error == CONNMAN_SERVICE_ERROR_INVALID_KEY ||
+                       service->error == CONNMAN_SERVICE_ERROR_CONNECT_FAILED))
+#else
        if (service->error == CONNMAN_SERVICE_ERROR_INVALID_KEY)
+#endif
                __connman_service_set_passphrase(service, NULL);
 
        __connman_service_ipconfig_indicate_state(service,