From a8961f2a9502898fd8f1f4e56135d29e0322c99a Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 18 Nov 2004 21:25:31 +0000 Subject: [PATCH] Bugfix: js_CreateGlobalObjects() needed to create the "system" object using a node-specific scfg_t*, so the node_dir and temp_dir properties had the correct values. --- src/sbbs3/js_global.c | 9 +++++++-- src/sbbs3/jsexec.c | 2 +- src/sbbs3/main.cpp | 2 +- src/sbbs3/sbbs.h | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 2c811de975..1bf44214c2 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -192,7 +192,8 @@ js_load(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) return(JS_FALSE); if((bg->obj=js_CreateGlobalObjects(bg->cx - ,cfg + ,cfg /* common config */ + ,NULL /* node-specific config */ ,NULL /* additional global methods */ ,0 /* uptime */ ,"" /* hostname */ @@ -2754,6 +2755,7 @@ JSObject* DLLCALL js_CreateGlobalObject(JSContext* cx, scfg_t* cfg, jsSyncMethod JSObject* DLLCALL js_CreateGlobalObjects(JSContext* js_cx ,scfg_t* cfg /* common */ + ,scfg_t* node_cfg /* node-specific */ ,jsSyncMethodSpec* methods /* global */ ,time_t uptime /* system */ ,char* host_name /* system */ @@ -2765,12 +2767,15 @@ JSObject* DLLCALL js_CreateGlobalObjects(JSContext* js_cx { JSObject* js_glob; + if(node_cfg==NULL) + node_cfg=cfg; + /* Global Object */ if((js_glob=js_CreateGlobalObject(js_cx, cfg, methods))==NULL) return(NULL); /* System Object */ - if(js_CreateSystemObject(js_cx, js_glob, cfg, uptime, host_name, socklib_desc)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, node_cfg, uptime, host_name, socklib_desc)==NULL) return(NULL); /* Internal JS Object */ diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index f0b64cb338..35a0fdeb33 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -534,7 +534,7 @@ static BOOL js_init(char** environ) JS_SetErrorReporter(js_cx, js_ErrorReporter); /* Global Object */ - if((js_glob=js_CreateGlobalObjects(js_cx, &scfg, js_global_functions + if((js_glob=js_CreateGlobalObjects(js_cx, &scfg, NULL, js_global_functions ,time(NULL), host_name, SOCKLIB_DESC /* system */ ,&branch /* js */ ,NULL,INVALID_SOCKET /* client */ diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 0f1e28a0dd..faef5ab006 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -884,7 +884,7 @@ bool sbbs_t::js_init() JS_SetContextPrivate(js_cx, this); /* Store a pointer to sbbs_t instance */ /* Global Objects (including system, js, client, Socket, MsgBase, File, User, etc. */ - if((js_glob=js_CreateGlobalObjects(js_cx, &scfg, js_global_functions + if((js_glob=js_CreateGlobalObjects(js_cx, &scfg, &cfg, js_global_functions ,uptime, startup->host_name, SOCKLIB_DESC /* system */ ,&js_branch /* js */ ,&client, client_socket /* client */ diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index e0b4946dc8..353e3798f1 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -949,6 +949,7 @@ extern "C" { DLLEXPORT JSObject* DLLCALL js_CreateGlobalObject(JSContext* cx, scfg_t* cfg, jsSyncMethodSpec* methods); DLLEXPORT JSObject* DLLCALL js_CreateGlobalObjects(JSContext* cx ,scfg_t* cfg /* common */ + ,scfg_t* node_cfg /* node-specific */ ,jsSyncMethodSpec* methods /* global */ ,time_t uptime /* system */ ,char* host_name /* system */ -- GitLab