On Fri, 14 May 2004, Nico Erfurth wrote:
> I just looked over it and it seems like that drop isn't handle the same
> way in a data-acl, as it is in the other ACL. At least I see nothing
> that could handle a FAIL_DROP there. Maybe the buffer isn't flushed in
> this case? I'm not sure and I don't have time to look closer into it.
Thanks, Nico. I think you are right. Jean-Louis, please try this patch:
In the daemon.c source file, around line 451, there is this code
if ((rc = smtp_setup_msg()) > 0)
{
BOOL ok = receive_msg(FALSE);
search_tidyup(); /* Close cached databases */
if (!ok) _exit(EXIT_SUCCESS); /* Connection was dropped */
if (message_id[0] == 0) continue; /* No message was accepted */
}
Change the 3rd-last line to
if (!ok)
{
mac_smtp_fflush();
_exit(EXIT_SUCCESS);
}
So the whole fragment should read
if ((rc = smtp_setup_msg()) > 0)
{
BOOL ok = receive_msg(FALSE);
search_tidyup(); /* Close cached databases */
if (!ok)
{
mac_smtp_fflush();
_exit(EXIT_SUCCESS);
}
if (message_id[0] == 0) continue; /* No message was accepted */
}
Does this fix the problem?
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.