---- Sorin Manolache <sor...@gmail.com> wrote: 
> On 2012-06-23 04:47, oh...@cox.net wrote:
> > Hi,
> >
> > Per earlier threads on this list, I've been working on an Apache module.  
> > For the time being, I'm kind of stuck because of the problems that I've run 
> > into with trying to integrate my module with a 3rd party library, so just 
> > for my module, which is mainly a proof-of-concept, I'd like to have my 
> > module do an HTTP GET request.
> >
> > So, I was wondering if anyone has some simple example code for doing that 
> > from within a module, maybe using libcurl, or just natively using sockets?
> >
> > I'm trying to do this myself, and I've been looking at using libcurl, but 
> > most of the examples that I've seen use the "easy" setup, so if someone has 
> > something like that that can be shared, it'd be a big help.  Conversely, if 
> > I figure it out, I'll post some working snippets here :)...
> >
> I'll say the same thing as Ben, try with apache, either mod_proxy or 
> ap_run_sub_request. That if you make one outgoing request per incoming 
> request. If you want several outgoing requests, in parallel preferably, 
> per incoming request, then go with some 3rd-party library.
> 
> I have some in-house C++ wrappers for libcurl (curl_multi_* + timeouts + 
> client pools), but they are not straightforward to use, a lot of setup 
> is involved, and they are not thoroughly tested.
> 
> S

Sorin and Ben,

I'll take a look at mod_proxy.c later, but, FYI, I just tried the following:

- I added the following to my tweaked mod_headers.c:

#include "curl/curl.h"
.
.
.
void callCurl() {
  CURL *curl;
  CURLcode res;
 
  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com";);
    res = curl_easy_perform(curl);
 
    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  return;
}

- I compiled with apxs, with no additonal -L or -l

- I added a call to callCurl() in my code where I knew it'd get called.

- In my httpd.conf, I added in front of the LoadModule for mod_headers:

LoadFile /usr/lib64/libcurl.so.3.0.0


Then I started Apache in single process (-k start -X), and it started, and then 
I tested, and it worked!!  

For this prototype, I'll try to see if I can get this to the point that I 
confirm what I'm doing, then I'll go back and look at mod_proxy.c to maybe do 
native HTTP GET.

Thanks,
Jim

Reply via email to