Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:rkwasny:erp5
erp5-SOAPSupport
SOAPSupport-0.6-nxd.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File SOAPSupport-0.6-nxd.patch of Package erp5-SOAPSupport
diff -ruNa erp5-SOAPSupport.orig/SOAPSupport/HTTPRequest.py erp5-SOAPSupport/SOAPSupport/HTTPRequest.py --- erp5-SOAPSupport.orig/SOAPSupport/HTTPRequest.py 2005-08-03 14:04:54.000000000 +0200 +++ erp5-SOAPSupport/SOAPSupport/HTTPRequest.py 2005-10-17 10:20:34.000000000 +0200 @@ -77,21 +77,24 @@ if soap is None: import soap meth, self.args = soap.parse_input(fs.value) - response = soap.response(response) - response._soap11 = environ.has_key('HTTP_SOAPACTION') - response._soap12 = (contentType == 'application/soap+xml') - response._contentType = contentType - response._method = meth + #ALEX : Here we bypass the SOAP Envelope creation by SOAPpy + # and do it by ourselves in the SOAP method in the ZODB + + #ALEX response = soap.response(response) + #ALEX response._soap11 = environ.has_key('HTTP_SOAPACTION') + #ALEX response._soap12 = (contentType == 'application/soap+xml') + #ALEX response._contentType = contentType + #ALEX response._method = meth other['RESPONSE'] = self.response = response - other['REQUEST_METHOD'] = '' + #ALEX other['REQUEST_METHOD'] = '' self.maybe_webdav_client = 0 # Hm, maybe it's an XML-RPC - # check for a real XML-RPC methodCall ! - # This allows to post normal text/xml files to Zope ! - elif (contentType == 'text/xml' and method == 'POST' and fs.value.find('<methodCall>') > 0): + elif (fs.headers.has_key('content-type') and + 'text/xml' in fs.headers['content-type'] and + method == 'POST'): # Ye haaa, XML-RPC! global xmlrpc - if xmlrpc is None: from ZPublisher import xmlrpc + if xmlrpc is None: import xmlrpc meth, self.args = xmlrpc.parse_input(fs.value) response=xmlrpc.response(response) other['RESPONSE']=self.response=response @@ -105,7 +108,7 @@ CGI_name=isCGI_NAME defaults={} tainteddefaults={} - converter=None + converter=seqf=None for item in fslist: @@ -154,8 +157,10 @@ converter_type = type_name flags=flags|CONVERTED elif type_name == 'list': + seqf=list flags=flags|SEQUENCE elif type_name == 'tuple': + seqf=tuple tuple_items[key]=1 flags=flags|SEQUENCE elif (type_name == 'method' or type_name == 'action'): @@ -711,7 +716,20 @@ self._hacked_path=1 -HTTPRequest.processInputs = processInputs +#ALEX force iHotfix or Localizer to be loaded before we patch HTTPRequest if available +try: + import Products.iHotfix + #ALEX : For this patch to work in conjunction with iHotfix, + # we replace the actual method instead of the iHotfix wrapper. + HTTPRequest.old_processInputs = processInputs +except ImportError: + try: + import Products.Localizer + #ALEX : For this patch to work in conjunction with Localizer, + # we replace the actual method instead of the Localizer wrapper. + HTTPRequest.old_processInputs = processInputs + except ImportError: + HTTPRequest.processInputs = processInputs from zLOG import LOG, INFO diff -ruNa erp5-SOAPSupport.orig/SOAPSupport/__init__.py erp5-SOAPSupport/SOAPSupport/__init__.py --- erp5-SOAPSupport.orig/SOAPSupport/__init__.py 2005-08-03 14:05:18.000000000 +0200 +++ erp5-SOAPSupport/SOAPSupport/__init__.py 2005-10-17 10:20:34.000000000 +0200 @@ -36,43 +36,53 @@ getZopeVersion()[0:2] == (2,7) or getZopeVersion()[0:2] == (2,8)): - import HTTPRequest + import HTTPRequest - from Products.PythonScripts.Utility import allow_module, allow_class + from Products.PythonScripts.Utility import allow_module, allow_class - allow_module('base64') + allow_module('base64') - allow_module('SOAPpy') - allow_module('SOAPpy.Types') + allow_module('SOAPpy') + allow_module('SOAPpy.Types') + + #ALEX : Allow usage of SOAPpy Types classes instances + # to build a SOAP response. + # Note : as we decided to build SOAP messages from scratch, + # is this still usefull ? + import SOAPpy.Types + for type_name in dir(SOAPpy.Types): + type_class = getattr(SOAPpy.Types, type_name) + if type(type_class) == type(SOAPpy.Types.stringType): + allow_class(type_class) try: - from WSDLObject import WSDLObject, \ - manage_addWSDLObjectForm, manage_addWSDLObject, \ - ADD_WSDL_OBJECT_PERMISSION - - def initialize(context): - - context.registerClass( - WSDLObject, - permission = ADD_WSDL_OBJECT_PERMISSION, - constructors = ( manage_addWSDLObjectForm, manage_addWSDLObject ), - icon='icons/wsdlobject.gif', - meta_type = WSDLObject.meta_type - ) - - context.registerBaseClass(WSDLObject) - - try: - from Products.ZBabel import ZBabelTag - except: - import NoBabelTag + from WSDLObject import WSDLObject, \ + manage_addWSDLObjectForm, manage_addWSDLObject, \ + ADD_WSDL_OBJECT_PERMISSION + + def initialize(context): + + context.registerClass( + WSDLObject, + permission = ADD_WSDL_OBJECT_PERMISSION, + constructors = ( manage_addWSDLObjectForm, manage_addWSDLObject ), + icon='icons/wsdlobject.gif', + meta_type = WSDLObject.meta_type + ) + + context.registerBaseClass(WSDLObject) + + try: + from Products.ZBabel import ZBabelTag + except: + import NoBabelTag except: - - import traceback - traceback.print_exc() -# vim:ts=4 + import traceback + traceback.print_exc() + +# vim:ts=4 diff -ruNa erp5-SOAPSupport.orig/SOAPSupport/soap.py erp5-SOAPSupport/SOAPSupport/soap.py --- erp5-SOAPSupport.orig/SOAPSupport/soap.py 2005-10-14 20:15:02.000000000 +0200 +++ erp5-SOAPSupport/SOAPSupport/soap.py 2005-10-17 10:20:34.000000000 +0200 @@ -26,7 +26,9 @@ """ body = parseSOAPRPC(data) method = body._name - params = tuple(body._aslist()) + #ALEX : Here we prefer to get a structure of SOAP Types instead of just the data. + #ALEX params = tuple(body._aslist()) + params = (body,) # Translate '.' to '/' in meth to represent object traversal. method = replace(method, '.', '/')
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor