From 492ee40266ad93e3e398449143bbe44348f433d9 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 19 Jan 2008 23:23:12 +0000 Subject: [PATCH] fix git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7303 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../mod_spidermonkey/mod_spidermonkey.c | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c index 421fddafae..c3be678619 100644 --- a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c @@ -38,8 +38,6 @@ #include #endif static int foo = 0; -static switch_mutex_t *mutex; - SWITCH_MODULE_LOAD_FUNCTION(mod_spidermonkey_load); SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_spidermonkey_shutdown); @@ -3223,6 +3221,12 @@ static JSBool js_api_execute(JSContext * cx, JSObject * obj, uintN argc, jsval * switch_stream_handle_t stream = { 0 }; char retbuf[2048] = ""; + if (!strcasecmp(cmd, "jsapi")) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid API Call!\n"); + *rval = BOOLEAN_TO_JSVAL(JS_FALSE); + return JS_TRUE; + } + if (argc > 1) { arg = JS_GetStringBytes(JS_ValueToString(cx, argv[1])); } @@ -3405,8 +3409,6 @@ static void js_parse_and_execute(switch_core_session_t *session, const char *inp JSContext *cx = NULL; jsval rval; - switch_mutex_lock(mutex); - if ((cx = JS_NewContext(globals.rt, globals.gStackChunkSize))) { JS_BeginRequest(cx); JS_SetErrorReporter(cx, js_error); @@ -3424,8 +3426,7 @@ static void js_parse_and_execute(switch_core_session_t *session, const char *inp } } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Allocation Error!\n"); - goto end; + abort(); } script = input_code; @@ -3450,14 +3451,11 @@ static void js_parse_and_execute(switch_core_session_t *session, const char *inp eval_some_js(buf, cx, javascript_global_object, &rval); } } - + if (cx) { eval_some_js(script, cx, javascript_global_object, &rval); JS_DestroyContext(cx); } - - end: - switch_mutex_unlock(mutex); return; @@ -3523,6 +3521,7 @@ SWITCH_STANDARD_API(jsapi_function) ro.cmd = cmd; ro.session = session; ro.stream = stream; + js_parse_and_execute(session, (char *) cmd, &ro); return SWITCH_STATUS_SUCCESS; @@ -3587,8 +3586,6 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_spidermonkey_load) curl_global_init(CURL_GLOBAL_ALL); - switch_mutex_init(&mutex, SWITCH_MUTEX_NESTED, pool); - /* indicate that the module should continue to be loaded */ return SWITCH_STATUS_SUCCESS; }