dbus service : Fix JSON encoding for allowing encoding of byte not utf-8
authorFrederic PAUT <frederic.paut@linux.intel.com>
Mon, 10 Jun 2013 12:40:50 +0000 (14:40 +0200)
committerFrederic PAUT <frederic.paut@linux.intel.com>
Mon, 10 Jun 2013 12:40:50 +0000 (14:40 +0200)
(and will be deliver in arguments for javascript functions)

cloudeebus/cloudeebus.py

index 686c399..0982d02 100755 (executable)
@@ -571,7 +571,13 @@ class CloudeebusService:
                'errorCB': async_error_cb}
         if methodId not in self.servicePendingCalls:
             self.servicePendingCalls[methodId] = {'count': 0, 'calls': []}
-        pendingCallStr = json.dumps({'callIndex': len(self.servicePendingCalls[methodId]['calls']), 'args': args})
+            
+        try:
+            pendingCallStr = json.dumps({'callIndex': len(self.servicePendingCalls[methodId]['calls']), 'args': args})
+        except Exception, e:                
+            args = eval( str(args).replace("dbus.Byte", "dbus.Int16") )
+            pendingCallStr = json.dumps({'callIndex': len(self.servicePendingCalls[methodId]['calls']), 'args': args})
+               
         self.servicePendingCalls[methodId]['calls'].append(cb)
         self.servicePendingCalls[methodId]['count'] = self.servicePendingCalls[methodId]['count'] + 1
         factory.dispatch(methodId, pendingCallStr)