httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Swaminathan Bhaskar <bhaskar.swaminat...@gmx.com>
Subject Re: Intercepting HTTP 301/302 redirects
Date Thu, 01 Mar 2012 02:46:45 GMT
Thanks for the quick response Joe. Just to make sure, here is what I did:

<IfModule mod_myfilter.c>
<Location />
         SetOutputFilter myfilter
</Location>
</IfModule>

and the code

#include <stdio.h>
#include <httpd.h>
#include <http_protocol.h>
#include <http_config.h>
#include <util_filter.h>

#define MY_FILTER_NAME "myfilter"

static int my_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
{
     fprintf(stderr, "mod_myfilter: status = %d, status-line = %s\n", 
f->r->status, f->r->status_line);

     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);

     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
};

I setup an intentional redirect for testing

Redirect 301 /red.htm http://localhost/green.htm

When I try http://localhost/, should I not see the output from myfilter ?

May be I am doing something wrong ?

Also you indicated I need to hook into ap_hook_insert_error_filter - 
would you by any chance have any sample code ?

Rgds
Bhaskar

On 02/29/2012 08:06 PM, Joe Lewis wrote:
> On 02/29/2012 06:01 PM, Swaminathan Bhaskar wrote:
>> Hi
>>
>> Is there anyway to intercept HTTP 301/302 redirects ? I tried 
>> registering a very simple output filter (AP_FTYPE_RESOURCE) and the 
>> filter function did not get a callback. I would assume all output 
>> goes through the filter chain
>>
>> Rgds
>> Bhaskar
>
> Did you hook the ap_hook_insert_error_filter function?  For errors, 
> you need that one.
>
> Joe
> -- 
> http://www.silverhawk.net/


Mime
View raw message