[tor-commits] [bridgedb/master] Handle case when (ip, portlist) from parseALine() is (None, None).

isis at torproject.org isis at torproject.org
Sun Jan 12 06:06:34 UTC 2014


commit 2fcc3b56bb166c59725b116d466e4bef8701a8c7
Author: Isis Lovecruft <isis at torproject.org>
Date:   Fri Dec 20 05:23:23 2013 +0000

    Handle case when (ip, portlist) from parseALine() is (None, None).
    
     * FIXES a bug where bridgedb.Bridges.parseStatusFile() doesn't handle the
       (None, None) for (ip, portlist) which is returned whenever
       bridgedb.parse.networkstatus.parseALine() couldn't parse the line.
---
 lib/bridgedb/Bridges.py |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/bridgedb/Bridges.py b/lib/bridgedb/Bridges.py
index e6cf210..177173c 100644
--- a/lib/bridgedb/Bridges.py
+++ b/lib/bridgedb/Bridges.py
@@ -515,11 +515,14 @@ def parseStatusFile(networkstatusFile):
             try:
                 addr, portlist = networkstatus.parseALine(line, toHex(ID))
             except networkstatus.ParseNetstatusError as error:
-                logging.error(error.message)
+                logging.error(error)
             else:
-                try: or_addresses[addr].add(portlist)
-                except KeyError: or_addresses[addr] = portlist
-                parsedORAddressLines += 1
+                if (addr is not None) and (portlist is not None):
+                    try:
+                        or_addresses[addr].add(portlist)
+                    except (KeyError, AttributeError):
+                        or_addresses[addr] = portlist
+                    parsedORAddressLines += 1
 
         elif ID and timestamp and line.startswith("s "):
             running, stable = networkstatus.parseSLine(line)





More information about the tor-commits mailing list