#!/usr/bin/ksh
#set -o xtrace
INPUT=$1
GREET=0
SMTPD=0
REJECT=0
SESSIONS=0
VERBOSE=0
TIME=0
NAME=0
if [[ $# -eq 0 ]]; then
	echo "$0 INPUTFILE(S) [-v(erbose) | -t(ai)]" 
	exit 1
fi
if [[ $# -gt 0 ]]; then
	[[ "$1" == "-v" ]] && VERBOSE=1 && INPUT="$2"
	[[ "$1" == "-t" ]] && VERBOSE=1 && TIME=1 && INPUT="$2"
	[[ "$2" == "-v" ]] && VERBOSE=1 
	[[ "$2" == "-t" ]] && VERBOSE=1 && TIME=1 
fi

GREETDELAY=$(grep -n "greetdelay" $INPUT | tr ' ' '_')

for LINE in $GREETDELAY 
do
	LINENO=${LINE%%:*}
	SMTPD=$(($SMTPD+1))	
	IP=$(echo "$LINE" | cut -d "_" -f3)
	PID=$(echo "$LINE" | cut -d "_" -f5)
	PID=$(echo $PID | tr -d ":")
	
	QMAIL="$(grep "qmail-smtpd: pid $PID" $INPUT | grep "$IP")$(grep "rblsmtpd:" $INPUT | grep "$PID" | grep -v "greetdelay" | grep "$IP")"
	[[ "x$QMAIL" != "x" ]] && SESSIONS=$(($SESSIONS+1))
	
	if [[ "x$QMAIL" = "x" ]]; then
		if [[ $VERBOSE -eq 1 ]]; then
			[[ $NAME -eq  1 ]] && DNSNAME=$(dnsname $IP)
			if [[ $TIME -eq 1 ]]; then
				LINE=$(echo "${LINE#*:}" | tai64nlocal | tr '_' ' ')
			else	
				LINE=$(echo "${LINE#*:}" | cut -d " " -f3- | tr '_' ' ')
			fi
			if [[ $NAME -eq 1 ]]; then
				echo "Greetdelayed discouraged: $LINE [$DNSNAME]"
			else
				echo "Greetdelayed discouraged: $LINE"
			fi
		fi
		GREET=$(($GREET+1))
	fi
done	
echo "Connections [$(date)]: $SMTPD -- Greetdelayed: $GREET -- SMTP Sessions: $SESSIONS [$SECONDS secs]"
exit 0
