--- ./sink.c.tv 2007-01-16 15:08:38.000000000 +0100 +++ ./sink.c 2007-01-16 15:09:24.000000000 +0100 @@ -728,7 +728,25 @@ n = fwrite(buf, last - buf, 1, sinkfp); if (ferror(sinkfp)) n = -1; } else if (ctl->smtp_socket != -1) - n = SockWrite(ctl->smtp_socket, buf, last - buf); + { + if ((strstr(buf,"\n")) == NULL) + { + size_t l = strlen(buf); + char *buf1 = xmalloc(l + 2); /* alloc a buffer with room for \n\0 */ + if (buf1) + { + strcpy(buf1, buf); + buf1[l] = '\n'; + buf1[l + 1] = '\0'; + n = SockWrite(ctl->smtp_socket, buf1, l + 1); + xfree(buf1); + } + else + n = SockWrite(ctl->smtp_socket, buf, last - buf); + } + else + n = SockWrite(ctl->smtp_socket, buf, last - buf); + } phase = oldphase;