From 0fab8e19af75ae25997347957735b02188170a9b Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Tue, 6 Mar 2018 00:34:32 +0000 Subject: [PATCH] Change the cnfdefs.js to use the configuration (.cnf) record field names from the Sync-JS object model (jsobjs.html) rather than from the C/C++ source code (sbbsdefs.js). I got buy-in from mcmlxxix to make this change, but any existing scripts which use the old names will need to be changed or its likely that the .cnf record changes aren't going to be made as intended (attn: CoA sysops). --- exec/avatars.js | 76 +++++++++++++++++++++------- exec/binkit.js | 12 ++--- exec/load/cnfdefs.js | 117 ++++++++++++++++++++++--------------------- exec/sbbslist.js | 34 ++++++------- 4 files changed, 142 insertions(+), 97 deletions(-) diff --git a/exec/avatars.js b/exec/avatars.js index 8b2974339d..6ef66f81a0 100644 --- a/exec/avatars.js +++ b/exec/avatars.js @@ -290,12 +290,14 @@ function import_from_msgbase(msgbase, import_ptr, limit, all) break; } - if(ini.open(file_exists(ini.name) ? 'r+':'w+')) { - print("new import_ptr = " + highest); - ini.iniSetValue("avatars","import_ptr",highest); - ini.close(); - } else - print("Error opening/creating " + ini.name); + if(highest != import_ptr) { + if(ini.open(file_exists(ini.name) ? 'r+':'w+')) { + print("new import_ptr = " + highest); + ini.iniSetValue("avatars","import_ptr",highest); + ini.close(); + } else + print("Error opening/creating " + ini.name); + } print("Imported " + count + " messages"); } @@ -466,17 +468,17 @@ function install() "sec": 0, "name": "Avatar Chooser", "code": "AVATCHOO", - "arstr": "", - "run_arstr": "ANSI & !GUEST & REST ! Q", + "ars": "", + "run_ars": "ANSI & !GUEST & REST ! Q", "type": 0, - "misc": 1, + "settings": 1, "event": 3, "cost": 0, "cmd": "?avatar_chooser", - "clean": "", - "path": "", + "clean_cmd": "", + "startup_dir": "", "textra": 0, - "maxtime": 0 + "max_time": 0 }); changed = true; } @@ -488,9 +490,9 @@ function install() "cmd": "?avatars import", "days": 255, "time": 0, - "node": 1, - "misc": 0, - "dir": "", + "node_num": 1, + "settings": 0, + "startup_dir": "", "freq": 30, "mdays": 0, "months": 0 @@ -505,9 +507,9 @@ function install() "cmd": "?avatars export", "days": 255, "time": 0, - "node": 1, - "misc": 0, - "dir": "", + "node_num": 1, + "settings": 0, + "startup_dir": "", "freq": 30, "mdays": 0, "months": 0 @@ -593,6 +595,7 @@ function main() case "install": case "normalize": case "count": + case "colls": cmds.push(arg); break; default: @@ -821,6 +824,43 @@ function main() printf("%u total\r\n", total); break; } + case "colls": + if(!files.length) { + var total = 0; + files = directory(lib.local_library() + "*.bin"); + for(var i in files) { + var filename = files[i]; + if(filename.search(EXCLUDE_FILES) >= 0) + continue; + printf("%-32s : ", file_getname(filename)); + var sauce = SAUCE.read(filename); + if(!sauce) { + printf("no SAUCE\r\n"); + conintue; + } + var count = sauce.filesize / lib.size; + printf("%u\r\n", count); + total += count; + var f = new File(filename); + if(!f.open('rb')) { + alert("Error " + f.error + " opening " + f.name); + continue; + } + var buf = f.read(); + f.close(); + for(var a = 0; a < count; a++) { + var avatar = buf.substr(a * lib.size, lib.size); + var b64 = base64_encode(avatar); + printf("%s #%u: ", file_getname(filename), a+1); + if(sauce.comment[a]) + print(sauce.comment[a]); + print(b64); + print(LZString.compressToBase64(avatar)); + } + } + printf("%u total\r\n", total); + break; + } break; case "install": var result = install(); diff --git a/exec/binkit.js b/exec/binkit.js index 8266341e90..f6583dbb04 100644 --- a/exec/binkit.js +++ b/exec/binkit.js @@ -972,9 +972,9 @@ function install() "cmd": "?binkit", "days": 255, "time": 0, - "node": 1, - "misc": 0, - "dir": "", + "node_num": 1, + "settings": 0, + "startup_dir": "", "freq": 0, "mdays": 0, "months": 0 @@ -989,9 +989,9 @@ function install() "cmd": "?binkit -p", "days": 255, "time": 0, - "node": 1, - "misc": 0, - "dir": "", + "node_num": 1, + "settings": 0, + "startup_dir": "", "freq": 60, "mdays": 0, "months": 0 diff --git a/exec/load/cnfdefs.js b/exec/load/cnfdefs.js index 228a4bbf79..7afbc83c4a 100644 --- a/exec/load/cnfdefs.js +++ b/exec/load/cnfdefs.js @@ -6,6 +6,11 @@ (if adding definitions to this file, make sure the required constants are defined... if not, add them */ +/* Note: rev 1.3 (and earlier) of this file used field names derived from the + * C/C++ source code (sbbsdefs.h), while rev 1.4 and later now use field + * names which correlate with the Synchronet JS object model (jsobjs.html). + */ + var LEN_DIR = 63; var LEN_CMD = 63; var LEN_ARSTR = 40; @@ -36,52 +41,52 @@ struct.swap_t={ struct.xedit_t={ name: {bytes:41, type:"str"}, code: {bytes:LEN_CODE+1, type:"str"}, - lcmd: {bytes:LEN_CMD+1, type:"str"}, - rcmd: {bytes:LEN_CMD+1, type:"str"}, - misc: {bytes:UINT32_T, type:"int"}, - arstr: {bytes:LEN_ARSTR+1, type:"str"}, + cmd: {bytes:LEN_CMD+1, type:"str"}, // was lcmd + rcmd: {bytes:LEN_CMD+1, type:"str"}, // unused + settings: {bytes:UINT32_T, type:"int"}, // was misc + ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr type: {bytes:UCHAR, type:"int"}, __PADDING__:15 }; struct.xtrnsec_t={ name: {bytes:41, type:"str"}, code: {bytes:LEN_CODE+1, type:"str"}, - arstr: {bytes:LEN_ARSTR+1, type:"str"}, + ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr __PADDING__:16 }; struct.xtrn_t={ - sec: {bytes:UINT16_T, type:"int"}, - name: {bytes:41, type:"str"}, - code: {bytes:LEN_CODE+1, type:"str"}, - arstr: {bytes:LEN_ARSTR+1, type:"str"}, - run_arstr: {bytes:LEN_ARSTR+1, type:"str"}, - type: {bytes:UCHAR, type:"int"}, - misc: {bytes:UINT32_T, type:"int"}, - event: {bytes:UCHAR, type:"int"}, - cost: {bytes:UINT32_T, type:"int"}, - cmd: {bytes:LEN_CMD+1, type:"str"}, - clean: {bytes:LEN_CMD+1, type:"str"}, - path: {bytes:LEN_DIR+1, type:"str"}, - textra: {bytes:UCHAR, type:"int"}, - maxtime: {bytes:UCHAR, type:"int"}, + sec: {bytes:UINT16_T, type:"int"}, + name: {bytes:41, type:"str"}, + code: {bytes:LEN_CODE+1, type:"str"}, + ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr + execution_ars: {bytes:LEN_ARSTR+1, type:"str"}, // was run_arstr + type: {bytes:UCHAR, type:"int"}, + settings: {bytes:UINT32_T, type:"int"}, // was misc + event: {bytes:UCHAR, type:"int"}, + cost: {bytes:UINT32_T, type:"int"}, + cmd: {bytes:LEN_CMD+1, type:"str"}, + clean_cmd: {bytes:LEN_CMD+1, type:"str"}, // was clean + startup_dir: {bytes:LEN_DIR+1, type:"str"}, // was path + textra: {bytes:UCHAR, type:"int"}, + max_time: {bytes:UCHAR, type:"int"}, // was maxtime __PADDING__:14 }; struct.event_t={ - code: {bytes:LEN_CODE+1, type:"str"}, - cmd: {bytes:LEN_CMD+1, type:"str"}, - days: {bytes:1, type:"int"}, - time: {bytes:UINT16_T, type:"int"}, - node: {bytes:UINT16_T, type:"int"}, - misc: {bytes:UINT32_T, type:"int"}, - dir: {bytes:LEN_DIR+1, type:"str"}, - freq: {bytes:UINT16_T, type:"int"}, - mdays: {bytes:UINT32_T, type:"int"}, - months: {bytes:UINT16_T, type:"int"}, + code: {bytes:LEN_CODE+1, type:"str"}, + cmd: {bytes:LEN_CMD+1, type:"str"}, + days: {bytes:1, type:"int"}, + time: {bytes:UINT16_T, type:"int"}, + node_num: {bytes:UINT16_T, type:"int"}, // was node + settings: {bytes:UINT32_T, type:"int"}, // was misc + startup_dir: {bytes:LEN_DIR+1, type:"str"}, // was dir + freq: {bytes:UINT16_T, type:"int"}, + mdays: {bytes:UINT32_T, type:"int"}, + months: {bytes:UINT16_T, type:"int"}, __PADDING__:8 }; struct.natvpgm_t={ name: {bytes:13, type:"str"}, - misc: {bytes:UINT32_T, type:"int"} + misc: {bytes:UINT32_T, type:"int"} // unused }; struct.hotkey_t={ key: {bytes:UCHAR, type:"int"}, @@ -97,40 +102,40 @@ struct.faddr_t={ faddr4: {bytes:2, type:"int"} }; struct.sub_t={ - grp: {bytes:UINT16_T, type:"int"}, - lname: {bytes:LEN_SLNAME+1, type:"str"}, - sname: {bytes:LEN_SSNAME+1, type:"str"}, - qwkname: {bytes:11, type:"str"}, - code_suffix:{bytes:LEN_CODE+1, type:"str"}, - data_dir: {bytes:LEN_DIR+1, type:"str"}, - arstr: {bytes:LEN_ARSTR+1, type:"str"}, - read_arstr: {bytes:LEN_ARSTR+1, type:"str"}, - post_arstr: {bytes:LEN_ARSTR+1, type:"str"}, - op_arstr: {bytes:LEN_ARSTR+1, type:"str"}, + grp_number: {bytes:UINT16_T, type:"int"}, // was grp + description: {bytes:LEN_SLNAME+1, type:"str"}, // was lname + name: {bytes:LEN_SSNAME+1, type:"str"}, // was sname + qwk_name: {bytes:11, type:"str"}, // was qwkname + code_suffix: {bytes:LEN_CODE+1, type:"str"}, + data_dir: {bytes:LEN_DIR+1, type:"str"}, + ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr + read_ars: {bytes:LEN_ARSTR+1, type:"str"}, // was read_arstr + post_ars: {bytes:LEN_ARSTR+1, type:"str"}, // was post_arstr + op_ars: {bytes:LEN_ARSTR+1, type:"str"}, // was op_arstr // uchar *ar, // *read_ar, // *post_ar, // *op_ar, - misc: {bytes:UINT32_T, type:"int"}, - tagline: {bytes:81, type:"str"}, - origline: {bytes:51, type:"str"}, - post_sem: {bytes:LEN_DIR+1, type:"str"}, - newsgroup: {bytes:LEN_DIR+1, type:"str"}, - faddr: {bytes:struct.faddr_t, type:"obj"}, - maxmsgs: {bytes:UINT32_T, type:"int"}, - maxcrcs: {bytes:UINT32_T, type:"int"}, - maxage: {bytes:UINT16_T, type:"int"}, - ptridx: {bytes:UINT16_T, type:"int"}, - mod_arstr: {bytes:LEN_ARSTR+1, type:"str"}, + settings: {bytes:UINT32_T, type:"int"}, // was misc + qwknet_tagline: {bytes:81, type:"str"}, // was tagline + fidonet_origin: {bytes:51, type:"str"}, // was origline + post_sem: {bytes:LEN_DIR+1, type:"str"}, + newsgroup: {bytes:LEN_DIR+1, type:"str"}, + faddr: {bytes:struct.faddr_t, type:"obj"}, + max_msgs: {bytes:UINT32_T, type:"int"}, // was maxmsgs + max_crcs: {bytes:UINT32_T, type:"int"}, // was maxcrcs + max_age: {bytes:UINT16_T, type:"int"}, // was maxage + ptridx: {bytes:UINT16_T, type:"int"}, + mod_ars: {bytes:LEN_ARSTR+1, type:"str"}, // was mod_arstr // *mod_ar; - qwkconf: {bytes:UINT16_T, type:"int"}, + qwk_conf: {bytes:UINT16_T, type:"int"}, // was qwkconf __PADDING__:53 }; struct.grp_t={ - lname: {bytes:LEN_GLNAME+1, type:"str"}, - sname: {bytes:LEN_GSNAME+1, type:"str"}, - arstr: {bytes:LEN_ARSTR+1, type:"str"}, - code_prefix:{bytes:LEN_CODE+1, type:"str"}, + description: {bytes:LEN_GLNAME+1, type:"str"}, // was lname + name: {bytes:LEN_GSNAME+1, type:"str"}, // was sname + ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr + code_prefix: {bytes:LEN_CODE+1, type:"str"}, // uchar *ar; __PADDING__:87 }; diff --git a/exec/sbbslist.js b/exec/sbbslist.js index de82773314..6a93a2b16a 100644 --- a/exec/sbbslist.js +++ b/exec/sbbslist.js @@ -656,7 +656,7 @@ function verify_services(address, timeout) var service = udp_services[i]; printf("Verifying %-10s UDP connection at %s\r\n", service, address); if(!udp_socket.sendto("\r\n", address, standard_service_port[service])) - log(LOG_ERR,format("FAILED Send to %s UDP service at %s", service, address)); + log(LOG_NOTICE,format("FAILED Send to %s UDP service at %s", service, address)); } for(i in tcp_services) { @@ -678,7 +678,7 @@ function verify_services(address, timeout) break; var msg=udp_socket.recvfrom(32*1024); if(msg==null) - log(LOG_ERR, "FAILED (UDP recv)"); + log(LOG_NOTICE, "FAILED (UDP recv)"); else { log(LOG_DEBUG, format("UDP message (%u bytes) from %s port %u", msg.data.length, msg.ip_address, msg.port)); if(msg.ip_address != address) @@ -1963,25 +1963,25 @@ function install() "sec": 0, "name": "Synchronet BBS List", "code": "SBBSLIST", - "arstr": "", - "run_arstr": "", + "ars": "", + "run_ars": "", "type": 0, - "misc": 1, + "settings": 1, "event": 0, "cost": 0, "cmd": "?sbbslist.js browse", - "clean": "", - "path": "", + "clean_cmd": "", + "startup_dir": "", "textra": 0, - "maxtime": 0 + "max_time": 0 }; var smb2sbl_cfg = { "code": "SMB2SBL", "cmd": "?sbbslist import", "days": 255, "time": 0, - "node": 1, - "misc": 0, + "node_num": 1, + "settings": 0, "dir": "", "freq": 360, "mdays": 0, @@ -1992,8 +1992,8 @@ function install() "cmd": "?sbbslist export", "days": 255, "time": 0, - "node": 1, - "misc": 0, + "node_num": 1, + "settings": 0, "dir": "", "freq": 360, "mdays": 0, @@ -2004,8 +2004,8 @@ function install() "cmd": "?sbbslist update -preview", "days": 255, "time": 0, - "node": 1, - "misc": 0, + "node_num": 1, + "settings": 0, "dir": "", "freq": 0, "mdays": 2, @@ -2016,8 +2016,8 @@ function install() "cmd": "?sbbslist maint", "days": 255, "time": 0, - "node": 1, - "misc": 0, + "node_num": 1, + "settings": 0, "dir": "", "freq": 0, "mdays": 0, @@ -2340,7 +2340,7 @@ function main() bbs.total = lib.system_stats(); bbs.terminal.nodes = system.nodes; if(preview) { - log("Capturing preview from: " + bbs.name); + log(LOG_INFO,"Capturing preview from: " + bbs.name); var result = capture_preview(bbs, addr); if(result != true) alert(result); -- GitLab