Merge branch 'master' into smgmaster
This commit is contained in:
commit
f3b1f37bd0
|
@ -4074,6 +4074,10 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_freetdm_load)
|
||||||
|
|
||||||
ftdm_global_set_logger(ftdm_logger);
|
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();
|
ftdm_cpu_monitor_disable();
|
||||||
|
|
||||||
if (ftdm_global_init() != FTDM_SUCCESS) {
|
if (ftdm_global_init() != FTDM_SUCCESS) {
|
||||||
|
|
|
@ -37,6 +37,27 @@
|
||||||
|
|
||||||
#include "private/ftdm_core.h"
|
#include "private/ftdm_core.h"
|
||||||
|
|
||||||
|
#ifndef FTDM_MOD_DIR
|
||||||
|
#define FTDM_MOD_DIR "."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#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)
|
int ftdm_config_open_file(ftdm_config_t *cfg, const char *file_path)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
@ -46,7 +67,7 @@ int ftdm_config_open_file(ftdm_config_t *cfg, const char *file_path)
|
||||||
if (file_path[0] == '/') {
|
if (file_path[0] == '/') {
|
||||||
path = file_path;
|
path = file_path;
|
||||||
} else {
|
} else {
|
||||||
snprintf(path_buf, sizeof(path_buf), "%s%s%s", FTDM_CONFIG_DIR, FTDM_PATH_SEPARATOR, file_path);
|
snprintf(path_buf, sizeof(path_buf), "%s%s%s", g_ftdm_config_dir, FTDM_PATH_SEPARATOR, file_path);
|
||||||
path = path_buf;
|
path = path_buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +85,7 @@ int ftdm_config_open_file(ftdm_config_t *cfg, const char *file_path)
|
||||||
int last = -1;
|
int last = -1;
|
||||||
char *var, *val;
|
char *var, *val;
|
||||||
|
|
||||||
snprintf(path_buf, sizeof(path_buf), "%s%sfreetdm.conf", FTDM_CONFIG_DIR, FTDM_PATH_SEPARATOR);
|
snprintf(path_buf, sizeof(path_buf), "%s%sfreetdm.conf", g_ftdm_config_dir, FTDM_PATH_SEPARATOR);
|
||||||
path = path_buf;
|
path = path_buf;
|
||||||
|
|
||||||
if ((f = fopen(path, "r")) == 0) {
|
if ((f = fopen(path, "r")) == 0) {
|
||||||
|
@ -329,6 +350,26 @@ FT_DECLARE(ftdm_status_t) ftdm_conf_node_destroy(ftdm_conf_node_t *node)
|
||||||
return FTDM_SUCCESS;
|
return FTDM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FT_DECLARE(char *) ftdm_build_dso_path(const char *name, char *path, ftdm_size_t len)
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
const char *ext = ".dll";
|
||||||
|
//const char *EXT = ".DLL";
|
||||||
|
#elif defined (MACOSX) || defined (DARWIN)
|
||||||
|
const char *ext = ".dylib";
|
||||||
|
//const char *EXT = ".DYLIB";
|
||||||
|
#else
|
||||||
|
const char *ext = ".so";
|
||||||
|
//const char *EXT = ".SO";
|
||||||
|
#endif
|
||||||
|
if (*name == *FTDM_PATH_SEPARATOR) {
|
||||||
|
snprintf(path, len, "%s%s", name, ext);
|
||||||
|
} else {
|
||||||
|
snprintf(path, len, "%s%s%s%s", g_ftdm_mod_dir, FTDM_PATH_SEPARATOR, name, ext);
|
||||||
|
}
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
/* For Emacs:
|
/* For Emacs:
|
||||||
* Local Variables:
|
* Local Variables:
|
||||||
* mode:c
|
* mode:c
|
||||||
|
|
|
@ -4073,27 +4073,6 @@ static ftdm_status_t process_module_config(ftdm_io_interface_t *fio)
|
||||||
return FTDM_SUCCESS;
|
return FTDM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
FT_DECLARE(char *) ftdm_build_dso_path(const char *name, char *path, ftdm_size_t len)
|
|
||||||
{
|
|
||||||
#ifdef WIN32
|
|
||||||
const char *ext = ".dll";
|
|
||||||
//const char *EXT = ".DLL";
|
|
||||||
#define FTDM_MOD_DIR "." //todo
|
|
||||||
#elif defined (MACOSX) || defined (DARWIN)
|
|
||||||
const char *ext = ".dylib";
|
|
||||||
//const char *EXT = ".DYLIB";
|
|
||||||
#else
|
|
||||||
const char *ext = ".so";
|
|
||||||
//const char *EXT = ".SO";
|
|
||||||
#endif
|
|
||||||
if (*name == *FTDM_PATH_SEPARATOR) {
|
|
||||||
snprintf(path, len, "%s%s", name, ext);
|
|
||||||
} else {
|
|
||||||
snprintf(path, len, "%s%s%s%s", FTDM_MOD_DIR, FTDM_PATH_SEPARATOR, name, ext);
|
|
||||||
}
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
FT_DECLARE(ftdm_status_t) ftdm_global_add_io_interface(ftdm_io_interface_t *interface1)
|
FT_DECLARE(ftdm_status_t) ftdm_global_add_io_interface(ftdm_io_interface_t *interface1)
|
||||||
{
|
{
|
||||||
ftdm_status_t ret = FTDM_SUCCESS;
|
ftdm_status_t ret = FTDM_SUCCESS;
|
||||||
|
|
|
@ -1301,6 +1301,12 @@ FT_DECLARE(void) ftdm_global_set_logger(ftdm_logger_t logger);
|
||||||
/*! \brief Set the default logger level */
|
/*! \brief Set the default logger level */
|
||||||
FT_DECLARE(void) ftdm_global_set_default_logger(int 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 */
|
/*! \brief Check if the FTDM library is initialized and running */
|
||||||
FT_DECLARE(ftdm_bool_t) ftdm_running(void);
|
FT_DECLARE(ftdm_bool_t) ftdm_running(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue