On 2012-08-17 16:25, nik600 wrote:
Dear all
i'm trying to code a custom module that will implement some logic this
is the concept of the module:
*********************************
/*
* some stuff...
*/
if(condition){
/*return a custom result*/
return OK;
}else{
/*forward the request to another server*/
r->filename = "proxy:http://www.google.it/";
r->proxyreq = PROXYREQ_PROXY;
r->handler = "proxy-server";
return OK;
}
*********************************
But it seems that when i go into the else condition the proxy request
isn't handled.
proxy and proxy_http are enabled and correctly working.
Is this code correct to forward a request and make my module working
as a proxy_http ?
Try
if (condition) {
...
return OK;
} else {
return DECLINED;
}
and make sure your handler runs before mod_proxy's:
static const char *succ[] = {"mod_proxy.c", NULL};
ap_hook_handler(&your_handler, NULL, succ, APR_HOOK_MIDDLE);
Then put a ProxyPass in your conf:
<Location /your_url>
ProxyPass http://www.google.it/ keepalive=On
</Location>
Also make sure you do not check on r->handler. Even if you set
"SetHandler your_handler", ProxyPass will overwrite it with "proxy-server".
Sorin
Thanks in advance