From ae834a7a482ef0b90b50b06e1b02101669515973 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 27 Jul 2000 16:46:34 +0000 Subject: Better comment. svn path=/trunk/; revision=2937 --- driver.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/driver.c b/driver.c index cd0e5d93..c0301cdd 100644 --- a/driver.c +++ b/driver.c @@ -550,15 +550,24 @@ static int readheaders(int sock, * addressed to multiple people on the client machine, there * will be one copy left in the box for each recipient. Thus, * if the mail is addressed to N people, each recipient will - * get N copies. + * get N copies. This is bad when N > 1. * * Foil this by suppressing all but one copy of a message with - * a given Message-ID. Note: This implementation only catches - * runs of successive identical messages, but that should be - * good enough. A more general implementation would have to store + * a given Message-ID. The accept_count test ensures that + * multiple pieces of email with the same Message-ID, each + * with a *single* addressee (the N == 1 case), won't be + * suppressed. + * + * Note: This implementation only catches runs of successive + * messages with the same ID, but that should be good + * enough. A more general implementation would have to store + * ever-growing lists of seen message-IDs; in a long-running + * daemon this would turn into a memory leak even if the + * implementation were perfect. * - * The accept_count test ensures that multiple pieces of identical - * email, each with a *single* addressee, won't be suppressed. + * Don't mess with this code casually. It would be way too easy + * to break it in a way that blackholed mail. Better to pass + * the occasional duplicate than to do that... */ if (MULTIDROP(ctl) && !strncasecmp(line, "Message-ID:", 11)) { -- cgit v1.2.3