Davide, 
I did look at the binary (after my first email) - see the my subsequent
email included below for reference:

Further to that email below, It seems that the basic issue is that your doco
states that the RC +16 is valid, it does not state that if the 5th LSB is on
then filter processing will stop - quite a difference.

>So I'm assuming that you check for bit 5 to be on, to stop the filters. 
>Probably a logical "AND 16" or "AND 0x10".

Can I suggest that the next version of xMail limit its errcode
interpretation to the published numbers of 0,3,4,5,6,7,19,20,21,22,23
ignoring any other - OR change the doco to reflect actual operation.

I still welcome your feedback Davide.

Rob  :-)

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Rob Arends
Sent: Monday, 24 April 2006 1:27 AM
To: xmail@xmailserver.org
Cc: [EMAIL PROTECTED]
Subject: [xmail] Re: Filters stopping with errcode 90


Davide, 

I have diagnosed this further to be able to say with certainty, that any
filter returning with errcode 90 will not run the next filter. (The SMAIL
log shows that the offending email was actually delivered, & the user
confirmed this.)

So the Nett effect is that all filter processing stops and the email is
delivered.

Having a think about your errcode logic...
You document that you can add 16 to the errcode to "stop filter list
processing"

So I'm assuming that you check for bit 5 to be on, to stop the filters. 
Probably a logical "AND 16" or "AND 0x10".

4  decimal = 00000100 binary -> stop email, but process next filter 20
decimal = 00001100 binary -> stop email, and do not process next filter 90
decimal = 01011010 binary

So that would mean that every alternate 16 numbers would trigger the "stop
filters"
16-31, 48-63, etc
Or divide the number by 16 and if the integer part is odd then it falls in
to the '16' category.

It really depends on how you have coded this logic.
And I know you never expected some filter writer to return errcodes that
were not on YOUR list, however your documentation is clear and I don't
believe an errcode=90 violates that.

I can probably work-around this by wrapping the EXE in a CMD (not very nice)
but this will get around the issue.

I'll follow up with Dario about his errcodes, but can I suggest that the
next version of xMail limit its errcode interpretation to the published
numbers of 0,4,5,6,7,20,21,22,23  ignoring any other.

I welcome your feedback Davide,

Rob  :-)


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Davide Libenzi
Sent: Wednesday, 26 April 2006 3:44 AM
To: xmail@xmailserver.org
Subject: [xmail] Re: Filters stopping with errcode 90


On Sun, 23 Apr 2006, Rob Arends wrote:

> I'm trying to track down a non-delivered email.
> I have found that the root cause was Dario's AVFilter returned errcode 90.
>
> Which I believe to be 'normal' for a particular behaviour.
>
> The problem is that the next filter did not execute and the email was 
> dropped.
> The filter is a normal 'in filter' and returns '20' when a Virus is found.
> It does return various other errcodes, but not the usual xMail 
> documented codes.
> No problem, xMail just ignores the ones it is not looking for.
>
> I had this scary thought that, like DOS cmd file, the errcode is true 
> when the value is equal OR higher.
>
> So I checked the xMail doco and it clearly states the if the filter 
> does not return 4,5,6 (and I assume 20,21,22) the message continues.
>
> "If all filters return values different from '6, 5 and 4' the message 
> continues its trip."
>
> I have logs created for filters and smtp, and looking through them, I 
> clearly see that the email was RECV=OK (smtp), and 2 of 3 filters ran.  
> See below the filters log excerpt, showing the errcode 90.
>
> "pre-data" "" "0" "0"  "d:\Greylist\glst.exe"
> "in"       "" "0" "90" "D:\AvFilter\AvFilter.exe"
>
> So the point is, the filter returned 90, why did the next filter not 
> fire - why was the email not delivered?
>
> I was running 1.21 at the time and are now running 1.22, but looking 
> at the change log, I don't believe there is any difference in filter 
> handling and execution.
>
> Does anyone have any thoughts?

Now stop thinking in decimal, and look at it in binary:

4  = 00000100
5  = 00000101
6  = 00000110
16 = 00010000
90 = 01011010

For XMail you are returning:

    = 00010010
         ^  ^-----> 2
         +--------> 16



- Davide


-
To unsubscribe from this list: send the line "unsubscribe xmail" in the body
of a message to [EMAIL PROTECTED] For general help: send the line
"help" in the body of a message to [EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe xmail" in
the body of a message to [EMAIL PROTECTED]
For general help: send the line "help" in the body of a message to
[EMAIL PROTECTED]

Reply via email to