From eca17b7c1c98f720d5d4fe08df4a92b663fa7aff Mon Sep 17 00:00:00 2001 From: Marc Olivier Chouinard Date: Wed, 8 Mar 2017 16:28:19 -0500 Subject: [PATCH] FS-10110: mod_python Hack to allow to have a script in a different folder --- src/mod/languages/mod_python/mod_python.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/mod/languages/mod_python/mod_python.c b/src/mod/languages/mod_python/mod_python.c index 9359c7c4f6..17da5f263f 100644 --- a/src/mod/languages/mod_python/mod_python.c +++ b/src/mod/languages/mod_python/mod_python.c @@ -225,6 +225,27 @@ static void eval_some_python(const char *funcname, char *args, switch_core_sessi PyEval_AcquireThread(tstate); init_freeswitch(); + if (session) { + switch_channel_t *channel = switch_core_session_get_channel(session); + const char *add_path = switch_channel_get_variable(channel, "python_script_path"); + + if (!zstr(add_path)) { + char *buffer = (char*) malloc( 20 * 1024 * sizeof(char)); + if (buffer == NULL ) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Not enough Memory to create the error buffer\n"); + } + + PyRun_SimpleString("import sys"); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "LOADING path %s", add_path); + + sprintf(buffer, "sys.path.append(\"%s\");", add_path ); + + PyRun_SimpleString(buffer); + + switch_safe_free(buffer); + } + } + // import the module module = PyImport_ImportModule((char *) script); if (!module) {