Sorin Manolache wrote:
> On Thu, Apr 2, 2009 at 19:45, Dave Ingram <d...@dmi.me.uk> wrote:
>   
>> Hi guys,
>>
>> Is there any way that my module can detect which APR features are
>> enabled in Apache? It relies on DBD, and if that's not available then my
>> module just segfaults, which isn't very friendly. I'd prefer to give an
>> error message to the user, telling them that DBD is required.
>>
>> Does anyone have any tips, or should I ask the APR list instead?
>>     
>
> dbd does this:
>     APR_REGISTER_OPTIONAL_FN(ap_dbd_prepare);
>     APR_REGISTER_OPTIONAL_FN(ap_dbd_open);
>     APR_REGISTER_OPTIONAL_FN(ap_dbd_close);
>     APR_REGISTER_OPTIONAL_FN(ap_dbd_acquire);
>     APR_REGISTER_OPTIONAL_FN(ap_dbd_cacquire);
>
> APR_RETRIEVE_OPTIONAL_FN(one of the functions above) should give you
> NULL if DBD is absent.
>
> The two macros are declared in apr_optional.h.
>   

Actually, that's not quite what I was after -- those are defined by
mod_dbd, which I don't rely on (as it's initialised too late for my
module's purposes). I do all of the DBD interaction myself. Is there any
other way to be sure it's enabled? Would:

if (apr_dbd_open != NULL) {
  // error...
}

work?


Dave

Reply via email to