[bridgedb/master] 4297 - Exception Oddities

commit c04f4035fbadc48872ac9f0cc30fe69019af3e8e Author: aagbsn <aagbsn@extc.org> Date: Tue Feb 28 14:22:05 2012 -0800 4297 - Exception Oddities Some versions (tested with 2.6.6) of Python exhibit odd exception handling behavior; this fix corrects an issue where the parent class exception handler was catching exceptions meant for a subclassed exception handler --- lib/bridgedb/Server.py | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/bridgedb/Server.py b/lib/bridgedb/Server.py index 6db4522..a2460b8 100644 --- a/lib/bridgedb/Server.py +++ b/lib/bridgedb/Server.py @@ -32,6 +32,7 @@ from bridgedb.Raptcha import Raptcha import base64 import textwrap from ipaddr import IPv4Address, IPv6Address +from bridgedb.Dist import BadEmail, TooSoonEmail, IgnoreEmail try: import GeoIP @@ -364,7 +365,7 @@ def getMailResponse(lines, ctx): try: _, addrdomain = bridgedb.Dist.extractAddrSpec(clientAddr.lower()) - except bridgedb.Dist.BadEmail: + except BadEmail: logging.info("Ignoring bad address on incoming email.") return None,None if not addrdomain: @@ -412,13 +413,8 @@ def getMailResponse(lines, ctx): interval, ctx.N, countryCode=None, bridgeFilterRules=rules) - except bridgedb.Dist.BadEmail, e: - logging.info("Got a mail from a bad email address %r: %s.", - clientAddr, e) - return None, None - # Handle rate limited email - except bridgedb.Dist.TooSoonEmail, e: + except TooSoonEmail, e: logging.info("Got a mail too frequently; warning %r: %s.", clientAddr, e) @@ -441,11 +437,16 @@ def getMailResponse(lines, ctx): f.seek(0) return clientAddr, f - except bridgedb.Dist.IgnoreEmail, e: + except IgnoreEmail, e: logging.info("Got a mail too frequently; ignoring %r: %s.", clientAddr, e) return None, None + except BadEmail, e: + logging.info("Got a mail from a bad email address %r: %s.", + clientAddr, e) + return None, None + # Generate the message. f = StringIO() w = MimeWriter.MimeWriter(f)
participants (1)
-
aagbsn@torproject.org