diff options
author | jkh <jkh@FreeBSD.org> | 1997-07-31 11:28:58 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1997-07-31 11:28:58 +0000 |
commit | 8a53f61ef0aada6d667513fb04dec060f37b078f (patch) | |
tree | 62116810894380f50fa2cb42f5167d14f5815b4e /usr.sbin | |
parent | 0c6d177de60f3da08196544c58ec36b1e34c2e84 (diff) | |
download | FreeBSD-src-8a53f61ef0aada6d667513fb04dec060f37b078f.zip FreeBSD-src-8a53f61ef0aada6d667513fb04dec060f37b078f.tar.gz |
Fiddle with DNS options so that queries are also controlled by
the MEDIA_TIMEOUT variable. Just -current for now on this one as
I'm still wanting to play with this a bit and see what the ramifications
of doing this are.
Requested by: pst
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/sysinstall/media.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/usr.sbin/sysinstall/media.c b/usr.sbin/sysinstall/media.c index 242a046..10b23db 100644 --- a/usr.sbin/sysinstall/media.c +++ b/usr.sbin/sysinstall/media.c @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated to essentially a complete rewrite. * - * $Id: media.c,v 1.83 1997/03/19 10:09:19 jkh Exp $ + * $Id: media.c,v 1.84 1997/06/05 09:47:59 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -46,6 +46,7 @@ #include <sys/wait.h> #include <netinet/in.h> #include <arpa/inet.h> +#include <resolv.h> static Boolean got_intr = FALSE; @@ -84,6 +85,28 @@ cdromHook(dialogMenuItem *self) return genericHook(self, DEVICE_TYPE_CDROM); } +static void +kickstart_dns(void) +{ + static Boolean initted = FALSE; + int time; + char *cp; + + cp = variable_get(VAR_MEDIA_TIMEOUT); + if (!cp) + time = MEDIA_TIMEOUT; + else + time = atoi(cp); + if (!time) + time = 100; + if (!initted) { + res_init(); + _res.retry = 2; /* 2 times seems a reasonable number to me */ + _res.retrans = time / 2; /* so spend half our alloted time on each try */ + initted = TRUE; + } +} + char * cpioVerbosity() { @@ -362,6 +385,7 @@ mediaSetFTP(dialogMenuItem *self) msgDebug("port # = `%d'\n", FtpPort); } if (variable_get(VAR_NAMESERVER)) { + kickstart_dns(); if ((inet_addr(hostname) == INADDR_NONE) && (gethostbyname(hostname) == NULL)) { msgConfirm("Cannot resolve hostname `%s'! Are you sure that your\n" "name server, gateway and network interface are correctly configured?", hostname); @@ -456,6 +480,7 @@ mediaSetNFS(dialogMenuItem *self) msgDebug("mediaSetNFS: Net device init failed\n"); } if (variable_get(VAR_NAMESERVER)) { + kickstart_dns(); if ((inet_addr(hostname) == INADDR_NONE) && (gethostbyname(hostname) == NULL)) { msgConfirm("Cannot resolve hostname `%s'! Are you sure that your\n" "name server, gateway and network interface are correctly configured?", hostname); |