How is empty body defined? Would that be simply a .\r\n, with nothing at all before it? It would be obvious to do this:
/* Find the message terminator. */ if (ringbuf[MOD(ringpos - 1, RING_SIZE)] == '\n' && ringbuf[MOD(ringpos - 2, RING_SIZE)] == '\r' && ringbuf[MOD(ringpos - 3, RING_SIZE)] == '.' && (ringbuf[MOD(ringpos - 4, RING_SIZE)] == '\n' || ringbuf[MOD(ringpos - 4), RING_SIZE)] == '\0')) { But that has the potential to terminate if there's a null at the end of a line in the middle of a message. What about *mem to see about the length? /* Find the message terminator. */ if (ringbuf[MOD(ringpos - 1, RING_SIZE)] == '\n' && ringbuf[MOD(ringpos - 2, RING_SIZE)] == '\r' && ringbuf[MOD(ringpos - 3, RING_SIZE)] == '.' && (ringbuf[MOD(ringpos - 4, RING_SIZE)] == '\n' || (totalmem < 3 && usedmem < 3)) { Aaron Ilja Booij <[EMAIL PROTECTED]> said: > > I've found another error in the ringbuf code. > > It does not terminate when sending a message with an empty body. There's > no problem when using dbmail-smtp, only using lmtp. > > Ilja > > _______________________________________________ > Dbmail-dev mailing list > Dbmail-dev@dbmail.org > http://twister.fastxs.net/mailman/listinfo/dbmail-dev > --