home *** CD-ROM | disk | FTP | other *** search
/ Chip: 2005 Utilities / CHIP Utilities 2005.7z / CHIP Utilities 2005.iso / images / freesco.igz / freesco.img / router / rc / rc_net < prev    next >
Encoding:
Text File  |  2003-06-09  |  3.6 KB  |  123 lines

  1. #!/bin/sh
  2. # File modified by Tecknojunky for PPPoE users Oct. 2002
  3. # Bring up/down network adapters, networks and routes
  4. . /etc/system.cfg
  5. . /etc/colors
  6. . /etc/chat.pwd
  7. . /etc/live.cfg
  8.  
  9. [ "$ROUTER" = dialup -o "$ROUTER" = leased ] && USEDHCP0=n
  10.  
  11. fn4()    {   for i in 1 2 3 4 5 6 7 8 9; do
  12.                 eval a='$'INTNAME$i
  13.                 [ "$a" = "" ] || ifconfig $a up || continue
  14.                 [ $? = 0 ] && fn1 $i
  15.             done
  16. }
  17. fn3()    {   im="......"
  18.         if [ "$USEPPP0" = y -a $1 = 0 ]; then
  19.         im="$CC PPPoE"
  20.         [ "$PPPTYPE" = t ] && im="$CC PPtP "
  21.         fi
  22.         echo -n "Initializing interface $a$im..    $CR"
  23. }
  24. fn2()    { ifconfig | sed -n /$INTNAME0/P; }
  25. fn1()    {
  26.     eval b='$'IPADDR$1
  27.     eval c='$'NETMASK$1
  28.     eval d='$'NETWORK$1
  29.     eval e='$'BRDCAST$1
  30.     [ "$b" = "" ] && return 2
  31.     fn3 $1
  32.     ifconfig $a up $b netmask $c broadcast $e multicast $b
  33.     x=$?
  34.     route add -net $d dev $a
  35.     y=$?; = `math $x $y add` "Done $CC $b"
  36.     route add -host all-in-one $a
  37.     if [ "$ENABRG" = y ]; then ifconfig $a promisc allmulti; fi
  38.     echo "$b $HOSTNAME $HOSTNAME.$DOMAIN" >>/etc/hosts
  39. }
  40. stp()    {
  41.     echo -n "Stopping network...                     "
  42.     dhcpcd -k $INTNAME0 >/dev/null 2>&1
  43.     if [ "$USEPPP0" = y -a "$ROUTER" = ethernet ]; then 
  44.         if [ "$PPPTYPE" = t ]; then 
  45.         killall pptp
  46.         rm -rf /var/run/pptp
  47.         fi
  48.             [ -f /var/run/ppp-eth.pid ] && kill -2 `cat /var/run/ppp-eth.pid | sed 's/ppp.*//'`
  49.     fi
  50.     for i in 9 8 7 6 5 4 3 2 1 0; do
  51.         eval a='$'INTNAME$i
  52.         if [ "$a" ]; then ifconfig $a down; fi
  53.     done
  54.     =
  55. }
  56. str()    {
  57.     [ "`fn2`" ] && return 2
  58.     cat >>/etc/hosts <<~
  59. 127.0.0.1 localhost localhost.localdomain
  60. 255.255.255.255 all-in-one
  61. ~
  62.     a=$INTNAME0
  63.     if [ "$MACADDR0" ]; then ifconfig $INTNAME0 hw ether $MACADDR0; fi
  64.     if [ "$ROUTER" = dialup -o "$ROUTER" = leased ]; then
  65.         eval `sed -n /ROUTER=/P /etc/system.cfg`
  66.         [ "$ROUTER" = ethernet ] && return 0
  67.     fi
  68.     ifconfig $a up
  69.     if [ $? != 0 ]; then
  70.         echo "${CR}No network card(s) found at all. Check your settings !!!$CW"
  71.         return 2
  72.     elif [ "$USEPPP0" = y -a "$ROUTER" = ethernet ]; then
  73.         if [ "$PPPRT" = y ]; then 
  74.             fn1 0
  75.         else
  76.             fn3 0
  77.             ifconfig $INTNAME0 0.0.0.1 all-in-one broadcast all-in-one
  78.                 ifconfig $INTNAME0 up
  79.             = $? "Done $CG No route added"
  80.         fi
  81.  
  82.         [ "$EPPPMTU0" ] || EPPPMTU0=1492
  83.         if [ $EPPPMTU0 -gt 1492 -o "$EPPPMTU0" = "" ]; then EPPPMTU0=1492; fi
  84.         if [ $EPPPMTU0 -lt 128 ]; then EPPPMTU0=128; fi
  85.         PPPOPTIONS="-I $INTNAME0"
  86.         if [ "$CLAMPMSS" = y -a "$PPPTYPE" = o ]; then PPPOPTIONS="$PPPOPTIONS -m `expr $EPPPMTU0 - 40`"; fi
  87.         if [ "$PPPTYPE" = t ]; then fork pptp $PPTPADDR0 file /etc/ppp/pptp.opt; fi
  88.         if [ "$PPPTYPE" = o ]; then pppd defaultroute mru "$EPPPMTU0" mtu "$EPPPMTU0" pty "pppoe $PPPOPTIONS" file /etc/ppp/pppoe.opt; fi
  89.     elif [ "$USEDHCP0" = y ]; then
  90.         [ "$DHCPLOG" = y -o "$BOOTMOD" = debug ] && g="-d"
  91.         rm -f /etc/dhcpc/*
  92.         echo -n "Waiting for DHCPOFFER on $INTNAME0...    "
  93.         dhcpcd $g -R -t 30 -c /sbin/dhcpcd.update -h $HOSTNAME $INTNAME0 >/dev/null 2>&1
  94.         if [ -f "/etc/dhcpc/dhcpcd-$INTNAME0.info" ]; then
  95.             . /etc/dhcpc/dhcpcd-$INTNAME0.info
  96.             echo "FIRST_IP=yes" >>/etc/live.cfg
  97.             = 0 "Done $CC $IPADDR"
  98.                 else
  99.             echo "${CR}Failed$CW /$CY Delayed$CW"
  100.             beep
  101.             fork dhcpcd.fld
  102.         fi
  103.     elif [ "$IPADDR0" = "" ]; then
  104.         echo "$CR FATAL ERROR.....$CW IP address or use DHCP on network 0 required."
  105.         [ "$ENABEEP" = y ] && beep
  106.     else
  107.         fn1 0
  108.     fi
  109.     return 0
  110. }
  111. case "$1" in
  112.     start)    str;[ "$?" = 0 ] && fn4;;
  113.     stop)    stp;;
  114.         restart)stp;str;[ "$?" = 0 ] && fn4
  115.         rc_main newip;;
  116.         status)    set -- `ifconfig | sed -n '/Link/P;/inet/P' | sed 's/Li.*$//;s/Bc.*//;s/inet addr://'`
  117.         echo "--- Network status ---"
  118.         while [ $1 ]; do
  119.             echo "$1    $2"
  120.             shift 2
  121.         done;;
  122. esac
  123.