| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
are being removed as all mail deliver gets migrated to the new
pipeline architecture. Eventually some of the bulk mailer
functionality may be added back, but not this way.
|
| |
|
|
| |
anywhere, which is why we probably never saw this problem before.
|
| |
|
|
| |
of manual re-raising.
|
| |
|
|
|
|
|
|
| |
within a try/finally to ensure, as best we can, that it happens. This
may take care of the problems that greg stein was reporting, where a
pipe was failing to properly notice the loss of the parent process -
now the parent should exit normally. Not sure, this is the best guess
so far (out of a discussion w/scott and barry).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
arguments, to avoid exposing addresses to shell.
Protocol:
line 1: batchnum
line 2: sender
line 3...n+2: n recipients
line n+3: <empty> - delimiting end of recipients
line n+4: message content
ContactTransport(): Similarly, pass parameters to contact_transport in
the same manner, via contact_transport process stdin.
This avoids both security problems (and address like `touch
/etc/passwd`, as someone on the developers list warned) and distortion
problems (shell metacharacters in addresses).
Additionally, instrumented both the main process and the child process
with a stderr logger, distinguishing the labels for the two so we can
tell them apart in the error logs.
|
| |
|
|
| |
vars.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deliver script. Deliver is all important, and i don't want to screw
it up. I've tested it a bit, but would like your scrutiny before i
put something like it in production!]
I implemented a finite loop around all os.fork()s in the script, to
retry every 15 seconds, up to five times, when error.EAGAIN (resource
temporarily unavailable) is hit.
In the process i've encapsulated the script code in functions,
including a function "forker()" (not mama_forker() - i showed some
restraint:), which takes care of the EAGAIN looping.
Here's a cron report on the error the last time mailpasswds was run:
Your "cron" job on parrot
/usr/local/bin/python /home/mailman/mailman/cron/mailpasswds
produced the following output:
Here's a sample of the traceback that
Traceback (innermost last):
File "/home/mailman/mailman/cron/mailpasswds", line 117, in ?
main()
File "/home/mailman/mailman/cron/mailpasswds", line 114, in main
MailAllPasswords(list, users)
File "/home/mailman/mailman/cron/mailpasswds", line 81, in MailAllPasswords
list.SendTextToUser(subject = subj,
File "/home/mailman/mailman/modules/mm_deliver.py", line 105, in SendTextToUser
mm_utils.SendTextToUser(subject, text, recipient, sender,
File "/home/mailman/mailman/modules/mm_utils.py", line 75, in SendTextToUser
DeliverToUser(msg, recipient, add_headers=add_headers)
File "/home/mailman/mailman/modules/mm_utils.py", line 89, in DeliverToUser
if os.fork():
os.error: (11, 'Resource temporarily unavailable')
|
| | |
|
| |
|
|
|
| |
Also, fixed the popen to contact transport to invoke python
instead of relying on the file to be executable.
|
| |
|
|
|
| |
instead of an exec, and to pass the message through stdin instead of
using temp files, to save on file I/O.
|
| |
|
|
|
| |
sendmail. This won't live long, I just have to rewrite the code to
use stdin / stdout so it doesn't do all that file IO.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
from $PATH
2. Do no direct sys.path munging in this file. Import the `paths'
module, which is created during the configure process, and which
performs all necessary path munging (and exports some useful
variables too).
3. Remove RCS crud
|
| | |
|
| |
|
|
|
|
|
| |
do so.
Added a copy of the GNU GPL.
Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
|
| |
|
|
|
|
|
| |
gordon_o'hara@vanguard.com - was losing the quote when passed on the
command line to sendmail. Fixed by doing a repr() of th recipient, so
eg gordon_o\'hara@vanguard.com was being passed - and accepted
properly by sendmail.
|
| |
|
|
| |
__version__ info.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
senddigest with loss of the digest temp files. To aid debugging, we
add an argument indicating the file when an ioerror is encountered in
the process (but the IOError is still raised).
See my next checkin, of mm_digest, for what seems to be the fix of the
underlying problem.
|
|
|
checking it in... (Phew - before shipping a dist that lacked it...)
|