httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "karim Bendadda" <kakib...@gmail.com>
Subject Re: [Module Dev] Sending http request
Date Thu, 17 Jan 2008 18:30:45 GMT
First I'd like to thank you very much Joe for help...

I have a "begineer" question:

*3) allow apache to handle the rest of the request*. Is that mean return
1???? because when I tried this I had an error...and when I tried return OK
I had nothing...

that's my code:

*static int my_module_handler (request_rec *r) {
 char *url = apr_pstrdup(r->pool,"http:\\10.12.23.5\irj\test");
    r->filename = apr_pstrcat(r->pool, "proxy:", url, NULL);
    return 1;
}

static void **my_module**_hooks(apr_pool_t *pool){
    ap_hook_handler(**my_module**_handler, NULL, NULL, APR_HOOK_FIRST);
   }

module AP_MODULE_DECLARE_DATA **my_module**_module = {
    STANDARD20_MODULE_STUFF,
    NULL,
    NULL,
    auth_chorus_config,
    NULL,
    **my_module**_cmds,
    **my_module**_hooks
};*

Thanks


On Jan 17, 2008 4:01 PM, Joe Lewis < joe@joe-lewis.com> wrote:

> karim Bendadda wrote:
> > Hi All;
> >
> > I tried this
> >
> > *request_rec *subr = ap_sub_req_lookup_uri(url, r, NULL);
> > apr_table_set( subr->headers_out, "Location", url );
> > ap_log_rerror( APLOG_MARK, APLOG_ERR, 0,r, "sub request status:
> > %i",subr->status );
> > ap_run_sub_req(subr);*
> >
> > I have the following error:
> >
> > *[Thu Jan 17 07:11:25 2008] [error] [client 10.75.197.168 ] File does
> not
> > exist: /usr/local/apache2/htdocs/my_module*
> >
> > I think because the external server is not on the same site..I read the
> > paragraph 6.3 Diverting a Request: The internal redirect ...I think
> there is
> > no external redirect for http requests...
> > Any suggestion please??
> >
>
> That error and assumption are correct.  As Ray stated, the
> ap_sub_req_lookup_uri only works if the URI is on the local server's
> apache.  (It is a URI vs. URL concept - the URI does not include the
> http://servername piece of the URL.)
>
> Instead, try a simple :
>
> r->filename = apr_pstrcat(r->pool, "proxy:", url, NULL);
> return 1;
>
> (this example was stolen from mod_rewrite, which was the only core
> module that I was aware of that included a "send to proxy" command).
> Just set the URL to what the client would have been grabbing if it was
> redirected to the right page.  For example, if the client is trying to
> get the page http://corvette.sharktooth.org/status.html , the resulting
> line would be :
>
> url = apr_pstrdup(r->pool,"http://corvette.sharktooth.org/status.html");
> r->filename = apr_pstrcat(r->pool, "proxy:", url, NULL);
> return 1;
>
> (this could also be shortened - what the three lines do are 1) get/set
> the URL, which should be set in your case already, 2) preface the URL
> with "proxy:", which is an indicator to proxy the request elsewhere, and
> 3) allow apache to handle the rest of the request).
>
> Try it and let us know if that works for you.
>
> Joe
> --
> Joseph Lewis <http://sharktooth.org/ >
> "Divide the fire, and you will sooner put it out." - Publius Syrus
>



-- 
Karim

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message