Get properties
authorChengyi Zhao <chengyi1.zhao@archermind.com>
Wed, 18 Jun 2014 02:48:55 +0000 (10:48 +0800)
committerZhang zhengguang <zhengguang.zhang@intel.com>
Thu, 26 Jun 2014 06:01:40 +0000 (14:01 +0800)
include/net_wifi_private.h
src/libnetwork.c
src/net_wifi_ap.c
test/wifi_test.c

index 51c241593af6683f0fa8c6ec75dbe21f3b4d281f..901bb79768645ec77edcd64f9dc27885351a5550 100644 (file)
@@ -132,6 +132,7 @@ void _set_wifi_conn_info(net_wifi_connection_info_t *wifi_conn_info);
 net_wifi_connection_info_t *_get_wifi_conn_info(void);
 
 const char *_get_ip_config_str(net_ip_config_type_t ip_config_type);
+net_ip_config_type_t _get_ip_config_type(const char *config);
 
 #ifdef __cplusplus
 }
index 7b98f9dfbd3e583bb5087609897820235dbe2a10..4a6d6ef202eae850c773b64143ea226318198d73 100755 (executable)
@@ -110,6 +110,24 @@ net_state_type_t _get_service_state_type(const char *state)
                return NET_STATE_TYPE_UNKNOWN;
 }
 
+net_ip_config_type_t _get_ip_config_type(const char *config)
+{
+       net_ip_config_type_t config_type;
+
+       if (!g_strcmp0(config, "manual"))
+               config_type = NET_IP_CONFIG_TYPE_STATIC;
+       else if (!g_strcmp0(config, "dhcp"))
+               config_type = NET_IP_CONFIG_TYPE_AUTO_IP;
+       else if (!g_strcmp0(config, "fixed"))
+               config_type = NET_IP_CONFIG_TYPE_FIXED;
+       else if (!g_strcmp0(config, "off"))
+               config_type = NET_IP_CONFIG_TYPE_OFF;
+       else
+               config_type = NET_IP_CONFIG_TYPE_DYNAMIC;
+
+       return config_type;
+}
+
 const char *_get_ip_config_str(net_ip_config_type_t ip_config_type)
 {
        switch (ip_config_type) {
index 357bd3a69b06fcf2b4e22a9b81776a7f953a1689..f250db94f08546dc851db16402418801fea21aa5 100755 (executable)
@@ -151,6 +151,9 @@ EXPORT_API int wifi_ap_get_essid(wifi_ap_h ap, char** essid)
        }
 
        struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
        *essid = g_strdup(connman_service_get_name(service));
        if (*essid == NULL)
                return WIFI_ERROR_OUT_OF_MEMORY;
@@ -170,6 +173,14 @@ EXPORT_API int wifi_ap_get_bssid(wifi_ap_h ap, char** bssid)
        if (*bssid == NULL)
                return WIFI_ERROR_OUT_OF_MEMORY;*/
 
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       *bssid = g_strdup(connman_service_get_bssid(service));
+       if (*bssid == NULL)
+               return WIFI_ERROR_OUT_OF_MEMORY;
+
        return WIFI_ERROR_NONE;
 }
 
@@ -183,6 +194,12 @@ EXPORT_API int wifi_ap_get_rssi(wifi_ap_h ap, int* rssi)
 /*     net_profile_info_t *profile_info = ap;
        *rssi = (int)profile_info->ProfileInfo.Wlan.Strength;*/
 
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       *rssi = connman_service_get_strength(service);
+
        return WIFI_ERROR_NONE;
 }
 
@@ -196,6 +213,12 @@ EXPORT_API int wifi_ap_get_frequency(wifi_ap_h ap, int* frequency)
 /*     net_profile_info_t *profile_info = ap;
        *frequency = (int)profile_info->ProfileInfo.Wlan.frequency;*/
 
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       *frequency = connman_service_get_frequency(service);
+
        return WIFI_ERROR_NONE;
 }
 
@@ -209,6 +232,12 @@ EXPORT_API int wifi_ap_get_max_speed(wifi_ap_h ap, int* max_speed)
 /*     net_profile_info_t *profile_info = ap;
        *max_speed = (int)profile_info->ProfileInfo.Wlan.max_rate / 1000000;*/
 
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       *max_speed = connman_service_get_max_rate(service);
+
        return WIFI_ERROR_NONE;
 }
 
@@ -226,6 +255,12 @@ EXPORT_API int wifi_ap_is_favorite(wifi_ap_h ap, bool* favorite)
        else
                *favorite = false;*/
 
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       *favorite = connman_service_get_favorite(service);
+
        return WIFI_ERROR_NONE;
 }
 
