Hi Joachim,
thanks a lot for your effort. A day after my e-mail I've grep-ed out
buckets and brigades from sources...I've managed, that it's pretty much
versatile, as i originally thought ( "just a damned buffers"). I like
that idea pretty much (actually, in this project (where this module is
just a small part in), we already have a java library that behaves
pretty much the same way like apache's brigades) now, but the bad thing
is that it's unusable for us to use brigades, since send-file usage in
apache is done how it's done.
Anyway, now I just run close(socket) and shutdown(socket), and that's
it. However Apache is complaining about bat file-descriptors, but...as
far as it works ;)
Thank you one more time,
Stefan
Joachim Zobel wrote:
Am Dienstag, den 27.02.2007, 19:17 +0100 schrieb bronto:
I have a module written by me, which (less or more) serves content.
Everything went well until we ran some JMeter tests, which has
discovered that keep-alive requests, to our module, are returning
zero-sized OK pages (I mean code 200, with content-length:0). Ethereal
discovered that it actually served the content, _but_ after that apache
sends out another headers. Which is certainly ok, because it thinks that
there was no content sent.
You have probably just discovered chunked coding, which is a rather
annoying discovery. My conjecture is, that either you send a content
length header (this is wrong with chunked coding IIRC) or the authors of
JMeter have yet to discover chunked encoding. The second would mean your
module is behaving correctly.
What I need, is a way how can I tell apache, to stop processing the
particular request.
But my guess is, that it actually sends headers right after it knows the
length of content and stuff.
Yes. That is more or less how chunked coding works. See
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6.1
Hth,
Joachim