Eric S. Raymond wrote:
If you send a fix patch, yes.
I knew you would say that...
- the interface warning may need further investigation. Since 5.9.13 you
compile fetchmail by default with --enable-inet6.
- for the odmr optics I would propose the following patch. It checks the
responses from the local SMTP receiver and if it replies with 354 (I
think this code is only used for acknowledging DATA) we report the
receiving of a message and do not log any data.
(the patch was done on 6.0.0 but since odmr.c was not changed in 6.1.0
it applies also to this version)
--- fetchmail-6.0.0/odmr.c Tue Apr 2 04:50:32 2002
+++ fetchmail-6.0.0./odmr.c Mon Sep 23 15:48:49 2002
@@ -48,6 +48,7 @@
/* send ODMR and then run a reverse SMTP session */
{
int ok, opts, smtp_sock;
+ int doing_smtp_data = 0; /* Are we in SMTP DATA state? */
char buf [MSGBUFSIZE+1];
struct idlist *qnp; /* pointer to Q names */
@@ -165,7 +166,7 @@
break;
SockWrite(smtp_sock, buf, n);
- if (outlevel >= O_MONITOR)
+ if (outlevel >= O_MONITOR && !doing_smtp_data)
report(stdout, "ODMR< %s", buf);
}
if (FD_ISSET(smtp_sock, &readfds))
@@ -177,6 +178,16 @@
SockWrite(sock, buf, n);
if (outlevel >= O_MONITOR)
report(stdout, "ODMR> %s", buf);
+
+ /* We are about to receive message data if the local MTA
+ * sends 354 (after receiving DATA) */
+ if (!doing_smtp_data && !strncmp(buf, "354", 3))
+ {
+ doing_smtp_data = 1;
+ report(stdout, "receiving message data\n");
+ }
+ else if (doing_smtp_data)
+ doing_smtp_data = 0;
}
}
SockClose(smtp_sock);