From 5ec0a9460611214b4a4696f30a069633fdf421d5 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 16 Sep 2003 21:49:22 +0000
Subject: [PATCH] JavaScript context stack size is now configurable in startup
 structure.

---
 src/sbbs3/ftpsrvr.c | 5 +++--
 src/sbbs3/ftpsrvr.h | 1 +
 src/sbbs3/websrvr.c | 5 +++--
 src/sbbs3/websrvr.h | 1 +
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index ad4ba4ea23..f0b14c8762 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -481,9 +481,9 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, JSObject** ftp)
 	BOOL		success=FALSE;
 
 	lprintf("%04d JavaScript: Initializing context (stack: %lu bytes)"
-		,sock,JAVASCRIPT_CONTEXT_STACK);
+		,sock,startup->js_cx_stack);
 
-    if((js_cx = JS_NewContext(runtime, JAVASCRIPT_CONTEXT_STACK))==NULL)
+    if((js_cx = JS_NewContext(runtime, startup->js_cx_stack))==NULL)
 		return(NULL);
 
 	lprintf("%04d JavaScript: Context created",sock);
@@ -4529,6 +4529,7 @@ void DLLCALL ftp_server(void* arg)
 		startup->options|=FTP_OPT_NO_JAVASCRIPT;
 #ifdef JAVASCRIPT
 	if(startup->js_max_bytes==0)			startup->js_max_bytes=JAVASCRIPT_MAX_BYTES;
+	if(startup->js_cx_stack==0)				startup->js_cx_stack=JAVASCRIPT_CONTEXT_STACK;
 #endif
 
 	uptime=0;
diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h
index 03f874b55e..8545bdb350 100644
--- a/src/sbbs3/ftpsrvr.h
+++ b/src/sbbs3/ftpsrvr.h
@@ -51,6 +51,7 @@ typedef struct {
     DWORD   interface_addr;
     DWORD	options;			/* See FTP_OPT definitions */
     DWORD	js_max_bytes;
+	DWORD	js_cx_stack;
 	int 	(*lputs)(char*);
 	void	(*status)(char*);
     void	(*started)(void);
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 29486406db..b40304ded1 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -2005,9 +2005,9 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, http_session_t *sess
 	BOOL		success=FALSE;
 
 	lprintf("%04d JavaScript: Initializing context (stack: %lu bytes)"
-		,sock,JAVASCRIPT_CONTEXT_STACK);
+		,sock,startup->js_cx_stack);
 
-    if((js_cx = JS_NewContext(runtime, JAVASCRIPT_CONTEXT_STACK))==NULL)
+    if((js_cx = JS_NewContext(runtime, startup->js_cx_stack))==NULL)
 		return(NULL);
 
 	lprintf("%04d JavaScript: Context created",sock);
@@ -2446,6 +2446,7 @@ void DLLCALL web_server(void* arg)
 	if(startup->max_inactivity==0) 			startup->max_inactivity=120; /* seconds */
 	if(startup->sem_chk_freq==0)			startup->sem_chk_freq=5; /* seconds */
 	if(startup->js_max_bytes==0)			startup->js_max_bytes=JAVASCRIPT_MAX_BYTES;
+	if(startup->js_cx_stack==0)				startup->js_cx_stack=JAVASCRIPT_CONTEXT_STACK;
 	if(startup->ssjs_ext[0]==0)				SAFECOPY(startup->ssjs_ext,"ssjs");
 
 	/* Copy html directories */
diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h
index f494412d21..a3c7e48b39 100644
--- a/src/sbbs3/websrvr.h
+++ b/src/sbbs3/websrvr.h
@@ -50,6 +50,7 @@ typedef struct {
     DWORD   interface_addr;
     DWORD	options;
     DWORD	js_max_bytes;
+	DWORD	js_cx_stack;
 	int 	(*lputs)(char*);
 	void	(*status)(char*);
     void	(*started)(void);
-- 
GitLab