- if (address_family == CONNECTION_ADDRESS_FAMILY_IPV6)
- return CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED;
-
- switch (type) {
- case CONNECTION_IP_CONFIG_TYPE_STATIC:
- net_info->IpConfigType = NET_IP_CONFIG_TYPE_STATIC;
- net_info->IpAddr.Data.Ipv4.s_addr = 0;
- net_info->SubnetMask.Data.Ipv4.s_addr = 0;
- net_info->GatewayAddr.Data.Ipv4.s_addr = 0;
- break;
- case CONNECTION_IP_CONFIG_TYPE_DYNAMIC:
- net_info->IpConfigType = NET_IP_CONFIG_TYPE_DYNAMIC;
- break;
- case CONNECTION_IP_CONFIG_TYPE_AUTO:
- net_info->IpConfigType = NET_IP_CONFIG_TYPE_AUTO_IP;
- break;
- case CONNECTION_IP_CONFIG_TYPE_FIXED:
- net_info->IpConfigType = NET_IP_CONFIG_TYPE_FIXED;
- break;
- case CONNECTION_IP_CONFIG_TYPE_NONE:
- net_info->IpConfigType = NET_IP_CONFIG_TYPE_OFF;
- break;
- default:
- return CONNECTION_ERROR_INVALID_PARAMETER;
+ if(address_family == CONNECTION_ADDRESS_FAMILY_IPV4)
+ profile_type = &net_info->IpConfigType ;
+ else
+ profile_type = &net_info->IpConfigType6 ;
+
+ if(address_family == CONNECTION_ADDRESS_FAMILY_IPV4) {
+ switch (type) {
+ case CONNECTION_IP_CONFIG_TYPE_STATIC:
+ *profile_type = NET_IP_CONFIG_TYPE_STATIC;
+ net_info->IpAddr.Data.Ipv4.s_addr = 0;
+ net_info->SubnetMask.Data.Ipv4.s_addr = 0;
+ net_info->GatewayAddr.Data.Ipv4.s_addr = 0 ;
+ break;
+
+ case CONNECTION_IP_CONFIG_TYPE_DYNAMIC:
+ *profile_type = NET_IP_CONFIG_TYPE_DYNAMIC;
+ break;
+
+ case CONNECTION_IP_CONFIG_TYPE_AUTO:
+ *profile_type = NET_IP_CONFIG_TYPE_AUTO_IP;
+ break;
+
+ case CONNECTION_IP_CONFIG_TYPE_FIXED:
+ net_info->IpConfigType = NET_IP_CONFIG_TYPE_FIXED;
+ break;
+
+ case CONNECTION_IP_CONFIG_TYPE_NONE:
+ *profile_type = NET_IP_CONFIG_TYPE_OFF;
+ break;
+
+ default:
+ return CONNECTION_ERROR_INVALID_PARAMETER;
+ }
+ } else {
+ switch (type) {
+ case CONNECTION_IP_CONFIG_TYPE_STATIC:
+ *profile_type = NET_IP_CONFIG_TYPE_STATIC;
+ inet_pton(AF_INET6, "::", &net_info->IpAddr6.Data.Ipv6);
+ net_info->PrefixLen6 = 0 ;
+ inet_pton(AF_INET6, "::",
+ &net_info->GatewayAddr6.Data.Ipv6);
+ break;
+
+ case CONNECTION_IP_CONFIG_TYPE_AUTO:
+ *profile_type = NET_IP_CONFIG_TYPE_AUTO_IP;
+ break;
+
+ case CONNECTION_IP_CONFIG_TYPE_NONE:
+ *profile_type = NET_IP_CONFIG_TYPE_OFF;
+ break;
+
+ default:
+ return CONNECTION_ERROR_INVALID_PARAMETER;
+ }