Second try at printing tracebacks
This commit is contained in:
		
							parent
							
								
									d984e98de8
								
							
						
					
					
						commit
						d0613d2a42
					
				@ -75,6 +75,44 @@ class GlibXMLRPCServer(GlibTCPServer, SimpleXMLRPCServer.SimpleXMLRPCDispatcher)
 | 
			
		||||
		SimpleXMLRPCServer.SimpleXMLRPCDispatcher.__init__(self)
 | 
			
		||||
		GlibTCPServer.__init__(self, addr, requestHandler)
 | 
			
		||||
 | 
			
		||||
	def _marshaled_dispatch(self, data, dispatch_method = None):
 | 
			
		||||
		"""Dispatches an XML-RPC method from marshalled (XML) data.
 | 
			
		||||
 | 
			
		||||
		XML-RPC methods are dispatched from the marshalled (XML) data
 | 
			
		||||
		using the _dispatch method and the result is returned as
 | 
			
		||||
		marshalled data. For backwards compatibility, a dispatch
 | 
			
		||||
		function can be provided as an argument (see comment in
 | 
			
		||||
		SimpleXMLRPCRequestHandler.do_POST) but overriding the
 | 
			
		||||
		existing method through subclassing is the prefered means
 | 
			
		||||
		of changing method dispatch behavior.
 | 
			
		||||
		"""
 | 
			
		||||
 | 
			
		||||
		params, method = xmlrpclib.loads(data)
 | 
			
		||||
 | 
			
		||||
		# generate response
 | 
			
		||||
		try:
 | 
			
		||||
			if dispatch_method is not None:
 | 
			
		||||
				response = dispatch_method(method, params)
 | 
			
		||||
			else:
 | 
			
		||||
				response = self._dispatch(method, params)
 | 
			
		||||
			# wrap response in a singleton tuple
 | 
			
		||||
			response = (response,)
 | 
			
		||||
			response = xmlrpclib.dumps(response, methodresponse=1)
 | 
			
		||||
		except Fault, fault:
 | 
			
		||||
			response = xmlrpclib.dumps(fault)
 | 
			
		||||
		except:
 | 
			
		||||
			set = sys.exc_type
 | 
			
		||||
			sev = sys.exc_value
 | 
			
		||||
			ser = sys.exc_traceback
 | 
			
		||||
 | 
			
		||||
			# report exception back to server
 | 
			
		||||
			response = xmlrpclib.dumps(xmlrpclib.Fault(1, "%s:%s" % (set, sev)))
 | 
			
		||||
 | 
			
		||||
			print "Exception while processing request:"
 | 
			
		||||
			traceback.print_exception(set, sev, ser)
 | 
			
		||||
 | 
			
		||||
		return response
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GroupChatController(object):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user