summaryrefslogtreecommitdiff
path: root/ares_data.c
diff options
context:
space:
mode:
authorMarko Kreen <markokr@gmail.com>2012-06-15 13:29:03 +0200
committerDaniel Stenberg <daniel@haxx.se>2012-06-15 13:32:48 +0200
commit979bf951d3436bf7e86e690de26a174b39a081f8 (patch)
tree1c621aed06a24acef46f3d9eb7151bfd34384254 /ares_data.c
parent38b69b7269d4abbc75f34b8ab38d7bdab4ad91ab (diff)
downloadc-ares-979bf951d3436bf7e86e690de26a174b39a081f8.tar.gz
c-ares-979bf951d3436bf7e86e690de26a174b39a081f8.tar.bz2
c-ares-979bf951d3436bf7e86e690de26a174b39a081f8.zip
SOA parser added
I need to do SOA queries, so here is a parser for them. - ares_soa_reply: new struct - ares_malloc_data/ares_free_soa: ARES_DATATYPE_SOA_REPLY - ares_parse_soa_reply: actual function
Diffstat (limited to 'ares_data.c')
-rw-r--r--ares_data.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ares_data.c b/ares_data.c
index 0e43ddd..7c04650 100644
--- a/ares_data.c
+++ b/ares_data.c
@@ -106,6 +106,13 @@ void ares_free_data(void *dataptr)
free(ptr->data.naptr_reply.replacement);
break;
+ case ARES_DATATYPE_SOA_REPLY:
+ if (ptr->data.soa_reply.nsname)
+ free(ptr->data.soa_reply.nsname);
+ if (ptr->data.soa_reply.hostmaster)
+ free(ptr->data.soa_reply.hostmaster);
+ break;
+
default:
return;
}
@@ -172,6 +179,16 @@ void *ares_malloc_data(ares_datatype type)
ptr->data.naptr_reply.preference = 0;
break;
+ case ARES_DATATYPE_SOA_REPLY:
+ ptr->data.soa_reply.nsname = NULL;
+ ptr->data.soa_reply.hostmaster = NULL;
+ ptr->data.soa_reply.serial = 0;
+ ptr->data.soa_reply.refresh = 0;
+ ptr->data.soa_reply.retry = 0;
+ ptr->data.soa_reply.expire = 0;
+ ptr->data.soa_reply.minttl = 0;
+ break;
+
default:
free(ptr);
return NULL;