1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00

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
This commit is contained in:
Hajimu UMEMOTO 2006-10-24 14:41:43 +00:00
parent c71bf4bf63
commit b021e5e1ed
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=163661

View File

@ -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)