aboutsummaryrefslogtreecommitdiff
path: root/ares/ares_data.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2010-03-05 20:01:47 +0000
committerYang Tse <yangsita@gmail.com>2010-03-05 20:01:47 +0000
commit21f331ead265b1f02ae14fd03e9af53ea5b7bd55 (patch)
tree9fdbad31d74347d11a34d0121fd9b840dd5e1413 /ares/ares_data.c
parentf9337470882125288606676534e701c71fc1014b (diff)
Added IPv6 name servers support
Diffstat (limited to 'ares/ares_data.c')
-rw-r--r--ares/ares_data.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/ares/ares_data.c b/ares/ares_data.c
index ee7601856..3a4c00c97 100644
--- a/ares/ares_data.c
+++ b/ares/ares_data.c
@@ -1,6 +1,6 @@
/* $Id$ */
-/* Copyright (C) 2009 by Daniel Stenberg
+/* Copyright (C) 2009-2010 by Daniel Stenberg
*
* Permission to use, copy, modify, and distribute this
* software and its documentation for any purpose and without
@@ -34,6 +34,7 @@
** of c-ares functions returning pointers that must be free'ed using this
** function is:
**
+** ares_get_servers()
** ares_parse_srv_reply()
** ares_parse_txt_reply()
*/
@@ -78,6 +79,12 @@ void ares_free_data(void *dataptr)
free(ptr->data.txt_reply.txt);
break;
+ case ARES_DATATYPE_ADDR_NODE:
+
+ if (ptr->data.addr_node.next)
+ ares_free_data(ptr->data.addr_node.next);
+ break;
+
default:
return;
}
@@ -121,6 +128,12 @@ void *ares_malloc_data(ares_datatype type)
ptr->data.txt_reply.length = 0;
break;
+ case ARES_DATATYPE_ADDR_NODE:
+ ptr->data.addr_node.next = NULL;
+ ptr->data.addr_node.family = 0;
+ memset(&ptr->data.addr_node.addrV6, 0,
+ sizeof(ptr->data.addr_node.addrV6));
+
default:
free(ptr);
return NULL;