From 6645f489fb3f40fe6bc2a59335d2dcdf24bf42ee Mon Sep 17 00:00:00 2001 From: Jean-Philippe Pialasse Date: Mon, 15 Apr 2024 17:22:55 -0400 Subject: [PATCH] initial --- Makefile | 2 +- README.md | 9 +- change-this-to-the-package-name.spec | 55 --- pppoe-connect | 398 +++++++++++++++++++++ pppoe-server.service | 9 + pppoe-setup | 492 ++++++++++++++++++++++++++ pppoe-start | 228 ++++++++++++ pppoe-status | 104 ++++++ pppoe-stop | 142 ++++++++ rp-pppoe-3.11-ip-allocation.patch | 119 +++++++ rp-pppoe-3.14-ip-allocation.lux.patch | 108 ++++++ rp-pppoe-3.14-manpages.lux.patch | 71 ++++ rp-pppoe-3.14-redhat.lux.patch | 104 ++++++ rp-pppoe-3.14.tar.gz | 3 + rp-pppoe-3.8-redhat.patch | 97 +++++ rp-pppoe-manpages.patch | 72 ++++ rp-pppoe.spec | 471 ++++++++++++++++++++++++ 17 files changed, 2422 insertions(+), 62 deletions(-) delete mode 100644 change-this-to-the-package-name.spec create mode 100755 pppoe-connect create mode 100644 pppoe-server.service create mode 100755 pppoe-setup create mode 100755 pppoe-start create mode 100755 pppoe-status create mode 100755 pppoe-stop create mode 100644 rp-pppoe-3.11-ip-allocation.patch create mode 100644 rp-pppoe-3.14-ip-allocation.lux.patch create mode 100644 rp-pppoe-3.14-manpages.lux.patch create mode 100644 rp-pppoe-3.14-redhat.lux.patch create mode 100644 rp-pppoe-3.14.tar.gz create mode 100644 rp-pppoe-3.8-redhat.patch create mode 100644 rp-pppoe-manpages.patch create mode 100644 rp-pppoe.spec diff --git a/Makefile b/Makefile index e621ddf..5191b23 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -NAME := rd-pppoe +NAME := rp-pppoe SPECFILE = $(firstword $(wildcard *.spec)) define find-makefile-common diff --git a/README.md b/README.md index 1a53cbc..5784aa5 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,11 @@ # rd-pppoe -SMEServer Koozali local git repo for rd-pppoe - -## Documentation -
https://metacpan.org/pod/rd-pppoe +SMEServer Koozali local git repo for rp-pppoe ## Bugzilla -CPAN bug report are [here](https://rt.cpan.org/Public/Dist/Display.html?Name=rd-pppoe) +CPAN bug report are [here](https://rt.cpan.org/Public/Dist/Display.html?Name=rp-pppoe) -Show list of Koozali outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=rd-pppoe&product=SME%20Server%2011.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) +Show list of Koozali outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=rp-pppoe&product=SME%20Server%2011.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) ## Description diff --git a/change-this-to-the-package-name.spec b/change-this-to-the-package-name.spec deleted file mode 100644 index f522585..0000000 --- a/change-this-to-the-package-name.spec +++ /dev/null @@ -1,55 +0,0 @@ -%define name rd-pppoe -%define version 1.0 -%define release 1 -Summary: This is what rd-pppoe does. -Name: %{name} -Version: %{version} -Release: %{release}%{?dist} -Source: %{name}-%{version}.tar.gz -License: GNU GPL version 2 -Group: SMEserver/addon -BuildRoot: %{_tmppath}/%{name}-buildroot -Prefix: %{_prefix} -BuildArchitectures: noarch -BuildRequires: e-smith-devtools -Requires: e-smith-release >= 10.0 -AutoReqProv: no - -%description - pppoe - user-space PPPoE client. - -%changelog -* Day MMMM DD YYYY 1.0-1.sme -- Initial code - create RPM [SME:99999] - -%prep - -%setup -q - -%build -perl createlinks - -%install -rm -rf $RPM_BUILD_ROOT -(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) -rm -f %{name}-%{version}-filelist -/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ -> %{name}-%{version}-filelist -#echo "%doc COPYING" >> %{name}-%{version}-filelist -#--dir 'attr(755,user,grp)' \ -#--file 'attr(755,root,root)' \ - -%clean -cd .. -rm -rf %{name}-%{version} - -%pre - -%preun - -%post - -%postun -#uninstall -%files -f %{name}-%{version}-filelist -%defattr(-,root,root) diff --git a/pppoe-connect b/pppoe-connect new file mode 100755 index 0000000..e3d98ad --- /dev/null +++ b/pppoe-connect @@ -0,0 +1,398 @@ +#! /bin/bash +# Generated automatically from pppoe-connect.in by configure. +#*********************************************************************** +# +# pppoe-connect +# +# Shell script to connect to an PPPoE provider using PPPoE +# +# Copyright (C) 2000 Roaring Penguin Software Inc. +# +# $Id$ +# +# This file may be distributed under the terms of the GNU General +# Public License. +# +# Usage: pppoe-connect [config_file] +# pppoe-connect interface user [config_file] +# Second form overrides USER and ETH from config file. +# If config_file is omitted, defaults to /etc/ppp/pppoe.conf +# +#*********************************************************************** + +# From AUTOCONF +prefix=/usr +exec_prefix=/usr +localstatedir=/var + +# Paths to programs +IP=/sbin/ip +PPPD=/usr/sbin/pppd +SETSID=/usr/bin/setsid +PPPOE=/usr/sbin/pppoe +BR2684CTL=/usr/sbin/br2684ctl +LOGGER="/usr/bin/logger -t `basename $0`" +NETWORKDIR=/etc/sysconfig/network-scripts +LS=/bin/ls + +get_device() { + if [ ! -d $NETWORKDIR ] ; then + $ECHO "** $NETWORKDIR not found" + $ECHO "** Quitting" + exit 1 + fi + + cd $NETWORKDIR + interfaces=$($LS ifcfg-ppp* 2>/dev/null | egrep -v '(~|\.bak)$' | \ + egrep -v '(rpmsave|rpmorig|rpmnew)' | sed 's/^ifcfg-//g') + + for i in $interfaces ; do + test -f ifcfg-$i && . ifcfg-$i 2>/dev/null + if [ "$TYPE" = "xDSL" ] ; then + CONFIG=$NETWORKDIR/ifcfg-$i + break + fi + done +} + +# Set to "C" locale so we can parse messages from commands +LANG=C +export LANG + +# Must be root +if test "`/usr/bin/id -u`" != 0 ; then + echo "$0: You must be root to run this script" >& 2 + exit 1 +fi + +if test "$SETSID" != "" -a ! -x "$SETSID"; then + SETSID="" +fi + +USER="" +ETH="" + +# Sort out command-line arguments +case "$#" in + 1) + CONFIG="$1" + ;; + 3) + CONFIG="$3" + ;; +esac + +if [ -z "$CONFIG" ] ; then + get_device + [ -z "$CONFIG" ] && CONFIG=/etc/ppp/pppoe.conf +fi + +if test ! -f "$CONFIG" -o ! -r "$CONFIG" ; then + echo "$0: Cannot read configuration file '$CONFIG'" >& 2 + exit 1 +fi + +export CONFIG +. $CONFIG + +DEVNAME="$DEVICE" +PPPOE_PIDFILE="$PIDFILE.pppoe" +PPPD_PIDFILE="$PIDFILE.pppd" + +if [ "$CONFIG" != "/etc/ppp/pppoe.conf" ] ; then + DEVNAME=`basename $CONFIG | sed 's/^ifcfg-//g'` +fi + +if [ -n "$BR2684DEV" ]; then + [ -z "$ETH" ] && ETH="nas$BR2684DEV" + modprobe br2684 > /dev/null 2>&1 +fi + +# Check for command-line overriding of ETH and USER +case "$#" in + 2|3) + ETH="$1" + USER="$2" + ;; +esac + +# Check that config file is sane +if test "$USER" = "" ; then + echo "$0: Check '$CONFIG' -- no setting for USER" >& 2 + exit 1 +fi +if test "`basename \"$LINUX_PLUGIN\"`" = "pppoatm.so" ; then + if test "$VCI" = "" ; then + echo "$0: Check '$CONFIG' -- no setting for VCI" >& 2 + exit 1 + fi + if test "$VPI" = "" ; then + echo "$0: Check '$CONFIG' -- no setting for VPI" >& 2 + exit 1 + fi +else + if test "$ETH" = "" ; then + echo "$0: Check '$CONFIG' -- no setting for ETH" >& 2 + exit 1 + fi +fi + +PPPD_PID=0 + +# Catch common error +if test "$DEBUG" = "1" ; then + echo "*** If you want to use DEBUG, invoke pppoe-start, not pppoe-connect." + exit 1 +fi + +if test "$DEBUG" != "" ; then + if test "$LINUX_PLUGIN" != "" ; then + echo "Cannot use DEBUG mode and LINUX_PLUGIN at the same time." + echo "Kernel-mode PPPoE is experimental and unsupported." + exit 1 + fi + echo "* The following section identifies your Ethernet interface" >> $DEBUG + echo "* and user name. Some ISP's need 'username'; others" >> $DEBUG + echo "* need 'username@isp.com'. Try both" >> $DEBUG + echo "ETH=$ETH; USER=$USER" >> $DEBUG + echo "---------------------------------------------" >> $DEBUG +fi + +# MTU of Ethernet card attached to modem MUST be 1500. This apparently +# fails on some *BSD's, so we'll only do it under Linux + +if test `uname -s` = Linux ; then + $IP link set $ETH up mtu 1500 + # For 2.4 kernels. Will fail on 2.2.x, but who cares? + modprobe ppp_generic > /dev/null 2>&1 + modprobe ppp_async > /dev/null 2>&1 + modprobe ppp_synctty > /dev/null 2>&1 + if test -n "$LINUX_PLUGIN" ; then + modprobe pppox > /dev/null 2>&1 + modprobe pppoe > /dev/null 2>&1 + fi +fi + +if test "$SYNCHRONOUS" = "yes" ; then + PPPOE_SYNC=-s + PPPD_SYNC=sync + # Increase the chances of it working on Linux... + if test `uname -s` = Linux ; then + modprobe n_hdlc > /dev/null 2>&1 + fi +else + PPPOE_SYNC="" + PPPD_SYNC="" +fi + +if test -n "$ACNAME" ; then + ACNAME="-C $ACNAME" +fi + +if test -n "$SERVICENAME" ; then + SERVICENAMEOPT="-S $SERVICENAME" +else + SERVICENAMEOPT="" +fi + +if test "$CLAMPMSS" = "no" ; then + CLAMPMSS="" +else + CLAMPMSS="-m $CLAMPMSS" +fi + +# If DNSTYPE is SERVER, we must use "usepeerdns" option to pppd. +if test "$DNSTYPE" = "SERVER" ; then + PEERDNS=yes + USEPEERDNS=yes +fi + +if test "$PEERDNS" = "yes" ; then + PEERDNS="usepeerdns" +else + PEERDNS="" +fi + +# Backward config file compatibility -- PEERDNS used to be USEPEERDNS +if test "$USEPEERDNS" = "yes" ; then + PEERDNS="usepeerdns" +fi +if test "$USEPEERDNS" = "no" ; then + PEERDNS="" +fi + +if [ -z "$DEVICE" ] ; then + IPPARAM="" + LINKNAME="" +else + IPPARAM="ipparam ${DEVNAME}" + LINKNAME="linkname ${DEVICE}" +fi + +[ -z "$MTU" ] && MTU="1492" +[ -z "$MRU" ] && MRU="1492" + +# Backward config file compatibility +if test "$DEMAND" = "" ; then + DEMAND=no +fi + +if test "$DEMAND" = "no" ; then + DEMAND="" +else + [ -z "$IPADDR" ] && IPADDR=10.112.112.112 + [ -z "$REMIP" ] && REMIP=10.112.112.113 + + DEMAND="demand persist idle $CONNECT_TIMEOUT $IPADDR:$REMIP ipcp-accept-remote ipcp-accept-local noipdefault ktune" + # The plugin doesn't need (and may not _accept_) the 'connect' option + if [ -z "$LINUX_PLUGIN" ]; then + DEMAND="$DEMAND connect true" + fi +fi + +case "$FIREWALL" in + STANDALONE) + . /etc/ppp/firewall-standalone + ;; + MASQUERADE) + . /etc/ppp/firewall-masq + ;; +esac + +# If we're using kernel-mode PPPoE on Linux... +if test "`basename \"$LINUX_PLUGIN\"`" = "rp-pppoe.so" ; then + PLUGIN_OPTS="plugin $LINUX_PLUGIN nic-$ETH" + if test -n "$SERVICENAME" ; then + PLUGIN_OPTS="$PLUGIN_OPTS rp_pppoe_service $SERVICENAME" + fi + modprobe pppoe > /dev/null 2>&1 +fi +# If we're using kernel-mode PPPoATM on Linux... +if test "`basename \"$LINUX_PLUGIN\"`" = "pppoatm.so" ; then + PLUGIN_OPTS="plugin $LINUX_PLUGIN" + + # Interface name MUST BE LAST!! + PLUGIN_OPTS="$PLUGIN_OPTS $VPI.$VCI" + modprobe pppoatm > /dev/null 2>&1 +fi +if test "$DEFROUTE" != "no" ; then + DEFAULTROUTE="defaultroute" + # pppd will no longer delete an existing default route + # so we have to help it out a little here. + DEFRT=$(ip route list match 0/0) + [ -n "${DEFRT}" ] && echo "$DEFRT" > /etc/default-routes + echo "$DEFRT" | while read spec; do + ip route del $spec; + done +else + DEFAULTROUTE="" +fi + +# Standard PPP options we always use +PPP_STD_OPTIONS="$IPPARAM $LINKNAME $PLUGIN_OPTS noipdefault noauth default-asyncmap $DEFAULTROUTE hide-password nodetach $PEERDNS mtu $MTU mru $MRU noaccomp nodeflate nopcomp novj novjccomp user $USER lcp-echo-interval $LCP_INTERVAL lcp-echo-failure $LCP_FAILURE $PPPD_EXTRA" + +# PPPoE invocation +PPPOE_CMD="$PPPOE -p $PPPOE_PIDFILE -I $ETH -T $PPPOE_TIMEOUT -U $PPPOE_SYNC $CLAMPMSS $ACNAME $SERVICENAMEOPT $PPPOE_EXTRA" +if test "$DEBUG" != "" ; then + if test "$DEMAND" != "" ; then + echo "(Turning off DEMAND for debugging purposes)" + DEMAND="" + fi + echo "* The following section shows the pppd command we will invoke" >> $DEBUG + echo "pppd invocation" >> $DEBUG + echo "$SETSID $PPPD pty '$PPPOE_CMD' $PPP_STD_OPTIONS $PPPD_SYNC debug" >> $DEBUG + echo "---------------------------------------------" >> $DEBUG + $SETSID $PPPD pty "$PPPOE_CMD -D $DEBUG-0" \ + $PPP_STD_OPTIONS \ + $PPPD_SYNC \ + debug >> $DEBUG 2>&1 + echo "---------------------------------------------" >> $DEBUG + echo "* The following section is an extract from your log." >> $DEBUG + echo "* Look for error messages from pppd, such as" >> $DEBUG + echo "* a lack of kernel support for PPP, authentication failure" >> $DEBUG + echo "* etc." >> $DEBUG + if test -f "/var/log/messages" ; then + echo "Extract from /var/log/messages" >> $DEBUG + grep 'ppp' /var/log/messages | tail -150 >> $DEBUG + elif test -f "/var/adm/messages"; then + echo "Extract from /var/adm/messages" >> $DEBUG + grep 'ppp' /var/adm/messages | tail -150 >> $DEBUG + else + echo "Can't find messages file (looked for /var/{log,adm}/messages" >> $DEBUG + fi + date >> $DEBUG + echo "---------------------------------------------" >> $DEBUG + echo "* The following section is a dump of the packets" >> $DEBUG + echo "* sent and received by rp-pppoe. If you don't see" >> $DEBUG + echo "* any output, it's an Ethernet driver problem. If you only" >> $DEBUG + echo "* see three PADI packets and nothing else, check your cables" >> $DEBUG + echo "* and modem. Make sure the modem lights flash when you try" >> $DEBUG + echo "* to connect. Check that your Ethernet card is in" >> $DEBUG + echo "* half-duplex, 10Mb/s mode. If all else fails," >> $DEBUG + echo "* try using pppoe-sniff." >> $DEBUG + echo "rp-pppoe debugging dump" >> $DEBUG + cat $DEBUG-0 >> $DEBUG + rm -f $DEBUG-0 + for i in 1 2 3 4 5 6 7 8 9 10 ; do + echo "" + echo "" + echo "" + done + echo "*** Finished debugging run. Please review the file" + echo "*** '$DEBUG' and try to" + echo "*** figure out what is going on." + echo "***" + echo "*** Unfortunately, we can NO LONGER accept debugging" + echo "*** output for analysis. Please do not send this to" + echo "*** Roaring Penguin; it is too time-consuming for" + echo "*** us to deal with all the analyses we have been sent." + exit 0 +fi + +echo $$ > $PIDFILE + +while [ true ] ; do + if [ "${DEFROUTE}" != "no" ] ; then + DEFRT=$(ip route list match 0/0) + [ -n "${DEFRT}" ] && echo "$DEFRT" > /etc/default-routes + echo "$DEFRT" | while read spec; do + ip route del $spec; + done + fi + + if test "$BR2684DEV" != ""; then + $BR2684CTL -b -c $BR2684DEV -a $VPI.$VCI + ip link set $ETH up + fi + if test "$OVERRIDE_PPPD_COMMAND" != "" ; then + $SETSID $OVERRIDE_PPPD_COMMAND & + echo "$!" > $PPPD_PIDFILE + elif test "$LINUX_PLUGIN" != "" ; then + $SETSID $PPPD $PPP_STD_OPTIONS $DEMAND & + echo "$!" > $PPPD_PIDFILE + else + $SETSID $PPPD pty "$PPPOE_CMD" \ + $PPP_STD_OPTIONS \ + $DEMAND \ + $PPPD_SYNC & + echo "$!" > $PPPD_PIDFILE + fi + wait + if test "$BR2684DEV" != ""; then + kill `cat /var/run/nas$BR2684DEV.pid` + rm /var/run/nas$BR2684DEV.pid + fi + + if test "$RETRY_ON_FAILURE" = "no" ; then + exit + fi + + # Run /etc/ppp/adsl-lost if it exists + test -x /etc/ppp/adsl-lost && /etc/ppp/adsl-lost + + # Re-establish the connection + $LOGGER -p daemon.notice "PPPoE connection lost; attempting re-connection." + + # Wait a bit in case a problem causes tons of log messages :-) + sleep 5 +done diff --git a/pppoe-server.service b/pppoe-server.service new file mode 100644 index 0000000..53f8a55 --- /dev/null +++ b/pppoe-server.service @@ -0,0 +1,9 @@ +[Unit] +Description=PPPoE Server. +After=syslog.target + +[Service] +ExecStart=/sbin/pppoe-server + +[Install] +WantedBy=multi-user.target diff --git a/pppoe-setup b/pppoe-setup new file mode 100755 index 0000000..ee7a48f --- /dev/null +++ b/pppoe-setup @@ -0,0 +1,492 @@ +#! /bin/bash +#*********************************************************************** +# +# pppoe-setup +# +# All-purpose slicing/dicing shell script to configure rp-pppoe. +# +# Copyright (C) 2000 Roaring Penguin Software Inc. +# +# $Id$ +#*********************************************************************** + +# Paths to programs and config files +IP=/sbin/ip +PPPD=/usr/sbin/pppd +PPPOE=/sbin/pppoe +ECHO=/bin/echo +LS=/bin/ls +ID=/usr/bin/id +NETWORKDIR=/etc/sysconfig/network-scripts +PAPFILE=/etc/ppp/chap-secrets +CHAPFILE=/etc/ppp/pap-secrets +RESOLVFILE=/etc/resolv.conf + +# Set to "C" locale so we can parse messages from commands +LANG=C +export LANG + +# Protect created files +umask 077 + +copy() { + cp $1 $2 + if [ "$?" != 0 ] ; then + $ECHO "*** Error copying $1 to $2" + $ECHO "*** Quitting." + exit 1 + fi +} + +get_device() { + if [ ! -d $NETWORKDIR ] ; then + $ECHO "** $NETWORKDIR not found" + $ECHO "** Quitting" + exit 1 + fi + + cd $NETWORKDIR + interfaces=$($LS ifcfg-ppp* 2>/dev/null | egrep -v '(~|\.bak)$' | \ + egrep -v '(rpmsave|rpmorig|rpmnew)' | sed 's/^ifcfg-//g') + + for i in $interfaces ; do + test -f ifcfg-$i && . ifcfg-$i 2>/dev/null + if [ "$TYPE" = "xDSL" ] ; then + device_count=$[$device_count+1] + devices="$devices $DEVICE" + fi + done +} + +clear_env() { + unset USERCTL BOOTPROTO NAME DEVICE TYPE ONBOOT FIREWALL PING \ + PPPOE_TIMEOUT LCP_FAILURE LCP_INTERVAL CLAMPMSS CONNECT_POLL \ + CONNECT_TIMEOUT DEFROUTE SYNCHRONOUS ETH PROVIDER USER PEERDNS \ + DNS1 DNS2 +} + + +clear + +$ECHO "Welcome to the PPPoE client setup. First, I will run some checks on" +$ECHO "your system to make sure the PPPoE client is installed properly..." +$ECHO "" + +# Must be root +if [ "`$ID -u`" != 0 ] ; then + $ECHO "$0: Sorry, you must be root to run this script" + exit 1 +fi + +# Must have pppd +if [ ! -x $PPPD ] ; then + $ECHO "Oops, I can't execute the program '$PPPD'. You" + $ECHO "must install the PPP software suite, version 2.3.10 or later." + exit 1 +fi + +# get the DSL config files in /etc/sysconfig/network-scripts +devices="" +device_count=0 +get_device + +if [ $device_count -gt 0 ] ; then + $ECHO "The following DSL config was found on your system:" + $ECHO "" + $ECHO " Device: Name:" + + for i in $devices ; do + . $NETWORKDIR/ifcfg-$i + $ECHO " $i $NAME" + done + + $ECHO "" + + for i in $devices ; do + default_device=$i + break + done + + clear_env + + while [ true ] ; do + $ECHO "Please enter the device if you want to configure the present DSL config" + $ECHO -n "(default $default_device) or enter 'n' if you want to create a new one: " + + read dev + + if [ "$dev" = "n" ] ; then + i=0 + while true; do + found=0 + for j in $interfaces ; do + if [ "$j" = "ppp$i" ] ; then + found=1 + break + fi + done + if [ $found -eq 0 ] ; then + dsl_device="ppp$i" + break + fi + i=$[$i+1] + done + if [ -z "$dsl_device" ]; then + dev=0 + while [ -e $NETWORKDIR/ifcfg-ppp$dev ]; do + dev=`expr $dev + 1` + done + dsl_device="ppp$dev" + fi + break + else + if [ -n "$default_device" ] ; then + if [ -n "$dev" ] ; then + dsl_device="$dev" + else + dsl_device="$default_device" + fi + fi + for i in $devices ; do + [ "$dsl_device" = "$i" ] && break + done + if [ "$dsl_device" = "$i" ] ; then + break + fi + $ECHO "Device '$dsl_device' is not found in the list, please choose the correct one" + fi + done +else + dev=0 + while [ -e $NETWORKDIR/ifcfg-ppp$dev ]; do + dev=`expr $dev + 1` + done + dsl_device="ppp$dev" +fi + +CONFIG="$NETWORKDIR/ifcfg-$dsl_device" +DEVICE=$dsl_device +export CONFIG + +[ "$dev" = "n" ] || . $CONFIG 2>/dev/null +[ "$DEMAND" = "" ] && DEMAND=no + +while [ true ] ; do + $ECHO "" + $ECHO "LOGIN NAME" + $ECHO "" + if [ -z "$USER" ] ; then + $ECHO -n "Enter your Login Name: " + else + $ECHO -n "Enter your Login Name (default $USER): " + fi + + read U + + if [ -z "$U" ] ; then + if [ -z "$USER" ] ; then + continue + fi + else + USER="$U" + fi + + + # Under Linux, "fix" the default interface if eth1 is not available + [ -n "$ETH" ] || ETH=eth0 + if test `uname -s` = "Linux" ; then + $IP link show $ETH > /dev/null 2>&1 || ETH=eth0 + fi + $ECHO "" + $ECHO "INTERFACE" + $ECHO "" + $ECHO "Enter the Ethernet interface connected to the PPPoE modem" + $ECHO "For Solaris, this is likely to be something like /dev/hme0." + $ECHO "For Linux, it will be ethX, where 'X' is a number." + $ECHO -n "(default $ETH): " + read E + + if [ -n "$E" ] ; then + ETH="$E" + fi + + $ECHO "" + $ECHO "Do you want the link to come up on demand, or stay up continuously?" + $ECHO "If you want it to come up on demand, enter the idle time in seconds" + $ECHO "after which the link should be dropped. If you want the link to" + $ECHO "stay up permanently, enter 'no' (two letters, lower-case.)" + $ECHO "NOTE: Demand-activated links do not interact well with dynamic IP" + $ECHO "addresses. You may have some problems with demand-activated links." + $ECHO -n "Enter the demand value (default $DEMAND): " + read D + if [ -n "$D" ] ; then + DEMAND="$D" + fi + + $ECHO "" + $ECHO "DNS" + $ECHO "" + $ECHO "Please enter the IP address of your ISP's primary DNS server." + $ECHO "If your ISP claims that 'the server will provide dynamic DNS addresses'," + $ECHO "enter 'server' (all lower-case) here." + $ECHO "If you just press enter, I will assume you know what you are" + $ECHO "doing and not modify your DNS setup." + $ECHO -n "Enter the DNS information here: " + + read DNS1 + + + if [ -n "$DNS1" ] ; then + if [ "$DNS1" != "server" ] ; then + $ECHO "Please enter the IP address of your ISP's secondary DNS server." + $ECHO "If you just press enter, I will assume there is only one DNS server." + $ECHO -n "Enter the secondary DNS server address here: " + read DNS2 + fi + fi + + while [ true ] ; do + $ECHO "" + $ECHO "PASSWORD" + $ECHO "" + stty -echo + $ECHO -n "Please enter your Password: " + read PWD1 + $ECHO "" + $ECHO -n "Please re-enter your Password: " + read PWD2 + $ECHO "" + stty echo + if [ "$PWD1" = "$PWD2" ] ; then + break + fi + + $ECHO -n "Sorry, the passwords do not match. Try again? (y/n)" + read ANS + case "$ANS" in + N|No|NO|Non|n|no|non) + $ECHO "OK, quitting. Bye." + exit 1 + esac + done + + # Usercontrol + $ECHO "" + $ECHO "USERCTRL" + $ECHO + $ECHO "Please enter 'yes' (three letters, lower-case.) if you want to allow" + $ECHO -n "normal user to start or stop DSL connection (default yes): " + + read USERCTL + + if [ -z "$USERCTL" ] ; then + USERCTL="yes" + fi + + # Firewalling + $ECHO "" + $ECHO "FIREWALLING" + $ECHO "" + if test `uname -s` != "Linux" ; then + $ECHO "Sorry, firewalling is only supported under Linux. Consult" + $ECHO "your operating system manuals for details on setting up" + $ECHO "packet filters for your system." + FIREWALL=NONE + else + $ECHO "Please choose the firewall rules to use. Note that these rules are" + $ECHO "very basic. You are strongly encouraged to use a more sophisticated" + $ECHO "firewall setup; however, these will provide basic security. If you" + $ECHO "are running any servers on your machine, you must choose 'NONE' and" + $ECHO "set up firewalling yourself. Otherwise, the firewall rules will deny" + $ECHO "access to all standard servers like Web, e-mail, ftp, etc. If you" + $ECHO "are using SSH, the rules will block outgoing SSH connections which" + $ECHO "allocate a privileged source port." + $ECHO "" + while [ true ] ; do + $ECHO "The firewall choices are:" + $ECHO "0 - NONE: This script will not set any firewall rules. You are responsible" + $ECHO " for ensuring the security of your machine. You are STRONGLY" + $ECHO " recommended to use some kind of firewall rules." + $ECHO "1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation" + $ECHO "2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway" + $ECHO " for a LAN" + $ECHO -n "Choose a type of firewall (0-2): " + read a + if [ "$a" = 0 -o "$a" = 1 -o "$a" = 2 ] ; then + break + fi + $ECHO "Please enter a number from 0 to 2" + done + + case "$a" in + 0) + FIREWALL=NONE + ;; + 1) + FIREWALL=STANDALONE + ;; + 2) + FIREWALL=MASQUERADE + ;; + esac + fi + + $ECHO "" + $ECHO "Start this connection at boot time" + $ECHO "" + $ECHO "Do you want to start this connection at boot time?" + $ECHO -n "Please enter no or yes (default no):" + read boot + case "$boot" in + yes|YES) ONBOOT="yes";; + *) ONBOOT="no";; + esac + + $ECHO "" + $ECHO "** Summary of what you entered **" + $ECHO "" + $ECHO "Ethernet Interface: $ETH" + $ECHO "User name: $USER" + if [ "$DEMAND" = "no" ] ; then + $ECHO "Activate-on-demand: No" + else + $ECHO "Activate-on-demand: Yes; idle timeout = $DEMAND seconds" + fi + + if [ -n "$DNS1" ] ; then + if [ "$DNS1" = "server" ] ; then + $ECHO "DNS addresses: Supplied by ISP's server" + else + $ECHO "Primary DNS: $DNS1" + if [ -n "$DNS2" ] ; then + $ECHO "Secondary DNS: $DNS2" + fi + fi + else + $ECHO "DNS: Do not adjust" + fi + $ECHO "Firewalling: $FIREWALL" + $ECHO "User Control: $USERCTL" + while [ true ] ; do + $ECHO -n 'Accept these settings and adjust configuration files (y/n)? ' + read ANS + case "ANS" in + Y|y|yes|Yes|oui|Oui) + ANS=y + ;; + N|n|no|No|non|Non) + ANS=n + ;; + esac + if [ "$ANS" = "y" -o "$ANS" = "n" ] ; then + break + fi + done + if [ "$ANS" = "y" ] ; then + break + fi +done + +# Adjust configuration files. First to $CONFIG + +$ECHO "Adjusting $CONFIG" + +test -f $CONFIG && copy $CONFIG $CONFIG.bak +if [ "$DNS1" = "server" ] ; then + DNS1="" + DNS2="" + PEERDNS=yes +else + PEERDNS=no +fi + +# Where is pppd likely to put its pid? +if [ -d /var/run ] ; then + VARRUN=/var/run +else + VARRUN=/etc/ppp +fi + +$ECHO "USERCTL=$USERCTL" >$CONFIG +$ECHO "BOOTPROTO=dialup" >>$CONFIG +[ -z "$NAME" ] && NAME="DSL$DEVICE" +$ECHO "NAME=DSL$DEVICE" >>$CONFIG +$ECHO "DEVICE=$DEVICE" >>$CONFIG +$ECHO "TYPE=xDSL" >>$CONFIG +$ECHO "ONBOOT=$ONBOOT" >>$CONFIG +$ECHO "PIDFILE=/var/run/pppoe-adsl.pid" >>$CONFIG +$ECHO "FIREWALL=$FIREWALL" >>$CONFIG +[ -z "$PING" ] && PING="." +$ECHO "PING=$PING" >>$CONFIG +[ -z "$PPPOE_TIMEOUT" ] && PPPOE_TIMEOUT=80 +$ECHO "PPPOE_TIMEOUT=$PPPOE_TIMEOUT" >>$CONFIG +[ -z "$LCP_FAILURE" ] && LCP_FAILURE=3 +$ECHO "LCP_FAILURE=$LCP_FAILURE" >>$CONFIG +[ -z "$LCP_INTERVAL" ] && LCP_INTERVAL=20 +$ECHO "LCP_INTERVAL=$LCP_INTERVAL" >>$CONFIG +[ -z "$CLAMPMSS" ] && CLAMPMSS=1412 +$ECHO "CLAMPMSS=$CLAMPMSS" >>$CONFIG +[ -z "$CONNECT_POLL" ] && CONNECT_POLL=6 +$ECHO "CONNECT_POLL=$CONNECT_POLL" >>$CONFIG +[ -z "$CONNECT_TIMEOUT" ] && CONNECT_TIMEOUT=60 +$ECHO "CONNECT_TIMEOUT=$CONNECT_TIMEOUT" >>$CONFIG +[ -z "$DEFROUTE" ] && DEFROUTE=yes +$ECHO "DEFROUTE=$DEFROUTE" >>$CONFIG +[ -z "$SYNCHRONOUS" ] && SYNCHRONOUS=no +$ECHO "SYNCHRONOUS=$SYNCHRONOUS" >>$CONFIG +$ECHO "ETH=$ETH" >> $CONFIG +[ -z "$PROVIDER" ] && PROVIDER="$NAME" +$ECHO "PROVIDER=$PROVIDER" >>$CONFIG +$ECHO "USER=$USER" >>$CONFIG +$ECHO "PEERDNS=$PEERDNS" >>$CONFIG +$ECHO "DEMAND=$DEMAND" >>$CONFIG + +if [ -n "$DNS1" ] ; then + if [ "$DNS1" != "server" ] ; then + $ECHO "Adjusting $RESOLVFILE" + if [ -r $RESOLVFILE ] ; then + grep -s "MADE-BY-RP-PPPOE" $RESOLVFILE > /dev/null 2>&1 + if [ "$?" != 0 ] ; then + $ECHO " (But first backing it up to $RESOLVFILE.bak)" + test -f $$RESOLVFILE && copy $RESOLVFILE $RESOLVFILE.bak + fi + fi + $ECHO "# MADE-BY-RP-PPPOE" > $RESOLVFILE + $ECHO "nameserver $DNS1" >> $RESOLVFILE + if [ -n "$DNS2" ] ; then + $ECHO "nameserver $DNS2" >> $RESOLVFILE + fi + fi +fi + +$ECHO "Adjusting $PAPFILE and $CHAPFILE" +if [ -r $PAPFILE ] ; then + $ECHO " (But first backing it up to $PAPFILE.bak)" + test -f $PAPFILE && copy $PAPFILE $PAPFILE.bak +else + cp /dev/null $PAPFILE.bak +fi +if [ -r $CHAPFILE ] ; then + $ECHO " (But first backing it up to $CHAPFILE.bak)" + test -f $CHAPFILE && copy $CHAPFILE $CHAPFILE.bak +else + cp /dev/null $CHAPFILE.bak +fi + +egrep -v "^$USER|^\"$USER\"" $PAPFILE.bak > $PAPFILE +$ECHO "\"$USER\" * \"$PWD1\"" >> $PAPFILE +egrep -v "^$USER|^\"$USER\"" $CHAPFILE.bak > $CHAPFILE +$ECHO "\"$USER\" * \"$PWD1\"" >> $CHAPFILE + +$ECHO "" +$ECHO "" +$ECHO "" +$ECHO "Congratulations, it should be all set up!" +$ECHO "" +$ECHO "Type '/sbin/ifup $dsl_device' to bring up your xDSL link and '/sbin/ifdown $dsl_device'" +$ECHO "to bring it down." +$ECHO "Type '/sbin/pppoe-status $NETWORKDIR/ifcfg-$dsl_device'" +$ECHO "to see the link status." +$ECHO "" + +exit 0 diff --git a/pppoe-start b/pppoe-start new file mode 100755 index 0000000..ef69a33 --- /dev/null +++ b/pppoe-start @@ -0,0 +1,228 @@ +#! /bin/bash +# Generated automatically from pppoe-start.in by configure. +#*********************************************************************** +# +# pppoe-start +# +# Shell script to bring up an PPPoE connection +# +# Copyright (C) 2000 Roaring Penguin Software Inc. +# +# $Id$ +# +# This file may be distributed under the terms of the GNU General +# Public License. +# +# Usage: pppoe-start [config_file] +# pppoe-start interface user [config_file] +# Second form overrides USER and ETH from config file. +# If config_file is omitted, defaults to /etc/ppp/pppoe.conf +# +#*********************************************************************** + +# From AUTOCONF +prefix=/usr +exec_prefix=/usr + +# Paths to programs +CONNECT=/sbin/pppoe-connect +ECHO=/bin/echo +IP=/sbin/ip +LS=/bin/ls +NETWORKDIR=/etc/sysconfig/network-scripts + +get_device() { + if [ ! -d $NETWORKDIR ] ; then + $ECHO "** $NETWORKDIR not found" + $ECHO "** Quitting" + exit 1 + fi + + cd $NETWORKDIR + interfaces=$($LS ifcfg-ppp* 2>/dev/null | egrep -v '(~|\.bak)$' | \ + egrep -v '(rpmsave|rpmorig|rpmnew)' | sed 's/^ifcfg-//g') + + for i in $interfaces ; do + test -f ifcfg-$i && . ifcfg-$i 2>/dev/null + if [ "$TYPE" = "xDSL" ] ; then + CONFIG=$NETWORKDIR/ifcfg-$i + break + fi + done +} + +# Set to "C" locale so we can parse messages from commands +LANG=C +export LANG + +# Defaults +USER="" +ETH="" +ME=`basename $0` + +# Must be root +if [ "`/usr/bin/id -u`" != 0 ] ; then + [ "$DEBUG" = "1" ] && $ECHO "$ME: You must be root to run this script" >& 2 + exit 1 +fi + +# Debugging +if [ "$DEBUG" = "1" ] ; then + $ECHO "*** Running in debug mode... please be patient..." + DEBUG=`mktemp -d /tmp/pppoe-debug-XXXXXXXX` + if [ $? -ne 0 ] ; then + $ECHO "Could not create directory $DEBUG... exiting" + exit 1 + fi + export DEBUG + DEBUG=$DEBUG/pppoe-debug.txt + + # Initial debug output + $ECHO "---------------------------------------------" > $DEBUG + $ECHO "* The following section contains information about your system" >> $DEBUG + date >> $DEBUG + $ECHO "Output of uname -a" >> $DEBUG + uname -a >> $DEBUG + $ECHO "---------------------------------------------" >> $DEBUG + $ECHO "* The following section contains information about your network" >> $DEBUG + $ECHO "* interfaces. The one you chose for PPPoE should contain the words:" >> $DEBUG + $ECHO "* 'UP' and 'RUNNING'. If it does not, you probably have an Ethernet" >> $DEBUG + $ECHO "* driver problem." >> $DEBUG + $ECHO "Output of ip addr show" >> $DEBUG + $IP addr show >> $DEBUG + $ECHO "---------------------------------------------" >> $DEBUG + if [ "`uname -s`" = "Linux" ] ; then + $ECHO "* The following section contains information about kernel modules" >> $DEBUG + $ECHO "* If the module for your Ethernet card is 'tulip', you might" >> $DEBUG + $ECHO "* want to look for an updated version at http://www.scyld.com" >> $DEBUG + $ECHO "Output of lsmod" >> $DEBUG + lsmod >> $DEBUG + $ECHO "---------------------------------------------" >> $DEBUG + fi + $ECHO "* The following section lists your routing table." >> $DEBUG + $ECHO "* If you have an entry which starts with '0.0.0.0', you probably" >> $DEBUG + $ECHO "* have defined a default route and gateway, and pppd will" >> $DEBUG + $ECHO "* not create a default route using your ISP. Try getting" >> $DEBUG + $ECHO "* rid of this route." >> $DEBUG + $ECHO "Output of netstat -n -r" >> $DEBUG + netstat -n -r >> $DEBUG + $ECHO "---------------------------------------------" >> $DEBUG + $ECHO "Contents of /etc/resolv.conf" >> $DEBUG + $ECHO "* The following section lists DNS setup." >> $DEBUG + $ECHO "* If you can browse by IP address, but not name, suspect" >> $DEBUG + $ECHO "* a DNS problem." >> $DEBUG + cat /etc/resolv.conf >> $DEBUG + $ECHO "---------------------------------------------" >> $DEBUG + $ECHO "* The following section lists /etc/ppp/options." >> $DEBUG + $ECHO "* You should have NOTHING in that file." >> $DEBUG + $ECHO "Contents of /etc/ppp/options" >> $DEBUG + cat /etc/ppp/options >> $DEBUG 2>/dev/null + $ECHO "---------------------------------------------" >> $DEBUG + DEBUG="1" +fi + +# Sort out command-line arguments +case "$#" in + 1) + CONFIG="$1" + ;; + 3) + CONFIG="$3" + ;; +esac + +if [ -z "$CONFIG" ] ; then + get_device + [ -z "$CONFIG" ] && CONFIG=/etc/ppp/pppoe.conf +fi + +if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then + [ "$DEBUG" = "1" ] && $ECHO "$ME: Cannot read configuration file '$CONFIG'" >& 2 + exit 1 +fi + +export CONFIG +. $CONFIG + +# Check for command-line overriding of ETH and USER +case "$#" in + 2|3) + ETH="$1" + USER="$2" + ;; +esac + +# Check for pidfile +if [ -r "$PIDFILE" ] ; then + PID=`cat "$PIDFILE"` + # Check if still running + kill -0 $PID > /dev/null 2>&1 + if [ $? = 0 ] ; then + [ "$DEBUG" = "1" ] && $ECHO "$ME: There already seems to be an PPPoE connection up (PID $PID)" >& 2 + exit 1 + fi + # Delete bogus PIDFILE + rm -f "$PIDFILE" "$PIDFILE.pppd" "$PIDFILE.pppoe" "$PIDFILE.start" +fi + +echo $$ > $PIDFILE.start + +# Start the connection in the background unless we're debugging +if [ "$DEBUG" != "" ] ; then + $CONNECT "$@" + exit 0 +fi + +$CONNECT "$@" > /dev/null 2>&1 & +CONNECT_PID=$! + +if [ "$CONNECT_TIMEOUT" = "" -o "$CONNECT_TIMEOUT" = 0 ] ; then + exit 0 +fi + +# Don't monitor connection if dial-on-demand +if [ "$DEMAND" != "" -a "$DEMAND" != "no" ] ; then + exit 0 +fi + +# Monitor connection +TIME=0 +while [ true ] ; do + /sbin/pppoe-status $CONFIG > /dev/null 2>&1 + + # Looks like the interface came up + if [ $? = 0 ] ; then + # Print newline if standard input is a TTY + [ "$DEBUG" = "1" ] && tty -s && $ECHO " Connected!" + exit 0 + fi + + if test -n "$FORCEPING" ; then + [ "$DEBUG" = "1" ] && $ECHO -n "$FORCEPING" + else + [ "$DEBUG" = "1" ] && tty -s && $ECHO -n "$PING" + fi + sleep $CONNECT_POLL + TIME=`expr $TIME + $CONNECT_POLL` + if [ $TIME -gt $CONNECT_TIMEOUT ] ; then + break + fi +done + +[ "$DEBUG" = "1" ] && $ECHO "TIMED OUT" >& 2 +# Timed out! Kill the pppoe-connect process and quit +kill $CONNECT_PID > /dev/null 2>&1 + +# Clean up PIDFILE(s) +rm -f "$PIDFILE" "$PIDFILE.pppd" "$PIDFILE.pppoe" "$PIDFILE.start" + +# add old default gw back +if [ -s /etc/default-routes ] ; then + while read spec; do + /sbin/ip route add $spec + done < /etc/default-routes + rm -f /etc/default-routes +fi + +exit 1 + diff --git a/pppoe-status b/pppoe-status new file mode 100755 index 0000000..3b3d243 --- /dev/null +++ b/pppoe-status @@ -0,0 +1,104 @@ +#! /bin/bash +#*********************************************************************** +# +# pppoe-status +# +# Shell script to report on status of PPPoE connection +# +# Copyright (C) 2000-2001 Roaring Penguin Software Inc. +# +# $Id$ +# +# This file may be distributed under the terms of the GNU General +# Public License. +# +# LIC: GPL +# +# Usage: pppoe-status [config_file] +# If config_file is omitted, defaults to /etc/ppp/pppoe.conf +# +#*********************************************************************** + +# Defaults +LS=/bin/ls +NETWORKDIR=/etc/sysconfig/network-scripts + +get_device() { + if [ ! -d $NETWORKDIR ] ; then + $ECHO "** $NETWORKDIR not found" + $ECHO "** Quitting" + exit 1 + fi + + cd $NETWORKDIR + interfaces=$($LS ifcfg-ppp* 2>/dev/null | egrep -v '(~|\.bak)$' | \ + egrep -v '(rpmsave|rpmorig|rpmnew)' | sed 's/^ifcfg-//g') + + for i in $interfaces ; do + test -f ifcfg-$i && . ifcfg-$i 2>/dev/null + if [ "$TYPE" = "xDSL" ] ; then + CONFIG=$NETWORKDIR/ifcfg-$i + break + fi + done +} + +CONFIG="$1" +if [ -z "$CONFIG" ] ; then + get_device + [ -z "$CONFIG" ] && CONFIG=/etc/ppp/pppoe.conf +fi + +if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then + echo "$0: Cannot read configuration file '$CONFIG'" >& 2 + exit 1 +fi + +. $CONFIG + +PPPOE_PIDFILE="$PIDFILE.pppoe" +PPPD_PIDFILE="$PIDFILE.pppd" + +if [ "$DEMAND" != "no" ] ; then + echo "Note: You have enabled demand-connection; pppoe-status may be inaccurate." +fi + +# If no PPPOE_PIDFILE, connection is down, unless we're using the Linux plugin +if [ "$LINUX_PLUGIN" = "" ] ; then + if [ ! -r "$PPPOE_PIDFILE" ] ; then + echo "pppoe-status: Link is down (can't read pppoe PID file $PPPOE_PIDFILE)" + exit 1 + fi +fi + +# If no PPPD_PIDFILE, something fishy! +if [ ! -r "$PPPD_PIDFILE" ] ; then + echo "pppoe-status: Link is down (can't read pppd PID file $PPPD_PIDFILE)" + exit 1 +fi + +PPPD_PID=`cat "$PPPD_PIDFILE"` + +# Sigh. Some versions of pppd put PID files in /var/run; others put them +# in /etc/ppp. Since it's too messy to figure out what pppd does, we +# try both locations. +for i in /etc/ppp/ppp*.pid /var/run/ppp*.pid ; do + if [ -r $i ] ; then + PID=`cat $i` + if [ "$PID" = "$PPPD_PID" ] ; then + IF=`basename $i .pid` + netstat -rn | grep " ${IF}\$" > /dev/null + if [ "$?" != "0" ] ; then + echo "pppoe-status: Link is attached to $IF, but $IF is down" + exit 1 + fi + echo "pppoe-status: Link is up and running on interface $IF" + /sbin/ip addr show $IF + exit 0 + fi + fi +done + +echo "ppppoe-status: Link is down -- could not find interface corresponding to" +echo "pppd pid $PPPD_PID" +exit 1 diff --git a/pppoe-stop b/pppoe-stop new file mode 100755 index 0000000..a3c9f84 --- /dev/null +++ b/pppoe-stop @@ -0,0 +1,142 @@ +#! /bin/bash +# Generated automatically from pppoe-stop.in by configure. +#*********************************************************************** +# +# pppoe-stop +# +# Shell script to bring down an PPPoE connection +# +# Copyright (C) 2000 Roaring Penguin Software Inc. +# +# $Id$ +# +# This file may be distributed under the terms of the GNU General +# Public License. +# +# LIC: GPL +# +# Usage: pppoe-stop [config_file] +# If config_file is omitted, defaults to /etc/ppp/pppoe.conf +# +#*********************************************************************** + +export PATH=/sbin:/bin:/usr/sbin:/usr/bin + +LS=/bin/ls +NETWORKDIR=/etc/sysconfig/network-scripts + +# Set to "C" locale so we can parse messages from commands +LANG=C +export LANG + +get_device() { + if [ ! -d $NETWORKDIR ] ; then + $ECHO "** $NETWORKDIR not found" + $ECHO "** Quitting" + exit 1 + fi + + cd $NETWORKDIR + interfaces=$($LS ifcfg-ppp* 2>/dev/null | egrep -v '(~|\.bak)$' | \ + egrep -v '(rpmsave|rpmorig|rpmnew)' | sed 's/^ifcfg-//g') + + for i in $interfaces ; do + test -f ifcfg-$i && . ifcfg-$i 2>/dev/null + if [ "$TYPE" = "xDSL" ] ; then + CONFIG=$NETWORKDIR/ifcfg-$i + break + fi + done +} + +ME="`basename $0`" +LOGGER="/usr/bin/logger -t $ME" +CONFIG="$1" +if [ -z "$CONFIG" ] ; then + get_device + [ -z "$CONFIG" ] && CONFIG=/etc/ppp/pppoe.conf +fi + +if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then + [ "$DEBUG" = "1" ] && echo "$ME: Cannot read configuration file '$CONFIG'" >& 2 + exit 1 +fi + +export CONFIG +. $CONFIG + +PPPOE_PIDFILE="$PIDFILE.pppoe" +PPPD_PIDFILE="$PIDFILE.pppd" +STARTPID="$PIDFILE.start" + +# Backward config file compatibility +if test "$DEMAND" = "" ; then + DEMAND=no +fi + +# Ignore SIGTERM +trap "" 15 + +# Check for pidfile +if [ -r "$PIDFILE" ] ; then + PID=`cat $PIDFILE` + + # Check if still running + kill -0 $PID > /dev/null 2>&1 + if [ $? != 0 ] ; then + [ "$DEBUG" = "1" ] && echo "$ME: The pppoe-connect script (PID $PID) appears to have died" >& 2 + fi + + # Kill pppd, which should in turn kill pppoe + if [ -r "$PPPD_PIDFILE" ] ; then + PPPD_PID=`cat "$PPPD_PIDFILE"` + $LOGGER -p daemon.notice "Killing pppd" + [ "$DEBUG" = "1" ] && echo "Killing pppd ($PPPD_PID)" + kill $PPPD_PID > /dev/null 2>&1 + fi + + # Kill pppoe-start + PIDS=`cat $STARTPID` + kill -0 $PIDS > /dev/null 2>&1 + if [ $? = 0 ] ; then + $LOGGER -p daemon.notice "Killing pppoe-connect" + kill $PIDS > /dev/null 2>&1 + fi + + # Kill pppoe-connect + $LOGGER -p daemon.notice "Killing pppoe-connect" + [ "$DEBUG" = "1" ] && echo "Killing pppoe-connect ($PID)" + kill $PID > /dev/null 2>&1 + + # Kill pppd again, in case it's still hanging around + if [ -r "$PPPD_PIDFILE" ] ; then + PPPD_PID=`cat "$PPPD_PIDFILE"` + kill -9 $PPPD_PID > /dev/null 2>&1 || exit 1 + fi + + # Kill br2684ctl if necessary + if [ -n "$BR2684DEV" -a -r /var/run/nas$BR2684DEV.pid ]; then + PIDS=`cat /var/run/nas$BR2684DEV.pid` + kill -0 $PIDS > /dev/null 2>&1 + if [ $? = 0 ]; then + $LOGGER -p daemon.notice "Killing br2684ctl for nas$BR2684DEV" + kill $PIDS > /dev/null 2>&1 + fi + rm -f /var/run/nas$BR2684DEV.pid + fi + + rm -f "$PIDFILE" "$PPPD_PIDFILE" "$PPPOE_PIDFILE" "$STARTPID" +else + [ "$DEBUG" = "1" ] && echo "$ME: No PPPoE connection appears to be running" >&2 + exit 1 +fi + +# add old default gw back +if [ -s /etc/default-routes ] ; then + while read spec; do + /sbin/ip route add $spec + done < /etc/default-routes + rm -f /etc/default-routes +fi + +exit 0 diff --git a/rp-pppoe-3.11-ip-allocation.patch b/rp-pppoe-3.11-ip-allocation.patch new file mode 100644 index 0000000..4bc0215 --- /dev/null +++ b/rp-pppoe-3.11-ip-allocation.patch @@ -0,0 +1,119 @@ +diff -up rp-pppoe-3.11/man/pppoe-server.8.orig rp-pppoe-3.11/man/pppoe-server.8 +--- rp-pppoe-3.11/man/pppoe-server.8.orig 2012-08-17 20:31:25.000000000 +0200 ++++ rp-pppoe-3.11/man/pppoe-server.8 2012-08-20 12:32:45.008870731 +0200 +@@ -96,6 +96,11 @@ valid remote IP address to \fBpppd\fR. + of 10.67.15.1 is used. + + .TP ++.B \-D ++Delegate the allocation of IP addresses to \fBpppd\fR. If specified, no ++local and remote addresses passed to pppd. ++ ++.TP + .B \-N \fInum\fR + Allows at most \fInum\fR concurrent PPPoE sessions. If not specified, + the default is 64. +diff -up rp-pppoe-3.11/src/pppoe-server.c.orig rp-pppoe-3.11/src/pppoe-server.c +--- rp-pppoe-3.11/src/pppoe-server.c.orig 2012-08-17 20:31:25.000000000 +0200 ++++ rp-pppoe-3.11/src/pppoe-server.c 2012-08-20 12:34:25.348145846 +0200 +@@ -176,6 +176,9 @@ char PppoeOptions[SMALLBUF] = ""; + unsigned char LocalIP[IPV4ALEN] = {10, 0, 0, 1}; /* Counter optionally STARTS here */ + unsigned char RemoteIP[IPV4ALEN] = {10, 67, 15, 1}; /* Counter STARTS here */ + ++/* Delegates the allocation of IP addresses to pppd (as the pptpd doing) */ ++int DelegateIPAllocation = 0; ++ + /* Do we increment local IP for each connection? */ + int IncrLocalIP = 0; + +@@ -242,15 +245,25 @@ childHandler(pid_t pid, int status, void + memset(&conn, 0, sizeof(conn)); + conn.useHostUniq = 0; + +- syslog(LOG_INFO, +- "Session %u closed for client " +- "%02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d) on %s", +- (unsigned int) ntohs(session->sess), +- session->eth[0], session->eth[1], session->eth[2], +- session->eth[3], session->eth[4], session->eth[5], +- (int) session->realpeerip[0], (int) session->realpeerip[1], +- (int) session->realpeerip[2], (int) session->realpeerip[3], +- session->ethif->name); ++ if (!DelegateIPAllocation) { ++ syslog(LOG_INFO, ++ "Session %u closed for client " ++ "%02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d) on %s", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ (int) session->realpeerip[0], (int) session->realpeerip[1], ++ (int) session->realpeerip[2], (int) session->realpeerip[3], ++ session->ethif->name); ++ } else { ++ syslog(LOG_INFO, ++ "Session %u closed for client " ++ "%02x:%02x:%02x:%02x:%02x:%02x on %s", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ session->ethif->name); ++ } + memcpy(conn.myEth, session->ethif->mac, ETH_ALEN); + conn.discoverySocket = session->ethif->sock; + conn.session = session->sess; +@@ -1134,6 +1147,7 @@ usage(char const *argv0) + fprintf(stderr, " -L ip -- Set local IP address.\n"); + fprintf(stderr, " -l -- Increment local IP address for each session.\n"); + fprintf(stderr, " -R ip -- Set start address of remote IP pool.\n"); ++ fprintf(stderr, " -D -- Delegates the allocation of IP addresses to pppd.\n"); + fprintf(stderr, " -S name -- Advertise specified service-name.\n"); + fprintf(stderr, " -O fname -- Use PPPD options from specified file\n"); + fprintf(stderr, " (default %s).\n", PPPOE_SERVER_OPTIONS); +@@ -1200,9 +1214,9 @@ main(int argc, char **argv) + #endif + + #ifndef HAVE_LINUX_KERNEL_PPPOE +- char *options = "X:ix:hI:C:L:R:T:m:FN:f:O:o:sp:lrudPc:S:1q:Q:"; ++ char *options = "X:ix:hI:C:L:R:DT:m:FN:f:O:o:sp:lrudPc:S:1q:Q:"; + #else +- char *options = "X:ix:hI:C:L:R:T:m:FN:f:O:o:skp:lrudPc:S:1q:Q:"; ++ char *options = "X:ix:hI:C:L:R:DT:m:FN:f:O:o:skp:lrudPc:S:1q:Q:"; + #endif + + if (getuid() != geteuid() || +@@ -1401,6 +1415,10 @@ main(int argc, char **argv) + } + break; + ++ case 'D': ++ DelegateIPAllocation = 1; ++ break; ++ + case 'T': + case 'm': + /* These just get passed to pppoe */ +@@ -1915,6 +1933,7 @@ startPPPDUserMode(ClientSession *session + argv[c++] = "file"; + argv[c++] = pppoptfile; + ++ if (!DelegateIPAllocation) { + snprintf(buffer, SMALLBUF, "%d.%d.%d.%d:%d.%d.%d.%d", + (int) session->myip[0], (int) session->myip[1], + (int) session->myip[2], (int) session->myip[3], +@@ -1930,6 +1949,16 @@ startPPPDUserMode(ClientSession *session + session->ethif->name, + session->serviceName); + argv[c++] = strdup(buffer); ++ } else { ++ syslog(LOG_INFO, ++ "Session %u created for client %02x:%02x:%02x:%02x:%02x:%02x on %s using Service-Name '%s'", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ session->ethif->name, ++ session->serviceName); ++ } ++ + if (!argv[c-1]) { + /* TODO: Send a PADT */ + exit(EXIT_FAILURE); diff --git a/rp-pppoe-3.14-ip-allocation.lux.patch b/rp-pppoe-3.14-ip-allocation.lux.patch new file mode 100644 index 0000000..7df6f13 --- /dev/null +++ b/rp-pppoe-3.14-ip-allocation.lux.patch @@ -0,0 +1,108 @@ +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-server.8 rp-pppoe-3.14/man/pppoe-server.8 +--- rp-pppoe-3.14.orig/man/pppoe-server.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe-server.8 2020-08-23 07:46:06.007078604 +0200 +@@ -96,6 +96,11 @@ + of 10.67.15.1 is used. + + .TP ++.B \-D ++Delegate the allocation of IP addresses to \fBpppd\fR. If specified, no ++local and remote addresses passed to pppd. ++ ++.TP + .B \-N \fInum\fR + Allows at most \fInum\fR concurrent PPPoE sessions. If not specified, + the default is 64. +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/src/pppoe-server.c rp-pppoe-3.14/src/pppoe-server.c +--- rp-pppoe-3.14.orig/src/pppoe-server.c 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/src/pppoe-server.c 2020-08-23 07:49:11.814181477 +0200 +@@ -182,6 +182,9 @@ + unsigned char LocalIP[IPV4ALEN] = {10, 0, 0, 1}; /* Counter optionally STARTS here */ + unsigned char RemoteIP[IPV4ALEN] = {10, 67, 15, 1}; /* Counter STARTS here */ + ++/* Delegates the allocation of IP addresses to pppd (as the pptpd doing) */ ++int DelegateIPAllocation = 0; ++ + /* Do we increment local IP for each connection? */ + int IncrLocalIP = 0; + +@@ -248,6 +251,7 @@ + memset(&conn, 0, sizeof(conn)); + conn.hostUniq = NULL; + ++ if (!DelegateIPAllocation) { + syslog(LOG_INFO, + "Session %u closed for client " + "%02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d) on %s", +@@ -257,6 +261,15 @@ + (int) session->realpeerip[0], (int) session->realpeerip[1], + (int) session->realpeerip[2], (int) session->realpeerip[3], + session->ethif->name); ++ } else { ++ syslog(LOG_INFO, ++ "Session %u closed for client " ++ "%02x:%02x:%02x:%02x:%02x:%02x on %s", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ session->ethif->name); ++ } + memcpy(conn.myEth, session->ethif->mac, ETH_ALEN); + conn.discoverySocket = session->ethif->sock; + conn.session = session->sess; +@@ -1155,6 +1168,7 @@ + fprintf(stderr, " -L ip -- Set local IP address.\n"); + fprintf(stderr, " -l -- Increment local IP address for each session.\n"); + fprintf(stderr, " -R ip -- Set start address of remote IP pool.\n"); ++ fprintf(stderr, " -D -- Delegates the allocation of IP addresses to pppd.\n"); + fprintf(stderr, " -S name -- Advertise specified service-name.\n"); + fprintf(stderr, " -O fname -- Use PPPD options from specified file\n"); + fprintf(stderr, " (default %s).\n", PPPOE_SERVER_OPTIONS); +@@ -1224,9 +1238,9 @@ + #endif + + #ifndef HAVE_LINUX_KERNEL_PPPOE +- char *options = "X:ix:hI:C:L:R:T:m:FN:f:O:o:sp:lrudPc:S:1q:Q:H:M:"; ++ char *options = "X:ix:hI:C:L:R:DT:m:FN:f:O:o:sp:lrudPc:S:1q:Q:H:M:"; + #else +- char *options = "X:ix:hI:C:L:R:T:m:FN:f:O:o:skp:lrudPc:S:1q:Q:H:M:"; ++ char *options = "X:ix:hI:C:L:R:DT:m:FN:f:O:o:skp:lrudPc:S:1q:Q:H:M:"; + #endif + + if (getuid() != geteuid() || +@@ -1448,6 +1462,10 @@ + } + break; + ++ case 'D': ++ DelegateIPAllocation = 1; ++ break; ++ + case 'T': + case 'm': + /* These just get passed to pppoe */ +@@ -2056,6 +2074,7 @@ + argv[c++] = "file"; + argv[c++] = pppoptfile; + ++ if (!DelegateIPAllocation) { + snprintf(buffer, SMALLBUF, "%d.%d.%d.%d:%d.%d.%d.%d", + (int) session->myip[0], (int) session->myip[1], + (int) session->myip[2], (int) session->myip[3], +@@ -2071,6 +2090,16 @@ + session->ethif->name, + session->serviceName); + argv[c++] = strdup(buffer); ++ } else { ++ syslog(LOG_INFO, ++ "Session %u created for client %02x:%02x:%02x:%02x:%02x:%02x on %s using Service-Name '%s'", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ session->ethif->name, ++ session->serviceName); ++ } ++ + if (!argv[c-1]) { + /* TODO: Send a PADT */ + exit(EXIT_FAILURE); diff --git a/rp-pppoe-3.14-manpages.lux.patch b/rp-pppoe-3.14-manpages.lux.patch new file mode 100644 index 0000000..5816cd6 --- /dev/null +++ b/rp-pppoe-3.14-manpages.lux.patch @@ -0,0 +1,71 @@ +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe.8 rp-pppoe-3.14/man/pppoe.8 +--- rp-pppoe-3.14.orig/man/pppoe.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe.8 2020-08-23 07:51:09.033859091 +0200 +@@ -32,6 +32,10 @@ + PPPoE timeout to be about four times the LCP echo interval. + + .TP ++.B \-t \fItimeout\fR ++The \fB\-t\fR option sets the initial timeout for discovery packets in seconds. ++ ++.TP + .B \-D \fIfile_name\fR + The \fB\-D\fR option causes every packet to be dumped to the specified + \fIfile_name\fR. This is intended for debugging only; it produces huge +@@ -147,6 +151,10 @@ + ISP uses non-standard frame types, complain! + + .TP ++.B \-F numfloods ++The \fB\-F\fR option sets the discovery flood, only used for stress-testing. ++ ++.TP + .B \-h + The \fB\-h\fR option causes \fBpppoe\fR to print usage information and + exit. +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-server.8 rp-pppoe-3.14/man/pppoe-server.8 +--- rp-pppoe-3.14.orig/man/pppoe-server.8 2020-08-23 07:50:35.650666110 +0200 ++++ rp-pppoe-3.14/man/pppoe-server.8 2020-08-23 07:51:09.034859097 +0200 +@@ -77,12 +77,20 @@ + then no limit is imposed on the number of sessions per peer MAC address. + + .TP ++.B \-P ++Check pool file for correctness and exit. ++ ++.TP + .B \-s + This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for + details. In addition, it causes \fBpppd\fR to be invoked with the + \fIsync\fR option. + + .TP ++.B \-l ++Increment local IP address for each session. ++ ++.TP + .B \-L \fIip\fR + Sets the local IP address. This is passed to spawned \fBpppd\fR processes. + If not specified, the default is 10.0.0.1. +@@ -158,6 +166,10 @@ + unpredictable order. + + .TP ++.B \-d ++Debug session creation. ++ ++.TP + .B \-u + Tells the server to invoke \fBpppd\fR with the \fIunit\fR option. Note + that this option only works for \fBpppd\fR version 2.4.0 or newer. +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/src/pppoe.c rp-pppoe-3.14/src/pppoe.c +--- rp-pppoe-3.14.orig/src/pppoe.c 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/src/pppoe.c 2020-08-23 07:51:09.035859103 +0200 +@@ -383,6 +383,7 @@ + " -k -- Kill a session with PADT (requires -e)\n" + " -d -- Perform discovery, print session info and exit.\n" + " -f disc:sess -- Set Ethernet frame types (hex).\n" ++ " -F numfloods -- Set the discovery flood, only used for stress-testing.\n" + " -h -- Print usage information.\n\n" + "RP-PPPoE Version %s, Copyright (C) 2001-2018 Roaring Penguin Software Inc.\n" + " %*s Copyright (C) 2018-2020 Dianne Skoll\n" diff --git a/rp-pppoe-3.14-redhat.lux.patch b/rp-pppoe-3.14-redhat.lux.patch new file mode 100644 index 0000000..624c6c0 --- /dev/null +++ b/rp-pppoe-3.14-redhat.lux.patch @@ -0,0 +1,104 @@ +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe.conf.5 rp-pppoe-3.14/man/pppoe.conf.5 +--- rp-pppoe-3.14.orig/man/pppoe.conf.5 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe.conf.5 2020-08-23 07:43:22.741789590 +0200 +@@ -2,16 +2,16 @@ + .TH PPPOE.CONF 5 "21 February 2000" + .UC 4 + .SH NAME +-pppoe.conf \- Configuration file used by \fBpppoe-start\fR(8), ++ifcfg-ppp0 \- Configuration file used by \fBpppoe-start\fR(8), + \fBpppoe-stop\fR(8), \fBpppoe-status(8)\fR and \fBpppoe-connect\fR(8). + + .SH DESCRIPTION +-\fB/etc/ppp/pppoe.conf\fR is a shell script which contains configuration +-information for RP-PPPoE scripts. Note that \fBpppoe.conf\fR ++\fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is a shell script which contains configuration ++information for RP-PPPoE scripts. Note that \fBifcfg-ppp0\fR + is used only by the various pppoe-* shell scripts, not by \fBpppoe\fR + itself. + +-\fBpppoe.conf\fR consists of a sequence of shell variable assignments. ++\fBifcfg-ppp0\fR consists of a sequence of shell variable assignments. + The variables and their meanings are: + + .TP +@@ -54,11 +54,10 @@ + IP addresses of DNS servers if you use DNSTYPE=SPECIFY. + + .TP +-.B NONROOT +-If the line \fBNONROOT=OK\fR (exactly like that; no whitespace or comments) +-appears in the configuration file, then \fBpppoe-wrapper\fR will allow +-non-root users to bring the conneciton up or down. The wrapper is installed +-only if you installed the rp-pppoe-gui package. ++.B USERCTL ++If the line \fBUSERCTL=yes\fR (exactly like that; no whitespace or comments) ++appears in the configuration file, then \fB/sbin/ifup\fR will allow ++non-root users to bring the conneciton up or down. + + .TP + .B USEPEERDNS +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-connect.8 rp-pppoe-3.14/man/pppoe-connect.8 +--- rp-pppoe-3.14.orig/man/pppoe-connect.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe-connect.8 2020-08-23 07:41:04.337069110 +0200 +@@ -13,7 +13,8 @@ + .SH DESCRIPTION + \fBpppoe-connect\fR is a shell script which manages a PPPoE connection + using the Roaring Penguin user-space PPPoE client. If you omit +-\fIconfig_file\fR, the default file \fB/etc/ppp/pppoe.conf\fR is used. ++\fIconfig_file\fR, the default file ++\fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. + If you supply \fIinterface\fR and \fIuser\fR, then they override the + Ethernet interface and user-name settings in the configuration file. + .P +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-setup.8 rp-pppoe-3.14/man/pppoe-setup.8 +--- rp-pppoe-3.14.orig/man/pppoe-setup.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe-setup.8 2020-08-23 07:41:04.336069104 +0200 +@@ -8,8 +8,9 @@ + + .SH DESCRIPTION + \fBpppoe-setup\fR is a shell script which prompts you for various pieces +-of information and sets up an /etc/ppp/pppoe.conf configuration script +-for the \fBpppoe-start\fR, \fBpppoe-stop\fR and \fBpppoe-connect\fR scripts. ++of information and sets up an /etc/sysconfig/network-scripts/ifcfg-ppp0 ++configuration script for the \fBpppoe-start\fR, \fBpppoe-stop\fR and +++\fBpppoe-connect\fR scripts. + + .SH AUTHOR + \fBpppoe-setup\fR was written by Dianne Skoll . +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-start.8 rp-pppoe-3.14/man/pppoe-start.8 +--- rp-pppoe-3.14.orig/man/pppoe-start.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe-start.8 2020-08-23 07:41:04.337069110 +0200 +@@ -11,7 +11,7 @@ + .SH DESCRIPTION + \fBpppoe-start\fR is a shell script which starts the RP-PPPoE + user-space PPPoE client. If you omit \fIconfig_file\fR, the default +-file \fB/etc/ppp/pppoe.conf\fR is used. If you supply ++file \fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. If you supply + \fIinterface\fR and \fIuser\fR, then they override the Ethernet interface + and user-name settings in the configuration file. + +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-status.8 rp-pppoe-3.14/man/pppoe-status.8 +--- rp-pppoe-3.14.orig/man/pppoe-status.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe-status.8 2020-08-23 07:41:04.338069115 +0200 +@@ -10,7 +10,7 @@ + \fBpppoe-status\fR is a shell script which checks the status of the + PPPoE link established by the Roaring Penguin user-space PPPoE client. + If you omit \fIconfig_file\fR, the default file +-\fB/etc/ppp/pppoe.conf\fR is used. ++\fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. + + .SH AUTHOR + \fBpppoe-status\fR was written by Dianne Skoll . +diff -uarNbB '--exclude=*.orig' '--exclude=*.rej' rp-pppoe-3.14.orig/man/pppoe-stop.8 rp-pppoe-3.14/man/pppoe-stop.8 +--- rp-pppoe-3.14.orig/man/pppoe-stop.8 2020-05-27 02:29:37.000000000 +0200 ++++ rp-pppoe-3.14/man/pppoe-stop.8 2020-08-23 07:41:04.338069115 +0200 +@@ -9,7 +9,7 @@ + .SH DESCRIPTION + \fBpppoe-stop\fR is a shell script which stops the RP-PPPoE + user-space PPPoE client. If you omit \fIconfig_file\fR, the default +-file \fB/etc/ppp/pppoe.conf\fR is used. ++file \fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. + + .SH AUTHOR + \fBpppoe-stop\fR was written by Dianne Skoll diff --git a/rp-pppoe-3.14.tar.gz b/rp-pppoe-3.14.tar.gz new file mode 100644 index 0000000..686273d --- /dev/null +++ b/rp-pppoe-3.14.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7825232f64ab4d618ef074d62d145ae43d6edc91b9a718c6130a4742bac40e2a +size 224688 diff --git a/rp-pppoe-3.8-redhat.patch b/rp-pppoe-3.8-redhat.patch new file mode 100644 index 0000000..eee9e69 --- /dev/null +++ b/rp-pppoe-3.8-redhat.patch @@ -0,0 +1,97 @@ +--- rp-pppoe-3.8/man/pppoe.conf.5.orig 2007-03-20 18:57:28.000000000 +0100 ++++ rp-pppoe-3.8/man/pppoe.conf.5 2007-03-20 19:00:20.000000000 +0100 +@@ -4,16 +4,16 @@ + .TH PPPOE.CONF 5 "21 February 2000" + .UC 4 + .SH NAME +-pppoe.conf \- Configuration file used by \fBpppoe-start\fR(8), ++ifcfg-ppp0 \- Configuration file used by \fBpppoe-start\fR(8), + \fBpppoe-stop\fR(8), \fBpppoe-status(8)\fR and \fBpppoe-connect\fR(8). + + .SH DESCRIPTION +-\fB/etc/ppp/pppoe.conf\fR is a shell script which contains configuration ++\fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is a shell script which contains configuration + information for Roaring Penguin's PPPoE scripts. Note that \fBpppoe.conf\fR + is used only by the various pppoe-* shell scripts, not by \fBpppoe\fR + itself. + +-\fBpppoe.conf\fR consists of a sequence of shell variable assignments. ++\fBifcfg-ppp0\fR consists of a sequence of shell variable assignments. + The variables and their meanings are: + + .TP +@@ -56,11 +56,10 @@ + IP addresses of DNS servers if you use DNSTYPE=SPECIFY. + + .TP +-.B NONROOT +-If the line \fBNONROOT=OK\fR (exactly like that; no whitespace or comments) +-appears in the configuration file, then \fBpppoe-wrapper\fR will allow +-non-root users to bring the conneciton up or down. The wrapper is installed +-only if you installed the rp-pppoe-gui package. ++.B USERCTL ++If the line \fBUSERCTL=yes\fR (exactly like that; no whitespace or comments) ++appears in the configuration file, then \fB/sbin/ifup\fR will allow ++non-root users to bring the conneciton up or down. + + .TP + .B USEPEERDNS +--- rp-pppoe-3.8/man/pppoe-setup.8.orig 2007-03-20 18:54:49.000000000 +0100 ++++ rp-pppoe-3.8/man/pppoe-setup.8 2007-03-20 18:55:59.000000000 +0100 +@@ -9,8 +9,9 @@ + + .SH DESCRIPTION + \fBpppoe-setup\fR is a shell script which prompts you for various pieces +-of information and sets up an /etc/ppp/pppoe.conf configuration script +-for the \fBpppoe-start\fR, \fBpppoe-stop\fR and \fBpppoe-connect\fR scripts. ++of information and sets up an /etc/sysconfig/network-scripts/ifcfg-ppp0 ++configuration script for the \fBpppoe-start\fR, \fBpppoe-stop\fR and +++\fBpppoe-connect\fR scripts. + + .SH AUTHOR + \fBpppoe-setup\fR was written by David F. Skoll . +--- rp-pppoe-3.8/man/pppoe-connect.8.orig 2007-03-20 18:54:20.000000000 +0100 ++++ rp-pppoe-3.8/man/pppoe-connect.8 2007-03-20 18:54:40.000000000 +0100 +@@ -14,7 +14,8 @@ + .SH DESCRIPTION + \fBpppoe-connect\fR is a shell script which manages a PPPoE connection + using the Roaring Penguin user-space PPPoE client. If you omit +-\fIconfig_file\fR, the default file \fB/etc/ppp/pppoe.conf\fR is used. ++\fIconfig_file\fR, the default file ++\fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. + If you supply \fIinterface\fR and \fIuser\fR, then they override the + Ethernet interface and user-name settings in the configuration file. + .P +--- rp-pppoe-3.8/man/pppoe-start.8.orig 2007-03-20 18:50:01.000000000 +0100 ++++ rp-pppoe-3.8/man/pppoe-start.8 2007-03-20 18:54:11.000000000 +0100 +@@ -12,7 +12,7 @@ + .SH DESCRIPTION + \fBpppoe-start\fR is a shell script which starts the Roaring Penguin + user-space PPPoE client. If you omit \fIconfig_file\fR, the default +-file \fB/etc/ppp/pppoe.conf\fR is used. If you supply ++file \fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. If you supply + \fIinterface\fR and \fIuser\fR, then they override the Ethernet interface + and user-name settings in the configuration file. + +--- rp-pppoe-3.8/man/pppoe-stop.8.orig 2007-03-20 18:57:07.000000000 +0100 ++++ rp-pppoe-3.8/man/pppoe-stop.8 2007-03-20 18:57:20.000000000 +0100 +@@ -10,7 +10,7 @@ + .SH DESCRIPTION + \fBpppoe-stop\fR is a shell script which stops the Roaring Penguin + user-space PPPoE client. If you omit \fIconfig_file\fR, the default +-file \fB/etc/ppp/pppoe.conf\fR is used. ++file \fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. + + .SH AUTHOR + \fBpppoe-stop\fR was written by David F. Skoll . +--- rp-pppoe-3.8/man/pppoe-status.8.orig 2007-03-20 18:56:42.000000000 +0100 ++++ rp-pppoe-3.8/man/pppoe-status.8 2007-03-20 18:56:57.000000000 +0100 +@@ -11,7 +11,7 @@ + \fBpppoe-status\fR is a shell script which checks the status of the + PPPoE link established by the Roaring Penguin user-space PPPoE client. + If you omit \fIconfig_file\fR, the default file +-\fB/etc/ppp/pppoe.conf\fR is used. ++\fB/etc/sysconfig/network-scripts/ifcfg-ppp0\fR is used. + + .SH AUTHOR + \fBpppoe-status\fR was written by David F. Skoll . diff --git a/rp-pppoe-manpages.patch b/rp-pppoe-manpages.patch new file mode 100644 index 0000000..6440c9c --- /dev/null +++ b/rp-pppoe-manpages.patch @@ -0,0 +1,72 @@ +diff -up rp-pppoe-3.10/man/pppoe.8.than rp-pppoe-3.10/man/pppoe.8 +--- rp-pppoe-3.10/man/pppoe.8.than 2016-06-03 15:51:56.587673656 +0200 ++++ rp-pppoe-3.10/man/pppoe.8 2016-06-03 16:43:36.171245000 +0200 +@@ -32,6 +32,10 @@ triggered. The best way to do this is t + PPPoE timeout to be about four times the LCP echo interval. + + .TP ++.B \-t \fItimeout\fR ++The \fB\-t\fR option sets the initial timeout for discovery packets in seconds. ++ ++.TP + .B \-D \fIfile_name\fR + The \fB\-D\fR option causes every packet to be dumped to the specified + \fIfile_name\fR. This is intended for debugging only; it produces huge +@@ -140,6 +144,10 @@ the peer you are dealing with uses non-s + ISP uses non-standard frame types, complain! + + .TP ++.B \-F numfloods ++The \fB\-F\fR option sets the discovery flood, only used for stress-testing. ++ ++.TP + .B \-h + The \fB\-h\fR option causes \fBpppoe\fR to print usage information and + exit. +diff -up rp-pppoe-3.10/man/pppoe-server.8.than rp-pppoe-3.10/man/pppoe-server.8 +--- rp-pppoe-3.10/man/pppoe-server.8.than 2016-06-03 16:46:36.653467414 +0200 ++++ rp-pppoe-3.10/man/pppoe-server.8 2016-06-03 17:03:14.838977026 +0200 +@@ -58,12 +58,20 @@ PADI and PADR packets are ignored. If y + then no limit is imposed on the number of sessions per peer MAC address. + + .TP ++.B \-P ++Check pool file for correctness and exit. ++ ++.TP + .B \-s + This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for + details. In addition, it causes \fBpppd\fR to be invoked with the + \fIsync\fR option. + + .TP ++.B \-l ++Increment local IP address for each session. ++ ++.TP + .B \-L \fIip\fR + Sets the local IP address. This is passed to spawned \fBpppd\fR processes. + If not specified, the default is 10.0.0.1. +@@ -123,6 +131,10 @@ handing out sessions in order, the sessi + unpredictable order. + + .TP ++.B \-d ++Debug session creation. ++ ++.TP + .B \-u + Tells the server to invoke \fBpppd\fR with the \fIunit\fR option. Note + that this option only works for \fBpppd\fR version 2.4.0 or newer. +diff -up rp-pppoe-3.10/src/pppoe.c.than rp-pppoe-3.10/src/pppoe.c +--- rp-pppoe-3.10/src/pppoe.c.than 2016-06-03 15:37:36.009035435 +0200 ++++ rp-pppoe-3.10/src/pppoe.c 2016-06-03 16:45:05.547888671 +0200 +@@ -379,6 +379,7 @@ usage(char const *argv0) + " -k -- Kill a session with PADT (requires -e)\n" + " -d -- Perform discovery, print session info and exit.\n" + " -f disc:sess -- Set Ethernet frame types (hex).\n" ++ " -F numfloods -- Set the discovery flood, only used for stress-testing.\n" + " -h -- Print usage information.\n\n" + "PPPoE Version %s, Copyright (C) 2001-2006 Roaring Penguin Software Inc.\n" + "PPPoE comes with ABSOLUTELY NO WARRANTY.\n" +diff -up rp-pppoe-3.10/src/pppoe-server.c.than rp-pppoe-3.10/src/pppoe-server.c diff --git a/rp-pppoe.spec b/rp-pppoe.spec new file mode 100644 index 0000000..684b494 --- /dev/null +++ b/rp-pppoe.spec @@ -0,0 +1,471 @@ +Summary: A PPP over Ethernet client (for xDSL support). +Name: rp-pppoe +Version: 3.14 +Release: 7%{?dist} +License: GPLv2+ +Group: System Environment/Daemons +Url: http://www.roaringpenguin.com/pppoe/ +Source: http://www.roaringpenguin.com/files/download/rp-pppoe-%{version}.tar.gz +Source1: pppoe-connect +Source2: pppoe-setup +Source3: pppoe-start +Source4: pppoe-status +Source5: pppoe-stop +Source6: pppoe-server.service + +Patch0: rp-pppoe-3.8-redhat.patch +Patch1: rp-pppoe-3.11-ip-allocation.patch +Patch2: rp-pppoe-manpages.patch +Patch1000: rp-pppoe-3.14-redhat.lux.patch +Patch1001: rp-pppoe-3.14-ip-allocation.lux.patch +Patch1002: rp-pppoe-3.14-manpages.lux.patch + +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Requires(post): initscripts fileutils +Requires(postun): chkconfig initscripts fileutils +Requires: ppp >= 2.4.2 +Requires: initscripts >= 5.92 +Requires: iproute >= 2.6 +Requires: coreutils +Requires: systemd-units >= 39-2 +Requires: net-tools +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires(post): systemd-sysv +Conflicts: filesystem < 3 + +BuildRequires: libtool +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: coreutils +BuildRequires: ppp +BuildRequires: systemd-units >= 39-2 + +ExcludeArch: s390 s390x + +%description +PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by +many ADSL Internet Service Providers. This package contains the +Roaring Penguin PPPoE client, a user-mode program that does not +require any kernel modifications. It is fully compliant with RFC 2516, +the official PPPoE specification. + +%prep +%setup -q +%patch1000 -p1 -b .config +%patch1001 -p1 -b .ip-allocation +%patch1002 -p1 + +%build +cd src +autoconf +export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fno-strict-aliasing" +%configure +make + +%install +rm -rf %{buildroot} + +mkdir -p %{buildroot}%{_sbindir} %{buildroot}%{_unitdir} + +make -C src install DESTDIR=%{buildroot} + +install -m 0755 %{SOURCE1} %{buildroot}%{_sbindir} +install -m 0755 %{SOURCE2} %{buildroot}%{_sbindir} +install -m 0755 %{SOURCE3} %{buildroot}%{_sbindir} +install -m 0755 %{SOURCE4} %{buildroot}%{_sbindir} +install -m 0755 %{SOURCE5} %{buildroot}%{_sbindir} +install -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/pppoe-server.service + +ln -sf pppoe-stop %{buildroot}%{_sbindir}/adsl-stop +ln -sf pppoe-start %{buildroot}%{_sbindir}/adsl-start +ln -fs pppoe-start.8 %{buildroot}%{_mandir}/man8/adsl-start.8 +ln -fs pppoe-stop.8 %{buildroot}%{_mandir}/man8/adsl-stop.8 + +rm -rf %{buildroot}/etc/ppp/pppoe.conf \ + %{buildroot}/etc/rc.d/init.d/pppoe \ + %{buildroot}/usr/share/doc \ + %{buildroot}%{_sysconfdir}/ppp/plugins + +%clean +rm -rf %{buildroot} + +%preun +if [ "$1" = "0" ]; then + # Package removal, not upgrade + /bin/systemctl disable pppoe-server.service > /dev/null 2>&1 || : + /bin/systemctl stop pppoe-server.service > /dev/null 2>&1 || : +fi + +%postun +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart pppoe-server.service >/dev/null 2>&1 || : +fi + +%triggerun -- %{name} < 3.10-9 +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del pppoe-server >/dev/null 2>&1 || : +/bin/systemctl try-restart pppoe-server.service >/dev/null 2>&1 || : + + +%files +%defattr(-,root,root) +%doc doc/LICENSE scripts/pppoe-connect scripts/pppoe-setup scripts/pppoe-init +%doc scripts/pppoe-start scripts/pppoe-status scripts/pppoe-stop +%doc configs +%config(noreplace) %{_sysconfdir}/ppp/pppoe-server-options +%config(noreplace) %{_sysconfdir}/ppp/firewall* +%{_unitdir}/pppoe-server.service +%{_sbindir}/* +%{_mandir}/man?/* + +%changelog +* Wed Feb 15 2017 Than Ngo - 3.11-7 +- Resolves: bz#1422019, pppoe-server.service is marked executable + +* Fri Jun 03 2016 Than Ngo - 3.11-6 +- Resolves: bz#948950, fix manpage issues + +* Fri Dec 27 2013 Daniel Mach - 3.11-5 +- Mass rebuild 2013-12-27 + +* Mon May 13 2013 Than Ngo - 3.11-4 +- bz#961529, add Requirement on net-tools + +* Thu Apr 25 2013 Than Ngo - 3.11-3 +- build with -fno-strict-aliasing + +* Thu Feb 14 2013 Fedora Release Engineering - 3.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Aug 20 2012 Than Ngo - 3.11-1 +- 3.11 +- bz#540763, add IP allocation by pppd ability to pppoe-server +- bz#808676, add missing %% symbol for triggerun + +* Sat Jul 21 2012 Fedora Release Engineering - 3.10-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Mar 19 2012 Than Ngo - 3.10-12 +- fix bz#804396, add missing [Unit] section + +* Wed Jan 25 2012 Harald Hoyer 3.10-11 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Sat Jan 14 2012 Fedora Release Engineering - 3.10-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Jul 05 2011 Than Ngo - 3.10-9 +- bz#697664, native systemd file + +* Wed Feb 09 2011 Fedora Release Engineering - 3.10-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 07 2009 Than Ngo - 3.10-7 +- fix url + +* Wed Sep 09 2009 Than Ngo - 3.10-6 +- rebuilt + +* Wed Sep 09 2009 Than Ngo - 3.10-5 +- wrong path to initscript bz#522010 +- add remove services in %postun/%preun + +* Mon Sep 07 2009 Than Ngo - 3.10-4 +- add feature, save and restore all information about default routes bz#191242 +- add startup script for pppoe-server bz#507123 + +* Sun Jul 26 2009 Fedora Release Engineering - 3.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 3.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Tue Nov 11 2008 Than Ngo 3.10-1 +- 3.10 + +* Wed Sep 3 2008 Tom "spot" Callaway 3.8-5 +- fix license tag + +* Thu Apr 10 2008 Karsten Hopp 3.8-4 +- Build with $RPM_OPT_FLAGS (#249978) (Ville Skyttä) + +* Fri Feb 15 2008 Than Ngo 3.8-3 +- rebuild + +* Tue Mar 20 2007 Than Ngo - 3.8-2.fc7 +- setting DEBUG for adsl-start causes adsl-connect to exit, #195828 + +* Tue Mar 20 2007 Than Ngo - 3.8-1.fc7 +- update to 3.8 + +* Wed Jul 12 2006 Jesse Keating - 3.5-32.1 +- rebuild + +* Sat Jun 10 2006 Than Ngo 3.5-32 +- fix build problem in mock + +* Wed Feb 15 2006 Than Ngo 3.5-31 +- apply patch to use mktemp + +* Fri Feb 10 2006 Jesse Keating - 3.5-30.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 3.5-30.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Mon Aug 15 2005 Than Ngo 3.5-30 +- defaultroute should not overridden #152014 + +* Mon Jul 04 2005 Than Ngo 3.5-29 +- fix broken dependencies + +* Mon Jun 13 2005 Than Ngo 3.5-28 +- use iproute2 instead of old ifconfig #134816 + +* Mon Mar 07 2005 Than Ngo 3.5-27 +- rebuilt + +* Sat Jan 22 2005 Than Ngo 3.5-26 +- rename config files #145255 + +* Wed Jan 19 2005 David Woodhouse 3.5-25 +- Kill br2684ctl after ifdown if we started it + +* Wed Jan 19 2005 David Woodhouse 3.5-24 +- Add support for RFC2684 Ethernet-over-ATM (for PPPoE-over-ATM) + +* Mon Nov 22 2004 Than Ngo 3.5-23 +- fix typo in adsl-setup #140287 + +* Fri Oct 15 2004 Than Ngo 3.5-22 +- Fix ip conflict in dsl connect, #135012 + +* Thu Oct 07 2004 David Woodhouse 3.5-21 +- Fix ordering of VCI and VPI in pppoatm address. + +* Thu Oct 07 2004 David Woodhouse 3.5-20 +- Add support for static IP with demand option. +- Add support for using PPP over ATM plugin. + +* Thu Oct 07 2004 Than Ngo 3.5-19 +- fix typo bug in adsl connect +- remove unused rp-pppoe plugin, it's now included in new ppppd + +* Wed Oct 06 2004 Than Ngo 3.5-18 +- fix adsl connect for using MTU/MRU + +* Thu Sep 30 2004 Than Ngo 3.5-17 +- fix idle parameter in asdl connect + +* Mon Aug 02 2004 Than Ngo 3.5-16 +- use iptables instead ipchains, thanks to Robert Scheck + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Thu Apr 01 2004 Than Ngo 3.5-14 +- fixed typo + +* Tue Mar 30 2004 Than Ngo 3.5-13 +- fixed reconnect problem + +* Mon Mar 29 2004 Than Ngo 3.5-12 +- fixed wrong idle parameter, #119280 + +* Thu Mar 04 2004 Than Ngo 3.5-11 +- fixed default route problem, #114875 +- fixed restart issue, #100610 +- fixed a bug in adsl status + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Mon Nov 10 2003 Than Ngo 3.5-9 +- better fix for nickename issue + +* Wed Oct 29 2003 Than Ngo 3.5-8 +- fix a bug in connect script + +* Mon Oct 27 2003 Than Ngo 3.5-7 +- fix nickename issue + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Tue Jun 3 2003 Than Ngo 3.5-5 +- add correct PPOE_TIMEOUT/LCP_INTERVAL bug #82630 + +* Sun May 04 2003 Florian La Roche +- fix initdir in triggerpostun + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Fri Nov 29 2002 Than Ngo 3.5-1 +- update to 3.5 + +* Thu Nov 7 2002 Than Ngo 3.4-8 +- unpackaged files issue + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Thu Jun 20 2002 Than Ngo 3.4-5 +- Don't forcibly strip binaries + +* Sun Jun 09 2002 Than Ngo 3.4-4 +- Fix up creation of first device (#64773) + +* Fri Jun 07 2002 Than Ngo 3.4-3 +- set correct default value for PPPoE timeout (bug #64903) + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Thu May 23 2002 Harald Hoyer 3.4-1 +- 3.4 +- added kernel plugin + +* Sun Apr 14 2002 Than Ngo 3.3-7 +- add fix for neat-control + +* Sat Feb 23 2002 Than Ngo 3.3-6 +- fix a bug in adsl-stop (#60138) + +* Tue Feb 12 2002 Bernhard Rosenkraenzer 3.3-5 +- Fix up creation of first device (#59236) + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Sun Dec 16 2001 Than Ngo 3.3-3 +- fix bugs #57070, #55627, #55140 +- add man pages, Docs and example scripts + +* Mon Nov 05 2001 Than Ngo 3.3-2 +- fix a bug in adsl-connect + +* Wed Sep 19 2001 Than Ngo 3.3-1 +- update to 3.3 (bug #53697) + +* Thu Aug 16 2001 Than Ngo 3.2-4 +- don't print messages as default + +* Wed Aug 8 2001 Than Ngo +- fix softlinks + +* Sun Jul 22 2001 Than Ngo +- update to 3.2 + +* Thu Jul 19 2001 Than Ngo 3.0-5 +- fix bug in trigger + +* Fri Jun 22 2001 Than Ngo +- Copyright -> License +- fix activate ethernet device problem +- get rid of pppoe initscript, use ifup/ifdown + to activate/shutdown xDSL connection +- convert old pppoe config format into new format +- remove adsl-setup, Users have to use netconf to setup xDSL connection +- excludearch s390 + +* Mon May 14 2001 Than Ngo +- clean PID files when connection fails (Bug #40349) +- fix order of pppoe script (Bug #40454) + +* Wed May 02 2001 Than Ngo +- fixed a firewall bug in adsl-setup (Bug #38550) + +* Sun Apr 22 2001 Than Ngo +- update to 3.0 (bug #34075) + +* Thu Mar 15 2001 Than Ngo +- fix BOOT enviroment again, it should work fine now + +* Wed Mar 14 2001 Than Ngo +- fix bug in adsl-setup (DEVICE enviroment) + +* Thu Feb 08 2001 Than Ngo +- fixed a problem in startup (Bug #26454) +- fixed i18n in initscript (Bug #26540) + +* Sat Feb 03 2001 Than Ngo +- updated to 2.6 +- some fixes in pppoe script + +* Fri Feb 02 2001 Than Ngo +- fixed starting pppoe service at boot time. (Bug #25494) + +* Sun Jan 28 2001 Than Ngo +- fixed so that pppoe script does not kill adsl connection when + the runlevel is changed. +- remove excludearch ia64 + +* Tue Jan 23 2001 Than Ngo +- hacked for using USEPEERDNS + +* Mon Dec 11 2000 Than Ngo +- updated to 2.5, it fixes a denial-of-service vulnerability + +* Tue Aug 08 2000 Than Ngo +- fix german configuration HOWTO to T-DSL + +* Mon Aug 07 2000 Than Ngo +- fixes for starting pppd under /usr/sbin +- added german configuration HOWTO to T-DSL + +* Tue Aug 01 2000 Than Ngo +- update to 2.2 + +* Fri Jul 28 2000 Than Ngo +- fixed initscripts so that condrestart doesn't return 1 when the test fails + +* Thu Jul 27 2000 Than Ngo +- update to 2.1 +- don't detect pppd for building + +* Thu Jul 27 2000 Than Ngo +- rename the rp-pppoe startup script (Bug #14734) + +* Wed Jul 26 2000 Bill Nottingham +- don't run by default; it hangs if not configured + +* Tue Jul 25 2000 Bill Nottingham +- prereq /etc/init.d (it's referenced in the initscript) + +* Tue Jul 18 2000 Than Ngo +- inits back to rc.d/init.d, using service to fire them up + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Sat Jul 08 2000 Than Ngo +- add Prereq: /etc/init.d + +* Fri Jun 30 2000 Than Ngo +- turned off deamon by default + +* Tue Jun 27 2000 Than Ngo +- don't prereq, only require initscripts + +* Mon Jun 26 2000 Than Ngo +- /etc/rc.d/init.d -> /etc/init.d +- add condrestart directive +- fix post/preun/postun scripts +- prereq initscripts >= 5.20 + +* Sun Jun 18 2000 Than Ngo +- use RPM macros +- rebuilt in the new build environment + +* Wed May 31 2000 Than Ngo +- adopted for Winston.