In zope.publisher.xmlrpc.XMLRPCRequest.processInputs
replace
lines = ''.join(self._body_instream.readlines())
by
lines = ''.join(self._body_instream.readlines(self._body_instream.size))
works with both zopectl (twisted) and paster setup
The problem is with the signature of zope.publisher.http.HTTPInputStream.readlines:
def readlines(self, hint=0):
data = self.stream.readlines(hint) self.cacheStream.write(''.join(data))
return data
Apparently reading 0 from twisted's BufferedStream works, but fails on wsgi.input <socket._fileobject object>
How to proceed - should we create a new zope.publisher release and change groks versions.cfg?
Fix:
In zope.publisher. xmlrpc. XMLRPCRequest. processInputs self._body_ instream. readlines( )) self._body_ instream. readlines( self._body_ instream. size))
replace
lines = ''.join(
by
lines = ''.join(
works with both zopectl (twisted) and paster setup
The problem is with the signature of zope.publisher. http.HTTPInputS tream.readlines :
def readlines(self, hint=0): readlines( hint)
self.cacheStre am.write( ''.join( data))
data = self.stream.
return data
Apparently reading 0 from twisted's BufferedStream works, but fails on wsgi.input <socket._fileobject object>
How to proceed - should we create a new zope.publisher release and change groks versions.cfg?