@@ -290,6 +325,33 @@ EXPORT_API int wifi_ap_get_ip_config_type(wifi_ap_h ap, wifi_address_family_e ad
                return WIFI_ERROR_OPERATION_FAILED;
        }*/
 
+       const struct service_ipv4 *ipv4_config;
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       ipv4_config = connman_service_get_ipv4_config(service);
+
+       switch (_get_ip_config_type(ipv4_config->method)) {
+       case NET_IP_CONFIG_TYPE_STATIC:
+               *type = WIFI_IP_CONFIG_TYPE_STATIC;
+               break;
+       case NET_IP_CONFIG_TYPE_DYNAMIC:
+               *type = WIFI_IP_CONFIG_TYPE_DYNAMIC;
+               break;
+       case NET_IP_CONFIG_TYPE_AUTO_IP:
+               *type = WIFI_IP_CONFIG_TYPE_AUTO;
+               break;
+       case NET_IP_CONFIG_TYPE_FIXED:
+               *type = WIFI_IP_CONFIG_TYPE_FIXED;
+               break;
+       case NET_IP_CONFIG_TYPE_OFF:
+               *type = WIFI_IP_CONFIG_TYPE_NONE;
+               break;
+       default:
+               return WIFI_ERROR_OPERATION_FAILED;
+       }
+
        return WIFI_ERROR_NONE;
 }
 
@@ -364,6 +426,15 @@ EXPORT_API int wifi_ap_get_ip_address(wifi_ap_h ap, wifi_address_family_e addres
        *ip_address = __ap_convert_ip_to_string(&profile_info->ProfileInfo.Wlan.net_info.IpAddr);
        if (*ip_address == NULL)
                return WIFI_ERROR_OUT_OF_MEMORY;*/
+       const struct service_ipv4 *ipv4;
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       ipv4 = connman_service_get_ipv4_info(service);
+       *ip_address = ipv4->address;
+       if (*ip_address == NULL)
+               return WIFI_ERROR_OUT_OF_MEMORY;
 
        return WIFI_ERROR_NONE;
 }
@@ -423,6 +494,16 @@ EXPORT_API int wifi_ap_get_subnet_mask(wifi_ap_h ap, wifi_address_family_e addre
        if (*subnet_mask == NULL)
                return WIFI_ERROR_OUT_OF_MEMORY;*/
 
+       const struct service_ipv4 *ipv4;
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       ipv4 = connman_service_get_ipv4_info(service);
+       *subnet_mask = ipv4->netmask;
+       if (*subnet_mask == NULL)
+               return WIFI_ERROR_OUT_OF_MEMORY;
+
        return WIFI_ERROR_NONE;
 }
 
@@ -481,6 +562,16 @@ EXPORT_API int wifi_ap_get_gateway_address(wifi_ap_h ap, wifi_address_family_e a
        if (*gateway_address == NULL)
                return WIFI_ERROR_OUT_OF_MEMORY;*/
 
+       const struct service_ipv4 *ipv4;
+       struct connman_service *service = ap;
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       ipv4 = connman_service_get_ipv4_info(service);
+       *gateway_address = ipv4->gateway;
+       if (*gateway_address == NULL)
+               return WIFI_ERROR_OUT_OF_MEMORY;
+
        return WIFI_ERROR_NONE;
 }
 
index 97a260cf9db0ccd4418bbec4db8f79c95c4f5b58..c7640f9b5034c0c35ce1b424d8b8266a73ddce0f 100644 (file)
@@ -701,7 +701,7 @@ static bool __test_found_print_ap_info_callback(wifi_ap_h ap, void *user_data)
                else
                        printf("Fail to get Proxy type\n");
 
-               if (wifi_ap_get_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &str_value) == WIFI_ERROR_NONE) {
+/*             if (wifi_ap_get_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &str_value) == WIFI_ERROR_NONE) {
                        printf("Proxy : %s\n", str_value);
                        g_free(str_value);
                } else
@@ -717,7 +717,7 @@ static bool __test_found_print_ap_info_callback(wifi_ap_h ap, void *user_data)
                        printf("DNS2 : %s\n", str_value);
                        g_free(str_value);
                } else
-                       printf("Fail to get DNS2\n");
+                       printf("Fail to get DNS2\n");*/
 
                /* Security info */
                if (wifi_ap_get_security_type(ap, &sec_type) == WIFI_ERROR_NONE)