summaryrefslogtreecommitdiffstats
path: root/etc/rc.d/jail
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2008-09-16 20:18:25 +0000
committerthompsa <thompsa@FreeBSD.org>2008-09-16 20:18:25 +0000
commit09662c68f913cf5e0b99bf7151dfc0ace40515e8 (patch)
treebf9651a3b288a4be076c02ca8bdc6de09909150b /etc/rc.d/jail
parent82e6f72dc34224fe13a479de669c39b0da9c26e2 (diff)
downloadFreeBSD-src-09662c68f913cf5e0b99bf7151dfc0ace40515e8.zip
FreeBSD-src-09662c68f913cf5e0b99bf7151dfc0ace40515e8.tar.gz
Allow a jail to be started with a specific route fib.
Reviewed by: secteam (simon) Reviewed by: brooks, bz
Diffstat (limited to 'etc/rc.d/jail')
-rwxr-xr-xetc/rc.d/jail9
1 files changed, 8 insertions, 1 deletions
diff --git a/etc/rc.d/jail b/etc/rc.d/jail
index d35f3f7..87eab69 100755
--- a/etc/rc.d/jail
+++ b/etc/rc.d/jail
@@ -83,6 +83,7 @@ init_variables()
[ -z "${_flags}" ] && _flags="-l -U root"
eval _consolelog=\"\${jail_${_j}_consolelog:-${jail_consolelog}}\"
[ -z "${_consolelog}" ] && _consolelog="/var/log/jail_${_j}_console.log"
+ eval _fib=\"\${jail_${_j}_fib:-${jail_fib}}\"
# Debugging aid
#
@@ -93,6 +94,7 @@ init_variables()
debug "$_j hostname: $_hostname"
debug "$_j ip: $_ip"
debug "$_j interface: $_interface"
+ debug "$_j fib: $_fib"
debug "$_j root: $_rootdir"
debug "$_j devdir: $_devdir"
debug "$_j fdescdir: $_fdescdir"
@@ -297,6 +299,11 @@ jail_start()
if [ -n "${_interface}" ]; then
ifconfig ${_interface} alias ${_ip} netmask 255.255.255.255
fi
+ if [ -n "${_fib}" ]; then
+ _setfib="setfib -F '${_fib}'"
+ else
+ _setfib=""
+ fi
if checkyesno _mount; then
info "Mounting fstab for jail ${_jail} (${_fstab})"
if [ ! -f "${_fstab}" ]; then
@@ -350,7 +357,7 @@ jail_start()
fi
fi
_tmp_jail=${_tmp_dir}/jail.$$
- eval jail ${_flags} -i ${_rootdir} ${_hostname} \
+ eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \
${_ip} ${_exec_start} > ${_tmp_jail} 2>&1
if [ "$?" -eq 0 ] ; then
OpenPOWER on IntegriCloud