У меня есть проект модуля httpd, пишущий на c. Нужно вызвать конкретную функцию, используя данные запроса и тело ответа. В запросе данные отлично работают, но как вызвать конкретную функцию в теле ответа?
Мой пример кода:
int apache_on_request(request_rec *r)
{
// ...
}
static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(
apache_on_request,
NULL,
NULL,
APR_HOOK_REALLY_FIRST
);
}
module AP_MODULE_DECLARE_DATA mod_demo =
{
STANDARD20_MODULE_STUFF,
NULL, /* Per-directory configuration handler */
NULL, /* Merge handler for per-directory configurations */
NULL, /* Per-server configuration handler */
NULL, /* Merge handler for per-server configurations */
NULL, /* Any directives we may have for httpd */
register_hooks /* Our hook registering function */
};
Я пытаюсь использовать ap_register_output_filter
, но никогда не вызывается при запросе httpd через веб-браузер:
// https://ci.apache.org/projects/httpd/trunk/doxygen/group__APACHE__CORE__FILTER.html#ga6dc4721ae075c103a3f3a93775d139fa
// Response body
ap_register_output_filter(
"apache_on_response_body", // name
apache_on_response_body, // filter_funct
NULL, // filter_init
AP_FTYPE_CONTENT_SET // ftype
);