diff --git a/src/sbbs3/js_system.c b/src/sbbs3/js_system.c index 2d57f6e0f0374e6e1846ed20c2fb01ca701b12d9..9b93e6d0a439e3f091468fa8aa9dfc9a79afb7a2 100644 --- a/src/sbbs3/js_system.c +++ b/src/sbbs3/js_system.c @@ -783,6 +783,58 @@ js_hacklog(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) return(JS_TRUE); } +static JSBool +js_put_node_message(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + int node; + JSString* js_msg; + char* msg; + scfg_t* cfg; + + if((cfg=(scfg_t*)JS_GetPrivate(cx,obj))==NULL) + return(JS_FALSE); + + if((node=JSVAL_TO_INT(argv[0]))<1) + node=1; + + if((js_msg=JS_ValueToString(cx, argv[1]))==NULL) + return(JS_FALSE); + + if((msg=JS_GetStringBytes(js_msg))==NULL) + return(JS_FALSE); + + putnmsg(cfg,node,msg); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +static JSBool +js_put_telegram(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + int usernumber; + JSString* js_msg; + char* msg; + scfg_t* cfg; + + if((cfg=(scfg_t*)JS_GetPrivate(cx,obj))==NULL) + return(JS_FALSE); + + if((usernumber=JSVAL_TO_INT(argv[0]))<1) + usernumber=1; + + if((js_msg=JS_ValueToString(cx, argv[1]))==NULL) + return(JS_FALSE); + + if((msg=JS_GetStringBytes(js_msg))==NULL) + return(JS_FALSE); + + putsmsg(cfg,usernumber,msg); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + static JSFunctionSpec js_system_functions[] = { {"alias", js_alias, 1}, // return user name for alias @@ -795,6 +847,8 @@ static JSFunctionSpec js_system_functions[] = { {"secondstr", js_secondstr, 1}, // convert a time_t into a hh:mm:ss string {"spamlog", js_spamlog, 6}, // spamlog(prot,action,reason,host,ip,to) {"hacklog", js_hacklog, 5}, // hacklog(prot,user,text,host,ip,port) + {"put_node_message",js_put_node_message,2}, // putnmsg(nodenum,str) + {"put_telegram", js_put_telegram, 2}, // putsmsg(usernum,str) {0} };