#!/bin/sh
#
# If the user wishes to configure the local DMZ, they can do it here
# By Claudio Roberto Cussuol
#

config_dmz ()
{

HAVE_DMZ=N
YNMSG="You you like to configure a De-Militarized Zone? [Y/N]: "
echo
echo "If you don't know what a DMZ is, just answer NO"
check_yn
if [ "$YN" = "Y" ] ; then
	HAVE_DMZ=Y

	DMZ_IPADDR=192.168.1.1
	DMZ_NETMASK=255.255.255.0
	DMZ_BROADCAST=192.168.1.255
	DMZ_NETWORK=192.168.1.0

	IPCALC=`which ipcalc 2> /dev/null`

	if [ $? = 0 ]; then
		HAVE_IPCALC=Y
	else
		HAVE_IPCALC=N
	fi

	echo
	echo "By default, Coyote uses the following settings for the DMZ network"
	echo "interface:"
	echo
	echo "IP Address: $DMZ_IPADDR"
	echo "Netmask:    $DMZ_NETMASK"
	echo "Broadcast:  $DMZ_BROADCAST"
	echo "Network:    $DMZ_NETWORK"
	echo
	YNMSG="Would you like to change these settings? [Y/N]: "
	check_yn
	if [ "$YN" = "Y" ]; then
		DMZ_CFG=YES
		echo -n "Enter DMZ IP Address [$DMZ_IPADDR]: "
		read DMZ_IPADDR2
		[ -z "$DMZ_IPADDR2" ] || DMZ_IPADDR=$DMZ_IPADDR2
		echo -n "Enter DMZ Netmask [$DMZ_NETMASK]: "
		read DMZ_NETMASK2
		[ -z "$DMZ_NETMASK2" ] || DMZ_NETMASK=$DMZ_NETMASK2

		if [ "$HAVE_IPCALC" = "Y" ]; then
			eval `$IPCALC --broadcast $DMZ_IPADDR $DMZ_NETMASK`
			DMZ_BROADCAST=$BROADCAST
			eval `$IPCALC --network $DMZ_IPADDR $DMZ_NETMASK`
			DMZ_NETWORK=$NETWORK
			echo "Broadcast:  $DMZ_BROADCAST"
			echo "Network:    $DMZ_NETWORK"
		else
			echo -n "Enter DMZ Broadcast [$DMZ_BROADCAST]: "
			read DMZ_BROADCAST2
			[ -z "$DMZ_BROADCAST2" ] || DMZ_BROADCAST=$DMZ_BROADCAST2
			echo -n "Enter DMZ network number [$DMZ_NETWORK]: "
			read DMZ_NETWORK2
			[ -z "$DMZ_NETWORK2" ] || DMZ_NETWORK=$DMZ_NETWORK2
		fi
	fi
fi
}

save_dmz_config ()
{
if [ "$HAVE_DMZ" = "Y" ] ; then
	echo "DMZ_IPADDR=$DMZ_IPADDR" >> $CONFIG_FILE
	echo "DMZ_NETMASK=$DMZ_NETMASK" >> $CONFIG_FILE
	echo "DMZ_BROADCAST=$DMZ_BROADCAST" >> $CONFIG_FILE
	echo "DMZ_NETWORK=$DMZ_NETWORK" >> $CONFIG_FILE
fi
}

config_dmz_card ()
{
if [ "$HAVE_DMZ" = "Y" ] ; then
	echo -n "Enter the module name for your DMZ card: "
	read CARD1
	echo -n "Enter IO address (Leave blank for PCI cards): "
	read IOADDR
	echo -n "Enter IRQ (Leave blank for PCI cards): "
	read IRQ
	if [ -n "$IOADDR" ] ; then CARD1="$CARD1 io=0x$IOADDR" ; fi
	if [ -n "$IRQ" ] ;    then CARD1="$CARD1 irq=$IRQ" ; fi
	#Copy the needed modules into place
	NETMOD1=`echo $CARD1 | cut -d " " -f 1`
	# Set any module dependencies
	set_deps
	# Install necessary dep modules
	if ! [ -z "$MODDEP1" ]; then
		if ! [ -f drivers/$MODDEP1.o ]; then
			echo "Unable to copy dep modules for card1 ($MODDEP1)"
			exit 1
		fi
		cp drivers/$MODDEP1.o pkgsrc/modules/lib/modules/
		if [ -z "`grep "$MODDEP1" pkgsrc/modules/etc/modules`" ] ; then
			echo "$MODDEP1" >> pkgsrc/modules/etc/modules
		fi
	fi
	# Install the card driver
	if ! [ -f drivers/$NETMOD1.o ]; then
		echo "Unable to copy driver module for card1 ($NETMOD1)"
		exit 1
	fi
	cp drivers/$NETMOD1.o pkgsrc/modules/lib/modules/
	if [ -z "`grep "$CARD1" pkgsrc/modules/etc/modules`" ] ; then
		echo "$CARD1" >> pkgsrc/modules/etc/modules
	fi
fi
}
