[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819
Felix Huber
felix.huber at schyf.de
Sat Aug 6 08:20:18 UTC 2011
The following commit has been merged in the debian branch:
commit b23de22df1ac6f7201110a636714b1ef187635c4
Author: Felix Huber <felix.huber at schyf.de>
Date: Tue Feb 1 21:30:47 2011 +0100
ogsmd: check len of name and number for phonebook
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index c4fb091..5b37856 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -848,6 +848,7 @@ class SimGetPhonebookInfo( SimMediator ):
try:
result["number_length"] = int(match.groupdict()["numlen"])
result["name_length"] = int(match.groupdict()["textlen"])
+ self._object.modem.setPhonebookSizes( self.pbcategory, result["number_length"], result["name_length"] )
except KeyError:
pass
@@ -950,7 +951,15 @@ class SimStoreEntry( SimMediator ):
self._error( DBusError.InvalidParameter( "valid categories are %s" % const.PHONEBOOK_CATEGORY.keys() ) )
else:
number, ntype = currentModem().numberToPhonebookTuple( self.number )
- name = self.name.strip('"').encode(charset)
+ name = self.name.strip('"')
+ numlength, textlength = self._object.modem.phonebookSizes( self.pbcategory )
+ if numlength is not None:
+ if len(number) > numlength:
+ number = number[:numlength]
+ if textlength is not None:
+ if len(name) > textlength:
+ name = name[:textlength]
+ name = name.encode(charset)
self._commchannel.enqueue( '+CPBS="%s";+CPBW=%d,"%s",%d,"%s"' % ( self.pbcategory.encode(defcharset), self.index, number, ntype, name ), self.responseFromChannel, self.errorFromChannel )
#=========================================================================#
diff --git a/framework/subsystems/ogsmd/modems/abstract/modem.py b/framework/subsystems/ogsmd/modems/abstract/modem.py
index 2f12dd0..8427b33 100644
--- a/framework/subsystems/ogsmd/modems/abstract/modem.py
+++ b/framework/subsystems/ogsmd/modems/abstract/modem.py
@@ -47,6 +47,7 @@ class AbstractModem( object ):
self._simReady = "unknown" # SIM data access state
self._data = {} # misc modem-wide data, set/get from channels
self._phonebookIndices = {} # min. index, max. index
+ self._phonebookSizes = {} # number length, name length
self._data["sim-buffers-sms"] = True
self._data["sms-buffered-cb"] = "2,1,2,1,1"
@@ -211,6 +212,20 @@ class AbstractModem( object ):
else:
return first, last
+ def setPhonebookSizes( self, category, numlength, textlength ):
+ """
+ Set phonebook names and number sizes for a given phonebook
+ """
+ self._phonebookSizes[category] = numlength, textlength
+
+ def phonebookSizes( self, category ):
+ try:
+ numlength, textlength = self._phonebookSizes[category]
+ except KeyError:
+ return None, None
+ else:
+ return numlength, textlength
+
def prepareForSuspend( self, ok_callback, error_callback ):
"""
Prepares the modem for suspend.
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list