| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
address instead of the mailman-admin@dom.ain address. We don't want
people contacting the site owner to be bounce processed.
Also, Utils.get_site_email()'s second argument should no longer
include the leading dash.
Set the `errorsto' metadata to the mailman-bounces address, and add a
`verp' flag in the metadata set to VERP_PASSWORD_REMINDERS.
|
| |
|
|
|
| |
which includes the fullname, but also watch out for older records
which don't include the fullname.
|
| |
|
|
|
| |
and exit with a non-zero status (so cron should let us know there's a
problem).
|
| | |
|
| |
|
|
|
|
|
| |
into the script's #! line -- based on --with-python settings, without
losing CVS revision history.
Install from the build directory.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
into the script's #! line -- based on --with-python settings, without
losing CVS revision history.
#! /usr/bin/env python
becomes
#! @PYTHON@
which gets substituted for in configure.
|
| |
|
|
|
| |
send the password reminder as if it's coming from the "first" public
mailing list. Instead it comes from the "site list".
|
| |
|
|
|
| |
mode 644 while the latter is installed with mode 775. This lets you
run cron scripts from the command line.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
after paths. Because these scripts are run from cron with "python -S"
they must import mm_cfg before attempting to import mimelib; mm_cfg
hacks sys.path to include site-packages which -S inhibits.
For those scripts that already import mm_cfg, add a comment describing
the import order dependencies. For those that didn't, add a comment
about why it's being imported.
Also, gate_news: Removed the _ContinueLoop docstring so translators
have one less non-translatable docstring to worry about.
Closes Thomas's SF patch #443803.
|
| |
|
|
| |
clauses.
|
| | |
|
| | |
|
| |
|
|
| |
broken MIME boundaries are ignored.
|
| |
|
|
|
|
|
| |
API instead, e.g.
GetUserOption() -> getMemberOption()
GetUserSubscribedAddress() -> getMemberCPAddress()
|
| |
|
|
| |
invoked from cron.
|
| |
|
|
| |
bin/mailmanctl and bin/qrunner.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
remove the run-from-cron functionality (yes, I know this script
shouldn't be in cron/ anymore, but moving it is a PITA).
Specifically,
Removed the SIGCHLD signal handler since this will no longer be run as
a cron job. Added a PIDFILE global to name the file holding the pid
of the master qrunner process.
sighup_handler(): When the master gets a SIGHUP, send a SIGINT to all
the children so that they'll exit. This has two benefits: it will
automatically close all open log files, and the auto-restart feature
will mean all the children will see any changes to the source code
(i.e they'll restart and thus import afresh any updated modules).
master(): When the main loop exits, be sure to include the
watchdog_pid in the list of children to SIGINT.
main(): Removed the -b/--background flag. Write the pid of the
current process to data/qrunner.pid so that it can be exited
externally via: kill -INT `cat data/qrunner.pid`
Convert all syslog() calls to new style.
|
| | |
|
| |
|
|
| |
Wilane.
|
| |
|
|
|
| |
so that KeyboardInterrupts that percolate through are caught and
ignored.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
main(): Only lock the list during the NumRequestsPending() call. We
don't actually change the state of the list data, but the ListAdmin
interface requires the list to be locked even to read (yes, this is
bogus).
Also, fix the _() marked string to use the required
auto-interpolation.
pending_requests(): Mark some additional strings for i18n. Also,
pending subscription requests include the language in the unpacked
data (fix the tuple unpacking).
|
| | |
|
| |
|
|
|
|
|
| |
children, so they re-open their log files too.
Move the `kids' dictionary (with keys being the pids of the children),
to module global `KIDS' so sighup_handler() can have access to it.
|
| |
|
|
|
|
|
|
|
| |
for SIGHUP to force all the log files to close and be re-opened on the
next write.
master(): Catch OSError, EINTR that can happen if a signal
(e.g. SIGHUP) is caught during the wait() system call. It's enough to
just restart the os.wait().
|
| |
|
|
|
| |
main(): Use the new world order for sending a message (i.e. not
through HandlerAPI). Also, do the mlist.Save() in the try: block.
|
| |
|
|
|
|
|
|
|
|
|
| |
suppressed reminders for a particular list. The user will have to
disable reminders for all lists they are members of if they really
don't want to get any such messages.
mail_passwords(): Convert away from the old-style HandlerAPI mechanism
of sending the reminder message.
Also, de-string-module-ification.
|
| |
|
|
| |
possible.
|
| |
|
|
|
| |
encapsulates all the work necessary to bump the digest number. Use
this instead of hacking the list attributes directly.
|
| |
|
|
|
| |
encapsulates all the work necessary to send a digest. Use this
instead of the send_digests() function -- which has been removed.
|
| |
|
|
| |
SIGINT inside the syslog call. It's of no consequence.
|
| |
|
|
|
| |
KeyboardError instead of outside it. This prevents the anomolous
tracebacks that sometimes occur when ^C is used to kill qrunner.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the same time. Specifically,
main(): Create a master qrunner lock file, with a lifetime of 10 days
(but see below) and exit if that lock cannot be acquired.
master(): Start the lock-refresher subprocess and restart it if it
happens to exit.
start_lock_refresher(): A tiny subprocess that owns the qrunner lock
and periodically (once a day) wakes up to refresh it.
|
| |
|
|
|
|
| |
main(), master(): Add a -n/--no-restart option which inhibits a
restart of child processes when they exit. Very helpful for
debugging.
|
| |
|
|
|
|
| |
been hacked (thanks Ron Jarrell). I hadn't been trying this as a cron
job, and the Python on my path has mimelib installed (and I wasn't
using -S).
|
| |
|
|
|
|
|
| |
change in model to a long-running process.
New usage options are added, including -r to run a specific runner
exactly once, and -b to run the process in the backround.
|
| |
|
|
|
| |
Unix mailbox file instead of the separate next-digest and
next-digest-topics files.
|
| |
|
|
|
|
|
|
| |
References to HandlerAPI module removed.
Use the new mimelib and switchboard interfaces.
Add some i18n markup.
|
| |
|
|
| |
with the list's preferred language.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gets simplified considerably because the bulk of the logic is moved
into classes in the Mailman.Queue package. The next step might be to
make the queues long running processes watchdogged by the qrunner.
QRUNNERS is a list of classes to instantiate to run through the
various queue directories. Currently there are only incoming,
outgoing, and usenet queues. Each qrunner is run in it's own child
process (via fork), so we need to be more careful about race
conditions in the re-queuing logic.
main(): Pretty simple now, it just forks and waits on the child
processes.
|
| |
|
|
|
| |
catch any socket errors coming back from the nntp connection
attempts.
|
| |
|
|
| |
Use extended print statement and other Python 2.0 features.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
-owner address, explicit set the 'noack' flag to false so the Replybot
module will act on it. Closes bug #114603.
|
| |
|
|
|
|
|
|
|
|
| |
"_nolist" volatile key, which indicates to the delivery pipeline that
it shouldn't include list specific information (e.g. List-Id:).
Closes SF bug #114127, Jitterbug PR#149.
main(): DeliverToUser() requires the list to be locked, so be sure to
lock a_public_list around the call to mail_passwords() otherwise
exceptions will occur and lock turds will be left!
|
| | |
|
| | |
|
| | |
|