>>>>> "Christoph" == Christoph Haas <[EMAIL PROTECTED]> writes:
Christoph> I have added a few debug prints in the amavids-new code Christoph> and just copied the part to /tmp/part for further Christoph> analysis. This is what's probably wrong: Ok, I have been looking at the code, in the testing/unstable version. It is so ugly it is not funny. There is a global variable $any_undecipherable and a local variable $any_undecipherable in check_mail. For every part check_mail calls: ($hold,$prot) = decompose_part (what is $hold???) which sets the following global: $any_undecipherable = 0; which in turn calls do_uncompress, registers an error, but does not increment $any_undecipherable. It then returns ($hold, $any_undecipherable). The value of the *global* $any_undecipherable maps to the local $prot. If $prot is non-zero, then the *local* $any_undecipherable is incremented. check_mail after uncompressing all parts, checks the value of the *local* variable $any_undecipherable, and allows the mail if and only if UNDECIPHERABLEs are not banned in the config file. The problem are: 1. $any_undecipherable isn't set on file read error. 2. I am not sure how code flows from decompose_part to the call to file which fails. In fact, this call seems to occur first! Anyway to cut a long story short, does this patch help? It fixes 1, but not 2. I would like to think/pretend that solving 1 will automagically solve 2. --- amavisd.old 2005-05-06 10:22:45.926093480 +1000 +++ amavisd 2005-05-06 10:58:57.513961944 +1000 @@ -4024,6 +4024,7 @@ else { do_log(0,"Decoding of $part ($filetype) failed, ". "leaving it unpacked: $@"); + $any_undecipherable++; } $sts = 2; } The more I read this code, the more confused I get, I am going to take a break now. -- Brian May <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]