From ccf238f852fd0463e68d33b91f0dd55000c325e3 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Wed, 26 Mar 2008 14:18:01 +0000 Subject: Merge net.OS into net --- net/adsl.sh | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 net/adsl.sh (limited to 'net/adsl.sh') diff --git a/net/adsl.sh b/net/adsl.sh new file mode 100644 index 0000000..6dd93e0 --- /dev/null +++ b/net/adsl.sh @@ -0,0 +1,74 @@ +# Copyright 2004-2007 Gentoo Foundation +# Copyright 2007-2008 Roy Marples +# All rights reserved. Released under the 2-clause BSD license. + +adsl_depend() +{ + program /usr/sbin/adsl-start /usr/sbin/pppoe-start + before dhcp +} + +adsl_setup_vars() +{ + local startstop="$1" cfgexe= + + if [ -x /usr/sbin/pppoe-start ]; then + exe="/usr/sbin/pppoe-${startstop}" + cfgexe=pppoe-setup + else + exe="/usr/sbin/adsl-${startstop}" + cfgexe=adsl-setup + fi + + # Decide which configuration to use. Hopefully there is an + # interface-specific one + cfgfile="/etc/ppp/pppoe-${IFACE}.conf" + [ -f "${cfgfile}" ] || cfgfile="/etc/ppp/pppoe.conf" + + if [ ! -f "${cfgfile}" ]; then + eerror "no pppoe.conf file found!" + eerror "Please run ${cfgexe} to create one" + return 1 + fi + + return 0 +} + +adsl_start() +{ + local exe= cfgfile= user= + + adsl_setup_vars start || return 1 + + # Might or might not be set in conf.d/net + eval user=\$adsl_user_${IFVAR} + + # Start ADSL with the cfgfile, but override ETH and PIDFILE + einfo "Starting ADSL for ${IFACE}" + ( + cat "${cfgfile}"; + echo "ETH=${IFACE}"; + echo "PIDFILE=/var/run/rp-pppoe-${IFACE}.pid"; + [ -n "${user}" ] && echo "USER=${user}"; + ) | ${exe} >/dev/null + eend $? +} + +adsl_stop() +{ + local exe= cfgfile= + + [ ! -f /var/run/rp-pppoe-"${IFACE}".pid ] && return 0 + + adsl_setup_vars stop || return 1 + + einfo "Stopping ADSL for ${IFACE}" + ( + cat "${cfgfile}"; + echo "ETH=${IFACE}"; + echo "PIDFILE=/var/run/rp-pppoe-${IFACE}.pid"; + ) | ${exe} >/dev/null + eend $? + + return 0 +} -- cgit v1.2.3