diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 0ae0a66300ff9a7fed8851e601ae47170bf95d7d..71132a84373130bad79517877d7ec9c7fd02ad00 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -3607,9 +3607,9 @@ static void ctrl_thread(void* arg) } if(js_runtime == NULL) { lprintf("%04d JavaScript: Creating runtime: %lu bytes" - ,sock,JAVASCRIPT_RUNTIME_MEMORY); + ,sock,startup->js_max_bytes); - if((js_runtime = JS_NewRuntime(JAVASCRIPT_RUNTIME_MEMORY))==NULL) { + if((js_runtime = JS_NewRuntime(startup->js_max_bytes))==NULL) { lprintf("%04d !ERROR creating JavaScript runtime",sock); sockprintf(sock,"451 Error creating JavaScript runtime"); filepos=0; @@ -4279,6 +4279,7 @@ void DLLCALL ftp_server(void* arg) startup->options&=~FTP_OPT_NO_JAVASCRIPT; else startup->options|=FTP_OPT_NO_JAVASCRIPT; + if(startup->js_max_bytes==0) startup->js_max_bytes=JAVASCRIPT_MAX_BYTES; thread_up(); diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h index bcd8484160272daaa0f40ada84e95c69b3fe4700..6b7265c237cceb0ed930bf9e31b9caff36372ba9 100644 --- a/src/sbbs3/ftpsrvr.h +++ b/src/sbbs3/ftpsrvr.h @@ -53,7 +53,7 @@ typedef struct { WORD reserved_word1; DWORD interface_addr; DWORD options; /* See FTP_OPT definitions */ - DWORD reserved_dword8; + DWORD js_max_bytes; DWORD reserved_dword7; DWORD reserved_dword6; DWORD reserved_dword5; diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 03574c92c3627e5a6e53a55c34b595423f8adfde..47f471c0c4881d5905b43f95f91cc14cded342cd 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -469,9 +469,9 @@ bool sbbs_t::js_init() strcpy(node,client_name); lprintf("%s JavaScript: Creating runtime: %lu bytes" - ,node,JAVASCRIPT_RUNTIME_MEMORY); + ,node,startup->js_max_bytes); - if((js_runtime = JS_NewRuntime(JAVASCRIPT_RUNTIME_MEMORY))==NULL) + if((js_runtime = JS_NewRuntime(startup->js_max_bytes))==NULL) return(false); lprintf("%s JavaScript: Initializing context (stack: %lu bytes)" @@ -2616,11 +2616,11 @@ void node_thread(void* arg) /* file_area object */ if(js_CreateFileAreaObject(sbbs->js_cx, sbbs->js_glob, &sbbs->cfg, &sbbs->useron, "")==NULL) - lprintf("!JavaScript ERROR createing file_area object"); + lprintf("!JavaScript ERROR creating file_area object"); /* msg_area object */ if(js_CreateMsgAreaObject(sbbs->js_cx, sbbs->js_glob, &sbbs->cfg, &sbbs->useron)==NULL) - lprintf("!JavaScript ERROR createing msg_area object"); + lprintf("!JavaScript ERROR creating msg_area object"); } #endif @@ -3007,6 +3007,7 @@ void DLLCALL bbs_thread(void* arg) if(startup->telnet_port==0) startup->telnet_port=IPPORT_TELNET; if(startup->rlogin_port==0) startup->rlogin_port=513; if(startup->xtrn_polls_before_yield==0) startup->xtrn_polls_before_yield=10; + if(startup->js_max_bytes==0) startup->js_max_bytes=JAVASCRIPT_MAX_BYTES; thread_up(); diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index 754050900a85f3eafffa4d9ab85d32e5d0b18ed3..469f6c179fdee77c3f353060c7a900eb9fcb4b24 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -359,12 +359,12 @@ js_login(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) /* file_area object */ if(js_CreateFileAreaObject(cx, obj, &scfg, &user, "")==NULL) - lprintf("%04d %s !JavaScript ERROR createing file_area object" + lprintf("%04d %s !JavaScript ERROR creating file_area object" ,client->socket,client->service->protocol); /* msg_area object */ if(js_CreateMsgAreaObject(cx, obj, &scfg, &user)==NULL) - lprintf("%04d %s !JavaScript ERROR createing file_area object" + lprintf("%04d %s !JavaScript ERROR creating msg_area object" ,client->socket,client->service->protocol); client->client->user=user.alias; @@ -652,7 +652,7 @@ static void js_service_thread(void* arg) /* Initialize client display */ client_on(socket,&client); - if((js_runtime=JS_NewRuntime(JAVASCRIPT_RUNTIME_MEMORY))==NULL + if((js_runtime=JS_NewRuntime(startup->js_max_bytes))==NULL || (js_cx=js_initcx(js_runtime,socket,&service_client,&js_glob))==NULL) { lprintf("%04d !%s ERROR initializing JavaScript context" ,socket,service->protocol); @@ -1005,6 +1005,7 @@ void DLLCALL services_thread(void* arg) } /* Setup intelligent defaults */ + if(startup->js_max_bytes==0) startup->js_max_bytes=JAVASCRIPT_MAX_BYTES; thread_up(); diff --git a/src/sbbs3/services.h b/src/sbbs3/services.h index cff1bfd12285c2a7431458b491722676e1f31879..0ada1e4b97b6baa68f632cd9b8779c79f023fbdb 100644 --- a/src/sbbs3/services.h +++ b/src/sbbs3/services.h @@ -49,7 +49,7 @@ typedef struct { DWORD size; // sizeof(bbs_struct_t) DWORD interface_addr; DWORD options; // See BBS_OPT definitions - DWORD reserved_dword5; + DWORD js_max_bytes; DWORD reserved_dword4; DWORD reserved_dword3; DWORD reserved_dword2; diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index 6f85b30afbd20251dee20d1f819c2faf268d2361..eb3443b67fee87f7994e4025503b829db99ff0af 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -60,7 +60,7 @@ typedef struct { DWORD options; // See BBS_OPT definitions DWORD rlogin_interface; DWORD xtrn_polls_before_yield; - DWORD reserved_dword6; + DWORD js_max_bytes; RingBuf** node_spybuf; // Spy output buffer (each node) RingBuf** node_inbuf; // User input buffer (each node) DWORD reserved_dword2;