commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r5189 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc


From: jan
Subject: r5189 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc
Date: Sat, 28 Feb 2004 03:43:41 -0600 (CST)

Author: jan
Date: 2004-02-28 03:43:40 -0600 (Sat, 28 Feb 2004)
New Revision: 5189

Modified:
   trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py
Log:
fix unicode handling for xmlrpc.py_xmlrpc RPC handler


Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py 
2004-02-28 03:36:35 UTC (rev 5188)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ServerAdapter.py 
2004-02-28 09:43:40 UTC (rev 5189)
@@ -52,6 +52,7 @@
 from gnue.common.rpc import GCommBase
 
 import string, sys, thread, traceback
+from types import UnicodeType
 
 try:
   import xmlrpc
@@ -137,7 +138,7 @@
 
     DirectoryServer.DirectoryServer.addRpMethod(self,object, \
                                                 parent,binding)
-    self.server.addMethods({object._path:binding})
+    self.server.addMethods({force_str(object._path):binding})
 
 
   def addRpAttribut(self,object,parent,binding):
@@ -147,14 +148,14 @@
 
     if not object.readonly:
       # Add the set_* directory entry
-      self.server.addMethods({'%s.set_%s' % \
-                              (parent._path, object.name):\
+      self.server.addMethods({force_str('%s.set_%s' % \
+                              (parent._path, object.name)):\
                               binding})
 
     if not object.writeonly:
       # Add the get_* directory entry
-      self.server.addMethods({'%s.get_%s' % \
-                              (parent._path, object.name):\
+      self.server.addMethods({force_str('%s.get_%s' % \
+                              (parent._path, object.name)):\
                               binding})
 
 
@@ -171,7 +172,7 @@
     tl=len(type)
     for i in self.directory.keys():
       if i[0:tl]==type:
-        method="["+objhandle+"]"+i[tl:]
+        method=force_str("["+objhandle+"]"+i[tl:])
         GDebug.printMesg(1,'Method %s registered to py-xmlrpc ' \
                          % method +\
                          ' internal directory.')
@@ -189,7 +190,7 @@
     tl=len(type)
     for i in self.directory.keys():
       if i[0:tl]==type:
-        method="["+objhandle+"]"+i[tl:]
+        method=force_str("["+objhandle+"]"+i[tl:])
         GDebug.printMesg(1,'Method %s is deleted from py-xmlrpc ' \
                          % method +\
                          ' internal directory.')
@@ -214,3 +215,12 @@
       # del self._o.comtab[name]
       # or
       # self._o.removeMethods(d)
+
+def force_str(input):
+  """converts the parameter @input into a string
+     UnicodeTypes are converted to a utf-8 representation
+     """
+  if type(input)==UnicodeType:
+    return input.encode('utf-8')
+  else:
+    return str(input)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]