diff --git a/conf.d.Linux/net.example b/conf.d.Linux/net.example index 7244baf8..6d016bfc 100644 --- a/conf.d.Linux/net.example +++ b/conf.d.Linux/net.example @@ -622,9 +622,6 @@ # You need to create the PPP net script yourself. Make it like so #ln -s net.lo /etc/init.d/net.ppp0 # -# We have to instruct ppp0 to actually use ppp -#config_ppp0="ppp" -# # Each PPP interface requires an interface to use as a "Link" #link_ppp0="/dev/ttyS0" # Most PPP links will use a serial port #link_ppp0="eth0" # PPPoE requires an ethernet interface diff --git a/net.Linux/pppd.sh b/net.Linux/pppd.sh index 30154040..2d1ded17 100644 --- a/net.Linux/pppd.sh +++ b/net.Linux/pppd.sh @@ -16,29 +16,20 @@ requote() { printf "'%s' " "$@" } -pppd_start() { +pppd_pre_start() { ${IN_BACKGROUND} && return 0 - if [ "${IFACE%%[0-9]*}" != "ppp" ] ; then - eerror "PPP can only be invoked from net.ppp[0-9]" - return 1 - fi + # Interface has to be called ppp + [ "${IFACE%%[0-9]*}" = "ppp" ] || return 0 local link= i= opts= unit="${IFACE#ppp}" mtu= - if [ -z "${unit}" ] ; then - eerror "PPP requires a unit - use net.ppp[0-9] instead of net.ppp" - return 1 - fi - + # PPP requires a link to communicate over - normally a serial port # PPPoE communicates over Ethernet # PPPoA communicates over ATM # In all cases, the link needs to be available before we start PPP eval link=\$link_${IFVAR} - if [ -z "${link}" ] ; then - eerror "link_${IFVAR} has not been set in /etc/conf.d/net" - return 1 - fi + [ -n "${link}" ] || return 0 case "${link}" in /*) @@ -50,6 +41,11 @@ pppd_start() { ;; esac + if [ -z "${unit}" ] ; then + eerror "PPP requires a unit - use net.ppp[0-9] instead of net.ppp" + return 1 + fi + eval $(_get_array "pppd_${IFVAR}") opts="$@" @@ -199,6 +195,11 @@ pppd_start() { exit 0 } +# Dummy function for users that still have config_ppp0="ppp" +pppd_start() { + return 0 +} + pppd_stop() { ${IN_BACKGROUND} && return 0 local pidfile="/var/run/ppp-${IFACE}.pid"