Congrats! Welcome to the world of filters!
On 03/01/2012 09:37 AM, Swaminathan Bhaskar wrote:
Ahh - Finally, I was able to get it working. Thanks for the pointer.
Here is the code snippet:
#include<stdio.h>
#include<httpd.h>
#include<http_protocol.h>
#include<http_config.h>
#include<http_log.h>
#include<util_filter.h>
#define MY_FILTER_NAME "myfilter"
static void insert_myfilter(request_rec *req)
{
ap_add_output_filter(MY_FILTER_NAME, NULL, req, req->connection);
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, req->server, "mod_myfilter:
inserted myfilter");
}
static int my_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
{
if (f->r->status_line != NULL) {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, f->r->server,
"mod_myfilter: status = %d, status-line = %s", f->r->status,
f->r->status_line);
}
else {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, f->r->server,
"mod_myfilter: status = %d", f->r->status);
}
ap_pass_brigade(f->next, bb);
return APR_SUCCESS;
}
static void my_filter_hooks(apr_pool_t *pool)
{
ap_register_output_filter(MY_FILTER_NAME, my_output_filter, NULL,
AP_FTYPE_RESOURCE);
ap_hook_insert_filter(insert_myfilter, NULL, NULL, APR_HOOK_LAST);
ap_hook_insert_error_filter(insert_myfilter, NULL, NULL, APR_HOOK_LAST);
fprintf(stderr, "mod_myfilter: registered my_output_filter\n");
}
module AP_MODULE_DECLARE_DATA myfilter_module = {
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
my_filter_hooks
};
Rgds
Bhaskar