]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-4771 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 29 Oct 2012 14:27:59 +0000 (09:27 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 29 Oct 2012 14:27:59 +0000 (09:27 -0500)
src/include/switch_types.h
src/switch_core.c
src/switch_loadable_module.c

index 25e2525e4aed5c07f7fddfd8a9c5349d6657b8ba..ff8c55a521c3dbe27cd127e47fd7b064508b7d02 100644 (file)
@@ -464,6 +464,7 @@ typedef struct {
 struct switch_directories {
        char *base_dir;
        char *mod_dir;
+       char *lib_dir;
        char *conf_dir;
        char *log_dir;
        char *run_dir;
index 73d96b2869cdfd11485a888d1f7f5b5289c1c8c3..4682d3c0022d12183a9920a1a4c8c3871cc774bd 100644 (file)
@@ -575,6 +575,14 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
 #endif
        }
 
+       if (!SWITCH_GLOBAL_dirs.lib_dir && (SWITCH_GLOBAL_dirs.lib_dir = (char *) malloc(BUFSIZE))) {
+#ifdef SWITCH_LIB_DIR
+               switch_snprintf(SWITCH_GLOBAL_dirs.lib_dir, BUFSIZE, "%s", SWITCH_LIB_DIR);
+#else
+               switch_snprintf(SWITCH_GLOBAL_dirs.lib_dir, BUFSIZE, "%s%slib", base_dir, SWITCH_PATH_SEPARATOR);
+#endif
+       }
+
        if (!SWITCH_GLOBAL_dirs.conf_dir && (SWITCH_GLOBAL_dirs.conf_dir = (char *) malloc(BUFSIZE))) {
 #ifdef SWITCH_CONF_DIR
                switch_snprintf(SWITCH_GLOBAL_dirs.conf_dir, BUFSIZE, "%s", SWITCH_CONF_DIR);
@@ -671,6 +679,7 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
 
        switch_assert(SWITCH_GLOBAL_dirs.base_dir);
        switch_assert(SWITCH_GLOBAL_dirs.mod_dir);
+       switch_assert(SWITCH_GLOBAL_dirs.lib_dir);
        switch_assert(SWITCH_GLOBAL_dirs.conf_dir);
        switch_assert(SWITCH_GLOBAL_dirs.log_dir);
        switch_assert(SWITCH_GLOBAL_dirs.run_dir);
index 3a79c3e024bfdc60e28e9adc2943881a6a5cef92..d87d37f7fc4d89809e4b647c97c5490902b9cd3f 100644 (file)
@@ -1219,7 +1219,11 @@ static switch_status_t switch_loadable_module_load_file(char *path, char *filena
 #ifdef WIN32
        dso = switch_dso_open("FreeSwitch.dll", load_global, &derr);
 #elif defined (MACOSX) || defined(DARWIN)
-       dso = switch_dso_open(SWITCH_PREFIX_DIR "/lib/libfreeswitch.dylib", load_global, &derr);
+       {
+               char *lib_path = switch_mprintf("%s/libfreeswitch.dylib", SWITCH_GLOBAL_dirs.lib_dir);
+               dso = switch_dso_open(lib_path, load_global, &derr);
+               switch_safe_free(lib_path);
+       }
 #else
        dso = switch_dso_open(NULL, load_global, &derr);
 #endif