httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: InterModule Communication(DSO)
Date Mon, 07 May 2007 14:00:17 GMT
Graham Dumpleton wrote:
> Simplest means of setting information for a specific request which can
> then be seen by a handler implemented in a different module is by
> setting values in the 'notes' table of the request object.
> 
> For something more elaborate, you may need to look at using optional
> functions that are exported by a module and can be looked up at run
> time by another module and called.
> 
> For an example, look at the source for modules/ssl/ssl_engine_vars.c
> in httpd source and the optional functions it exports as:
> 
>    APR_REGISTER_OPTIONAL_FN(ssl_is_https);
>    APR_REGISTER_OPTIONAL_FN(ssl_var_lookup);
>    APR_REGISTER_OPTIONAL_FN(ssl_ext_lookup);

This works as far as only one endpoint is being called (you are exposing
your module on an optional basis to answer questions.)

But when you want to provide multiple endpoints, you will want to create
your own module hooks.  See, for example, mod_dav.c or mod_proxy.c and
look at the _HOOK, _hook statements for how that is completely implemented.

Mime
View raw message