I'm just getting into module development for the first time (thanks to
impetus provided by Google's Summer of Code)... I've got a test
environment with 2.1.6-alpha and have succeeded in writing minimal modules
and getting them working on a live server. But I have a few nagging
questions that I hope someone can help me with.
1) ap_hook_* functions... obviously, there are lots of these that are used
to register hooks. Where can I find a reference list of the available
functions? I'm looking through code of modules, and it leaves me
wondering, how would I know what hook possibilities exist?
2) I'm having trouble navigating and finding facilities I need. Let's say
I was looking for something that turns out to be satisfied by ap_fwrite(),
in the API for filters. Where should I start, to lead myself to finding
that function? I thought apr.apache.org but Google shows no mention of
ap_fwrite within that site.
3) I can understand how a module can tie into Apache's normal processing
to intercept connections, requests, etc. But what is the structure and
mechanism by which one module can make use of another module? I can use C
functions but there must be some kind of standardized interface for
inter-modular calls?
For example, for SMTP support we are contemplating the protocol unit
(mod_smtpd) passing on mail to a module that specifically delivers mail.
How do those two entities communicate with each other? A mod_smtp_deliver
would get a potentially large chunk of data (const char* ?) from mod_smtpd
and deliver the mail via procmail, etc. This is a loose binding by the way
since all received mails do not necessarily have to be delivered.
- Questions from a newbie Jem Berkes
-