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:31:09 GMT
On Jan 17, 2008 7:30 PM, karim Bendadda <kakibend@gmail.com> wrote:

> 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,
>    **my_module**_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




-- 
Karim

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