Log message:
ircd_res.c would send out hundreds? of retry requests on clients that
did not resolve, i.e. SERVFAIL. The code was essentailly ignoring
SERVFAIL hence generating request after request after request.
This appears to fix this major bug.
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1530
c9e4aea6-c8fd-4c43-8297-
357d70d61c8c
+2005-10-17 Diane Bruce <db@db.net>
+
+ * ircd/ircd_res.c: Don't send retries if the client did
+ not resolve (SERVFAIL); this fixes a bug causing a flurry
+ of retries in this case
+
2005-10-14 Michael Poole <mdpoole@troilus.org>
* include/patchlevel.h (PATCHLEVEL): Update to pre02.
2005-10-14 Michael Poole <mdpoole@troilus.org>
* include/patchlevel.h (PATCHLEVEL): Update to pre02.
if ((header->rcode != NO_ERRORS) || (header->ancount == 0))
{
if (SERVFAIL == header->rcode)
if ((header->rcode != NO_ERRORS) || (header->ancount == 0))
{
if (SERVFAIL == header->rcode)
+ {
+ /*
+ * If a bad error was returned, we stop here and don't send
+ * send any more (no retries granted).
+ */
+ Debug((DEBUG_DNS, "Request %p has bad response (state %d type %d rcode %d)", request, request->state, request->type, header->rcode));
+ (*request->callback)(request->callback_ctx, NULL, NULL);
+ rem_request(request);
+ }
request->timeout += feature_int(FEAT_IRCD_RES_TIMEOUT);
resend_query(request);
}
request->timeout += feature_int(FEAT_IRCD_RES_TIMEOUT);
resend_query(request);
}
- else
- {
- /*
- * If a bad error was returned, we stop here and don't send
- * send any more (no retries granted).
- */
- Debug((DEBUG_DNS, "Request %p has bad response (state %d type %d rcode %d)", request, request->state, request->type, header->rcode));
- (*request->callback)(request->callback_ctx, NULL, NULL);
- rem_request(request);
- }