Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Aug 2012 08:15:32 +0000 (UTC)
From:      Jun Kuriyama <kuriyama@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r239382 - in head/etc: defaults rc.d
Message-ID:  <201208190815.q7J8FWLi049955@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kuriyama
Date: Sun Aug 19 08:15:32 2012
New Revision: 239382
URL: http://svn.freebsd.org/changeset/base/239382

Log:
  - Allow to pass extra parameters for each jails.
  - To achieve above, convert jail(8) invocation to use new style
    command line "-c" flag.
  
  Reviewed at:	freebsd-jail@

Modified:
  head/etc/defaults/rc.conf
  head/etc/rc.d/jail

Modified: head/etc/defaults/rc.conf
==============================================================================
--- head/etc/defaults/rc.conf	Sun Aug 19 02:22:16 2012	(r239381)
+++ head/etc/defaults/rc.conf	Sun Aug 19 08:15:32 2012	(r239382)
@@ -705,6 +705,7 @@ jail_sysvipc_allow="NO"	# Allow SystemV 
 #jail_example_mount_enable="NO"			# mount/umount jail's fs
 #jail_example_fstab=""				# fstab(5) for mount/umount
 #jail_example_flags="-l -U root"		# flags for jail(8)
+#jail_example_parameters="allow.raw_sockets=1"	# extra parameters for this jail
 
 ##############################################################
 ### Define source_rc_confs, the mechanism used by /etc/rc.* ##

Modified: head/etc/rc.d/jail
==============================================================================
--- head/etc/rc.d/jail	Sun Aug 19 02:22:16 2012	(r239381)
+++ head/etc/rc.d/jail	Sun Aug 19 08:15:32 2012	(r239382)
@@ -115,6 +115,8 @@ 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 _parameters=\"\${jail_${_j}_parameters:-${jail_parameters}}\"
+	[ -z "${_parameters}" ] && _parameters=""
 	eval _fib=\"\${jail_${_j}_fib:-${jail_fib}}\"
 
 	# Debugging aid
@@ -193,6 +195,7 @@ init_variables()
 
 	debug "$_j flags: $_flags"
 	debug "$_j consolelog: $_consolelog"
+	debug "$_j parameters: $_parameters"
 
 	if [ -z "${_hostname}" ]; then
 		err 3 "$name: No hostname has been defined for ${_j}"
@@ -484,9 +487,19 @@ jail_handle_ips_option()
 		esac
 
 		# Append address to list of addresses for the jail command.
-		case "${_addrl}" in
-		"")	_addrl="${_addr}" ;;
-		*)	_addrl="${_addrl},${_addr}" ;;
+		case "${_type}" in
+		inet)
+			case "${_addrl}" in
+			"")	_addrl="${_addr}" ;;
+			*)	_addrl="${_addrl},${_addr}" ;;
+			esac
+			;;
+		inet6)
+			case "${_addr6l}" in
+			"")	_addr6l="${_addr}" ;;
+			*)	_addr6l="${_addr6l},${_addr}" ;;
+			esac
+			;;
 		esac
 
 		# Configure interface alias if requested by a given interface
@@ -576,6 +589,7 @@ jail_start()
 			continue;
 		fi
 		_addrl=""
+		_addr6l=""
 		jail_ips "add"
 		if [ -n "${_fib}" ]; then
 			_setfib="setfib -F '${_fib}'"
@@ -641,8 +655,8 @@ jail_start()
 			i=$((i + 1))
 		done
 
-		eval ${_setfib} jail -n ${_jail} ${_flags} -i ${_rootdir} ${_hostname} \
-			\"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1 \
+		eval ${_setfib} jail -n ${_jail} ${_flags} -i -c path=${_rootdir} host.hostname=${_hostname} \
+			ip4.addr=\"${_addrl}\" ip6.addr=\"${_addr6l}\" ${_parameters} command=${_exec_start} > ${_tmp_jail} 2>&1 \
 			</dev/null
 
 		if [ "$?" -eq 0 ] ; then



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208190815.q7J8FWLi049955>