diff options
author | Denys Vlasenko | 2013-06-27 01:09:51 +0200 |
---|---|---|
committer | Denys Vlasenko | 2013-06-27 01:09:51 +0200 |
commit | d66eb9042dcc6ee274949fb83612cecbbde44a4a (patch) | |
tree | 32d9598a9539304d3f5028c4aea3c61cff275b3d /networking | |
parent | 1f5e81f8f83087082108cf9449068ec4c2a3125e (diff) | |
download | busybox-d66eb9042dcc6ee274949fb83612cecbbde44a4a.zip busybox-d66eb9042dcc6ee274949fb83612cecbbde44a4a.tar.gz |
nslookup: set default DNS server again. Hopefully helps with 675
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking')
-rw-r--r-- | networking/nslookup.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/networking/nslookup.c b/networking/nslookup.c index f4fd407..dd4b1ff 100644 --- a/networking/nslookup.c +++ b/networking/nslookup.c @@ -138,6 +138,9 @@ static void set_default_dns(const char *server) { len_and_sockaddr *lsa; + if (!server) + return; + /* NB: this works even with, say, "[::1]:5353"! :) */ lsa = xhost2sockaddr(server, 53); @@ -181,9 +184,17 @@ int nslookup_main(int argc, char **argv) /* (but it also says "may be enabled in /etc/resolv.conf") */ /*_res.options |= RES_USE_INET6;*/ - if (argv[2]) - set_default_dns(argv[2]); + set_default_dns(argv[2]); server_print(); + + /* getaddrinfo and friends are free to request a resolver + * reinitialization. Just in case, set_default_dns() again + * after getaddrinfo (in server_print). This reportedly helps + * with bug 675 "nslookup does not properly use second argument" + * at least on Debian Wheezy and Openwrt AA (eglibc based). + */ + set_default_dns(argv[2]); + return print_host(argv[1], "Name:"); } |