multiple instances of ppp
Maksim Yevmenkin
maksim.yevmenkin at gmail.com
Sat Oct 6 15:49:59 PDT 2007
Mike,
On 10/6/07, Mike Makonnen <mtm at freebsd.org> wrote:
> On Sat, Oct 06, 2007 at 01:14:18PM -0700, Maksim Yevmenkin wrote:
> > hello,
> >
> > a friend of mine send me the following /etc/rc.c/ppp replacement
> > script. the idea is to start multiple instances of ppp at boot time
> > (possibly with different profiles).
> >
> > i'm not sure if this is ok to commit as it is, so i decided to ask if
> > there is a better way to handle this.
> >
> > any thoughts on the subject is very much appreciated.
>
> I like it, but it has several bugs and needs to be cleaned up first. My
> comments are inline.
thanks for your comments. what do you think about something like
# PROVIDE: ppp
# REQUIRE: netif isdnd
# KEYWORD: nojail
. /etc/rc.subr
name="ppp"
rcvar=`set_rcvar`
command="/usr/sbin/${name}"
start_cmd="ppp_start"
start_postcmd="ppp_poststart"
ppp_start_profile()
{
local _ppp_profile, _ppp_mode, _ppp_nat
_ppp_profile=$1
# Check for ppp profile mode override.
#
eval _ppp_mode=\$ppp_${_ppp_profile}_mode
if [ -z "$_ppp_mode" ]; then
_ppp_mode=$ppp_mode
fi
# Check for ppp profile nat override.
#
eval _ppp_nat=\$ppp_${_ppp_profile}_nat
if [ -z "$_ppp_nat" ]; then
_ppp_nat=$ppp_nat
fi
# Establish ppp mode.
#
if [ "${_ppp_mode}" != "ddial" -a "${_ppp_mode}" != "direct" \
-a "${_ppp_mode}" != "dedicated" \
-a "${_ppp_mode}" != "background" ]; then
_ppp_mode="auto"
fi
rc_flags="-quiet -${_ppp_mode}"
# Switch on NAT mode?
#
case ${_ppp_nat} in
[Yy][Ee][Ss])
rc_flags="$rc_flags -nat"
;;
esac
# Run!
#
echo su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
}
ppp_start()
{
local _p
echo -n "Starting PPP profile:"
for _p in $ppp_profile; do
echo -n " $_p"
ppp_start_profile $_p
done
echo "."
}
ppp_poststart()
{
# Re-Sync ipfilter and pf so they pick up any new network interfaces
#
/etc/rc.d/ipfilter resync
/etc/rc.d/pf resync
}
load_rc_config $name
run_rc_command "$1"
More information about the freebsd-rc
mailing list