Get the ipv4 information
authorChengyi Zhao <chengyi1.zhao@archermind.com>
Tue, 17 Jun 2014 06:58:00 +0000 (14:58 +0800)
committerZhang zhengguang <zhengguang.zhang@intel.com>
Thu, 26 Jun 2014 06:01:40 +0000 (14:01 +0800)
src/net_wifi_ap.c

index 9ed556392bc1d1ea6d04086bc970f2ddaf4cf45b..310fce68fd2a1a9f12d9ec64445a89ecfc03bd65 100755 (executable)
@@ -309,7 +309,6 @@ EXPORT_API int wifi_ap_set_ip_config_type(wifi_ap_h ap, wifi_address_family_e ad
        }
 
        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);
@@ -336,16 +335,19 @@ EXPORT_API int wifi_ap_set_ip_config_type(wifi_ap_h ap, wifi_address_family_e ad
                return WIFI_ERROR_INVALID_PARAMETER;
        }
 
-       ipv4_config.method = _get_ip_config_str(ip_config_type);
+       struct service_ipv4 *ipv4_config;
+       ipv4_config = connman_service_get_ipv4_config(service);
+       g_free(ipv4_config->method);
+       ipv4_config->method = g_strdup(_get_ip_config_str(ip_config_type));
 
-/*     if (_wifi_libnet_check_profile_name_validity(profile_info->ProfileName) == false)
-               return WIFI_ERROR_NONE;*/
+       connman_service_set_ipv4_config(service, ipv4_config);
 
-       /*return _wifi_update_ap_info(profile_info)*/;
+       return WIFI_ERROR_NONE;
 
-       connman_service_set_ipv4_config(service, &ipv4_config);
+       /*if (_wifi_libnet_check_profile_name_validity(profile_info->ProfileName) == false)
+               return WIFI_ERROR_NONE;*/
 
-       return WIFI_ERROR_NONE;
+       /*return _wifi_update_ap_info(profile_info)*/;
 }
 
 EXPORT_API int wifi_ap_get_ip_address(wifi_ap_h ap, wifi_address_family_e address_family, char** ip_address)
@@ -395,7 +397,21 @@ EXPORT_API int wifi_ap_set_ip_address(wifi_ap_h ap, wifi_address_family_e addres
        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)*/;
+
+       struct connman_service *service =
+               connman_get_service(((net_profile_info_t *) ap)->essid);
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       struct service_ipv4 *ipv4_config;
+       ipv4_config = connman_service_get_ipv4_config(service);
+       g_free(ipv4_config->address);
+       ipv4_config->address = g_strdup(ip_address);
+
+       connman_service_set_ipv4_config(service, ipv4_config);
+
+       return WIFI_ERROR_NONE;
 }
 
 EXPORT_API int wifi_ap_get_subnet_mask(wifi_ap_h ap, wifi_address_family_e address_family, char** subnet_mask)
@@ -445,7 +461,21 @@ EXPORT_API int wifi_ap_set_subnet_mask(wifi_ap_h ap, wifi_address_family_e addre
        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_ERROR_NONE _wifi_update_ap_info(profile_info)*/
+
+       struct connman_service *service =
+               connman_get_service(((net_profile_info_t *) ap)->essid);
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       struct service_ipv4 *ipv4_config;
+       ipv4_config = connman_service_get_ipv4_config(service);
+       g_free(ipv4_config->netmask);
+       ipv4_config->netmask = g_strdup(subnet_mask);
+
+       connman_service_set_ipv4_config(service, ipv4_config);
+
+       return WIFI_ERROR_NONE;
 }
 
 EXPORT_API int wifi_ap_get_gateway_address(wifi_ap_h ap, wifi_address_family_e address_family, char** gateway_address)
@@ -497,7 +527,21 @@ EXPORT_API int wifi_ap_set_gateway_address(wifi_ap_h ap, wifi_address_family_e a
                return WIFI_ERROR_NONE;
 */
 
-       return WIFI_ERROR_NONE/*_wifi_update_ap_info(profile_info)*/;
+       /*return WIFI_ERROR_NONE _wifi_update_ap_info(profile_info)*/
+
+       struct connman_service *service =
+               connman_get_service(((net_profile_info_t *) ap)->essid);
+       if (!service)
+               return NET_ERR_INVALID_PARAM;
+
+       struct service_ipv4 *ipv4_config;
+       ipv4_config = connman_service_get_ipv4_config(service);
+       g_free(ipv4_config->gateway);
+       ipv4_config->gateway = g_strdup(gateway_address);
+
+       connman_service_set_ipv4_config(service, ipv4_config);
+
+       return WIFI_ERROR_NONE;
 }
 
 EXPORT_API int wifi_ap_get_proxy_address(wifi_ap_h ap, wifi_address_family_e address_family, char** proxy_address)