#!/bin/sh
# Begin /etc/rc.d/init.d/network
# configure WIRMA as Access point

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

PROGDHCPD=udhcpd
DHCP_CONFIGFILE="/etc/udhcpd.conf"

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib

exit_ok()
{
  echo "RES_OK"
  exit 1
}
    
exit_ko()
{
  echo "RES_KO"
  exit 0
}
       
start_dhcpd()
{
  touch /var/tmp/udhcpd_${DEVIN}.leases

  if [ "${DHCPD}" = "yes" ]; then
	  case ${DEVIN} in
		  eth0)
			  if [ "${ETHDHCP}" = "yes" ]
			  then
				  echo "Unable to start DHCP server on eth0, please configure fix address"
				  exit_ko
			  else
				  IPADDR=${ETHIPADDR}
			  fi
			  ;;
			wlan0)
			  if [ ${WLANMODE} = "managed" ]
			  then
				  echo "Unable to start DHCP server on wlan0, please configure fix address"
				  exit_ko
			  else
				  IPADDR=${WLANIPADDR}
			  fi
			  ;;
			*)
			  VAR=`/sbin/ifconfig ${DEVIN} | /bin/grep inet | grep -v inet6| awk '{print $2}'`

			  if [ -z "${VAR}" ]; then
			    echo "ERROR:: ${DEVIN} is not available"
			    exit_ko
			  fi
  
			  IPADDR=`echo ${VAR} | awk -F: '{print $2}'`
			  ;;
	  esac

	  echo "IPADDR = ${IPADDR}"
	  
	  ad1=`echo ${IPADDR} | awk -F. '{print $1}'`
	  ad2=`echo ${IPADDR} | awk -F. '{print $2}'`
	  ad3=`echo ${IPADDR} | awk -F. '{print $3}'`

	  ipmask="${ad1}.${ad2}.${ad3}.0/24"

	  echo "ipmask = $ipmask"
	  
	  DHCPDSTARTADDR="${ad1}.${ad2}.${ad3}.${DHCPDSTARTADDRPOST}"
	  DHCPDSTOPADDR="${ad1}.${ad2}.${ad3}.${DHCPDSTOPADDRPOST}"

    cat > ${DHCP_CONFIGFILE} << EOF
lease_file /var/tmp/udhcpd_${DEVIN}.leases
interface ${DEVIN}
start ${DHCPDSTARTADDR}
end   ${DHCPDSTOPADDR}
opt router ${IPADDR}
opt subnet 255.255.255.0
EOF
    if [ -f /etc/resolv.conf ]; then
      dns=`grep nameserver /etc/resolv.conf | awk '{print $2}'`
      if [ -n "$dns" ] ; then
        for i in $dns
        do
          echo "opt dns $i" >> ${DHCP_CONFIGFILE}
        done
      fi
    fi

	 # Log in Syslog (-S)
    ${PROGDHCPD} -S ${DHCP_CONFIGFILE}
  fi
}

stop_dhcpd()
{
  killproc ${PROGDHCPD}
}

start_router()
{
  # activate IP datagram forward
  echo 1 >/proc/sys/net/ipv4/ip_forward
  
  
  # clear all NAT rules
  iptables -F -t nat

  # set iptables
  echo "Activating Masquerading on ${DEVOUT}"
  iptables -t nat -A POSTROUTING -j MASQUERADE -o ${DEVOUT}

}

stop_router()
{
  # clear all NAT rules
  iptables -F -t nat
  
  echo 0 >/proc/sys/net/ipv4/ip_forward
  echo "router stopped"
}

case "$1" in
        start)
           start_router
           start_dhcpd
           exit_ok
           ;;

        stop)
           stop_router
           stop_dhcpd
           exit_ok
           ;;

		  restart)
		    stop_router
			 stop_dhcpd
			 start_router
			 start_dhcpd
			 exit_ok
			 ;;

        *)
           echo "Usage: $0 {start|stop}"
           exit 1
           ;;
esac

# End /etc/rc.d/1init.d/ethernet
