Merge "Add support for WPS2-PSK security type in Security property of service interfa... accepted/tizen/common/20160614.144019 accepted/tizen/ivi/20160614.103653 accepted/tizen/mobile/20160614.103642 accepted/tizen/tv/20160614.103619 accepted/tizen/wearable/20160614.103626 submit/tizen/20160614.053635
authortaesub kim <taesub.kim@samsung.com>
Tue, 14 Jun 2016 04:30:50 +0000 (21:30 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Tue, 14 Jun 2016 04:30:50 +0000 (21:30 -0700)
gsupplicant/gsupplicant.h
gsupplicant/supplicant.c
include/network.h
plugins/wifi.c
src/agent-connman.c
src/config.c
src/network.c
src/service.c

index ad78c29..e47421a 100755 (executable)
@@ -359,6 +359,7 @@ const unsigned char *g_supplicant_network_get_bssid(
                                                GSupplicantNetwork *network);
 unsigned int g_supplicant_network_get_maxrate(GSupplicantNetwork *network);
 const char *g_supplicant_network_get_enc_mode(GSupplicantNetwork *network);
+bool g_supplicant_network_get_rsn_selected(GSupplicantNetwork *network);
 unsigned int g_supplicant_network_is_hs20AP(GSupplicantNetwork *network);
 const char *g_supplicant_network_get_eap(GSupplicantNetwork *network);
 const char *g_supplicant_network_get_identity(GSupplicantNetwork *network);
index fc8fd3d..806b4bd 100755 (executable)
@@ -1292,6 +1292,18 @@ const char *g_supplicant_network_get_enc_mode(GSupplicantNetwork *network)
 
        return NULL;
 }
+
+bool g_supplicant_network_get_rsn_selected(GSupplicantNetwork *network)
+{
+       if (network == NULL || network->best_bss == NULL)
+               return 0;
+
+       if (network->best_bss->rsn_selected)
+               return true;
+       else
+               return false;
+}
+
 #endif
 
 static void merge_network(GSupplicantNetwork *network)
index 97b76e5..db25ae0 100755 (executable)
@@ -132,6 +132,9 @@ int connman_network_set_enc_mode(struct connman_network *network,
                                const char *encryption_mode);
 const char *connman_network_get_enc_mode(struct connman_network *network);
 
+int connman_network_set_rsn_selected(struct connman_network *network,
+                               bool rsn_selected);
+
 int connman_network_set_proxy(struct connman_network *network,
                                const char *proxies);
 
index e8c7ae5..66e6bd1 100755 (executable)
@@ -2960,6 +2960,8 @@ static void network_added(GSupplicantNetwork *supplicant_network)
                        g_supplicant_network_get_maxrate(supplicant_network));
        connman_network_set_enc_mode(network,
                        g_supplicant_network_get_enc_mode(supplicant_network));
+       connman_network_set_rsn_selected(network,
+                       g_supplicant_network_get_rsn_selected(supplicant_network));
 #endif
        connman_network_set_available(network, true);
        connman_network_set_string(network, "WiFi.Mode", mode);
