summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2014-08-29 06:31:18 +0000
committerhrs <hrs@FreeBSD.org>2014-08-29 06:31:18 +0000
commit0a12d6abf032ff89f34c9d605c6d467eae2ed916 (patch)
tree60a80bb6da49ab4b01722c6ce1a4b580431281f3 /etc
parent12c6141a1e0a285114c62a9c84d6dd541ec93149 (diff)
downloadFreeBSD-src-0a12d6abf032ff89f34c9d605c6d467eae2ed916.zip
FreeBSD-src-0a12d6abf032ff89f34c9d605c6d467eae2ed916.tar.gz
- Add a warning message when an IPv6 address is specified with no prefixlen.
- Use a parameter argument in jls(8) instead of doing grep.
Diffstat (limited to 'etc')
-rwxr-xr-xetc/rc.d/jail38
1 files changed, 17 insertions, 21 deletions
diff --git a/etc/rc.d/jail b/etc/rc.d/jail
index d8a88e4..1049fcb 100755
--- a/etc/rc.d/jail
+++ b/etc/rc.d/jail
@@ -321,6 +321,8 @@ jail_extract_address()
elif [ "${_type}" = "inet6" ]; then
# In case _maske is not set for IPv6, use /128.
_mask=${_mask:-/128}
+ warn "$_type $_addr: an IPv6 address should always be " \
+ "specified with a prefix length. /128 is used."
fi
}
@@ -420,7 +422,7 @@ jail_status()
jail_start()
{
- local _j _jid _jn _jl
+ local _j _jid _jl
if [ $# = 0 ]; then
return
@@ -433,12 +435,10 @@ jail_start()
command_args="-f $jail_conf -c"
_tmp=`mktemp -t jail` || exit 3
if $command $rc_flags $command_args >> $_tmp 2>&1; then
- $jail_jls -nq | while read IN; do
- _jn=$(echo $IN | tr " " "\n" | grep ^name=)
- _jid=$(echo $IN | tr " " "\n" | grep ^jid=)
- echo -n " ${_jn#name=}"
- echo "${_jid#jid=}" \
- > /var/run/jail_${_jn#name=}.id
+ $jail_jls jid name | while read IN; do
+ set -- $IN
+ echo -n " $2"
+ echo $1 > /var/run/jail_$2.id
done
else
tail -1 $_tmp
@@ -468,9 +468,8 @@ jail_start()
sleep 1
for _j in $_jl; do
echo -n " ${_hostname:-${_j}}"
- if _jid=$($jail_jls -n -j $_j | tr " " "\n" | \
- grep ^jid=); then
- echo "${_jid#jid=}" > /var/run/jail_${_j}.id
+ if _jid=$($jail_jls -j $_j jid); then
+ echo "$_jid" > /var/run/jail_${_j}.id
else
rm -f /var/run/jail_${_j}.id
echo " cannot start jail " \
@@ -492,9 +491,8 @@ jail_start()
if $command $rc_flags $command_args \
>> $_tmp 2>&1 </dev/null; then
echo -n " ${_hostname:-${_j}}"
- _jid=$($jail_jls -n -j $_j | \
- tr " " "\n" | grep ^jid=)
- echo "${_jid#jid=}" > /var/run/jail_${_j}.id
+ _jid=$($jail_jls -j $_j jid)
+ echo $_jid > /var/run/jail_${_j}.id
else
rm -f /var/run/jail_${_j}.id
echo " cannot start jail " \
@@ -509,7 +507,7 @@ jail_start()
jail_stop()
{
- local _j _jn
+ local _j
if [ $# = 0 ]; then
return
@@ -520,16 +518,14 @@ jail_stop()
command=$jail_program
rc_flags=$jail_flags
command_args="-f $jail_conf -r"
- $jail_jls -nq | while read IN; do
- _jn=$(echo $IN | tr " " "\n" | grep ^name=)
- echo -n " ${_jn#name=}"
+ $jail_jls name | while read _j; do
+ echo -n " $_j"
_tmp=`mktemp -t jail` || exit 3
- $command $rc_flags $command_args ${_jn#name=} \
- >> $_tmp 2>&1
- if $jail_jls -j ${_jn#name=} > /dev/null 2>&1; then
+ $command $rc_flags $command_args $_j >> $_tmp 2>&1
+ if $jail_jls -j $_j > /dev/null 2>&1; then
tail -1 $_tmp
else
- rm -f /var/run/jail_${_jn#name=}.id
+ rm -f /var/run/jail_${_j}.id
fi
rm -f $_tmp
done
OpenPOWER on IntegriCloud