On Sun, Aug 16, 2009 at 08:37:19PM -0700, Doug Barton wrote:
> David Wolfskill wrote:
> > * Create a new rc.d script that sleeps until an IP address is assigned.
> > I think the latter would be most flexible, as the appropriate keywords
> > could be specified for precisely those rc.d/* scripts that actually need
> > an IP address in order to function, though implementing it might
> > engender rather more churn in /etc/rc.d/* than folks might prefer.
> This is definitely the preferred solution, and has been discussed in
> the past on the rc.d list.
Well, this would probably cover the story of DHCP + slow media change
detection (or just plain slow DHCP). However, there are similar (and way
worse) problems if you are using a machine with a wlan interface, even
without DHCP. In this case, an IP address is immediately assigned as
soon as the wlanX interface is created, but that does not mean that
traffic can flow. In my case, getting an association with an iwi(4) card
lasts about 15-25 seconds. True, NTPD does not exit because an IP
address is configured, but the spamming that it (and stuff like
sendmail) produce on the console bears witness to the fact that they are
not prepared to handle this situation... I will not even start to imagine
what happens if I add a DHCP server into this mix...
> One way to implement this would be to specify a default address to
> ping, and make it overridable, similar to how I did the named_wait
> feature. Bonus points if the user has ntpd enabled and we can pick one
> of the server lines from ntp.conf at random.
This, however, would be a much better solution, because it would also
cover slow wireless.