#include "net_connection_private.h"
+#define VCONFKEY_NETWORK_IP6 "memory/dnet/ip6"
+
static __thread GSList *conn_handle_list = NULL;
//LCOV_EXCL_START
static gboolean __connection_cb_ip_changed_cb_idle(gpointer user_data)
{
char *ip_addr;
+ char *ip_addr6;
void *data;
connection_address_changed_cb callback;
connection_handle_s *local_handle = (connection_handle_s *)user_data;
CONNECTION_LOG(CONNECTION_ERROR, //LCOV_EXCL_LINE
"vconf_get_str(VCONFKEY_NETWORK_IP) is Failed");
+ ip_addr6 = vconf_get_str(VCONFKEY_NETWORK_IP6);
+ if (ip_addr6 == NULL)
+ CONNECTION_LOG(CONNECTION_ERROR, //LCOV_EXCL_LINE
+ "vconf_get_str(VCONFKEY_NETWORK_IP6) is Failed");
+
callback = __connection_get_ip_changed_callback(local_handle);
data = __connection_get_ip_changed_userdata(local_handle);
- /* TODO: IPv6 should be supported */
if (callback)
- callback(ip_addr, NULL, data);
+ callback(ip_addr, ip_addr6, data);
g_free(ip_addr);
+ g_free(ip_addr6);
return FALSE;
}
if (refcount == 0)
vconf_notify_key_changed(VCONFKEY_NETWORK_IP,
__connection_cb_ip_change_cb, NULL);
+ vconf_notify_key_changed(VCONFKEY_NETWORK_IP6,
+ __connection_cb_ip_change_cb, NULL);
refcount++;
CONNECTION_LOG(CONNECTION_INFO, "Successfully registered(%d)", refcount);
switch (address_family) {
case CONNECTION_ADDRESS_FAMILY_IPV4:
- case CONNECTION_ADDRESS_FAMILY_IPV6:
*ip_address = vconf_get_str(VCONFKEY_NETWORK_IP);
break;
+ case CONNECTION_ADDRESS_FAMILY_IPV6:
+ *ip_address = vconf_get_str(VCONFKEY_NETWORK_IP6);
+ break;
default:
CONNECTION_LOG(CONNECTION_ERROR, "Invalid parameter");
return CONNECTION_ERROR_INVALID_PARAMETER;