#!/bin/sh
# $NetBSD: script,v 1.2 2001/08/01 08:11:33 garbled Exp $

BIGLIST="ftp,tcp telnet,tcp shell,tcp login,tcp exec,tcp uucpd,tcp nntp,tcp \
finger,tcp ident,tcp tftp,udp comsat,udp ntalk,udp bootps,udp hunt,udp \
tcpmux,tcp echo,tcp discard,tcp chargen,tcp daytime,tcp time,tcp echo,udp \
discard,udp chargen,udp daytime,udp time,udp qotd,tcp klogin,tcp eklogin,tcp \
kshell,tcp kerberos-adm,tcp kpasswd,udp hprop,tcp rstatd/1-3,rpc/udp \
rusersd/2-3,rpc/udp walld/1,rpc/udp sprayd/1,rpc/udp rquotad/1,rpc/udp \
ftp,tcp6 telnet,tcp6 shell,tcp6 login,tcp6 finger,tcp6 tftp,udp6 \
kpasswd,udp6 rstatd/1-3,rpc/udp6 rusersd/2-3,rpc/udp6"

INETDCONF="/etc/inetd.conf"

if [ "$1" = "YES" ]; then
	restart=YES
fi
shift

IFS=" "
CONF=`cat $INETDCONF`
echo "Processing $INETDCONF"

j=0
for i in $BIGLIST
do
	TCONF="${CONF}"
	j=`expr $j + 1`
	x=$(echo `eval echo \\$${j}`)
	A=`echo "$i" | sed -e 's@,@	.*	@'`
	B=`echo "$i" | sed -e 's@,@ @'`
	C=`/usr/share/sushi/system/inetdconf/script1 $B | grep YES`
	if [ -z "$C" -a $x = "YES" ]; then
		echo "Cannot enable service $B"
		continue
	fi
	C=`/usr/share/sushi/system/inetdconf/script1 $B | head -1`
	if [ $C = "YES" -a $x = "YES" ]; then
		continue
	fi
	if [ $C = "NO" -a $x = "NO" ]; then
		continue
	fi
	if [ $C = "YES" -a $x = "NO" ]; then
		echo "DISABLING service $B"
		CONF=`echo $TCONF | sed -e "s@\(^$A	.*\)@#\1@"`
	fi
	if [ $C = "NO" -a $x = "YES" ]; then
		echo "ENABLING service $B"
		CONF=`echo $TCONF | sed -e "s@^#\($A	.*\)@\1@"`
	fi
done
echo "Writing modified version to $INETDCONF"
echo $CONF >$INETDCONF

if [ "$restart" = "YES" ]; then
	/etc/rc.d/inetd reload
fi
