From e5e1a9fa3aff5de617116e5aaaf1668c9ed29464 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 16 Nov 2001 15:22:31 +0000
Subject: [PATCH] Added "server" object (with "version" and "version_detail"
 properties).

---
 src/sbbs3/services.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index 746092885a..754050900a 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -462,11 +462,20 @@ js_ErrorReporter(JSContext *cx, const char *message, JSErrorReport *report)
 	lprintf("%04d %s !JavaScript %s%s%s: %s",sock,prot,warning,file,line,message);
 }
 
+static JSClass js_server_class = {
+        "Server",0, 
+        JS_PropertyStub,JS_PropertyStub,JS_PropertyStub,JS_PropertyStub, 
+        JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub 
+}; 
+
 static JSContext* 
 js_initcx(JSRuntime* js_runtime, SOCKET sock, service_client_t* service_client, JSObject** glob)
 {
+	char		ver[256];
 	JSContext*	js_cx;
 	JSObject*	js_glob;
+	JSObject*	server;
+	jsval		val;
 	BOOL		success=FALSE;
 
 //	lprintf("%04d JavaScript: Initializing context",sock);
@@ -517,6 +526,20 @@ js_initcx(JSRuntime* js_runtime, SOCKET sock, service_client_t* service_client,
 //		lprintf("%04d JavaScript: Initializing System object",sock);
 		if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime)==NULL) 
 			break;
+		
+		/* server object */
+		if((server=JS_DefineObject(js_cx, js_glob, "server", &js_server_class
+			,NULL,0))==NULL)
+			break;
+
+		sprintf(ver,"Synchronet Services v%s",SERVICES_VERSION);
+		val = STRING_TO_JSVAL(JS_NewStringCopyZ(js_cx, ver));
+		if(!JS_SetProperty(js_cx, server, "version", &val))
+			break;
+
+		val = STRING_TO_JSVAL(JS_NewStringCopyZ(js_cx, services_ver()));
+		if(!JS_SetProperty(js_cx, server, "version_detail", &val))
+			break;
 
 		if(glob!=NULL)
 			*glob=js_glob;
-- 
GitLab