home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # File modified by Tecknojunky for PPPoE users Oct. 2002
- # Bring up/down network adapters, networks and routes
- . /etc/system.cfg
- . /etc/colors
- . /etc/chat.pwd
- . /etc/live.cfg
-
- [ "$ROUTER" = dialup -o "$ROUTER" = leased ] && USEDHCP0=n
-
- fn4() { for i in 1 2 3 4 5 6 7 8 9; do
- eval a='$'INTNAME$i
- [ "$a" = "" ] || ifconfig $a up || continue
- [ $? = 0 ] && fn1 $i
- done
- }
- fn3() { im="......"
- if [ "$USEPPP0" = y -a $1 = 0 ]; then
- im="$CC PPPoE"
- [ "$PPPTYPE" = t ] && im="$CC PPtP "
- fi
- echo -n "Initializing interface $a$im.. $CR"
- }
- fn2() { ifconfig | sed -n /$INTNAME0/P; }
- fn1() {
- eval b='$'IPADDR$1
- eval c='$'NETMASK$1
- eval d='$'NETWORK$1
- eval e='$'BRDCAST$1
- [ "$b" = "" ] && return 2
- fn3 $1
- ifconfig $a up $b netmask $c broadcast $e multicast $b
- x=$?
- route add -net $d dev $a
- y=$?; = `math $x $y add` "Done $CC $b"
- route add -host all-in-one $a
- if [ "$ENABRG" = y ]; then ifconfig $a promisc allmulti; fi
- echo "$b $HOSTNAME $HOSTNAME.$DOMAIN" >>/etc/hosts
- }
- stp() {
- echo -n "Stopping network... "
- dhcpcd -k $INTNAME0 >/dev/null 2>&1
- if [ "$USEPPP0" = y -a "$ROUTER" = ethernet ]; then
- if [ "$PPPTYPE" = t ]; then
- killall pptp
- rm -rf /var/run/pptp
- fi
- [ -f /var/run/ppp-eth.pid ] && kill -2 `cat /var/run/ppp-eth.pid | sed 's/ppp.*//'`
- fi
- for i in 9 8 7 6 5 4 3 2 1 0; do
- eval a='$'INTNAME$i
- if [ "$a" ]; then ifconfig $a down; fi
- done
- =
- }
- str() {
- [ "`fn2`" ] && return 2
- cat >>/etc/hosts <<~
- 127.0.0.1 localhost localhost.localdomain
- 255.255.255.255 all-in-one
- ~
- a=$INTNAME0
- if [ "$MACADDR0" ]; then ifconfig $INTNAME0 hw ether $MACADDR0; fi
- if [ "$ROUTER" = dialup -o "$ROUTER" = leased ]; then
- eval `sed -n /ROUTER=/P /etc/system.cfg`
- [ "$ROUTER" = ethernet ] && return 0
- fi
- ifconfig $a up
- if [ $? != 0 ]; then
- echo "${CR}No network card(s) found at all. Check your settings !!!$CW"
- return 2
- elif [ "$USEPPP0" = y -a "$ROUTER" = ethernet ]; then
- if [ "$PPPRT" = y ]; then
- fn1 0
- else
- fn3 0
- ifconfig $INTNAME0 0.0.0.1 all-in-one broadcast all-in-one
- ifconfig $INTNAME0 up
- = $? "Done $CG No route added"
- fi
-
- [ "$EPPPMTU0" ] || EPPPMTU0=1492
- if [ $EPPPMTU0 -gt 1492 -o "$EPPPMTU0" = "" ]; then EPPPMTU0=1492; fi
- if [ $EPPPMTU0 -lt 128 ]; then EPPPMTU0=128; fi
- PPPOPTIONS="-I $INTNAME0"
- if [ "$CLAMPMSS" = y -a "$PPPTYPE" = o ]; then PPPOPTIONS="$PPPOPTIONS -m `expr $EPPPMTU0 - 40`"; fi
- if [ "$PPPTYPE" = t ]; then fork pptp $PPTPADDR0 file /etc/ppp/pptp.opt; fi
- if [ "$PPPTYPE" = o ]; then pppd defaultroute mru "$EPPPMTU0" mtu "$EPPPMTU0" pty "pppoe $PPPOPTIONS" file /etc/ppp/pppoe.opt; fi
- elif [ "$USEDHCP0" = y ]; then
- [ "$DHCPLOG" = y -o "$BOOTMOD" = debug ] && g="-d"
- rm -f /etc/dhcpc/*
- echo -n "Waiting for DHCPOFFER on $INTNAME0... "
- dhcpcd $g -R -t 30 -c /sbin/dhcpcd.update -h $HOSTNAME $INTNAME0 >/dev/null 2>&1
- if [ -f "/etc/dhcpc/dhcpcd-$INTNAME0.info" ]; then
- . /etc/dhcpc/dhcpcd-$INTNAME0.info
- echo "FIRST_IP=yes" >>/etc/live.cfg
- = 0 "Done $CC $IPADDR"
- else
- echo "${CR}Failed$CW /$CY Delayed$CW"
- beep
- fork dhcpcd.fld
- fi
- elif [ "$IPADDR0" = "" ]; then
- echo "$CR FATAL ERROR.....$CW IP address or use DHCP on network 0 required."
- [ "$ENABEEP" = y ] && beep
- else
- fn1 0
- fi
- return 0
- }
- case "$1" in
- start) str;[ "$?" = 0 ] && fn4;;
- stop) stp;;
- restart)stp;str;[ "$?" = 0 ] && fn4
- rc_main newip;;
- status) set -- `ifconfig | sed -n '/Link/P;/inet/P' | sed 's/Li.*$//;s/Bc.*//;s/inet addr://'`
- echo "--- Network status ---"
- while [ $1 ]; do
- echo "$1 $2"
- shift 2
- done;;
- esac
-