Merge "[connman]: Fixed Scan Issue" into tizen accepted/tizen/3.0/ivi/20161011.043852 accepted/tizen/3.0/mobile/20161015.032812 accepted/tizen/3.0/tv/20161016.004154 accepted/tizen/3.0/wearable/20161015.082011 accepted/tizen/common/20161006.153612 accepted/tizen/ivi/20161006.080215 accepted/tizen/mobile/20161006.080107 accepted/tizen/tv/20161006.080141 accepted/tizen/wearable/20161006.080157 submit/tizen/20161006.010203 submit/tizen_3.0_ivi/20161010.000001 submit/tizen_3.0_mobile/20161015.000001 submit/tizen_3.0_tv/20161015.000001 submit/tizen_3.0_wearable/20161015.000001
authorcheoleun moon <chleun.moon@samsung.com>
Thu, 6 Oct 2016 01:01:29 +0000 (18:01 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Thu, 6 Oct 2016 01:01:29 +0000 (18:01 -0700)
plugins/wifi.c
src/service.c

index c0079b3..05eb47e 100755 (executable)
@@ -2990,12 +2990,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");