diff options
Diffstat (limited to 'resolv')
-rw-r--r-- | resolv/res_send.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/resolv/res_send.c b/resolv/res_send.c index 1a53e5be9e..6f12b88d6f 100644 --- a/resolv/res_send.c +++ b/resolv/res_send.c @@ -1008,11 +1008,19 @@ send_dg(res_state statp, DprintQ(statp->options & RES_DEBUG, (stdout, "server rejected query:\n"), ans, (resplen > anssiz) ? anssiz : resplen); + next_ns: res_nclose(statp); /* don't retry if called from dig */ if (!statp->pfcode) return (0); } + if (anhp->rcode == NOERROR && anhp->ancount == 0 + && anhp->aa == 0 && anhp->ra == 0 && anhp->arcount == 0) { + DprintQ(statp->options & RES_DEBUG, + (stdout, "referred query:\n"), + ans, (resplen > anssiz) ? anssiz : resplen); + goto next_ns; + } if (!(statp->options & RES_IGNTC) && anhp->tc) { /* * To get the rest of answer, |