[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819

Michael 'Mickey' Lauer mickey at vanille-media.de
Sat Aug 6 08:18:44 UTC 2011


The following commit has been merged in the debian branch:
commit 439300083459fe66cb93aca20cee185f6fcc52f5
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Sat Nov 28 14:45:59 2009 +0100

    ogsmd: const.py: speed up parsing networks.tab by assuming the file is really in UTF-8

diff --git a/framework/subsystems/ogsmd/gsm/const.py b/framework/subsystems/ogsmd/gsm/const.py
index 607576e..a831425 100644
--- a/framework/subsystems/ogsmd/gsm/const.py
+++ b/framework/subsystems/ogsmd/gsm/const.py
@@ -3,7 +3,7 @@
 """
 The Open GSM Daemon - Python Implementation
 
-(C) 2008 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
+(C) 2008-2009 Michael 'Mickey' Lauer <mlauer at vanille-media.de>
 (C) 2008 Openmoko, Inc.
 GPLv2 or later
 
@@ -13,7 +13,7 @@ Module: const
 GSM constants, strings, formats, parse patterns, timeouts, you name it.
 """
 
-__version__ = "0.8.3.2"
+__version__ = "0.8.3.3"
 MODULE_NAME = "ogsmd.const"
 
 from framework import config
@@ -1135,10 +1135,13 @@ def parseNetworks( filename ):
     common = {}
     network_header = []
     network = {}
-    # FIXME: Wrap this in try/except, the file may not be there or corrupt!
+
+    if not os.path.exists( filename ):
+        logger.warning( "Network database %s not present" % networksFile )
+        return {}
     for line in open( filename, "r" ):
         linenumber += 1
-        line = line.decode( "UTF-8" ).rstrip()
+        line = line.rstrip()
         if not line: # empty line, flush and reset
             if network:
                 networks[( network["mcc"], network["mnc"] )] = network
@@ -1162,23 +1165,39 @@ def parseNetworks( filename ):
             data = line.split("\t")
             data = [x.strip() for x in data]
             if data[0]: # new common, should be flushed already
-                if not common_header: raise "Missing common header near line %i" % linenumber
-                if common or network_header or network: raise "Missing empty line near line %i" % linenumber
+                if not common_header:
+                    logger.warning( "Missing common header near line %i" % linenumber )
+                    continue
+                if common or network_header or network:
+                    logger.warning( "Missing empty line near line %i" % linenumber )
+                    continue
                 common = dict( zip( common_header, data ) )
             elif data[1]: # new network, flush old
                 if network:
                     networks[( int( network["mcc"] ), int( network["mnc"] ) )] = network
                     del network["mcc"]
                     del network["mnc"]
-                if not common: raise "Missing common info near line %i" % linenumber
-                if not network_header: raise "Missing network header near line %i" % linenumber
+                if not common:
+                    logger.warning( "Missing common info near line %i" % linenumber )
+                    continue
+                if not network_header:
+                    logger.warning( "Missing network header near line %i" % linenumber )
+                    continue
                 network = dict( zip( network_header, data[1:] ) )
-                if not (network["mcc"]+network["mnc"]).isdigit(): raise "Invaild MCC or MNC near line %i" % linenumber
+                if not (network["mcc"]+network["mnc"]).isdigit():
+                    logger.warning( "Invaild MCC or MNC near line %i" % linenumber )
+                    continue
                 network.update( common )
             elif data[2]:
-                if not common: raise "Missing common info near line %i" % linenumber
-                if not network: raise "Missing network info near line %i" % linenumber
-                if len( data[2:] ) != 2 : raise "Missing network info near line %i" % linenumber
+                if not common:
+                    logger.warning( "Missing common info near line %i" % linenumber )
+                    continue
+                if not network:
+                    logger.warning( "Missing network info near line %i" % linenumber )
+                    continue
+                if len( data[2:] ) != 2:
+                    logger.warning( "Missing network info near line %i" % linenumber )
+                    continue
                 network[ data[2] ] = data[3]
     return networks
 

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list