diff --git a/src/etc/rc.d/rc.subr b/src/etc/rc.d/rc.subr index 83dc0251..033320b2 100644 --- a/src/etc/rc.d/rc.subr +++ b/src/etc/rc.d/rc.subr @@ -1,4 +1,4 @@ -# $OpenBSD: rc.subr,v 1.108 2016/04/26 16:39:59 ajacoutot Exp $ +# $OpenBSD: rc.subr,v 1.109 2016/04/26 16:59:15 ajacoutot Exp $ # # Copyright (c) 2010, 2011, 2014, 2015 Antoine Jacoutot # Copyright (c) 2010, 2011 Ingo Schwarze @@ -49,6 +49,7 @@ _rc_write_runfile() { cat >${_RC_RUNFILE} </dev/null 2>&1 && \ daemon_class=${_name} || daemon_class=daemon +[ -z "${daemon_rtable}" ] && daemon_rtable=0 [ -z "${daemon_user}" ] && daemon_user=root [ -z "${daemon_timeout}" ] && daemon_timeout=30 @@ -271,6 +274,7 @@ getcap -f /etc/login.conf ${_name} 1>/dev/null 2>&1 && \ unset _rcflags [ -n "${_rcflags}" ] && daemon_flags=${_rcflags} +[ -n "${_rcrtable}" ] && daemon_rtable=${_rcrtable} [ -n "${_rcuser}" ] && daemon_user=${_rcuser} [ -n "${_rctimeout}" ] && daemon_timeout=${_rctimeout} @@ -281,6 +285,8 @@ if [ -n "${_RC_DEBUG}" ]; then fi readonly daemon_class -unset _rcflags _rcuser _rctimeout +unset _rcflags _rcrtable _rcuser _rctimeout pexp="${daemon}${daemon_flags:+ ${daemon_flags}}" rcexec="su -l -c ${daemon_class} -s /bin/sh ${daemon_user} -c" +[ "${daemon_rtable}" -eq 0 ] || \ + rcexec="route -T ${daemon_rtable} exec ${rcexec}"