service: Add a new property 'SecurityList'
[platform/upstream/connman.git] / src / service.c
index 6b2b980..8393846 100755 (executable)
@@ -4253,6 +4253,22 @@ int connman_service_iterate_services(connman_service_iterate_cb cb,
 }
 
 #if defined TIZEN_EXT
+static void append_security_list(DBusMessageIter *iter, void *user_data)
+{
+       GSList *sec_list = (GSList *)user_data;
+       const char *sec_str;
+
+       if (sec_list) {
+               GSList *list;
+               for (list = sec_list; list; list = list->next) {
+                       sec_str = (const char *)list->data;
+
+                       dbus_message_iter_append_basic(iter,
+                                       DBUS_TYPE_STRING, &sec_str);
+               }
+       }
+}
+
 static void append_wifi_ext_info(DBusMessageIter *dict,
                                        struct connman_network *network)
 {
@@ -4272,6 +4288,7 @@ static void append_wifi_ext_info(DBusMessageIter *dict,
        char *country_code_str = country_code_buff;
        unsigned char *country_code;
        uint16_t connection_mode;
+       GSList *sec_list = NULL;
 
        ssid = connman_network_get_blob(network, "WiFi.SSID", &ssid_len);
        bssid = connman_network_get_bssid(network);
@@ -4283,12 +4300,16 @@ static void append_wifi_ext_info(DBusMessageIter *dict,
        keymgmt = connman_network_get_keymgmt(network);
        country_code = connman_network_get_countrycode(network);
        connection_mode = connman_network_get_connection_mode(network);
+       sec_list = (GSList *)connman_network_get_sec_list(network);
 
        snprintf(bssid_str, WIFI_BSSID_STR_LEN, MACSTR, MAC2STR(bssid));
 
        snprintf(country_code_str, (WIFI_COUNTRY_CODE_LEN + 1), "%c%c",
                 country_code[0], country_code[1]);
 
+       connman_dbus_dict_append_array(dict, "SecurityList",
+                                       DBUS_TYPE_STRING,
+                                       append_security_list, sec_list);
 
        connman_dbus_dict_append_fixed_array(dict, "SSID",
                                        DBUS_TYPE_BYTE, &ssid, ssid_len);