diff options
Diffstat (limited to 'Mailman/Cgi/confirm.py')
| -rw-r--r-- | Mailman/Cgi/confirm.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Mailman/Cgi/confirm.py b/Mailman/Cgi/confirm.py index 2fabebff8..2fee4d930 100644 --- a/Mailman/Cgi/confirm.py +++ b/Mailman/Cgi/confirm.py @@ -16,6 +16,8 @@ """Confirm a pending action via URL.""" +import signal + from Mailman import mm_cfg from Mailman import Errors from Mailman import i18n @@ -55,9 +57,14 @@ def main(): i18n.set_language(mlist.preferred_language) doc.set_language(mlist.preferred_language) + # See the comment in admin.py about the need for the signal handler. + def sigterm_handler(signum, frame, mlist=mlist): + mlist.Unlock() + # Now dig out the cookie mlist.Lock() try: + signal.signal(signal.SIGTERM, sigterm_handler) try: cookie = parts[1] data = mlist.ProcessConfirmation(cookie) @@ -70,8 +77,8 @@ def main(): please try to re-submit your subscription.''')) doc.AddItem(mlist.GetMailmanFooter()) print doc.Format(bgcolor='#ffffff') - finally: mlist.Save() + finally: mlist.Unlock() |
