Seems reasonable to me.

Doug

On 05/03/10 12:27, John Baldwin wrote:
> While testing some changes with vlans and the new vlan_<if> syntax in rc.conf 
> I've noticed the following behavior:
> 
>       ifconfig foo0.100 destroy
> 
> Will actually try to kldload the 'foo' driver.  This can prove very non-
> intuitive.  In general I think we shouldn't try to kldload anything when 
> destroying an interface period.  What I've done locally is to pass '-n' to 
> ifconfig when destroying an interface.
> 
> We should possibly fix some other bugs however.  For example, ifmaybeload() 
> in 
> ifconfig should probably stop at the first non-digit it finds (e.g. ".") 
> rather than trimming from the first digit on.  Also, perhaps 'ifconfig <foo> 
> destroy' should imply -n without requiring it to be explicit.
> 
> I also moved the ifconfig destroy of wlan and vlan devices up before running 
> ifn_stop to prevent running 'ifconfig <foo> down' which would also reload the 
> driver due to the first bug in ifconfig.
> 
> Index: network.subr
> ===================================================================
> --- network.subr      (revision 207329)
> +++ network.subr      (working copy)
> @@ -915,7 +915,7 @@
>       _list=
>  
>       for ifn in ${cloned_interfaces}; do
> -             ifconfig ${ifn} destroy
> +             ifconfig -n ${ifn} destroy
>               if [ $? -eq 0 ]; then
>                       _list="${_list}${_prefix}${ifn}"
>                       [ -z "$_prefix" ] && _prefix=' '
> @@ -1000,10 +1000,10 @@
>               if ! ifexists $child; then
>                       continue
>               fi
> +             ifconfig -n $child destroy && cfg=0
>               if autoif $child; then
>                       ifn_stop $child
>               fi
> -             ifconfig $child destroy && cfg=0
>       done
>  
>       child_vlans=`get_if_var $ifn vlans_IF`
> @@ -1014,10 +1014,10 @@
>               if ! ifexists $child; then
>                       continue
>               fi
> +             ifconfig -n $child destroy && cfg=0
>               if autoif $child; then
>                       ifn_stop $child
>               fi
> -             ifconfig $child destroy && cfg=0
>       done
>  
>       return ${cfg}
> 
> 



-- 

        ... and that's just a little bit of history repeating.
                        -- Propellerheads

        Improve the effectiveness of your Internet presence with
        a domain name makeover!    http://SupersetSolutions.com/

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to