#! /bin/sh

. "`dirname $0`/rcdefs"

MKIP="`dirname $0`/mkip"

case "`${BIN_UNAME} -r`" in
    0.* | 1.* | 2.0.*)
        ipchains="n"
    ;;
    *)
        ipchains="y"
    ;;
esac

case "$1" in
  start)
    Print -n "Setting up masquerading... "
    while read dev bflag netaddr netbits gateway module
    do
      case "${dev}" in
      \#* | "") 
        continue
        ;; 
      *)   
        network=`${MKIP} -n ${netaddr} ${netbits}`
        netmask=`${MKIP} -m ${netaddr} ${netbits}`
	if [ "${ipchains}" = "y" ]
	then
	    ${BIN_FWSETUP2} -A -P MASQ -s ${network}/${netmask} -d 0.0.0.0/0 ${MASQ_OPTIONS2}
	else
	    ${BIN_FWSETUP} -F -a accept -m -S ${network}/${netmask} -D 0.0.0.0/0 ${MASQ_OPTIONS}
	fi
        ;; 
      esac 
    done < "`dirname $0`/Networks"

    for i in ${MASQ_MODULES}
    do
        ModuleInsert "$i"
    done
    Print "done."
    ;;
  stop)
    Print -n "Shutting down masquerading... "
    for i in ${MASQ_MODULES}
    do
        ModuleRemove "$i"
    done

    while read dev bflag netaddr netbits gateway module
    do
      case "${dev}" in
      \#* | "") 
        continue
        ;; 
      *)   
        network=`${MKIP} -n ${netaddr} ${netbits}`
        netmask=`${MKIP} -m ${netaddr} ${netbits}`
	if [ "${ipchains}" = "y" ]
	then
	    ${BIN_FWSETUP2} -D -P MASQ -s ${network}/${netmask} -d 0.0.0.0/0 ${MASQ_OPTIONS2}
	else
	    ${BIN_FWSETUP} -F -d accept -m -S ${network}/${netmask} -D 0.0.0.0/0 ${MASQ_OPTIONS}
	fi
        ;; 
      esac 
    done < "`dirname $0`/Networks"
    Print "done."
    ;;
  *)
    Usage "$0"
    exit 1
esac

exit 0
