Как вызвать функцию на теле ответа? - PullRequest
0 голосов
/ 22 января 2019

У меня есть проект модуля 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
);
...