diff --git a/exec/load/cnfdefs.js b/exec/load/cnfdefs.js index a56abf6e4b56e9f1454a91c69350a6dfed0395ce..543bb75ceb7e1ed64b6466e243dd4195f7a66c01 100644 --- a/exec/load/cnfdefs.js +++ b/exec/load/cnfdefs.js @@ -47,13 +47,13 @@ struct.xedit_t={ settings: {bytes:UINT32_T, type:"int"}, // was misc ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr type: {bytes:UCHAR, type:"int"}, - __PADDING__:15 + __PADDING__:{bytes:15} }; struct.xtrnsec_t={ name: {bytes:41, type:"str"}, code: {bytes:LEN_CODE+1, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr - __PADDING__:16 + __PADDING__:{bytes:16} }; struct.xtrn_t={ sec: {bytes:UINT16_T, type:"int"}, @@ -70,7 +70,7 @@ struct.xtrn_t={ 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 + __PADDING__:{bytes:14} }; struct.event_t={ code: {bytes:LEN_CODE+1, type:"str"}, @@ -83,7 +83,7 @@ struct.event_t={ freq: {bytes:UINT16_T, type:"int"}, mdays: {bytes:UINT32_T, type:"int"}, months: {bytes:UINT16_T, type:"int"}, - __PADDING__:8 + __PADDING__:{bytes:8} }; struct.natvpgm_t={ name: {bytes:13, type:"str"}, @@ -92,7 +92,7 @@ struct.natvpgm_t={ struct.hotkey_t={ key: {bytes:UCHAR, type:"int"}, cmd: {bytes:LEN_CMD+1, type:"str"}, - __PADDING__:16 + __PADDING__:{bytes:16} }; /* message group/sub record structures */ @@ -130,7 +130,7 @@ struct.sub_t={ moderated_ars: {bytes:LEN_ARSTR+1, type:"str"}, // was mod_arstr // *mod_ar; qwk_conf: {bytes:UINT16_T, type:"int"}, // was qwkconf - __PADDING__:53 + __PADDING__:{bytes:53} }; struct.grp_t={ description: {bytes:LEN_GLNAME+1, type:"str"}, // was lname @@ -138,7 +138,7 @@ struct.grp_t={ ars: {bytes:LEN_ARSTR+1, type:"str"}, // was arstr code_prefix: {bytes:LEN_CODE+1, type:"str"}, // uchar *ar; - __PADDING__:87 + __PADDING__:{bytes:87} }; struct.qhubsub_t={ conf: {bytes:UINT16_T, type:"int"}, @@ -159,7 +159,7 @@ struct.qhub_t={ // *conf; /* Conference number of ea. */ // ulong *sub; /* Number of local sub-board for ea. */ // time32_t last; /* Last network attempt */ - __PADDING__:64 + __PADDING__:{bytes:64} }; struct.phub_t={ days: {bytes:1, type:"str"}, @@ -169,7 +169,7 @@ struct.phub_t={ node: {bytes:UINT16_T, type:"str"}, freq: {bytes:UINT16_T, type:"str"}, // time32_t last; /* Last network attempt */ - __PADDING__:64 + __PADDING__:{bytes:64} }; struct.node_dir_t={ @@ -186,7 +186,7 @@ struct.validation_set_t={ cdt: {bytes:UINT32_T, type:"int"}, exempt: {bytes:UINT32_T, type:"int"}, rest: {bytes:UINT32_T, type:"int"}, - __PADDING__:16 + __PADDING__:{bytes:16} }; struct.sec_level_t={ @@ -199,7 +199,7 @@ struct.sec_level_t={ emailperday:{bytes:UINT16_T, type:"int"}, misc: {bytes:UINT32_T, type:"int"}, expireto: {bytes:UCHAR, type:"int"}, - __PADDING__:11 + __PADDING__:{bytes:11} }; struct.cmd_shell_t={ @@ -207,7 +207,7 @@ struct.cmd_shell_t={ code: {bytes:LEN_CODE+1, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, misc: {bytes:UINT32_T, type:"int"}, - __PADDING__:16 + __PADDING__:{bytes:16} }; /* NOTE: top-level data structures only below this point @@ -238,7 +238,7 @@ struct.main={ sys_deldays: {bytes:UINT16_T, type:"int"}, sys_exp_warn: {bytes:UCHAR, type:"int"}, sys_autodel: {bytes:UINT16_T, type:"int"}, - __PADDING__:1, + __PADDING__: {bytes:1}, sys_chat_ars: {bytes:LEN_ARSTR+1, type:"str"}, // sys_chat_ar cdt_min_value: {bytes:UINT16_T, type:"int"}, max_minutes: {bytes:UINT32_T, type:"int"}, @@ -265,7 +265,7 @@ struct.main={ newuser_msgscan_init: {bytes:UINT16_T, type:"int"}, // new_msgcan_init guest_msgscan_init: {bytes:UINT16_T, type:"int"}, min_pwlen: {bytes:UCHAR, type:"int"}, - __PADDING1__:9, + __PADDING1__: {bytes:9}, expired_level: {bytes:UCHAR, type:"int"}, expired_flags1: {bytes:UINT32_T, type:"int"}, expired_flags2: {bytes:UINT32_T, type:"int"}, @@ -290,12 +290,12 @@ struct.main={ textsec_mod: {bytes:LEN_MODNAME+1, type:"str"}, automsg_mod: {bytes:LEN_MODNAME+1, type:"str"}, xtrnsec_mod: {bytes:LEN_MODNAME+1, type:"str"}, - __PADDING2__:34, + __PADDING2__: {bytes:34}, nodelist_mod: {bytes:LEN_CMD+1, type:"str"}, whosonline_mod: {bytes:LEN_CMD+1, type:"str"}, privatemsg_mod: {bytes:LEN_CMD+1, type:"str"}, logonlist_mod: {bytes:LEN_CMD+1, type:"str"}, - __PADDING3__:252, + __PADDING3__: {bytes:252}, user_backup_level: {bytes:UINT16_T, type:"int"}, mail_backup_level: {bytes:UINT16_T, type:"int"}, validation_set: {bytes:struct.validation_set_t, type:"lst", length: 10}, @@ -323,9 +323,9 @@ struct.msg={ preqwk_ars: {bytes:LEN_ARSTR+1, type:"str"}, // preqwk_ar smb_retry_time: {bytes:UCHAR, type:"int"}, max_qwkmsgage: {bytes:UINT16_T, type:"int"}, - __PADDING1__:466, + __PADDING1__: {bytes:466}, settings: {bytes:UINT32_T, type:"int"}, // was msg_misc - __PADDING2__:510, + __PADDING2__: {bytes:510}, grp: {bytes:struct.grp_t, type:"lst"}, sub: {bytes:struct.sub_t, type:"lst"}, fido_addr_list: {bytes:struct.faddr_t, type:"lst"}, @@ -338,15 +338,15 @@ struct.msg={ fido_netmail_misc: {bytes:UINT16_T, type:"int"}, fido_netmail_cost: {bytes:UINT32_T, type:"int"}, fido_default_addr: {bytes:struct.faddr_t, type:"obj"}, - __PADDING3__:56, + __PADDING3__: {bytes:56}, qwknet_default_tagline:{bytes:128, type:"str"}, qwknet_hub: {bytes:struct.qhub_t, type:"lst"}, - __PADDING4__:64, - __PADDING5__:11, + __PADDING4__: {bytes:64}, + __PADDING5__: {bytes:11}, postlink_num: {bytes:UINT32_T, type:"int"}, postlink_hub: {bytes:struct.phub_t, type:"lst"}, postlink_name: {bytes:13, type:"str"}, - __PADDING6__:64, + __PADDING6__: {bytes:64}, sys_inetaddr: {bytes:128, type:"str"}, inetmail_sem: {bytes:LEN_DIR+1, type:"str"}, inetmail_misc: {bytes:UINT32_T, type:"str"}, @@ -378,7 +378,7 @@ struct.dir_t={ max_age: {bytes:UINT16_T, type:"int"}, upload_pct: {bytes:UINT16_T, type:"int"}, download_pct: {bytes:UINT16_T, type:"int"}, - __PADDING__:49 + __PADDING__: {bytes:49} }; struct.lib_t={ description: {bytes:LEN_GLNAME+1, type:"str"}, @@ -388,7 +388,7 @@ struct.lib_t={ code_prefix: {bytes:LEN_CODE+1, type:"str"}, sort: {bytes:1, type:"int"}, settings: {bytes:UINT32_T, type:"int"}, - __PADDING__:34 + __PADDING__: {bytes:34} }; /* Extractable File Types */ @@ -396,7 +396,7 @@ struct.fextr_t={ extension: {bytes:4, type:"str"}, cmd: {bytes:LEN_CMD+1, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; /* Compressable File Types */ @@ -404,7 +404,7 @@ struct.fcomp_t={ extension: {bytes:4, type:"str"}, cmd: {bytes:LEN_CMD+1, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; /* Viewable File Types */ @@ -412,7 +412,7 @@ struct.fview_t={ extension: {bytes:4, type:"str"}, cmd: {bytes:LEN_CMD+1, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; /* Testable File Types */ @@ -421,7 +421,7 @@ struct.ftest_t={ cmd: {bytes:LEN_CMD+1, type:"str"}, working: {bytes:41, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; /* Download Events */ @@ -430,7 +430,7 @@ struct.dlevent_t={ cmd: {bytes:LEN_CMD+1, type:"str"}, working: {bytes:41, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; /* File Transfer Protocol (drivers) */ @@ -445,19 +445,19 @@ struct.prot_t={ bicmd: {bytes:LEN_CMD+1, type:"str"}, settings: {bytes:UINT32_T, type:"int"}, // misc ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; struct.altpath_t={ path: {bytes:LEN_DIR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; struct.txtsec_t={ name: {bytes:41, type:"str"}, code: {bytes:LEN_CODE+1, type:"str"}, ars: {bytes:LEN_ARSTR+1, type:"str"}, - __PADDING__:16 + __PADDING__: {bytes:16} }; /* file transfer configuration (file.cnf) */ @@ -466,14 +466,14 @@ struct.file={ max_batup: {bytes:UINT16_T, type:"int"}, max_batdn: {bytes:UINT16_T, type:"int"}, max_userxfer: {bytes:UINT16_T, type:"int"}, - __PADDING1__:4, + __PADDING1__: {bytes:4}, cdt_up_pct: {bytes:UINT16_T, type:"int"}, cdt_dn_pct: {bytes:UINT16_T, type:"int"}, - __PADDING2__:68, + __PADDING2__: {bytes:68}, leech_pct: {bytes:UINT16_T, type:"int"}, leech_sec: {bytes:UINT16_T, type:"int"}, settings: {bytes:UINT32_T, type:"int"}, - __PADDING3__:60, + __PADDING3__: {bytes:60}, fextr: {bytes:struct.fextr_t, type:"lst"}, fcomp: {bytes:struct.fcomp_t, type:"lst"}, fview: {bytes:struct.fview_t, type:"lst"}, diff --git a/exec/load/cnflib.js b/exec/load/cnflib.js index 7078eaaf4b8e80f9c79cce799c770eb3fcf1a84e..ff797c7b66632a9060c5f7f8047a542a13c914c7 100644 --- a/exec/load/cnflib.js +++ b/exec/load/cnflib.js @@ -42,13 +42,12 @@ var CNF = new (function() { /* get record padding */ function getPadding(file,bytes) { - file.position += bytes; - return false; + return file.read(bytes); } /* set record padding */ - function setPadding(file,bytes) { - setStr(file,bytes,""); + function setPadding(file,struct) { + file.write(struct.data,struct.bytes); } /* read a set of records from *.cnf */ @@ -70,7 +69,7 @@ var CNF = new (function() { if(file.eof) break; if(p.match(/__PADDING\d*__/)) - getPadding(file,struct[p]); + struct[p].data = getPadding(file,struct[p].bytes); else { switch(struct[p].type) { case "int":