summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorbwarsaw2000-05-09 20:34:45 +0000
committerbwarsaw2000-05-09 20:34:45 +0000
commit73e3711097f49b12adc0ea2dee303f0ff212022f (patch)
tree132a47d9e326b447ab84cbc424f75e9ec8cbcab7 /scripts
parent2e0cc4b20375c12c10f76dabfa69cb8355c774a3 (diff)
downloadmailman-73e3711097f49b12adc0ea2dee303f0ff212022f.tar.gz
mailman-73e3711097f49b12adc0ea2dee303f0ff212022f.tar.zst
mailman-73e3711097f49b12adc0ea2dee303f0ff212022f.zip
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/mailcmd26
-rwxr-xr-xscripts/request26
2 files changed, 44 insertions, 8 deletions
diff --git a/scripts/mailcmd b/scripts/mailcmd
index 8ed6c86e1..71d62277b 100755
--- a/scripts/mailcmd
+++ b/scripts/mailcmd
@@ -32,6 +32,7 @@ from Mailman import mm_cfg
from Mailman import MailList
from Mailman import Utils
from Mailman import Message
+from Mailman import Errors
from Mailman.pythonlib.StringIO import StringIO
from Mailman.Logging.Utils import LogStdErr
@@ -39,18 +40,35 @@ LogStdErr("error", "mailcmd")
-def main():
- # allow misconfigurations to be logged in logs/error
- mlist = MailList.MailList(sys.argv[1])
+def main(mlist):
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ sys.stderr.write('Mailman error: mailcmd got no listname.\n')
+ sys.exit(1)
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ sys.stderr.write('Mailman error: mailcmd got bad listname: %s\n%s' %
+ (listname, e))
+ sys.exit(1)
+ # Try to obtain the mailing list lock. If that fails, enqueue the message
+ # for delivery by the qrunner cron job.
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ msg.Enqueue(mlist)
+ return
try:
s = StringIO(sys.stdin.read())
msg = Message.Message(s)
- msg.torequest = 1
+ # Moved the setting of 'torequest' into MailCommandHandler
mlist.ParseMailCommands(msg)
finally:
mlist.Save()
mlist.Unlock()
+
if __name__ == '__main__':
main()
diff --git a/scripts/request b/scripts/request
index 8ed6c86e1..71d62277b 100755
--- a/scripts/request
+++ b/scripts/request
@@ -32,6 +32,7 @@ from Mailman import mm_cfg
from Mailman import MailList
from Mailman import Utils
from Mailman import Message
+from Mailman import Errors
from Mailman.pythonlib.StringIO import StringIO
from Mailman.Logging.Utils import LogStdErr
@@ -39,18 +40,35 @@ LogStdErr("error", "mailcmd")
-def main():
- # allow misconfigurations to be logged in logs/error
- mlist = MailList.MailList(sys.argv[1])
+def main(mlist):
+ try:
+ listname = sys.argv[1]
+ except IndexError:
+ sys.stderr.write('Mailman error: mailcmd got no listname.\n')
+ sys.exit(1)
+ try:
+ mlist = MailList.MailList(listname, lock=0)
+ except Errors.MMListError, e:
+ sys.stderr.write('Mailman error: mailcmd got bad listname: %s\n%s' %
+ (listname, e))
+ sys.exit(1)
+ # Try to obtain the mailing list lock. If that fails, enqueue the message
+ # for delivery by the qrunner cron job.
+ try:
+ mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
+ except LockFile.TimeOutError:
+ msg.Enqueue(mlist)
+ return
try:
s = StringIO(sys.stdin.read())
msg = Message.Message(s)
- msg.torequest = 1
+ # Moved the setting of 'torequest' into MailCommandHandler
mlist.ParseMailCommands(msg)
finally:
mlist.Save()
mlist.Unlock()
+
if __name__ == '__main__':
main()