[tor-commits] [bridgedb/master] 4297 - Exception Oddities

aagbsn at torproject.org aagbsn at torproject.org
Sat Mar 16 23:46:31 UTC 2013


commit c04f4035fbadc48872ac9f0cc30fe69019af3e8e
Author: aagbsn <aagbsn at 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)





More information about the tor-commits mailing list