connman: Get HS20 property of service correctly 66/165266/2 accepted/tizen/unified/20171229.070200 submit/tizen/20171228.053515 submit/tizen/20171228.074717
authorSaurav Babu <saurav.babu@samsung.com>
Wed, 27 Dec 2017 10:43:05 +0000 (16:13 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Wed, 27 Dec 2017 12:41:28 +0000 (12:41 +0000)
Change-Id: I21d3a4ba5632d5a00a3254137b12dfdbd1dbe3dc
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
gsupplicant/gsupplicant.h
gsupplicant/supplicant.c
include/network.h
plugins/wifi.c
src/network.c
src/service.c

index a33dab0..9177275 100755 (executable)
@@ -372,7 +372,7 @@ const unsigned char *g_supplicant_network_get_bssid(
 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_mode(GSupplicantNetwork *network);
-unsigned int g_supplicant_network_is_hs20AP(GSupplicantNetwork *network);
+bool 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);
 const char *g_supplicant_network_get_phase2(GSupplicantNetwork *network);
index b1232a5..d84c893 100755 (executable)
@@ -213,6 +213,7 @@ struct g_supplicant_bss {
        dbus_bool_t ft_ieee8021x;
        char *wifi_vsie;
        unsigned int wifi_vsie_len;
+       dbus_bool_t hs20;
 #endif
        unsigned int wps_capabilities;
 };
@@ -234,7 +235,7 @@ struct _GSupplicantNetwork {
        GHashTable *bss_table;
        GHashTable *config_table;
 #if defined TIZEN_EXT
-       unsigned int isHS20AP;
+       bool isHS20AP;
        char *eap;
        char *identity;
        char *phase2;
@@ -1182,7 +1183,7 @@ const char *g_supplicant_peer_get_name(GSupplicantPeer *peer)
 }
 
 #if defined TIZEN_EXT
-unsigned int g_supplicant_network_is_hs20AP(GSupplicantNetwork *network)
+bool g_supplicant_network_is_hs20AP(GSupplicantNetwork *network)
 {
        if (!network)
                return 0;
@@ -1685,6 +1686,8 @@ static void add_or_replace_bss_to_network(struct g_supplicant_bss *bss)
                        SUPPLICANT_DBG("Failed to allocate memory for wifi_vsie");
                }
        }
+
+       network->isHS20AP = bss->hs20;
 #endif
 
        SUPPLICANT_DBG("New network %s created", network->name);
@@ -2101,6 +2104,12 @@ static void bss_property(const char *key, DBusMessageIter *iter,
                bss->rsn_selected = FALSE;
 
                supplicant_dbus_property_foreach(iter, bss_wpa, bss);
+#if defined TIZEN_EXT
+       } else if (g_strcmp0(key, "HS20") == 0) {
+               dbus_bool_t hs20 = FALSE;
+               dbus_message_iter_get_basic(iter, &hs20);
+               bss->hs20 = hs20;
+#endif
        } else if (g_strcmp0(key, "IEs") == 0)
                bss_process_ies(iter, bss);
        else
index 6403b16..4be5fbf 100755 (executable)
@@ -147,9 +147,6 @@ int connman_network_set_proxy(struct connman_network *network,
                                const char *proxies);
 
 void connman_network_clear_associating(struct connman_network *network);
-int connman_network_set_is_hs20AP(struct connman_network *network,
-                               unsigned int isHS20AP);
-unsigned int connman_network_get_is_hs20AP(struct connman_network *network);
 
 int connman_network_set_keymgmt(struct connman_network *network,
                                unsigned int keymgmt);
index d34f811..9c453b3 100755 (executable)
@@ -3287,6 +3287,8 @@ static void network_added(GSupplicantNetwork *supplicant_network)
                        g_supplicant_network_get_rsn_mode(supplicant_network));
        connman_network_set_keymgmt(network,
                        g_supplicant_network_get_keymgmt(supplicant_network));
+       connman_network_set_bool(network, "WiFi.HS20AP",
+                       g_supplicant_network_is_hs20AP(supplicant_network));
 #endif
        connman_network_set_available(network, true);
        connman_network_set_string(network, "WiFi.Mode", mode);
@@ -3627,7 +3629,7 @@ static void network_merged(GSupplicantNetwork *network)
        struct wifi_data *wifi;
        const char *identifier;
        struct connman_network *connman_network;
-       unsigned int ishs20AP = 0;
+       bool ishs20AP = 0;
        char *temp = NULL;
 
        interface = g_supplicant_network_get_interface(network);
@@ -3669,7 +3671,6 @@ static void network_merged(GSupplicantNetwork *network)
        }
 
        ishs20AP = g_supplicant_network_is_hs20AP(network);
-       connman_network_set_is_hs20AP(connman_network, ishs20AP);
 
        if (ishs20AP &&
                g_strcmp0(g_supplicant_network_get_security(network), "ieee8021x") == 0) {
index 64c26cc..5aac8d6 100755 (executable)
@@ -103,7 +103,7 @@ struct connman_network {
                char encryption_mode[WIFI_ENCYPTION_MODE_LEN_MAX];
                unsigned char bssid[WIFI_BSSID_LEN_MAX];
                unsigned int maxrate;
-               unsigned int isHS20AP;
+               bool isHS20AP;
                unsigned int keymgmt;
                char *keymgmt_type;
                bool rsn_mode;
@@ -2022,25 +2022,6 @@ int connman_network_set_proxy(struct connman_network *network,
        return 0;
 }
 
-int connman_network_set_is_hs20AP(struct connman_network *network,
-                               unsigned int isHS20AP)
-{
-       if (!network)
-               return 0;
-
-       network->wifi.isHS20AP = isHS20AP;
-
-       return 0;
-}
-
-unsigned int connman_network_get_is_hs20AP(struct connman_network *network)
-{
-       if (!network)
-               return 0;
-
-       return network->wifi.isHS20AP;
-}
-
 int connman_network_set_keymgmt(struct connman_network *network,
                                unsigned int keymgmt)
 {
@@ -2377,6 +2358,8 @@ int connman_network_set_bool(struct connman_network *network,
 #if defined TIZEN_EXT
        else if (g_strcmp0(key, "DefaultInternet") == 0)
                network->default_internet = value;
+       else if (g_strcmp0(key, "WiFi.HS20AP") == 0)
+               network->wifi.isHS20AP = value;
 #endif
 
        return -EINVAL;
@@ -2405,6 +2388,8 @@ bool connman_network_get_bool(struct connman_network *network,
 #if defined TIZEN_EXT
        else if (g_str_equal(key, "DefaultInternet"))
                return network->default_internet;
+       else if (g_str_equal(key, "WiFi.HS20AP"))
+               return network->wifi.isHS20AP;
 #endif
 
        return false;
index 3d491a8..129b410 100755 (executable)
@@ -3175,7 +3175,7 @@ static void append_wifi_ext_info(DBusMessageIter *dict,
        maxrate = connman_network_get_maxrate(network);
        frequency = connman_network_get_frequency(network);
        enc_mode = connman_network_get_enc_mode(network);
-       passpoint = connman_network_get_is_hs20AP(network);
+       passpoint = connman_network_get_bool(network, "WiFi.HS20AP");
        keymgmt = connman_network_get_keymgmt(network);
 
        snprintf(bssid_str, WIFI_BSSID_STR_LEN, "%02x:%02x:%02x:%02x:%02x:%02x",