From 359bb2ef12afbd059eadbed49a8919fd0dedde4f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 8 Jul 2005 06:49:08 +0000 Subject: (send_dg): Recognize referral results and treat them as server errors. --- resolv/res_send.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'resolv') 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, -- cgit v1.2.3