network.subr: improve configuration of cloned gif(4) interfaces
ifconfig(8) syntax allows to specify only single address_family, so we need additional invocation of ifconfig to support configuration of cloned gif interface that may use different address families for its internal and external addresses. Also, ifconfig(8) does not allow to omit "inet6" keyword for address family specifying IPv6 addresses as outer addresses of the interface. Also, address_family is not "parameter" and it has to go before parameters including "tunnel" keyword, so "ifconfig gif0 tunnel inet6 $oip1 $oip2" would be wrong syntax and only "ifconfig gif0 inet6 tunnel $oip1 $oip2" is right. With this change, the following works: gifconfig_gif0="inet6 2a00::1 2a01::1" ifconfig_gif0="inet 10.0.0.1 10.0.0.2 netmask 255.255.255.252" MFC after: 2 weeks
This commit is contained in:
parent
1a4f60cd0b
commit
645d0bb86c
@ -1328,7 +1328,7 @@ wlan_down()
|
||||
#
|
||||
clone_up()
|
||||
{
|
||||
local _list ifn ifopt _iflist _n tmpargs
|
||||
local _list ifn ifopt _iflist _inet6 _n tmpargs
|
||||
_list=
|
||||
_iflist=$*
|
||||
|
||||
@ -1394,9 +1394,21 @@ clone_up()
|
||||
esac
|
||||
if [ $? -eq 0 ]; then
|
||||
_list="$_list $ifn"
|
||||
tmpargs=$(get_if_var $ifn gifconfig_IF)
|
||||
_inet6=''
|
||||
case "$tmpargs" in
|
||||
'')
|
||||
;;
|
||||
inet6[[:space:]]*)
|
||||
tmpargs=${tmpargs#inet6}
|
||||
_inet6=inet6
|
||||
# FALLTHROUGH
|
||||
;&
|
||||
*)
|
||||
${IFCONFIG_CMD} $ifn $_inet6 tunnel $tmpargs
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
tmpargs=$(get_if_var $ifn gifconfig_IF)
|
||||
eval ifconfig_${ifn}=\"\$ifconfig_${ifn} tunnel \$tmpargs\"
|
||||
done
|
||||
if [ -n "${_list# }" ]; then
|
||||
echo "Created clone interfaces: ${_list# }."
|
||||
|
Loading…
x
Reference in New Issue
Block a user