From: Chengyi Zhao Date: Tue, 17 Jun 2014 06:51:00 +0000 (+0800) Subject: Set ip config type X-Git-Tag: winet_wifi_0.1~23 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ef1067075f1799c7b56c9c16919fad701d10f726;p=platform%2Fcore%2Fapi%2Fwifi.git Set ip config type --- diff --git a/include/net_wifi_private.h b/include/net_wifi_private.h index 6a2adc2..51c2415 100644 --- a/include/net_wifi_private.h +++ b/include/net_wifi_private.h @@ -131,6 +131,8 @@ net_state_type_t _get_service_state_type(const char *state); 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); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/libnetwork.c b/src/libnetwork.c index 5b2c2ca..de2f691 100755 --- a/src/libnetwork.c +++ b/src/libnetwork.c @@ -110,6 +110,22 @@ net_state_type_t _get_service_state_type(const char *state) return NET_STATE_TYPE_UNKNOWN; } +const char *_get_ip_config_str(net_ip_config_type_t ip_config_type) +{ + switch (ip_config_type) { + case NET_IP_CONFIG_TYPE_STATIC: + return "manual"; + case NET_IP_CONFIG_TYPE_DYNAMIC: + return "dhcp"; + case NET_IP_CONFIG_TYPE_AUTO_IP: + return "dhcp"; + case NET_IP_CONFIG_TYPE_FIXED: + return "fixed"; + case NET_IP_CONFIG_TYPE_OFF: + return "off"; + } +} + /*static wifi_error_e __libnet_convert_to_ap_error_type(net_err_t err_type) { switch (err_type) { diff --git a/src/net_wifi_ap.c b/src/net_wifi_ap.c index c9676cd..9ed5563 100755 --- a/src/net_wifi_ap.c +++ b/src/net_wifi_ap.c @@ -236,9 +236,13 @@ EXPORT_API int wifi_ap_get_connection_state(wifi_ap_h ap, wifi_connection_state_ return WIFI_ERROR_INVALID_PARAMETER; } - struct connman_service *service = ap; enum connman_service_state_type state_type; + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; + state_type = _get_service_state_type( connman_service_get_state(service)); @@ -304,32 +308,44 @@ EXPORT_API int wifi_ap_set_ip_config_type(wifi_ap_h ap, wifi_address_family_e ad return WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED; } -/* net_profile_info_t *profile_info = ap; + net_ip_config_type_t ip_config_type; + struct service_ipv4 ipv4_config; + + struct connman_service *service = + connman_get_service(((net_profile_info_t *) ap)->essid); + if (!service) + return NET_ERR_INVALID_PARAM; switch (type) { case WIFI_IP_CONFIG_TYPE_STATIC: - profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_STATIC; + ip_config_type = NET_IP_CONFIG_TYPE_STATIC; break; case WIFI_IP_CONFIG_TYPE_DYNAMIC: - profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_DYNAMIC; + ip_config_type = NET_IP_CONFIG_TYPE_DYNAMIC; break; case WIFI_IP_CONFIG_TYPE_AUTO: - profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_AUTO_IP; + ip_config_type = NET_IP_CONFIG_TYPE_AUTO_IP; break; case WIFI_IP_CONFIG_TYPE_FIXED: - profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_FIXED; + ip_config_type = NET_IP_CONFIG_TYPE_FIXED; break; case WIFI_IP_CONFIG_TYPE_NONE: - profile_info->ProfileInfo.Wlan.net_info.IpConfigType = NET_IP_CONFIG_TYPE_OFF; + ip_config_type = NET_IP_CONFIG_TYPE_OFF; break; default: return WIFI_ERROR_INVALID_PARAMETER; } - if (_wifi_libnet_check_profile_name_validity(profile_info->ProfileName) == false) + ipv4_config.method = _get_ip_config_str(ip_config_type); + +/* if (_wifi_libnet_check_profile_name_validity(profile_info->ProfileName) == false) return WIFI_ERROR_NONE;*/ - return WIFI_ERROR_NONE/*_wifi_update_ap_info(profile_info)*/; + /*return _wifi_update_ap_info(profile_info)*/; + + connman_service_set_ipv4_config(service, &ipv4_config); + + return WIFI_ERROR_NONE; } EXPORT_API int wifi_ap_get_ip_address(wifi_ap_h ap, wifi_address_family_e address_family, char** ip_address)