summaryrefslogtreecommitdiffstats
path: root/etc/rc.d
diff options
context:
space:
mode:
authordteske <dteske@FreeBSD.org>2016-02-12 02:50:36 +0000
committerdteske <dteske@FreeBSD.org>2016-02-12 02:50:36 +0000
commitf6c9bac41e0af34b809d7c1847d86cb382f3e39f (patch)
tree964324afbe35a9c723f393ae7a76bd8148199187 /etc/rc.d
parentcb902d64eb5232d0700b7f50fa61a7f526a06c26 (diff)
downloadFreeBSD-src-f6c9bac41e0af34b809d7c1847d86cb382f3e39f.zip
FreeBSD-src-f6c9bac41e0af34b809d7c1847d86cb382f3e39f.tar.gz
Interpret vnet_interface/vnet.interface as array
Diffstat (limited to 'etc/rc.d')
-rwxr-xr-xetc/rc.d/jail19
1 files changed, 17 insertions, 2 deletions
diff --git a/etc/rc.d/jail b/etc/rc.d/jail
index 2d48989..f7d6d3d 100755
--- a/etc/rc.d/jail
+++ b/etc/rc.d/jail
@@ -33,7 +33,8 @@ need_dad_wait=
# set it to $param. If not defined, $defval is used.
# When $num is [0-9]*, ${jail_$jv_$name$num} are looked up and
# $param is set by using +=. $num=0 is optional (params may start at 1).
-# When $num is YN or NY, the value is interpret as boolean.
+# When $num is YN or NY, the value is interpreted as boolean.
+# When $num is @, the value is interpreted as an array separted by IFS.
extract_var()
{
local i _jv _name _param _num _def _name1 _name2
@@ -78,6 +79,20 @@ extract_var()
i=$(($i + 1))
done
;;
+ @)
+ _name1=jail_${_jv}_${_name}
+ _name2=jail_${_name}
+ eval _tmpargs=\"\${$_name1:-\${$_name2:-$_def}}\"
+ set -- $_tmpargs
+ if [ $# -gt 0 ]; then
+ echo -n " $_param = "
+ while [ $# -gt 1 ]; do
+ echo -n "\"$1\", "
+ shift
+ done
+ echo "\"$1\";"
+ fi
+ ;;
*)
_name1=jail_${_jv}_${_name}
_name2=jail_${_name}
@@ -190,7 +205,7 @@ parse_options()
allow.raw_sockets NY YES
else
echo " vnet;"
- extract_var $_jv vnet_interface vnet.interface - ""
+ extract_var $_jv vnet_interface vnet.interface @ ""
fi
echo " exec.clean;"
OpenPOWER on IntegriCloud