#!/bin/sh
# post-dhcpd.ini
#
# DHCP server for the inside network
# Modified by Benoit Mortier
# 08/04/2001
# opensides@caramail.com

. /etc/config

[ -f /etc/dhcpc/dhcpcd-${OUTSIDE_DEV}.info ] && . /etc/dhcpc/dhcpcd-${OUTSIDE_DEV}.info

. /etc/inside.info

#
# Build the config file
#

echo "default-lease-time 6000;" >> /etc/dhcpd.conf
echo "max-lease-time 72000;" >> /etc/dhcpd.conf
echo "option subnet-mask ${INSIDE_NETMASK};" >> /etc/dhcpd.conf
echo "option broadcast-address ${INSIDE_BROADCAST};" >> /etc/dhcpd.conf
echo "option routers ${INSIDE_IP};" >> /etc/dhcpd.conf
if [ ${NAME_SERVER_IP1} ]; then
	echo "option domain-name-servers ${NAME_SERVER_IP1}${NAME_SERVER_IP2:+, $NAME_SERVER_IP2};" >> /etc/dhcpd.conf
fi
echo "option domain-name \"${DOMAIN}\";" >> /etc/dhcpd.conf

echo "subnet ${INSIDE_NETWORK} netmask ${INSIDE_NETMASK} {" >> /etc/dhcpd.conf
if [ -n "$DHCP_RANGE_START" -a -n "$DHCP_RANGE_END" ]; then
	echo "  range ${DHCP_RANGE_START} ${DHCP_RANGE_END};" >> /etc/dhcpd.conf
fi
echo "}" >> /etc/dhcpd.conf

if [ -z "$DHCPD_DEVICES" ]; then
	DHCPD_DEVICES="${INSIDE_DEV}"
fi
if [ -n "$INSIDE_EXTRA_IF" ]; then
	for i in $INSIDE_EXTRA_IF; do
		eval "echo \"subnet \${INSIDE_${i}_NETWORK} netmask \${INSIDE_${i}_NETMASK} {\" >> /etc/dhcpd.conf"
		if [ -n "`eval "echo \"\$DHCP_${i}_RANGE_START\""`" -a -n "`eval "echo \"\$DHCP_${i}_RANGE_END\""`" ]; then
			eval "echo \"  range \${DHCP_${i}_RANGE_START} \${DHCP_${i}_RANGE_END};\" >> /etc/dhcpd.conf"
		fi
		eval "echo \"  option broadcast-address \${INSIDE_${i}_BROADCAST};\" >> /etc/dhcpd.conf"
		eval "echo \"  option routers \${INSIDE_${i}_IP};\" >> /etc/dhcpd.conf"
		echo "}" >> /etc/dhcpd.conf
		eval "DHCPD_DEVICES=\"$DHCPD_DEVICES \${INSIDE_${i}_DEV}\""
	done
fi

#
# Create the empty leases database
#
echo -n > /etc/dhcpd.leases

#
# Run the server in the inside lan
#
/bin/dhcpd ${DHCPD_DEVICES}
