httpd-apreq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Schaefer <joe+gm...@sunstarsys.com>
Subject Re: Using libapreq from ISAPI filter
Date Mon, 05 Jan 2004 18:42:36 GMT
Vladimir Dudov <dudov@relexus.com> writes:

> I got it working. So, yes, it's possible :)

Excellent! Do you have it working in IIS, or with apache2/mod_isapi?

> There are a few things that are not very clear:
> 
> What are the responsibilities of request and read hooks registered with
> APREQ_ENV_MODULE?
> I mean the following members of  apreq_env_t:
>     apreq_request_t *(**request*)(void *,apreq_request_t *);
>     apr_status_t (**read*)(void *,apr_read_type_e,apr_off_t);
> 

Good question.  I don't think there's a definitive answer yet;
that will come as our community gains experience with ports 
like yours to non-apache2 environments.  I can give some guidance
regarding the basic design, though.

The APREQ_ENV_MODULE's "request" function should be thought of as 
a get/set call for the "active" request in a particular env.  By 
active, I mean the apreq_request_t struct that will get its body 
table filled in whenever the APREQ_ENV_MODULE's "read" is 
subsequently invoked (read takes a void* as its first argument,
NOT an apreq_request_t*).

> Should the last bucket in the brigade passed to apreq_parse_request()
> be an eos bucket?  

Yes- this is an absolute requirement.

> Does apreq_parse_request() delete processed buckets?

Basically, yes (although that may be a bug in the urlencoded parser,
since it looks to me like it doesn't).  In any case, the parsers 
are responsible for managing memory for every bucket they see, up to 
the EOS bucket.

-- 
Joe Schaefer


Mime
View raw message