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