]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: set conf and mod directory in runtime
authorMoises Silva <moy@sangoma.com>
Tue, 21 Sep 2010 17:56:11 +0000 (13:56 -0400)
committerMoises Silva <moy@sangoma.com>
Tue, 21 Sep 2010 17:56:11 +0000 (13:56 -0400)
libs/freetdm/mod_freetdm/mod_freetdm.c
libs/freetdm/src/ftdm_config.c
libs/freetdm/src/include/freetdm.h

index b4a40f0bad222a07fc658e7912115ed6e8cd11c9..e5311468e3219e8ca6c1ce910b3bb8471bc93bf9 100755 (executable)
@@ -4074,6 +4074,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_freetdm_load)
 
        ftdm_global_set_logger(ftdm_logger);
 
+       ftdm_global_set_mod_directory(SWITCH_GLOBAL_dirs.mod_dir);
+
+       ftdm_global_set_config_directory(SWITCH_GLOBAL_dirs.conf_dir);
+
        ftdm_cpu_monitor_disable();
        
        if (ftdm_global_init() != FTDM_SUCCESS) {
index 291ca33109815031f9d59bbed50da24d6b525d1c..1b023e93ebb7999f444ea3028d7ea73d7d96fa62 100644 (file)
 #define FTDM_MOD_DIR "." 
 #endif
 
-static char g_ftdm_config_dir[] = FTDM_CONFIG_DIR;
-static char g_ftdm_mod_dir[] = FTDM_MOD_DIR;
+#define FTDM_MAX_CONF_DIR 512
+
+static char g_ftdm_config_dir[FTDM_MAX_CONF_DIR] = FTDM_CONFIG_DIR;
+static char g_ftdm_mod_dir[FTDM_MAX_CONF_DIR] = FTDM_MOD_DIR;
+
+FT_DECLARE(void) ftdm_global_set_mod_directory(const char *path)
+{
+       snprintf(g_ftdm_mod_dir, sizeof(g_ftdm_mod_dir), "%s", path);
+       ftdm_log(FTDM_LOG_DEBUG, "New mod directory: %s\n", g_ftdm_mod_dir);
+}
+
+FT_DECLARE(void) ftdm_global_set_config_directory(const char *path)
+{
+       snprintf(g_ftdm_config_dir, sizeof(g_ftdm_config_dir), "%s", path);
+       ftdm_log(FTDM_LOG_DEBUG, "New config directory: %s\n", g_ftdm_config_dir);
+}
 
 int ftdm_config_open_file(ftdm_config_t *cfg, const char *file_path)
 {
index 1f50a2ccaaf2fc31fdce3ee144d06b1050435756..3b847f821e2edafe860dc38c06daf98893988470 100644 (file)
@@ -1301,6 +1301,12 @@ FT_DECLARE(void) ftdm_global_set_logger(ftdm_logger_t logger);
 /*! \brief Set the default logger level */
 FT_DECLARE(void) ftdm_global_set_default_logger(int level);
 
+/*! \brief Set the directory to look for modules */
+FT_DECLARE(void) ftdm_global_set_mod_directory(const char *path);
+
+/*! \brief Set the directory to look for configs */
+FT_DECLARE(void) ftdm_global_set_config_directory(const char *path);
+
 /*! \brief Check if the FTDM library is initialized and running */
 FT_DECLARE(ftdm_bool_t) ftdm_running(void);