Loading include/http_protocol.h +13 −0 Changes for include/http_protocol.h: 13 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -555,6 +555,19 @@ AP_DECLARE(const char *) ap_method_name_of(apr_pool_t *p, int methnum); /* Hooks */ /* * pre_read_request --- run right before read_request_line(), * and not run during any subrequests. */ /** * This hook allows modules to affect the request or connection immediately before * the request has been read, and before any other phases have been processes. * @param r The current request of the soon-to-be-read request * @param c The connection * @return None/void */ AP_DECLARE_HOOK(void,pre_read_request,(request_rec *r, conn_rec *c)) /* * post_read_request --- run right after read_request or internal_redirect, * and not run during any subrequests. Loading modules/examples/mod_example_hooks.c +18 −0 Changes for modules/examples/mod_example_hooks.c: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -1146,6 +1146,22 @@ static int x_process_connection(conn_rec *c) return DECLINED; } /* * This routine is called after the request has been read but before any other * phases have been processed. This allows us to make decisions based upon * the input header fields. * * This is a HOOK_VOID hook. */ void x_post_read_request(request_rec *r, conn_rec *c) { /* * We don't actually *do* anything here, except note the fact that we were * called. */ trace_request(r, "x_pre_read_request()"); } /* * This routine is called after the request has been read but before any other * phases have been processed. This allows us to make decisions based upon Loading Loading @@ -1449,6 +1465,8 @@ static void x_register_hooks(apr_pool_t *p) ap_hook_quick_handler(x_quick_handler, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_pre_connection(x_pre_connection, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_process_connection(x_process_connection, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_pre_read_request(x_pre_read_request, NULL, NULL, APR_HOOK_MIDDLE); /* [1] post read_request handling */ ap_hook_post_read_request(x_post_read_request, NULL, NULL, APR_HOOK_MIDDLE); Loading server/protocol.c +6 −0 Changes for server/protocol.c: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ APLOG_USE_MODULE(core); APR_HOOK_STRUCT( APR_HOOK_LINK(pre_read_request) APR_HOOK_LINK(post_read_request) APR_HOOK_LINK(log_transaction) APR_HOOK_LINK(http_scheme) Loading Loading @@ -915,6 +916,8 @@ request_rec *ap_read_request(conn_rec *conn) tmp_bb = apr_brigade_create(r->pool, r->connection->bucket_alloc); ap_run_pre_read_request(r, conn); /* Get the request... */ if (!read_request_line(r, tmp_bb)) { if (r->status == HTTP_REQUEST_URI_TOO_LARGE Loading Loading @@ -1733,6 +1736,9 @@ AP_DECLARE(void) ap_send_interim_response(request_rec *r, int send_headers) } AP_IMPLEMENT_HOOK_VOID(pre_read_request, (request_rec *r, conn_rec *c), (r, c)) AP_IMPLEMENT_HOOK_RUN_ALL(int,post_read_request, (request_rec *r), (r), OK, DECLINED) AP_IMPLEMENT_HOOK_RUN_ALL(int,log_transaction, Loading Loading
include/http_protocol.h +13 −0 Changes for include/http_protocol.h: 13 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -555,6 +555,19 @@ AP_DECLARE(const char *) ap_method_name_of(apr_pool_t *p, int methnum); /* Hooks */ /* * pre_read_request --- run right before read_request_line(), * and not run during any subrequests. */ /** * This hook allows modules to affect the request or connection immediately before * the request has been read, and before any other phases have been processes. * @param r The current request of the soon-to-be-read request * @param c The connection * @return None/void */ AP_DECLARE_HOOK(void,pre_read_request,(request_rec *r, conn_rec *c)) /* * post_read_request --- run right after read_request or internal_redirect, * and not run during any subrequests. Loading
modules/examples/mod_example_hooks.c +18 −0 Changes for modules/examples/mod_example_hooks.c: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -1146,6 +1146,22 @@ static int x_process_connection(conn_rec *c) return DECLINED; } /* * This routine is called after the request has been read but before any other * phases have been processed. This allows us to make decisions based upon * the input header fields. * * This is a HOOK_VOID hook. */ void x_post_read_request(request_rec *r, conn_rec *c) { /* * We don't actually *do* anything here, except note the fact that we were * called. */ trace_request(r, "x_pre_read_request()"); } /* * This routine is called after the request has been read but before any other * phases have been processed. This allows us to make decisions based upon Loading Loading @@ -1449,6 +1465,8 @@ static void x_register_hooks(apr_pool_t *p) ap_hook_quick_handler(x_quick_handler, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_pre_connection(x_pre_connection, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_process_connection(x_process_connection, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_pre_read_request(x_pre_read_request, NULL, NULL, APR_HOOK_MIDDLE); /* [1] post read_request handling */ ap_hook_post_read_request(x_post_read_request, NULL, NULL, APR_HOOK_MIDDLE); Loading
server/protocol.c +6 −0 Changes for server/protocol.c: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ APLOG_USE_MODULE(core); APR_HOOK_STRUCT( APR_HOOK_LINK(pre_read_request) APR_HOOK_LINK(post_read_request) APR_HOOK_LINK(log_transaction) APR_HOOK_LINK(http_scheme) Loading Loading @@ -915,6 +916,8 @@ request_rec *ap_read_request(conn_rec *conn) tmp_bb = apr_brigade_create(r->pool, r->connection->bucket_alloc); ap_run_pre_read_request(r, conn); /* Get the request... */ if (!read_request_line(r, tmp_bb)) { if (r->status == HTTP_REQUEST_URI_TOO_LARGE Loading Loading @@ -1733,6 +1736,9 @@ AP_DECLARE(void) ap_send_interim_response(request_rec *r, int send_headers) } AP_IMPLEMENT_HOOK_VOID(pre_read_request, (request_rec *r, conn_rec *c), (r, c)) AP_IMPLEMENT_HOOK_RUN_ALL(int,post_read_request, (request_rec *r), (r), OK, DECLINED) AP_IMPLEMENT_HOOK_RUN_ALL(int,log_transaction, Loading