diff options
| author | bwarsaw | 2000-05-09 20:34:45 +0000 |
|---|---|---|
| committer | bwarsaw | 2000-05-09 20:34:45 +0000 |
| commit | 73e3711097f49b12adc0ea2dee303f0ff212022f (patch) | |
| tree | 132a47d9e326b447ab84cbc424f75e9ec8cbcab7 /scripts | |
| parent | 2e0cc4b20375c12c10f76dabfa69cb8355c774a3 (diff) | |
| download | mailman-73e3711097f49b12adc0ea2dee303f0ff212022f.tar.gz mailman-73e3711097f49b12adc0ea2dee303f0ff212022f.tar.zst mailman-73e3711097f49b12adc0ea2dee303f0ff212022f.zip | |
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/mailcmd | 26 | ||||
| -rwxr-xr-x | scripts/request | 26 |
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() |
