Revert "Remove Tizen specific hidden connection logic" 89/90189/1 accepted/tizen/common/20160929.163218 accepted/tizen/ivi/20160929.081755 accepted/tizen/mobile/20160929.081738 accepted/tizen/tv/20160929.081805 accepted/tizen/wearable/20160929.081746 submit/tizen/20160929.042234
authortaesub kim <taesub.kim@samsung.com>
Thu, 29 Sep 2016 00:45:43 +0000 (17:45 -0700)
committertaesub kim <taesub.kim@samsung.com>
Thu, 29 Sep 2016 00:45:43 +0000 (17:45 -0700)
This reverts commit 7ace8c778781a6d3e47010843d9bc5c0d337594d.

Change-Id: Ia05ae51984781af64d3225ac302bdfb24df37263

plugins/wifi.c
src/service.c

index 1739e58..72eb64f 100755 (executable)
@@ -2976,12 +2976,7 @@ static void network_added(GSupplicantNetwork *supplicant_network)
 #endif
 
        if (wifi->hidden && ssid) {
-#if defined TIZEN_EXT
-               if (network_security(wifi->hidden->security) ==
-                       network_security(security) &&
-#else
                if (!g_strcmp0(wifi->hidden->security, security) &&
-#endif
                                wifi->hidden->ssid_len == ssid_len &&
                                !memcmp(wifi->hidden->ssid, ssid, ssid_len)) {
                        connman_network_connect_hidden(network,
index bd0c1ff..1eae380 100755 (executable)
@@ -4085,10 +4085,8 @@ static void set_error(struct connman_service *service,
        if (!service->path)
                return;
 
-#if !defined TIZEN_EXT
        if (!allow_property_changed(service))
                return;
-#endif
 
        str = error2string(service->error);
 
@@ -6004,6 +6002,34 @@ static int check_wpspin(struct connman_service *service, const char *wpspin)
        return 0;
 }
 
+#if defined TIZEN_EXT
+static int __connman_service_connect_hidden(struct connman_service *service,
+                       const char *name, int name_len,
+                       const char *identity, const char *passphrase, void *user_data)
+{
+       GList *list;
+
+       for (list = service_list; list; list = list->next) {
+               struct connman_service *target = list->data;
+               const char *target_ssid = NULL;
+               unsigned int target_ssid_len = 0;
+
+               if (service->network != NULL &&
+                                       service->security == target->security) {
+                       target_ssid = connman_network_get_blob(service->network,
+                                                       "WiFi.SSID", &target_ssid_len);
+                       if (target_ssid_len == name_len &&
+                                                       memcmp(target_ssid, name, name_len) == 0) {
+                               return connman_network_connect_hidden(service->network,
+                                                       (char *)identity, (char *)passphrase, user_data);
+                       }
+               }
+       }
+
+       return -ENOENT;
+}
+#endif
+
 static void request_input_cb(struct connman_service *service,
                        bool values_received,
                        const char *name, int name_len,
@@ -6036,6 +6062,14 @@ static void request_input_cb(struct connman_service *service,
        }
 
        if (service->hidden && name_len > 0 && name_len <= 32) {
+#if defined TIZEN_EXT
+               /* TIZEN already has Wi-Fi hidden scan before this hidden connection */
+               err = __connman_service_connect_hidden(service, name, name_len,
+                                               identity, passphrase, user_data);
+               if (err == 0 || err == -EALREADY || err == -EINPROGRESS)
+                       return;
+#endif
+
                device = connman_network_get_device(service->network);
                security = connman_network_get_string(service->network,
                                                        "WiFi.Security");