From 7a5c6e363d8874a5a4943800e5ec10da6b7dace0 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on ChromeOS)" <rob@synchro.net> Date: Sun, 5 Mar 2023 17:29:39 -0800 Subject: [PATCH] Add JS bbs methods: save_msg_scan() and reload_msg_scan() These methods aren't normally needed (msg scan config/ptrs are automatically loaded upon logon and saved upon logoff), but for users (e.g. sysops) that can be logged-in concurrently or experimenting with scans, these methods can be useful and I plan to expose in a loadable module next. --- src/sbbs3/js_bbs.cpp | 46 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index 183c35666b..2e0e324614 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -4055,7 +4055,7 @@ js_msgscan_reinit(JSContext *cx, uintN argc, jsval *arglist) jsrefcount rc; if((sbbs=js_GetPrivate(cx, JS_THIS_OBJECT(cx, arglist)))==NULL) - return(JS_FALSE); + return JS_FALSE; JS_SET_RVAL(cx, arglist, JSVAL_VOID); @@ -4064,6 +4064,42 @@ js_msgscan_reinit(JSContext *cx, uintN argc, jsval *arglist) sbbs->bputs(sbbs->text[MsgPtrsInitialized]); JS_RESUMEREQUEST(cx, rc); + return JS_TRUE; +} + +static JSBool +js_save_msg_scan(JSContext *cx, uintN argc, jsval *arglist) +{ + sbbs_t* sbbs; + jsrefcount rc; + + if((sbbs=js_GetPrivate(cx, JS_THIS_OBJECT(cx, arglist)))==NULL) + return JS_FALSE; + + JS_SET_RVAL(cx, arglist, JSVAL_VOID); + + rc=JS_SUSPENDREQUEST(cx); + sbbs->putmsgptrs(); + JS_RESUMEREQUEST(cx, rc); + + return JS_TRUE; +} + +static JSBool +js_reload_msg_scan(JSContext *cx, uintN argc, jsval *arglist) +{ + sbbs_t* sbbs; + jsrefcount rc; + + if((sbbs=js_GetPrivate(cx, JS_THIS_OBJECT(cx, arglist)))==NULL) + return(JS_FALSE); + + JS_SET_RVAL(cx, arglist, JSVAL_VOID); + + rc=JS_SUSPENDREQUEST(cx); + sbbs->getmsgptrs(); + JS_RESUMEREQUEST(cx, rc); + return(JS_TRUE); } @@ -4642,6 +4678,14 @@ static jsSyncMethodSpec js_bbs_functions[] = { ,JSDOCSTR("re-initialize new message scan pointers to values at logon") ,310 }, + {"save_msg_scan", js_save_msg_scan, 0, JSTYPE_VOID, JSDOCSTR("") + ,JSDOCSTR("save message scan configuration and pointers to userbase") + ,320 + }, + {"reload_msg_scan", js_reload_msg_scan, 0, JSTYPE_VOID, JSDOCSTR("") + ,JSDOCSTR("re-loads message scan configuration and pointers from userbase") + ,320 + }, {"scan_subs", js_scansubs, 0, JSTYPE_VOID, JSDOCSTR("[mode=<tt>SCAN_NEW</tt>] [,all=<tt>false</tt>]") ,JSDOCSTR("scan sub-boards for messages") ,310 -- GitLab