From 0507d035ebc56dab53446c81d1657e9e6664f707 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 5 Jun 2001 02:41:45 +0000
Subject: [PATCH] Added a whole bunch of static (version-like) properties.

---
 src/sbbs3/sysobj.c | 70 ++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 65 insertions(+), 5 deletions(-)

diff --git a/src/sbbs3/sysobj.c b/src/sbbs3/sysobj.c
index 0b518052c6..0cea42390c 100644
--- a/src/sbbs3/sysobj.c
+++ b/src/sbbs3/sysobj.c
@@ -58,7 +58,6 @@ enum {
 	,SYS_PROP_LASTUSERON
 	,SYS_PROP_FREEDISKSPACE
 
-	,SYS_PROP_PLATFORM
 };
 
 static JSBool js_system_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
@@ -119,9 +118,6 @@ static JSBool js_system_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 			*vp = INT_TO_JSVAL(getfreediskspace(cfg->temp_dir));
 			break;
 
-		case SYS_PROP_PLATFORM:
-			*vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, PLATFORM_DESC));
-			break;
 	}
 
 	return(TRUE);
@@ -165,7 +161,6 @@ static struct JSPropertySpec js_system_properties[] = {
 	{	"lastnode",	SYS_PROP_LASTNODE,	SYSOBJ_FLAGS,		NULL,	NULL },
 	{	"pwdays",	SYS_PROP_PWDAYS,	SYSOBJ_FLAGS,		NULL,	NULL },
 	{	"deldays",	SYS_PROP_DELDAYS,	SYSOBJ_FLAGS,		NULL,	NULL },
-	{	"platform",	SYS_PROP_PLATFORM,	SYSOBJ_FLAGS,		NULL,	NULL },
 	{	"freediskspace", SYS_PROP_FREEDISKSPACE,	SYSOBJ_FLAGS,	NULL,	NULL },
 	{0}
 };
@@ -324,9 +319,12 @@ static JSClass js_sysstats_class = {
 	,JS_FinalizeStub		/* finalize		*/
 };
 
+extern const char* beta_version;
 
 JSObject* DLLCALL js_CreateSystemObject(scfg_t* cfg, JSContext* cx, JSObject* parent)
 {
+	char		str[256];
+	jsval		val;
 	JSObject*	sysobj;
 	JSObject*	statsobj;
 
@@ -338,6 +336,68 @@ JSObject* DLLCALL js_CreateSystemObject(scfg_t* cfg, JSContext* cx, JSObject* pa
 	if(!JS_SetPrivate(cx, sysobj, cfg))	/* Store a pointer to scfg_t */
 		return(NULL);
 
+	/****************************/
+	/* static string properties */
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, VERSION));
+	if(!JS_SetProperty(cx, sysobj, "version", &val))
+		return(NULL);
+
+	sprintf(str,"%c",REVISION);
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+	if(!JS_SetProperty(cx, sysobj, "revision", &val))
+		return(NULL);
+
+	sprintf(str,"%s%c%s",VERSION,REVISION,beta_version);
+	truncsp(str);
+#if defined(_DEBUG)
+	strcat(str," Debug");
+#endif
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+	if(!JS_SetProperty(cx, sysobj, "full_version", &val))
+		return(NULL);
+
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, VERSION_NOTICE));
+	if(!JS_SetProperty(cx, sysobj, "version_notice", &val))
+		return(NULL);
+
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, PLATFORM_DESC));
+	if(!JS_SetProperty(cx, sysobj, "platform", &val))
+		return(NULL);
+
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, socklib_version(str)));
+	if(!JS_SetProperty(cx, sysobj, "socket_lib", &val))
+		return(NULL);
+
+	sprintf(str,"SMBLIB %s",smb_lib_ver());
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+	if(!JS_SetProperty(cx, sysobj, "msgbase_lib", &val))
+		return(NULL);
+
+	COMPILER_DESC(str);
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+	if(!JS_SetProperty(cx, sysobj, "compiled_with", &val))
+		return(NULL);
+
+	sprintf(str,"%s %.5s",__DATE__,__TIME__);
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, str));
+	if(!JS_SetProperty(cx, sysobj, "compiled_when", &val))
+		return(NULL);
+
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, COPYRIGHT_NOTICE));
+	if(!JS_SetProperty(cx, sysobj, "copyright", &val))
+		return(NULL);
+
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx
+			,(char *)JS_GetImplementationVersion()));
+	if(!JS_SetProperty(cx, sysobj, "js_version", &val))
+		return(NULL);
+
+	val = STRING_TO_JSVAL(JS_NewStringCopyZ(cx,os_version(str)));
+	if(!JS_SetProperty(cx, sysobj, "os_version", &val))
+		return(NULL);
+
+	/***********************/
+
 	if(!JS_DefineProperties(cx, sysobj, js_system_properties))
 		return(NULL);
 
-- 
GitLab