>> For example, I have this recipe:
>>
>> :0 W: cksum.lock
>> | pycksum -v $HOME/tmp/spam.cache
Sean> FTR, you cited the manpage description of 'w' (lowercase), but
Sean> you're using 'W' (uppercase) in the recipe you're asking about -
Sean> while the two are essentially the same, differing only in that 'W'
Sean> (uppercase) suppresses the program failure message which would
Sean> appear in the log, I think it's worth noting anyway. Flags are
Sean> case sensitive.
Right, and that was my intent, though maybe for the wrong reason. I really
just want to exit with 1 or 0. I was incorrectly interpreting 'W' as
suppressing failures altogether. 'w' is what I want.
>> If pycksum exits with a 0 status procmail will consider the message
>> delivered, right?
Sean> ... (I presume from the name of the program you're using, it's
Sean> probably a checksum program, and therfore it should probably be
Sean> reading the WHOLE file, so wouldn't normally run afoul of this
Sean> condition).
Yes. I'm computing several partial checksums from the message after
stripping out stuff that might vary across similar spams (urls, etc), then
want to exit with 0 status if one or more subsets of the partial checksums
match. The idea isn't original with me. I got the idea from Justin Mason
who indicated that SpamAssassin uses a similar technique. My checksum
program is just my interpretation of that idea.
My confusion stemmed from two problems. First, I had a bug in my checksum
program. Second, thinking I had screwed up the return values I had them
backwards. Upon rereading the procmail man page I corrected the return
values, but it started marking most messages as "duplicates". That's when I
began to doubt my interpretation of the man page. This morning I found and
corrected the bug. It seems to be doing a much better job at squashing
duplicates now.
Thanks,
Skip
_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail