Sébastien, > Acutally I run a postfix 2.5.4 and amavisd-new 2.5.4 on a centos 4 box. > We got these error : > /(!!)TROUBLE in check_mail, but must continue (1): main_log_entry > FAILED: Can't use stri > ng ("1") as a HASH ref while "strict refs" in use at /usr/sbin/amavisd > line 3134, <GEN78> line 648. > /In our logs, mails are scanned with no problem but this warning is very > annoying because all of the amavis temporary directories are not > suppressed : > /(!)PRESERVING EVIDENCE in /var/amavis/tmp/amavis-20090629T105243-24158 > / > I can't see what is the problem, it seems that it's in > fish_out_ip_from_received function on this line: > /for (grep {defined} (@$fields_ref{qw(from-tcp from from-com)}))/
I don't remember any know problems in that area. Could you please check if your subroutines 'sub parse_received' and 'sub fish_out_ip_from_received' are the same as in my original distribution tarball? You may want to add some debugging printouts, e.g.: --- amavisd~ 2008-04-10 16:18:49.000000000 +0200 +++ amavisd 2009-06-29 13:39:04.000000000 +0200 @@ -3123,5 +3123,7 @@ # for my $f (sort {$s{$a}<=>$s{$b}} keys %fld) # { do_log(5, "%-8s -> /%s/", $f,$fld{$f}) } - \%fld; + my($result) = \%fld; + do_log(0, "TEST1 parse_received, result=%s", $result); + $result; } @@ -3129,6 +3131,8 @@ my($received) = @_; my($fields_ref) = parse_received($received); + do_log(0, "TEST2 fish_out_ip_from_received, got %s", $fields_ref); my($ip); local($1); for (grep {defined} (@$fields_ref{qw(from-tcp from from-com)})) { + do_log(0, "TEST3 field %s", $_); if (/ \[ (\d{1,3} (?: \. \d{1,3}){3}) (?: \. \d{4,5} )? \] /x) { $ip = $1; last; Mark ------------------------------------------------------------------------------ _______________________________________________ AMaViS-user mailing list AMaViS-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amavis-user AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3 AMaViS-HowTos:http://www.amavis.org/howto/