dccifd - smtp sequence problem?

Martin Pála Martin.Pala@oskar.cz
Tue Aug 16 09:45:51 UTC 2005


>> i'm trying to set postfix with dccifd before-queue content filter as described in dccifd manual page, however i have some strange problems - dccifd refuses the message right after DATA command as 'bad dccifd command sequence':
> 
>> MAIL FROM:<test@test.cz> SIZE=384
>> 250 Ok
>> RCPT TO:<foo@bar.cz>
>> 250 Ok
>> DATA
>> 503 Bad dccifd command sequence
> 
> I see the problem.  Dccifd expects SMTP commands to comply with section
> 4.1.2 of RFC 821:
> 
>          This also applies to any symbols representing parameter values,
>          such as "TO" or "to" for the forward-path.  Command codes and
>          the argument fields are separated by one or more spaces.
> 
> and section 2.4 of RFC 2812:
> 
>    SMTP commands and replies have a rigid syntax.  All commands begin
>    with a command verb.  All Replies begin with a three digit numeric
>    code.  In some commands and replies, arguments MUST follow the verb
>    or reply code.  Some commands do not accept arguments (after the
>    verb), and some reply codes are followed, sometimes optionally, by
>    free form text.  In both cases, where text appears, it is separated
>    from the verb or reply code by a space character.  
> 
> I interpret that to mean that a blank should separate appear after
> "FROM:" and before "<test@test.cz>" as well as after "TO:" and
> before "<foo@bar.cz>"
> 
> However, the First Rule, "Be liberal in what you accept and ..."
> requires that dccifd accept "MAIL FROM:<test@test.cz>"
> I think this patch to the 1.3.15 version of dccifd/dccifd.c fixes it:
> 

You are right, the patch solved the problem. Btw. the test was replay of message send by Mozilla Thunderbird 1.0.6 (attempt failed) => it seems that this user agent doesn't include the space in MAIL and RCPT commands ...

I have yet one problem - i will describe it in another mail.

Thanks,
Martin








More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.