You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Alexei Kosut <ak...@nueva.pvt.k12.ca.us> on 1996/10/02 07:50:02 UTC

some explanations

Over the past few weeks, a couple of things regarding the Apache code
were brought up that didn't get resolved, and I have answers to,
so....

1) There was a question as to why the module_names array existed, and
why there wasn't just a name member of the module record. I've
wondered the same thing, especially because there is one, and always
has been. (I never quite got around to asking Rasmus why he invented
module_names for mod_info and didn't use m->name). Anyhow, it's
there; the C pre-processor sets it to the name of the source file if
you use STANDARD_MODULE_STUFF, but it could just as easily be set to
something else.

2) read_client_block. I guess no one was paying attention when, for
the HTTP/1.1 changes, I pointed out in big letters that
read_client_block had changed entirely in function, and was completely
incompatible (I probably should have just renamed the darn
function). Basically, in order to handle chunked input, any given
module cannot handle input itself, calling read_client_block to get
the data. It has to have http_protocol handle it all at the
appropriate stages. So a combination of setup_client_block,
should_client_block and read_client_block must be called. See
mod_cgi.c for an example of how this is supposed to work.

Actually, read_client_block can be modified so it's
backwards-compatible, which I meant to do, but be warned that it does
break HTTP/1.1 compliance if a module uses it in the old manner.

-- 
________________________________________________________________________
Alexei Kosut <ak...@nueva.pvt.k12.ca.us>      The Apache HTTP Server
URL: http://www.nueva.pvt.k12.ca.us/~akosut/   http://www.apache.org/