diff options
Diffstat (limited to 'src/lib/ares_parse_soa_reply.c')
-rw-r--r-- | src/lib/ares_parse_soa_reply.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/lib/ares_parse_soa_reply.c b/src/lib/ares_parse_soa_reply.c index 7cfaed2..3935eec 100644 --- a/src/lib/ares_parse_soa_reply.c +++ b/src/lib/ares_parse_soa_reply.c @@ -26,14 +26,8 @@ #ifdef HAVE_ARPA_INET_H # include <arpa/inet.h> #endif -#ifdef HAVE_ARPA_NAMESER_H -# include <arpa/nameser.h> -#else -# include "nameser.h" -#endif -#ifdef HAVE_ARPA_NAMESER_COMPAT_H -# include <arpa/nameser_compat.h> -#endif + +#include "ares_nameser.h" #include "ares.h" #include "ares_dns.h" @@ -62,11 +56,11 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen, return ARES_EBADRESP; if (ancount == 0) return ARES_EBADRESP; - + aptr = abuf + HFIXEDSZ; /* query name */ - status = ares__expand_name_for_response(aptr, abuf, alen, &qname, &len); + status = ares__expand_name_for_response(aptr, abuf, alen, &qname, &len, 0); if (status != ARES_SUCCESS) goto failed_stat; @@ -89,7 +83,7 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen, for (i = 0; i < ancount; i++) { rr_name = NULL; - status = ares__expand_name_for_response (aptr, abuf, alen, &rr_name, &len); + status = ares__expand_name_for_response (aptr, abuf, alen, &rr_name, &len, 0); if (status != ARES_SUCCESS) { ares_free(rr_name); @@ -126,7 +120,7 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen, /* nsname */ status = ares__expand_name_for_response(aptr, abuf, alen, &soa->nsname, - &len); + &len, 0); if (status != ARES_SUCCESS) { ares_free(rr_name); @@ -136,7 +130,7 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen, /* hostmaster */ status = ares__expand_name_for_response(aptr, abuf, alen, - &soa->hostmaster, &len); + &soa->hostmaster, &len, 0); if (status != ARES_SUCCESS) { ares_free(rr_name); @@ -164,9 +158,9 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen, return ARES_SUCCESS; } aptr += rr_len; - + ares_free(rr_name); - + if (aptr > abuf + alen) goto failed_stat; } |