apache module(or filter) 개발 질문 드립니다.
안녕하세요. apache 모듈을 개발하고 있습니다.
Client에서 GET, POST 요청이 들어오면 파라미터를 체크합니다.
파라미터가 올바르면 요청한 페이지로 요청을 넘겨주고, 올바르지 않으면 임의의 HTML 코드만을 Client로 출력하려고 합니다.
ap_hook_handler에서 원하는 처리가 되나, POST body(parameters)를 읽고 나면, 이후 PHP에서 POST parameters를 가져오지 못하는 문제가 있습니다.
그래서 filter에서 POST body를 읽으니 PHP에서도 정상적으로 parameters를 가져오기는 하는데요.
문제는 filter에서는 요청을 PHP로 넘겨주지 않은 채 임의의 HTML 코드만을 Client로 출력하는 방법을 잘 모르겠습니다.
ap_hook_handler과, filter를 좀 조합해서 해결하려고 했으나, ap_hook_handler가 먼저 호출되는 문제로 원하는 조합이 안만들어 지네요.
그럼 소중한 조언 부탁드리겠습니다.
아래는 간단한 소스입니다.
// filter
test_input_filter() {
}
// ap_hook_handler
test_handler() {
}
static void test_insert_filter( request_rec *req) {
ap_add_input_filter("TESTFILTER_IN", NULL, req, req->connection);
}
static void test_register_hooks(apr_pool_t *p) {
ap_hook_insert_filter(test_insert_filter, NULL, NULL, APR_HOOK_FIRST);
ap_register_input_filter("TESTFILTER_IN", test_input_filter, NULL, AP_FTYPE_CONTENT_SET);
ap_hook_handler(test_handler, NULL, NULL, APR_HOOK_MIDDLE);
}
extern "C" module AP_MODULE_DECLARE_DATA test_module = {
STANDARD20_MODULE_STUFF,
NULL, // create per-dir config structures
NULL, // merge per-dir config structures
NULL, // create per-server config structures
NULL, // merge per-server config structures
NULL, // table of config file commands
test_register_hooks // register hooks
};
댓글 달기