| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| |
|
|
|
|
| |
Mailman/Bouncers/SimpleMatch.py - Improved two regexps.
Mailman/tests/test_bounces.py - Added a test.
|
| |
|
|
| |
artifacts are removed, as is the C files which we will no longer need.
|
| | |
|
| |
|
| |
Added more test cases.
|
| |
|
|
| |
- Added test cases for above.
|
| |
|
|
|
|
| |
the builtin types. Two still remain: a check against ClassType and a check
against MethodType. Also, fix some hinky type comparisons to use isinstance()
consistently.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
traces of our crufty old Syslog. Most of this work was purely mechanical,
except for:
1) Initializing the loggers. For this, there's a new module
Mailman/loginit.py (yes all modules from now on will use PEP 8
names). We can't call this 'logging.py' because that will
interfere with importing the stdlib module of the same name (can
you say Python 2.5 and absolute imports?).
If you want to write log messages both to the log file and to
stderr, pass True to loginit.initialize(). This will turn on
propagation of log messages to the parent 'mailman' logger, which
is set up to print to stderr. This is how bin/qrunner works when
not running as a subprocess of mailmanctl.
2) The driver script. I had to untwist the StampedLogger stuff and
implement differently printing exceptions and such to log/error
because standard logging objects don't have a write() method. So
we write to a cStringIO and then pass that to the logger.
3) SMTPDirect.py because of the configurability of the log messages.
This required changing SafeDict into a dict subclass (which is
better than using UserDicts anyway -- yay Python 2.3!). It's
probably still possible to flummox things up if you change the
name of the loggers in the SMTP_LOG_* variables in mm_cfg.py.
However, the worst you can do is cause output to go to stderr and
not go to a log file.
Note too that all entry points into the Mailman system must call
Mailman.loginit.initialize() or the log output will go to stderr
(which may occasionally be what you want). Currently all CGIs and
qrunners should be working properly.
I wish I could have tested all code paths that touch the logger, but
that's infeasible. I have tested this, but it's possible that there
were some mistakes in the translation.
- Mailman.Bouncers.BounceAPI.Stop is a singleton, but not a class
instance any more.
- True/False code cleanup, PEP 8 import restructuring, whitespace
normalization, and copyright year updates, as appropriate.
|
| |
|
|
|
|
|
|
|
|
|
| |
- Remove True/False binding cruft
- Remove __future__ statements for nested scopes
- Remove ascii_letters import hack from Utils.py
- Remove mimetypes.guess_all_extensions import hack from Scrubber.py
- In Pending.py, set _missing to object() (better than using [])
Also, update copyright years where appropriate, and re-order imports more to
my PEP 8 tastes. Whitespace normalize.
|
| |
|
|
|
| |
the trunk. This serves also to test write permission to the svn
repository, and tests email notifications.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Added some more test cases.
|
| |
|
|
|
|
|
| |
so one all pattern sets are tried until a match is found so one start pattern whose
address doesn't match won't preempt a later patern set that will match.
Added more test cases.
|
| |
|
|
|
|
| |
BounceRunner.py to discard the bounce when Stop returned. Changed
DSN.py to recognize Action: headers with comments. Changed Qmail.py
to recognize an observed different starting string.
|
| |
|
|
| |
to'.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Fixed the import of Stop, which was causing the import of this message
to fail. The symptom was this traceback message in logs/error:
AttributeError: 'module' object has no attribute 'process'
|
| |
|
|
| |
running, but don't attempt to dig out an email address.
|
| | |
|
| |
|
|
| |
this bounce handler was only expecting a string.
|
| | |
|
| |
|
|
| |
SF patch #534297, demon.co.uk and another bounce handler, by Martin Pool.
|
| |
|
|
| |
SF patch #521124, Bouncer for SMTP_Gateway, by Martin Pool.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Jr, after much checking and rechecking (and some massaging) by me. Checking
in now before I fall asleep and forget what all this was for.
This patch adds the ability to 'make DESTDIR=/some/dir/tree install' that
doesn't influence the paths stored in e.g. Defaults.py at all, which is of
good use for various package managers. It is not all that package managers
must do, however! Running make install with DESTDIR set means bin/update is
never run, and mm_cfg.py is always written; package managers should make
sure the appropriate post-installation is done, and that mm_cfg.py is
treated as a config file.
This patch inadvertently fixes some bogus whitespace: 8-spaces where
surrounding code used tabs. The difference was harmless because the 8-spaces
were used inside shell-continued-oneliners, but it is confusing and could
lead to future harm. I'm too tired to make those two or three changes in a
separate checkin, sorry.
This patch also assumes the various packages that are installed using
distutils do not record (or rather, use) their installation paths anywhere,
but this seems to hold true at least for the moment.
Also, I've done so many slow cvs diff's, I'm wondering when we'll switch to
Subversion. Unfortunately, I've also done so many 'cvs diff -c > file; patch
-p0 -R < file's to switch back and forth between patches and change sets,
I'm wondering when we'll switch to Aegis as well. :-P
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
labeled "sz-sb.de" to ignore potential angle-brackets that might
appear.
process(): Do a better job of filtering out Nones.
|
| |
|
|
| |
then uniquify the return results based on the address.
|
| |
|
|
| |
going to re-use it in a new test script.
|
| |
|
|
| |
spaces or tabs can appear at the beginning of the line.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Also, whitespace normalization.
|
| |
|
|
| |
instance.
|
| | |
|
| | |
|
| |
|
|
| |
still caught. Inspired by SF patch # 538983 by David Abrahams.
|
| |
|
|
|
|
|
|
|
|
| |
for the BounceRunner. Instead of actually registering the bounces
here, it simply returns the list of addresses that have matched. It
returns an empty list if none of the bounce detectors found any
addresses.
I'm also ripping out the test code. The unit test suite is more
appropriate.
|
| | |
|
| |
|
|
| |
syslog error message.
|