X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fconnman.git;a=blobdiff_plain;f=src%2Fservice.c;h=d1ada486189d7b6bcda754cf4ad7b99348ce832e;hp=bc0815754a4335c75ac6c559c882dc27bf640890;hb=a48fa9fdffe415e9a6f703776b5db795e242ac23;hpb=367dcbbeb392ee4071395f87e6d4eac53f09ff0d diff --git a/src/service.c b/src/service.c index bc08157..d1ada48 100644 --- a/src/service.c +++ b/src/service.c @@ -350,6 +350,8 @@ enum connman_service_security __connman_service_string2security(const char *str) #if defined TIZEN_EXT if (!strcmp(str, "rsn")) return CONNMAN_SERVICE_SECURITY_RSN; + if (!strcmp(str, "sae")) + return CONNMAN_SERVICE_SECURITY_SAE; #endif return CONNMAN_SERVICE_SECURITY_UNKNOWN; @@ -370,6 +372,8 @@ static const char *security2string(enum connman_service_security security) return "psk"; case CONNMAN_SERVICE_SECURITY_RSN: return "rsn"; + case CONNMAN_SERVICE_SECURITY_SAE: + return "sae"; #else case CONNMAN_SERVICE_SECURITY_RSN: return "psk"; @@ -2388,6 +2392,9 @@ static void append_security(DBusMessageIter *iter, void *user_data) case CONNMAN_SERVICE_SECURITY_PSK: case CONNMAN_SERVICE_SECURITY_WPA: case CONNMAN_SERVICE_SECURITY_RSN: +#if defined TIZEN_EXT + case CONNMAN_SERVICE_SECURITY_SAE: +#endif str = "wps"; dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &str); @@ -3253,6 +3260,7 @@ static void append_wifi_ext_info(DBusMessageIter *dict, unsigned int ssid_len; unsigned char *bssid; unsigned int maxrate; + int maxspeed; unsigned int keymgmt; uint16_t frequency; const char *enc_mode; @@ -3261,15 +3269,18 @@ static void append_wifi_ext_info(DBusMessageIter *dict, char country_code_buff[WIFI_COUNTRY_CODE_LEN + 1] = {0,}; char *country_code_str = country_code_buff; unsigned char *country_code; + uint16_t connection_mode; ssid = connman_network_get_blob(network, "WiFi.SSID", &ssid_len); bssid = connman_network_get_bssid(network); maxrate = connman_network_get_maxrate(network); + maxspeed = connman_network_get_maxspeed(network); frequency = connman_network_get_frequency(network); enc_mode = connman_network_get_enc_mode(network); passpoint = connman_network_get_bool(network, "WiFi.HS20AP"); keymgmt = connman_network_get_keymgmt(network); country_code = connman_network_get_countrycode(network); + connection_mode = connman_network_get_connection_mode(network); snprintf(bssid_str, WIFI_BSSID_STR_LEN, "%02x:%02x:%02x:%02x:%02x:%02x", bssid[0], bssid[1], bssid[2], @@ -3285,6 +3296,8 @@ static void append_wifi_ext_info(DBusMessageIter *dict, DBUS_TYPE_STRING, &bssid_str); connman_dbus_dict_append_basic(dict, "MaxRate", DBUS_TYPE_UINT32, &maxrate); + connman_dbus_dict_append_basic(dict, "MaxSpeed", + DBUS_TYPE_INT32, &maxspeed); connman_dbus_dict_append_basic(dict, "Frequency", DBUS_TYPE_UINT16, &frequency); connman_dbus_dict_append_basic(dict, "EncryptionMode", @@ -3295,6 +3308,8 @@ static void append_wifi_ext_info(DBusMessageIter *dict, DBUS_TYPE_UINT32, &keymgmt); connman_dbus_dict_append_basic(dict, "Country", DBUS_TYPE_STRING, &country_code_str); + connman_dbus_dict_append_basic(dict, "ConnMode", + DBUS_TYPE_UINT16, &connection_mode); str = connman_network_get_string(network, "WiFi.Security"); if (str != NULL && g_str_equal(str, "ieee8021x") == TRUE) { @@ -3334,29 +3349,31 @@ static void append_wifi_ext_info(DBusMessageIter *dict, static void append_bssid_info(DBusMessageIter *iter, void *user_data) { - GSList *bssid_list = NULL; + GSList *bssid_list = NULL; struct connman_network *network = user_data; - struct connman_bssids *bssids; - char bssid_buf[18] = {0,}; - char *bssid_str = bssid_buf; + struct connman_bssids *bssids; + char bssid_buf[MAC_ADDRESS_LENGTH] = {0,}; + char *bssid_str = bssid_buf; - bssid_list = (GSList *)connman_network_get_bssid_list(network); - if(bssid_list) { - GSList *list; - for (list = bssid_list; list; list = list->next) { - bssids = (struct connman_bssids *)list->data; - memcpy(bssid_str, bssids->bssid, 18); + bssid_list = (GSList *)connman_network_get_bssid_list(network); + if(bssid_list) { + GSList *list; + for (list = bssid_list; list; list = list->next) { + bssids = (struct connman_bssids *)list->data; + g_snprintf(bssid_buf, MAC_ADDRESS_LENGTH, "%02x:%02x:%02x:%02x:%02x:%02x", + bssids->bssid[0], bssids->bssid[1], bssids->bssid[2], + bssids->bssid[3], bssids->bssid[4], bssids->bssid[5]); connman_dbus_dict_append_basic(iter, "BSSID", - DBUS_TYPE_STRING, &bssid_str); + DBUS_TYPE_STRING, &bssid_str); - connman_dbus_dict_append_basic(iter, "Strength", - DBUS_TYPE_UINT16, &bssids->strength); + connman_dbus_dict_append_basic(iter, "Strength", + DBUS_TYPE_UINT16, &bssids->strength); - connman_dbus_dict_append_basic(iter, "Frequency", - DBUS_TYPE_UINT16, &bssids->frequency); - } - } + connman_dbus_dict_append_basic(iter, "Frequency", + DBUS_TYPE_UINT16, &bssids->frequency); + } + } } #endif @@ -4133,6 +4150,8 @@ int __connman_service_check_passphrase(enum connman_service_security security, case CONNMAN_SERVICE_SECURITY_PSK: #if defined TIZEN_EXT case CONNMAN_SERVICE_SECURITY_RSN: + /* TO CHECK: We need to check the key length supported by SAE */ + case CONNMAN_SERVICE_SECURITY_SAE: #endif /* A raw key is always 64 bytes length, * its content is in hex representation. @@ -8197,6 +8216,9 @@ static int service_connect(struct connman_service *service) case CONNMAN_SERVICE_SECURITY_PSK: case CONNMAN_SERVICE_SECURITY_WPA: case CONNMAN_SERVICE_SECURITY_RSN: +#if defined TIZEN_EXT + case CONNMAN_SERVICE_SECURITY_SAE: +#endif if (service->error == CONNMAN_SERVICE_ERROR_INVALID_KEY) return -ENOKEY; @@ -8267,6 +8289,9 @@ static int service_connect(struct connman_service *service) case CONNMAN_SERVICE_SECURITY_PSK: case CONNMAN_SERVICE_SECURITY_WPA: case CONNMAN_SERVICE_SECURITY_RSN: +#if defined TIZEN_EXT + case CONNMAN_SERVICE_SECURITY_SAE: +#endif break; case CONNMAN_SERVICE_SECURITY_8021X: prepare_8021x(service); @@ -8599,8 +8624,15 @@ static int service_register(struct connman_service *service) DBG("path %s", service->path); +#if defined TIZEN_EXT + service_load(service); + int ret = __connman_config_provision_service(service); + if (ret < 0) + DBG("Failed to provision service"); +#else if (__connman_config_provision_service(service) < 0) service_load(service); +#endif g_dbus_register_interface(connection, service->path, CONNMAN_SERVICE_INTERFACE, @@ -9011,6 +9043,8 @@ static enum connman_service_security convert_wifi_security(const char *security) else if (g_str_equal(security, "rsn")) return CONNMAN_SERVICE_SECURITY_RSN; #if defined TIZEN_EXT + else if (g_str_equal(security, "sae")) + return CONNMAN_SERVICE_SECURITY_SAE; else if (g_str_equal(security, "ft_psk") == TRUE) return CONNMAN_SERVICE_SECURITY_PSK; else if (g_str_equal(security, "ft_ieee8021x") == TRUE)