From 555cccfd12d61fc97218f603b2048844b08d15e9 Mon Sep 17 00:00:00 2001 From: klm Date: Mon, 27 Apr 1998 20:13:19 +0000 Subject: Using new X-beenthere message header for loop-detection, particularly for reflection loops. --- modules/maillist.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'modules/maillist.py') diff --git a/modules/maillist.py b/modules/maillist.py index fef4af3ca..a59c435ef 100644 --- a/modules/maillist.py +++ b/modules/maillist.py @@ -1,6 +1,6 @@ "The class representing a mailman maillist. Mixes in many feature classes." -__version__ = "$Revision: 465 $" +__version__ = "$Revision: 476 $" try: import mm_cfg @@ -682,6 +682,7 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, #msg should be an IncomingMessage object. def Post(self, msg, approved=0): self.IsListInitialized() + # Be sure to ExtractApproval, whether or not flag is already set! msgapproved = self.ExtractApproval(msg) if not approved: approved = msgapproved @@ -689,6 +690,11 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin, # If it's the admin, which we know by the approved variable, # we can skip a large number of checks. if not approved: + from_lists = msg.getallmatchingheaders('x-beenthere') + if self.GetListEmail() in from_lists: + self.AddRequest('post', mm_utils.SnarfMessage(msg), + mm_err.LOOPING_POST, + msg.getheader('subject')) if len(self.forbidden_posters): addrs = mm_utils.FindMatchingAddresses(sender, self.forbidden_posters) -- cgit v1.2.3-70-g09d2