From 44d20bca52ace85850012b0ead37b360e3ecd96e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 26 Jun 2009 03:47:47 -0700 Subject: Implement second fallback mode for DNS requests. There is some more shardware/software out there which has problems if two DNS requests are sent using the same tuple (source addr, source port, dest addr, dest port) This can range from firewalls to load balancers. Some of the vendors already fixed it in response to this problem. Still, we need a way to make glibc work with broken environments. The single-request-reopen flag can be used or we fall back automatically to this mode. --- resolv/res_init.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'resolv/res_init.c') diff --git a/resolv/res_init.c b/resolv/res_init.c index 8841fe9..40dbe7d 100644 --- a/resolv/res_init.c +++ b/resolv/res_init.c @@ -540,6 +540,9 @@ res_setoptions(res_state statp, const char *options, const char *source) { statp->options |= RES_NOCHECKNAME; } else if (!strncmp(cp, "edns0", sizeof("edns0") - 1)) { statp->options |= RES_USE_EDNS0; + } else if (!strncmp(cp, "single-request-reopen", + sizeof("single-request-reopen") - 1)) { + statp->options |= RES_SNGLKUPREOP; } else if (!strncmp(cp, "single-request", sizeof("single-request") - 1)) { statp->options |= RES_SNGLKUP; -- cgit v1.1