diff options
author | Daniel Stenberg <daniel@haxx.se> | 2009-01-11 13:49:13 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2009-01-11 13:49:13 +0000 |
commit | 32b75d1b6995653a4f1131aaa7e4c23b9946047e (patch) | |
tree | fb92246b61bbaf1158d0da993bfc9642883c6c09 /ares/ares_parse_ptr_reply.c | |
parent | f7e3bd28b4347cd111f2a77be4543c44664ac8f5 (diff) |
- Phil Blundell added the internal function ares__expand_name_for_response()
that is now used by the ares_parse_*_reply() functions instead of the
ares_expand_name() simply to easier return ARES_EBADRESP for the cases where
the name expansion fails as in responses that really isn't expected.
Diffstat (limited to 'ares/ares_parse_ptr_reply.c')
-rw-r--r-- | ares/ares_parse_ptr_reply.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ares/ares_parse_ptr_reply.c b/ares/ares_parse_ptr_reply.c index 54fb560b0..b72f99521 100644 --- a/ares/ares_parse_ptr_reply.c +++ b/ares/ares_parse_ptr_reply.c @@ -73,7 +73,7 @@ int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr, /* Expand the name from the question, and skip past the question. */ aptr = abuf + HFIXEDSZ; - status = ares_expand_name(aptr, abuf, alen, &ptrname, &len); + status = ares__expand_name_for_response(aptr, abuf, alen, &ptrname, &len); if (status != ARES_SUCCESS) return status; if (aptr + len + QFIXEDSZ > abuf + alen) @@ -94,7 +94,7 @@ int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr, for (i = 0; i < (int)ancount; i++) { /* Decode the RR up to the data field. */ - status = ares_expand_name(aptr, abuf, alen, &rr_name, &len); + status = ares__expand_name_for_response(aptr, abuf, alen, &rr_name, &len); if (status != ARES_SUCCESS) break; aptr += len; @@ -112,7 +112,8 @@ int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr, && strcasecmp(rr_name, ptrname) == 0) { /* Decode the RR data and set hostname to it. */ - status = ares_expand_name(aptr, abuf, alen, &rr_data, &len); + status = ares__expand_name_for_response(aptr, abuf, alen, &rr_data, + &len); if (status != ARES_SUCCESS) break; if (hostname) @@ -141,7 +142,8 @@ int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr, if (rr_class == C_IN && rr_type == T_CNAME) { /* Decode the RR data and replace ptrname with it. */ - status = ares_expand_name(aptr, abuf, alen, &rr_data, &len); + status = ares__expand_name_for_response(aptr, abuf, alen, &rr_data, + &len); if (status != ARES_SUCCESS) break; free(ptrname); |