On Tuesday 02 June 2009 3:22:23 pm Doug Barton wrote: > John Baldwin wrote: > > I think more specifically, if you don't set 'ifconfig_<if>' to "DHCP", then > > when you plug a <if> device in, nothing happens. > > That's actually not correct, as devd will try to dhcp an interface as > soon as it comes up.
That is completely wrong. Checking the actual code would probably be helpful here. From /etc/devd.conf: # # Try to start dhclient on Ethernet like interfaces when the link comes # up. Only devices that are configured to support DHCP will actually # run it. No link down rule exists because dhclient automaticly exits # when the link goes down. # notify 0 { match "system" "IFNET"; match "type" "LINK_UP"; media-type "ethernet"; action "/etc/rc.d/dhclient start $subsystem"; }; Note the comment. From /etc/rc.d/dhclient: ifn="$2" load_rc_config $name load_rc_config network if ! dhcpif $ifn; then return 1 fi run_rc_command "$1" From /etc/network.subr: # dhcpif if # Returns 0 if the interface is a DHCP interface and 1 otherwise. dhcpif() { _tmpargs=`_ifconfig_getargs $1` for _arg in $_tmpargs; do case $_arg in [Dd][Hh][Cc][Pp]) return 0 ;; [Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) return 0 ;; [Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) return 0 ;; esac done return 1 } Clearly if you do not have 'DHCP' set in your ifconfig_<if> variable, dhcpif will be false, and /etc/rc.d/dhclient will be a nop. > > DHCP is opt-in, not > > opt-out. The only reason one would want to limit network_interfaces is if > > you wanted to have an ifconfig_foo0 line in /etc/rc.conf but not have foo0 > > configured automatically. > > I've already said several times that I want to run through my own list > of interfaces, configure the first one that comes up, and then stop. > There is no support for that currently. Others have also chimed in > with things that they do with the existing feature as well. This is an interesting problem, though I think network_interfaces is a rather odd way of going about it. Do you boot to single user and edit rc.conf all the time? I don't see how else you are using network_interfaces to implement this. I think a better solution to that problem would be to assign interfaces priority (if_priority_<if>="N" perhaps). Also, note that the /etc/rc.d/defaultroute script does only hold up the boot until at least one interface gets a default route. For the common wireless vs. wired case that works well, and even OS X will configure both wired and wireless interfaces if both work, it simply uses the priority to determine whose default route "wins". -- John Baldwin _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"