diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index a73c1618fdd2282bdadafbf747b0d29d830a3738..6cd8dc52686b003d619c7a338755db61f6a00c9b 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -272,9 +272,18 @@ js_ErrorReporter(JSContext *cx, const char *message, JSErrorReport *report) } } +static JSClass js_server_class = { + "TelnetServer",0, + JS_PropertyStub,JS_PropertyStub,JS_PropertyStub,JS_PropertyStub, + JS_EnumerateStub,JS_ResolveStub,JS_ConvertStub,JS_FinalizeStub +}; + bool sbbs_t::js_initcx() { - char node[128]; + char node[128]; + char ver[256]; + jsval val; + JSObject* server; if(cfg.node_num) sprintf(node,"Node %d",cfg.node_num); @@ -323,6 +332,21 @@ bool sbbs_t::js_initcx() if(js_CreateSocketClass(js_cx, js_glob)==NULL) break; + /* Server Object */ + if((server=JS_DefineObject(js_cx, js_glob, "server", &js_server_class + ,NULL,0))==NULL) + break; + + sprintf(ver,"%s v%s%c",TELNET_SERVER,VERSION,REVISION); + 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, bbs_ver())); + if(!JS_SetProperty(js_cx, server, "version_detail", &val)) + break; + + success=true; } while(0); @@ -419,6 +443,7 @@ int lprintf(char *fmt, ...) if(startup==NULL || startup->lputs==NULL) return(0); + va_start(argptr,fmt); vsprintf(sbuf,fmt,argptr); va_end(argptr); @@ -432,6 +457,7 @@ int eprintf(char *fmt, ...) if(startup==NULL || startup->event_log==NULL) return(0); + va_start(argptr,fmt); vsprintf(sbuf,fmt,argptr); va_end(argptr);