summaryrefslogtreecommitdiff
path: root/ares_data.c
diff options
context:
space:
mode:
authorsaghul <saghul@gmail.com>2012-02-23 23:15:07 +0100
committersaghul <saghul@gmail.com>2012-02-23 23:15:07 +0100
commit6bab0393c42857232ce1194e5283a797ec4c6231 (patch)
tree8c74d41879fcbc65f10965d8692ee68ed9f96bad /ares_data.c
parent4ab65461b6aefd0654a5b586bc6ee57976f3fba3 (diff)
downloadc-ares-6bab0393c42857232ce1194e5283a797ec4c6231.tar.gz
c-ares-6bab0393c42857232ce1194e5283a797ec4c6231.tar.bz2
c-ares-6bab0393c42857232ce1194e5283a797ec4c6231.zip
Added support for parsing NAPTR records
Diffstat (limited to 'ares_data.c')
-rw-r--r--ares_data.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/ares_data.c b/ares_data.c
index a2477be..b062839 100644
--- a/ares_data.c
+++ b/ares_data.c
@@ -92,6 +92,20 @@ void ares_free_data(void *dataptr)
ares_free_data(ptr->data.addr_node.next);
break;
+ case ARES_DATATYPE_NAPTR_REPLY:
+
+ if (ptr->data.naptr_reply.next)
+ ares_free_data(ptr->data.naptr_reply.next);
+ if (ptr->data.naptr_reply.flags)
+ free(ptr->data.naptr_reply.flags);
+ if (ptr->data.naptr_reply.service)
+ free(ptr->data.naptr_reply.service);
+ if (ptr->data.naptr_reply.regexp);
+ free(ptr->data.naptr_reply.regexp);
+ if (ptr->data.naptr_reply.replacement);
+ free(ptr->data.naptr_reply.replacement);
+ break;
+
default:
return;
}
@@ -148,6 +162,16 @@ void *ares_malloc_data(ares_datatype type)
sizeof(ptr->data.addr_node.addrV6));
break;
+ case ARES_DATATYPE_NAPTR_REPLY:
+ ptr->data.naptr_reply.next = NULL;
+ ptr->data.naptr_reply.flags = NULL;
+ ptr->data.naptr_reply.service;
+ ptr->data.naptr_reply.regexp = NULL;
+ ptr->data.naptr_reply.replacement = NULL;
+ ptr->data.naptr_reply.order = 0;
+ ptr->data.naptr_reply.preference = 0;
+ break;
+
default:
free(ptr);
return NULL;