]> sipb.mit.edu Git - ikiwiki.git/commitdiff
properly encode and decode from/to utf8 when sending rpc to ikiwiki
authorAntoine Beaupré <anarcat@koumbit.org>
Sat, 30 Nov 2013 00:01:30 +0000 (19:01 -0500)
committerAntoine Beaupré <anarcat@koumbit.org>
Tue, 4 Feb 2014 01:13:28 +0000 (20:13 -0500)
somehow, in receive this is not necessary/possible because the xml library expects strings and not unicode

plugins/proxy.py

index ca731301fbbd46e54640bdabe95fb41bbcf5890f..d70a967a5b706845202121b0be77352c47924036 100755 (executable)
@@ -159,11 +159,11 @@ class _IkiWikiExtPluginXMLRPCHandler(object):
         xml = _xmlrpc_client.dumps(sum(kwargs.items(), args), cmd)
         self._debug_fn(
             "calling ikiwiki procedure `{0}': [{1}]".format(cmd, xml))
         xml = _xmlrpc_client.dumps(sum(kwargs.items(), args), cmd)
         self._debug_fn(
             "calling ikiwiki procedure `{0}': [{1}]".format(cmd, xml))
-        _IkiWikiExtPluginXMLRPCHandler._write(out_fd, xml)
+        _IkiWikiExtPluginXMLRPCHandler._write(out_fd, xml.encode('utf8'))
 
         self._debug_fn('reading response from ikiwiki...')
 
 
         self._debug_fn('reading response from ikiwiki...')
 
-        xml = _IkiWikiExtPluginXMLRPCHandler._read(in_fd)
+        xml = _IkiWikiExtPluginXMLRPCHandler._read(in_fd).decode('utf8')
         self._debug_fn(
             'read response to procedure {0} from ikiwiki: [{1}]'.format(
                 cmd, xml))
         self._debug_fn(
             'read response to procedure {0} from ikiwiki: [{1}]'.format(
                 cmd, xml))
@@ -250,7 +250,7 @@ class IkiWikiProcedureProxy(object):
 #            kwargs = dict([args[i:i+2] for i in xrange(1, len(args), 2)])
             ret = function(self, *args)
             self._debug_fn(
 #            kwargs = dict([args[i:i+2] for i in xrange(1, len(args), 2)])
             ret = function(self, *args)
             self._debug_fn(
-                    "{0} hook `{1}' returned: [{2}]".format(type, name, ret))
+                    "{0} hook `{1}' returned: [{2}]".format(type, name, repr(ret)))
             if ret == IkiWikiProcedureProxy._IKIWIKI_NIL_SENTINEL:
                 raise InvalidReturnValue(
                     'hook functions are not allowed to return {0}'.format(
             if ret == IkiWikiProcedureProxy._IKIWIKI_NIL_SENTINEL:
                 raise InvalidReturnValue(
                     'hook functions are not allowed to return {0}'.format(