[Mimedefang] $delay ignored from filter_recipient and friends if $code="CONTINUE"?

Ole Craig olc at cs.umass.edu
Tue Jul 6 13:04:07 EDT 2004


David, et al -
	From a quick test, it looks to me like $delay (optional fifth
return element from filter_[sender|relay|recipient]) is ignored if
$code is "CONTINUE". 

	I'd like to insert a delay after every RCPT for a given
message if bad recipients have been found, and increment the delay
value each time a new bad recipient has been found... e.g. 

sub filter_recipient {
    my $lerrfile="./olc-luser-errors";
    my $unkluser=0;
    my $delay=0;
    my ($recipient, $sender, $ip, $hostname, $first, $helo, $rcpt_mailer, $rcpt_host, $rcpt_addr) = @_;
	# fail "open" if we can't open $lerrfile for read/write
	if (open (LERRS, "+>> $lerrfile")) {
	    while (<LERRS>) {
		chomp ($unkluser=<LERRS>);
	    }
	    if bad_recipient($recipient) {
		$unkluser++;
		print LERRS "$unkluser\n";
	    }
	    close(LERRS);
	    # cumulative penalty for any bad RCPTs
	    $delay=($unkluser*2);
	    $unkluser && return ('REJECT', "$recipient... LUser unknown", "550", "5.1.1", "$delay");
	}
    # if we've already seen bad RCPTs, delay valid ones too
    return ('CONTINUE', "ok", "250", "2.1.5", "$delay");
}

	but my $delay is ignored in the second return statement above.
<poke, sniff> in fact, so is my DSN. Is this a milter limitation or a
multiplexor characteristic?

	Thanks,
		Ole
-- 
Ole Craig * UNIX, linux, SMTP-ninja; news, web; SGI martyr * CS Computing
Facility, UMass * <www.cs.umass.edu/~olc/pgppubkey.txt> for public key

   Need a seasoned *NIX admin in the Denver/Boulder area? Hire me!



More information about the MIMEDefang mailing list