httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sorin Manolache <sor...@gmail.com>
Subject Re: Using aprec in a handler to retrieve request body
Date Tue, 16 Feb 2010 10:35:32 GMT
2010/2/16 Frédéric Laurendeau <frederic.laurendeau@gmail.com>:
> Hi,
>
> I am trying to write a module which will get the request body, process it
> and write generated content in the response.
> I have seen that some of you used aprec to get the request body but I just
> cannot manage to build my module with it. I'm using apxs to build my module
> and after the build, there is an error when trying to start apache2 with my
> module: "Cannot load mod_maquette.so into server: undefined symbol:
> apreq_params_as_string"
>
> I put at the bottom of the mail my source code and my build script, maybe I
> forgot to include some headers in the source or some libraries in the build
> command line ?
>
> I don't really understand how all of this works but aprec seems very
> powerfull and I'd like to find some tutorials or examples on how to build
> modules with it.
>
> Thanks for your help.
>
> Frederic
>
> Build script :
> /usr/local/apache2/bin/apxs -c mod_maquette.c

Try

/usr/local/apache2/bin/apxs -c -l apreq2 mod_maquette.c

> /usr/local/apache2/bin/apxs -i -a -n maquette mod_maquette.la
>
>
> Source code mod_maquette.c:
> #include <stdlib.h>
> #include <math.h>
> #include <string.h>
> #include "httpd.h"
> #include "http_connection.h"
> #include "http_config.h"
> #include "http_core.h"
> #include "http_log.h"
> #include "http_protocol.h"
> #include "ap_config.h"
> #include "http_request.h"
> #include "apr.h"
> #include "apr_strings.h"
> #include "apr_lib.h"
> #include "apreq2/apreq_module.h"
> #include "apreq2/apreq_param.h"
>
> static int maquette_handler(request_rec *r)
> {
> const apr_table_t* args;
> apreq_handle_t* h = apreq_handle_apache2(r);
> apreq_body(h, &args);
> const char *params = apreq_params_as_string(r->pool, args, NULL,
> APREQ_JOIN_QUOTE);
>
> fprintf(stderr, "=====TEST=====\n%s\n======TEST=====\n", params );
> ap_rprintf(r, "Request data read : %s\n", params);
> fflush(stderr);
>  return DONE;
> }
>
> static void register_hooks(apr_pool_t *p)
> {
> ap_hook_handler(maquette_handler, NULL, NULL, APR_HOOK_MIDDLE);
> }
>
> module AP_MODULE_DECLARE_DATA maquette_module =
> {
>    STANDARD20_MODULE_STUFF,
>    NULL,             /* dir config creater */
>    NULL,             /* dir merger --- default is to override */
>    NULL,             /* server config */
>    NULL,             /* merge server configs */
>    NULL,             /* command apr_table_t */
>    register_hooks,   /* register hooks */
> };
>



-- 
A: Because it reverses the logical flow of conversation.
Q: Why is top-posting frowned upon?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

Mime
View raw message