summaryrefslogtreecommitdiff
path: root/Mailman/MailCommandHandler.py
diff options
context:
space:
mode:
authorklm1998-07-12 04:40:09 +0000
committerklm1998-07-12 04:40:09 +0000
commit665e4d0b7d8400c017798f1a4433425e691aeb47 (patch)
tree65be2afa4451f2f3036df609545db85fa7321517 /Mailman/MailCommandHandler.py
parent496988dcbff4c39a61009d2f1a7bccf921e1c232 (diff)
downloadmailman-665e4d0b7d8400c017798f1a4433425e691aeb47.tar.gz
mailman-665e4d0b7d8400c017798f1a4433425e691aeb47.tar.zst
mailman-665e4d0b7d8400c017798f1a4433425e691aeb47.zip
Diffstat (limited to 'Mailman/MailCommandHandler.py')
-rw-r--r--Mailman/MailCommandHandler.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/Mailman/MailCommandHandler.py b/Mailman/MailCommandHandler.py
index f2686d431..a21866954 100644
--- a/Mailman/MailCommandHandler.py
+++ b/Mailman/MailCommandHandler.py
@@ -109,8 +109,9 @@ class MailCommandHandler:
#
# check to see if confirmation request -- special handling
#
- conf_pat = r"%s -- confirmation of subscription -- request (\d\d\d\d\d\d)" % \
- self.real_name
+ conf_pat = (r"%s -- confirmation of subscription"
+ r" -- request (\d\d\d\d\d\d)"
+ % self.real_name)
match = re.search(conf_pat, subject)
if not match:
match = re.search(conf_pat, mail.body)
@@ -118,6 +119,7 @@ class MailCommandHandler:
lines = ["confirm %s" % (match.group(1))]
else:
self.AddError("Subject line ignored: %s" % subject)
+ processed = {} # For avoiding redundancies.
for line in lines:
line = string.strip(line)
if not line:
@@ -135,7 +137,20 @@ class MailCommandHandler:
if not self._cmd_dispatch.has_key(cmd):
self.AddError("%s: Command UNKNOWN." % cmd)
else:
- self._cmd_dispatch[cmd](args, line, mail)
+ # We do not repeat identical commands. (Eg, it's common
+ # with other mlm's for people to put a command in the
+ # subject and the body, uncertain which one has effect...)
+ isdup = 0
+ if not processed.has_key(cmd):
+ processed[cmd] = []
+ else:
+ for did in processed[cmd]:
+ if args == did:
+ isdup = 1
+ break
+ if not isdup:
+ processed[cmd].append(args)
+ self._cmd_dispatch[cmd](args, line, mail)
if not self.__NoMailCmdResponse:
self.SendMailCmdResponse(mail)