diff options
author | ume <ume@FreeBSD.org> | 2000-12-04 18:06:49 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2000-12-04 18:06:49 +0000 |
commit | bb34593642604d426a985e6c15215571e0e5ba5a (patch) | |
tree | a9a6130e062ec60080642f60b2e44b906552a6a4 | |
parent | af22402f6ee1516e96ee23db9033fb445020d3eb (diff) | |
download | FreeBSD-src-bb34593642604d426a985e6c15215571e0e5ba5a.zip FreeBSD-src-bb34593642604d426a985e6c15215571e0e5ba5a.tar.gz |
Wait DAD complete after ifconfig up.
-rw-r--r-- | release/sysinstall/tcpip.c | 8 | ||||
-rw-r--r-- | usr.sbin/sysinstall/tcpip.c | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/release/sysinstall/tcpip.c b/release/sysinstall/tcpip.c index 1889917..7f4c600 100644 --- a/release/sysinstall/tcpip.c +++ b/release/sysinstall/tcpip.c @@ -270,16 +270,22 @@ tcpOpenDialog(Device *devp) if (!variable_cmp(VAR_TRY_RTSOL, "YES") || ((!variable_cmp(VAR_TRY_RTSOL, "NO")) && (!msgYesNo("Do you want to try IPv6 configuration of the interface?")))) { int i; + int len; i = 0; sysctlbyname("net.inet6.ip6.forwarding", NULL, 0, &i, sizeof(i)); i = 1; sysctlbyname("net.inet6.ip6.accept_rtadv", NULL, 0, &i, sizeof(i)); vsystem("ifconfig %s up", devp->name); + len = sizeof(i); + sysctlbyname("net.inet6.ip6.dad_count", &i, &len, NULL, 0); + sleep(i + 1); Mkdir("/var/run"); msgNotify("Scanning for RA servers..."); if (0 == vsystem("rtsol %s", devp->name)) { - sleep(3); + len = sizeof(i); + sysctlbyname("net.inet6.ip6.dad_count", &i, &len, NULL, 0); + sleep(i + 1); rtsolGetInfo(devp); use_rtsol = TRUE; } else diff --git a/usr.sbin/sysinstall/tcpip.c b/usr.sbin/sysinstall/tcpip.c index 1889917..7f4c600 100644 --- a/usr.sbin/sysinstall/tcpip.c +++ b/usr.sbin/sysinstall/tcpip.c @@ -270,16 +270,22 @@ tcpOpenDialog(Device *devp) if (!variable_cmp(VAR_TRY_RTSOL, "YES") || ((!variable_cmp(VAR_TRY_RTSOL, "NO")) && (!msgYesNo("Do you want to try IPv6 configuration of the interface?")))) { int i; + int len; i = 0; sysctlbyname("net.inet6.ip6.forwarding", NULL, 0, &i, sizeof(i)); i = 1; sysctlbyname("net.inet6.ip6.accept_rtadv", NULL, 0, &i, sizeof(i)); vsystem("ifconfig %s up", devp->name); + len = sizeof(i); + sysctlbyname("net.inet6.ip6.dad_count", &i, &len, NULL, 0); + sleep(i + 1); Mkdir("/var/run"); msgNotify("Scanning for RA servers..."); if (0 == vsystem("rtsol %s", devp->name)) { - sleep(3); + len = sizeof(i); + sysctlbyname("net.inet6.ip6.dad_count", &i, &len, NULL, 0); + sleep(i + 1); rtsolGetInfo(devp); use_rtsol = TRUE; } else |