#!/bin/sh
# WARNING: This file was auto-generated. Do not edit!
#
# $Log: qf-smtp-ratelimit.in,v $
# Revision 1.3  2021-08-03 15:54:52+05:30  Cprogrammer
# replaced /bin/cat with exit 0 which does the same thing
#
# Revision 1.2  2021-08-03 00:31:16+05:30  Cprogrammer
# multiply by 3600 to convert to hourly rate
#
# Revision 1.1  2019-02-21 14:17:30+05:30  Cprogrammer
# Initial revision
#
#
if [ ! -d /var/indimail/domains/$QMAILHOST ] ; then
	exit 0
fi
if [ ! -d /var/indimail/domains/$QMAILHOST/smtp_timestamps ] ; then
	exit 0
fi
[ -z "$SMTP_RATE" ] && SMTP_RATE=30
cur_time=`date +%s`
if [ -f /var/indimail/domains/$QMAILHOST/smtp_timestamps/"$QMAILUSER"@"$QMAILHOST".t ] ; then
	ftime=`stat -c "%Y" /var/indimail/domains/$QMAILHOST/smtp_timestamps/"$QMAILUSER"@"$QMAILHOST".t`
	diff=`expr $cur_time - $ftime`
	mcount=`cat /var/indimail/domains/$QMAILHOST/smtp_timestamps/"$QMAILUSER"@"$QMAILHOST".t`
	rate=`expr 3600 \* $mcount / $diff`
	if [ $rate -gt $SMTP_RATE ] ; then
		echo "Zquota rate [$rate] > $SMTP_RATE exceeded for $QMAILUSER@$QMAILHOST" 1>&2
		exit 88
	else
		diff=`expr $cur_time - $ftime`
		if [ $diff -gt 1800 ] ; then
			echo 1 > /var/indimail/domains/$QMAILHOST/smtp_timestamps/"$QMAILUSER"@"$QMAILHOST".t
			exit 0
		else
			mcount=`expr $mcount + 1`
			echo $mcount > /var/indimail/domains/$QMAILHOST/smtp_timestamps/"$QMAILUSER"@"$QMAILHOST".t
			exit 0
		fi
	fi
else
	echo 1 > /var/indimail/domains/$QMAILHOST/smtp_timestamps/"$QMAILUSER"@"$QMAILHOST".t
	exit 0
fi
