/*
- * $Id: dns_internal.cc,v 1.60 2004/04/03 14:52:21 hno Exp $
+ * $Id: dns_internal.cc,v 1.61 2004/04/04 14:31:05 hno Exp $
*
* DEBUG: section 78 DNS lookups; interacts with lib/rfc1035.c
* AUTHOR: Duane Wessels
IDNSCB *callback;
void *callback_data;
int attempt;
- const char *error;
- int rcode;
};
struct _ns
dlinkDelete(&q->lru, &lru_list);
idnsRcodeCount(n, q->attempt);
- q->error = NULL;
if (n < 0) {
debug(78, 3) ("idnsGrokReply: error %d\n", rfc1035_errno);
- q->error = rfc1035_error_message;
- q->rcode = -n;
-
- if (q->rcode == 2 && ++q->attempt < MAX_ATTEMPT) {
+ if (-2 == n && ++q->attempt < MAX_ATTEMPT) {
/*
* RCODE 2 is "Server failure - The name server was
* unable to process this query due to a problem with
q->callback = NULL;
if (cbdataReferenceValidDone(q->callback_data, &cbdata))
- q->callback(q->callback_data, answers, n, q->error);
+ callback(cbdata, answers, n);
rfc1035RRDestroy(answers, n);
q = (idns_query *)n->data;
- if (tvSubDsec(q->sent_t, current_time) < Config.Timeout.idns_retransmit * (1 << (q->nsends - 1) % nns))
+ if (tvSubDsec(q->sent_t, current_time) < Config.Timeout.idns_retransmit * (1 << q->nsends % nns))
break;
debug(78, 3) ("idnsCheckQueue: ID %#04x timeout\n",
callback = q->callback;
q->callback = NULL;
- if (cbdataReferenceValidDone(q->callback_data, &cbdata)) {
- if (q->rcode != 0)
- q->callback(q->callback_data, NULL, -q->rcode, q->error);
- else
- q->callback(q->callback_data, NULL, -16, "Timeout");
- }
+ if (cbdataReferenceValidDone(q->callback_data, &cbdata))
+ callback(cbdata, NULL, 0);
memFree(q, MEM_IDNS_QUERY);
}
if (0 == q->id) {
/* problem with query data -- query not sent */
- callback(data, NULL, 0, "Internal error");
+ callback(data, NULL, 0);
memFree(q, MEM_IDNS_QUERY);
return;
}
/*
- * $Id: typedefs.h,v 1.172 2004/04/03 14:52:21 hno Exp $
+ * $Id: typedefs.h,v 1.173 2004/04/04 14:31:05 hno Exp $
*
*
* SQUID Web Proxy Cache http://www.squid-cache.org/
typedef int HLPSAVAIL(void *);
typedef void HLPSONEQ(void *);
typedef void HLPCMDOPTS(int *argc, char **argv);
-typedef void IDNSCB(void *, rfc1035_rr *, int, const char *);
+typedef void IDNSCB(void *, rfc1035_rr *, int);
typedef double hbase_f(double);
typedef void StatHistBinDumper(StoreEntry *, int idx, double val, double size, int count);