#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

. /etc/colorrc

test -f /etc/aldccp/network || exit 0
. /etc/aldccp/network

test ! x$NETWORKING = x"yes" && exit 0





case "$1" in
  start)
    if test x$WLAN0_START = x"yes" -o x$WLAN0_START = x"dhcp" ; then

      if test -n "$WLAN0_MODULE" ; then
	mods=`lsmod | grep "$WLAN0_MODULE "`
	if test -n "$mods" ; then
	  if test x$WLAN0_START = x"dhcp" ; then
	    udhcpc -n -q -t 4 -i $WLAN0_INTERFACE
	    if test $? != 0 ; then
	      if test x$USE_WPA_GUI = x"yes" -a -f "/tmp/.X0-lock" ; then
		startproc /usr/bin/wpa_gui
	      fi
	    fi
	  else
	    echo "WARNING: wlan $WLAN0_MODULE always run"$rc_Ok
	  fi
	  exit 0; 
	else
	  modprobe $WLAN0_MODULE
	  if test $? != 0; then
	    echo "ERROR: $WLAN0_MODULE not found (look dmesg)"$rc_Err
	    exit 1;
	  fi
	  sleep 1
	fi
      fi
    fi

    if test x$WLAN0_START = x"yes" ; then
      echo -n "Config $WLAN0_INTERFACE IPADDR=$WLAN0_IPADDR"$rc_Load
      ifconfig $WLAN0_INTERFACE $WLAN0_IPADDR netmask $WLAN0_NETMASK up 2>/dev/null
      if test $? != 0; then
	rmmod $WLAN0_MODULE
	echo $rc_Err
	exit 1
      fi
      echo $rc_Ok

      if test x$USE_WPA_GUI = x"yes" ; then
	if test -d $HOME/.ALDccp/Menu/StartMenu/Network -a -f /usr/share/applications/wpa_gui.desktop ; then
	  cp /usr/share/applications/wpa_gui.desktop $HOME/.ALDccp/Menu/StartMenu/Network/
	fi
      fi


      if test -n "$WLAN0_GATEWAY" ; then
	echo -n "Config $WLAN0_INTERFACE route=$WLAN0_GATEWAY"$rc_Load
	route add default gw $WLAN0_GATEWAY 2>/dev/null
	if test $? != 0; then
	  ifconfig $WLAN0_INTERFACE down 2>/dev/null
	  rmmod $wlanMod
	  echo $rc_Err
	  exit 1
	fi
	echo $rc_Ok
      fi

      if test ! -e /var/run/wpa_supplicant/$WLAN0_INTERFACE ; then
	wpa_supplicant -B -Dnl80211 -i$WLAN0_INTERFACE -c/etc/wpa_supplicant.conf -P/var/run/wpa_supplicant/$WLAN0_INTERFACE.pid
	if test $? != 0; then
	  exit 1
	fi
      fi

    elif test x$WLAN0_START = x"dhcp" ; then
      echo -n "Config $WLAN0_INTERFACE on"$rc_Load
      ifconfig $WLAN0_INTERFACE 0.0.0.0 up 2>/dev/null
      if test $? != 0; then
	rmmod $WLAN0_MODULE
	echo $rc_Err
	exit 1
      fi
      echo $rc_Ok

      if test ! -e /var/run/wpa_supplicant/$WLAN0_INTERFACE ; then
	wpa_supplicant -B -Dnl80211 -i$WLAN0_INTERFACE -c/etc/wpa_supplicant.conf -P/var/run/wpa_supplicant/$WLAN0_INTERFACE.pid
	if test $? != 0; then
	  exit 1
	fi
      fi

      if test x$USE_WPA_GUI = x"yes" ; then
	if test -d $HOME/.ALDccp/Menu/StartMenu/Network -a -f /usr/share/applications/wpa_gui.desktop ; then
	  cp /usr/share/applications/wpa_gui.desktop $HOME/.ALDccp/Menu/StartMenu/Network/
	fi
      fi

      udhcpc -n -q -t 6 -i $WLAN0_INTERFACE
      if test $? != 0 ; then
	if test x$USE_WPA_GUI = x"yes" -a -f "/tmp/.X0-lock" ; then
	  startproc /usr/bin/wpa_gui
	fi
      fi



    fi
    ;;

  stop)
    if test x$USE_WPA_GUI = x"yes" ; then
      if test -f $HOME/.ALDccp/Menu/StartMenu/Network/wpa_gui.desktop ; then
	rm -f $HOME/.ALDccp/Menu/StartMenu/Network/wpa_gui.desktop
      fi
    fi
    killall wpa_gui 2>/dev/null

    if test -e /var/run/wpa_supplicant/$WLAN0_INTERFACE.pid ; then
      P=`cat /var/run/wpa_supplicant/$WLAN0_INTERFACE.pid`
      rm -f /var/run/wpa_supplicant/$WLAN0_INTERFACE.pid
      kill -15 $P
    fi

    if test -n "$WLAN0_MODULE" ; then
      mods=`lsmod | grep "$WLAN0_MODULE "`
      if test -n "$mods" ; then
	echo "Shutting $WLAN0_INTERFACE"$rc_Ok
	ifconfig $WLAN0_INTERFACE down 2>/dev/null
	rmmod $WLAN0_MODULE
      fi
    fi
    ;;
  *)
    echo "Usage: {start|stop}"
    exit 1
    ;;
esac

exit 0
