summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2006-10-24 14:41:43 +0000
committerume <ume@FreeBSD.org>2006-10-24 14:41:43 +0000
commit89159bd1c6d15d1544794a487d8be014361fe2c7 (patch)
tree65e0b0ec5aedeac25f32cefcd7e688519a7b9294
parente5a8e69a646dbc2bdc4910086d1c4d8afc21f742 (diff)
downloadFreeBSD-src-89159bd1c6d15d1544794a487d8be014361fe2c7.zip
FreeBSD-src-89159bd1c6d15d1544794a487d8be014361fe2c7.tar.gz
Merge res_send.c of BIND9 9.3.3rc2 into main chunk. It includes
following fix: Retransmission timeouts should be based on which attempt it is to the nameserver and not the nameserver itself. Obtained from: ISC MFC after: 3 days
-rw-r--r--lib/libc/resolv/res_send.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libc/resolv/res_send.c b/lib/libc/resolv/res_send.c
index e0c97d6..f3fe531 100644
--- a/lib/libc/resolv/res_send.c
+++ b/lib/libc/resolv/res_send.c
@@ -70,7 +70,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93";
-static const char rcsid[] = "$Id: res_send.c,v 1.5.2.2.4.7 2005/08/15 02:04:41 marka Exp $";
+static const char rcsid[] = "$Id: res_send.c,v 1.5.2.2.4.8 2006/03/08 04:13:31 marka Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -145,7 +145,7 @@ static int send_dg(res_state,
int kq,
#endif
const u_char *, int,
- u_char *, int, int *, int,
+ u_char *, int, int *, int, int,
int *, int *);
static void Aerror(const res_state, FILE *, const char *, int,
const struct sockaddr *, int);
@@ -490,7 +490,7 @@ res_nsend(res_state statp,
kq,
#endif
buf, buflen, ans, anssiz, &terrno,
- ns, &v_circuit, &gotsomewhere);
+ ns, try, &v_circuit, &gotsomewhere);
if (n < 0)
goto fail;
if (n == 0)
@@ -812,8 +812,9 @@ send_dg(res_state statp,
#ifdef USE_KQUEUE
int kq,
#endif
- const u_char *buf, int buflen, u_char *ans, int anssiz,
- int *terrno, int ns, int *v_circuit, int *gotsomewhere)
+ const u_char *buf, int buflen, u_char *ans,
+ int anssiz, int *terrno, int ns, int try, int *v_circuit,
+ int *gotsomewhere)
{
const HEADER *hp = (const HEADER *) buf;
HEADER *anhp = (HEADER *) ans;
@@ -914,7 +915,7 @@ send_dg(res_state statp,
/*
* Wait for reply.
*/
- seconds = (statp->retrans << ns);
+ seconds = (statp->retrans << try);
if (ns > 0)
seconds /= statp->nscount;
if (seconds <= 0)
OpenPOWER on IntegriCloud