[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