В настоящее время я пытаюсь научиться создавать фильтры Apache для работы в Jive, и пытаюсь начать с малого и работать над тем, что мне нужно.
Моя проблема сейчас заключается в том, что я не могу заставить работать базовый фильтр. Я следовал нескольким различным учебным пособиям по созданию и установке, а также поиску по этому сайту и многим другим, но, похоже, я не могу получить никаких результатов и не верю, что мой фильтр даже используется.
Код:
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#include "http_log.h"
#include "http_protocol.h"
#include "ap_compat.h"
#include <stdio.h>
static void register_hooks(apr_pool_t *p);
static int test_filter(request_rec *r);
static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(test_filter, NULL, NULL, APR_HOOK_MIDDLE);
}
static int test_filter(request_rec *r)
{
FILE *file;
file = fopen("/usr/local/jive/var/logs/filter.log", "a+");
fprintf(file, "In the Filter!\n");
fclose(file);
return OK;
}
module AP_MODULE_DECLARE_DATA test_module =
{
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
register_hooks
};
Я компилирую и устанавливаю фильтр, используя:
apxs -c -i -a /mod_test.c
И в файле httpd.config я вижу, что модуль установлен, поэтому я добавляю в .config:
AddOutputFilter test-module
И, наконец, я перезапускаю jive-httpd. В конце концов, файл, в который я пытаюсь записать, никогда не создается и не добавляется. Я в полной растерянности относительно того, что делать сейчас, прежде чем я смогу двигаться вперед.
Запуск Jive SBS 4.5.4.0 с сервером Apache / 2.2.3 Httpd.
Буду признателен за любую помощь, и я заранее извиняюсь, если мое форматирование выключено.