Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Oct 2012 15:25:18 +0000 (UTC)
From:      Jun Kuriyama <kuriyama@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r242083 - in stable/8/etc: defaults rc.d
Message-ID:  <201210251525.q9PFPI6Q087704@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kuriyama
Date: Thu Oct 25 15:25:17 2012
New Revision: 242083
URL: http://svn.freebsd.org/changeset/base/242083

Log:
  Merge r239382:
  
  - Allow to pass extra parameters for each jails.
  - To achieve above, convert jail(8) invocation to use new style
    command line "-c" flag.
  
  Thanks to: lstewart

Modified:
  stable/8/etc/defaults/rc.conf
  stable/8/etc/rc.d/jail
Directory Properties:
  stable/8/etc/   (props changed)

Modified: stable/8/etc/defaults/rc.conf
==============================================================================
--- stable/8/etc/defaults/rc.conf	Thu Oct 25 10:35:08 2012	(r242082)
+++ stable/8/etc/defaults/rc.conf	Thu Oct 25 15:25:17 2012	(r242083)
@@ -686,6 +686,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: stable/8/etc/rc.d/jail
==============================================================================
--- stable/8/etc/rc.d/jail	Thu Oct 25 10:35:08 2012	(r242082)
+++ stable/8/etc/rc.d/jail	Thu Oct 25 15:25:17 2012	(r242083)
@@ -113,6 +113,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
@@ -191,6 +193,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}"
@@ -482,9 +485,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
@@ -567,6 +580,7 @@ jail_start()
 			continue;
 		fi
 		_addrl=""
+		_addr6l=""
 		jail_ips "add"
 		if [ -n "${_fib}" ]; then
 			_setfib="setfib -F '${_fib}'"
@@ -632,8 +646,8 @@ jail_start()
 			i=$((i + 1))
 		done
 
-		eval ${_setfib} 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
 
 		if [ "$?" -eq 0 ] ; then
 			_jail_id=$(head -1 ${_tmp_jail})



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