[Zope-dev] Patch: let non-seekable streams be input for ZPublisher (updated)

Ames Andreas (MPA/DF) Andreas.Ames at tenovis.com
Wed Aug 18 11:22:17 EDT 2004


Hi,

I had a thinko in my previous patch
(http://mail.zope.org/pipermail/zope-dev/2004-August/023630.html)
which is corrected in the attached version of the patch.  Sorry for
any inconvenience, I might have caused.

As I'm sort of protocol challenged (thanks to corporate firewall), svn
unfortunately isn't an option for me.  Thus I created the patch
against lib/python/ZPublisher/HTTPRequest.py as released in 2.7.2-0.
As the patch is almost trivial it shouldn't be a problem to apply it
even manually against other vesions (at least 2.7.0, 2.7.1 and 2.7.2
should work OOTB i.e. by using /usr/bin/patch).

To sum up its purpose again:  It's meant to avoid the stdin.seek()
call in the HTTPRequest class so that non-seekable streams can be used
as stdin.  It also potentially avoids unnecessary (blocking) disk I/O
in retries (this depends on the according request that's being worked
on) and repeated request parsing in cgi.FieldStorage.  The immediate
cause for the patch is that AJPServer uses non-seekable streams as
input for the ZPublisher.  To change this locally I'd need to go with
disk buffering.  Nevertheless I think this could provide a general
performance improvement.

To this end I just save the cgi.FieldStorage instance, that is created
by HTTPRequest.processInputs, when the request is worked upon for the
first time, across retry boundaries.

Questions:

- Is this the right forum/place to send patches to?

- Is there any chance that this could be applied to Zope's mainline?
  (If not I will proceed with a local disk buffering scheme in the
  long term.)


cheers,

andreas



-------------- next part --------------
A non-text attachment was scrubbed...
Name: HTTPRequest.patch
Type: text/x-patch
Size: 3031 bytes
Desc: patch to avoid stdin.seek in class HTTPRequest
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20040818/83a46166/HTTPRequest.bin


More information about the Zope-Dev mailing list