From 6202dc0a11cae9124cbec3ad3fff60e6f9510b19 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 13 Oct 2001 00:21:10 +0000
Subject: [PATCH] Added 'uptime' member to JS System object.

---
 src/sbbs3/js_system.c | 7 ++++++-
 src/sbbs3/main.cpp    | 5 ++++-
 src/sbbs3/sbbs.h      | 3 ++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/js_system.c b/src/sbbs3/js_system.c
index f96c6bc4c1..04f5d830f7 100644
--- a/src/sbbs3/js_system.c
+++ b/src/sbbs3/js_system.c
@@ -722,7 +722,8 @@ static JSClass js_node_class = {
 
 extern const char* beta_version;
 
-JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent, scfg_t* cfg)
+JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent
+										,scfg_t* cfg, time_t uptime)
 {
 	char		str[256];
 	uint		i;
@@ -802,6 +803,10 @@ JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent, scfg_t*
 
 	/***********************/
 
+	val = INT_TO_JSVAL(uptime);
+	if(!JS_SetProperty(cx, sysobj, "uptime", &val))
+		return(NULL);
+
 	if(!JS_DefineProperties(cx, sysobj, js_system_properties))
 		return(NULL);
 
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index dcc23e5347..9bd0e67028 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -82,6 +82,7 @@ static	bool	scfg_reloaded=true;
 static	char *	text[TOTAL_TEXT];
 static	WORD	first_node;
 static	WORD	last_node;
+static	time_t	uptime;
 
 #ifdef JAVASCRIPT
 JSRuntime* js_runtime=NULL;
@@ -314,7 +315,7 @@ bool sbbs_t::js_initcx()
 			break;
 
 		/* System Object */
-		if(js_CreateSystemObject(js_cx, js_glob, &cfg)==NULL)
+		if(js_CreateSystemObject(js_cx, js_glob, &cfg, uptime)==NULL)
 			break;
 
 		/* Client Object */
@@ -2971,6 +2972,8 @@ void DLLCALL bbs_thread(void* arg)
 
 	thread_up();
 
+	uptime=time(NULL);
+
 	status("Initializing");
 
 	/* Defeat the lameo hex0rs - the name and copyright must remain intact */
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 106b7af24c..0f704caa80 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -791,7 +791,8 @@ extern "C" {
 	DLLEXPORT JSObject* DLLCALL js_CreateGlobalObject(JSContext* cx, scfg_t* cfg);
 
 	/* js_system.c */
-	DLLEXPORT JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent, scfg_t* cfg);
+	DLLEXPORT JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent
+													,scfg_t* cfg, time_t uptime);
 
 	/* js_client.c */
 	DLLEXPORT JSObject* DLLCALL js_CreateClientObject(JSContext* cx, JSObject* parent
-- 
GitLab