On Sat, Sep 21, 2013 at 12:11 PM, Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote: > On Wed, 2013-09-18 at 16:17 -0500, jprvita at gmail.com wrote: >> From: Jo?o Paulo Rechi Vita <jprvita at openbossa.org> >> >> This new function checks if a certain module name is available in the >> system. >> --- >> src/pulsecore/module.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ >> src/pulsecore/module.h | 2 ++ >> 2 files changed, 51 insertions(+) >> >> diff --git a/src/pulsecore/module.c b/src/pulsecore/module.c >> index 16582b3..bc53f07 100644 >> --- a/src/pulsecore/module.c >> +++ b/src/pulsecore/module.c >> @@ -28,6 +28,7 @@ >> #include <stdlib.h> >> #include <string.h> >> #include <errno.h> >> +#include <ltdl.h> >> >> #include <pulse/xmalloc.h> >> #include <pulse/proplist.h> >> @@ -47,6 +48,54 @@ >> #define PA_SYMBOL_GET_N_USED "pa__get_n_used" >> #define PA_SYMBOL_GET_DEPRECATE "pa__get_deprecated" >> >> +bool pa_module_exists(const char *name) { >> + const char *paths, *state = NULL; >> + char *p, *pathname; >> + bool result; >> + >> + pa_assert(name); >> + >> + if (name[0] == PA_PATH_SEP_CHAR) { >> + result = access(name, F_OK) == 0 ? true : false; >> + pa_log_debug("Checking for existence of '%s': %s", name, result ? "success" : "failure"); >> + if (result) >> + return true; >> + } >> + >> + if (!(paths = lt_dlgetsearchpath())) >> + return false; >> + >> + /* strip .so from the end of name, if present */ >> + p = rindex(name, '.'); >> + if (p && pa_streq(p, ".so")) > > Use PA_SOEXT instead of hardcoding ".so". > There is no PA_SOEXT in the code context, just at build context. I'll have to define it at configure time with AC_DEFINE(). -- Jo?o Paulo Rechi Vita http://about.me/jprvita