index d9502a7..177cbe0 100755 (executable)
@@ -225,6 +225,9 @@ static void request_input_append_passphrase(DBusMessageIter *iter,
                value = "wep";
                break;
        case CONNMAN_SERVICE_SECURITY_PSK:
+#if defined TIZEN_EXT
+       case CONNMAN_SERVICE_SECURITY_RSN:
+#endif
                value = "psk";
                break;
        case CONNMAN_SERVICE_SECURITY_8021X:
@@ -358,6 +361,9 @@ static void previous_passphrase_handler(DBusMessageIter *iter,
                        data.type = "wep";
                        break;
                case CONNMAN_SERVICE_SECURITY_PSK:
+#if defined TIZEN_EXT
+               case CONNMAN_SERVICE_SECURITY_RSN:
+#endif
                        data.type  = "psk";
                        break;
                /*
index 8ae1764..778e57c 100755 (executable)
@@ -685,6 +685,9 @@ static bool load_service(GKeyFile *keyfile, const char *group,
 
                if (str) {
                        if (security == CONNMAN_SERVICE_SECURITY_PSK ||
+#if defined TIZEN_EXT
+                           security == CONNMAN_SERVICE_SECURITY_RSN ||
+#endif
                                        security == CONNMAN_SERVICE_SECURITY_WEP) {
                                service->security = security;
                        } else {
index 4b2ae11..0d6b442 100755 (executable)
@@ -97,6 +97,7 @@ struct connman_network {
                unsigned char bssid[WIFI_BSSID_LEN_MAX];
                unsigned int maxrate;
                unsigned int isHS20AP;
+               bool rsn_selected;
 #endif
        } wifi;
 
@@ -1875,6 +1876,14 @@ const char *connman_network_get_enc_mode(struct connman_network *network)
        return (const char *)network->wifi.encryption_mode;
 }
 
+int connman_network_set_rsn_selected(struct connman_network *network,
+                               bool rsn_selected)
+{
+       network->wifi.rsn_selected = rsn_selected;
+
+       return 0;
+}
+
 int connman_network_set_proxy(struct connman_network *network,
                                const char *proxies)
 {
@@ -2125,7 +2134,15 @@ const char *connman_network_get_string(struct connman_network *network,
        else if (g_str_equal(key, "WiFi.Mode"))
                return network->wifi.mode;
        else if (g_str_equal(key, "WiFi.Security"))
+#if defined TIZEN_EXT
+               if (network->wifi.rsn_selected != true ||
+                   g_str_equal(network->wifi.security, "ieee8021x"))
+                       return network->wifi.security;
+               else
+                       return "rsn";
+#else
                return network->wifi.security;
+#endif
        else if (g_str_equal(key, "WiFi.Passphrase"))
                return network->wifi.passphrase;
        else if (g_str_equal(key, "WiFi.EAP"))
index ca29119..b424bd5 100755 (executable)
@@ -327,6 +327,10 @@ enum connman_service_security __connman_service_string2security(const char *str)
                return CONNMAN_SERVICE_SECURITY_NONE;
        if (!strcmp(str, "wep"))
                return CONNMAN_SERVICE_SECURITY_WEP;
+#if defined TIZEN_EXT
+       if (!strcmp(str, "rsn"))
+               return CONNMAN_SERVICE_SECURITY_RSN;
+#endif
 
        return CONNMAN_SERVICE_SECURITY_UNKNOWN;
 }
@@ -342,8 +346,14 @@ static const char *security2string(enum connman_service_security security)
                return "wep";
        case CONNMAN_SERVICE_SECURITY_PSK:
        case CONNMAN_SERVICE_SECURITY_WPA:
+#if defined TIZEN_EXT
+               return "psk";
+       case CONNMAN_SERVICE_SECURITY_RSN:
+               return "rsn";
+#else
        case CONNMAN_SERVICE_SECURITY_RSN:
                return "psk";
+#endif
        case CONNMAN_SERVICE_SECURITY_8021X:
                return "ieee8021x";
        }
@@ -3377,7 +3387,9 @@ static int check_passphrase(enum connman_service_security security,
        case CONNMAN_SERVICE_SECURITY_UNKNOWN:
        case CONNMAN_SERVICE_SECURITY_NONE:
        case CONNMAN_SERVICE_SECURITY_WPA:
+#if !defined TIZEN_EXT
        case CONNMAN_SERVICE_SECURITY_RSN:
+#endif
 
                DBG("service security '%s' (%d) not handled",
                                security2string(security), security);
@@ -3385,6 +3397,9 @@ static int check_passphrase(enum connman_service_security security,
                return -EOPNOTSUPP;
 
        case CONNMAN_SERVICE_SECURITY_PSK:
+#if defined TIZEN_EXT
+       case CONNMAN_SERVICE_SECURITY_RSN:
+#endif
                /* A raw key is always 64 bytes length,
                 * its content is in hex representation.
                 * A PSK key must be between [8..63].