From f71e64b9e9df43fa305caa0a432064781129f88f Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 22 Mar 2018 03:24:10 +0000 Subject: [PATCH] More elaborate fix for missing outbound directories (don't create them), just don't "run outbound" for those nodes. --- exec/binkit.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/exec/binkit.js b/exec/binkit.js index 59f3f1d181..61e5685035 100644 --- a/exec/binkit.js +++ b/exec/binkit.js @@ -751,7 +751,7 @@ function run_outbound(ran) var outbound_dirs=[]; var outbound_roots=[]; - log(LOG_INFO, "Running outbound"); + log(LOG_DEBUG, "Running outbound"); scfg = new SBBSEchoCfg(); if (!scfg.is_flo) { @@ -774,8 +774,10 @@ function run_outbound(ran) if (file_isdir(oroot)) addDir(oroot); - else + else { + log(LOG_NOTICE, "Skipping non-existent outbound directory: " + oroot); return; + } dirs = directory(oroot+'.*', 0); dirs.forEach(function(dir) { var pnts; @@ -800,6 +802,7 @@ function run_outbound(ran) log(LOG_WARNING, "Unhandled outbound '"+dir+"'."); }); }); + log(LOG_DEBUG, "Outbound dirs: " + JSON.stringify(outbound_dirs, null, 0)); outbound_dirs.forEach(function(dir) { run_one_outbound_dir(dir, scfg, ran); }); @@ -943,16 +946,21 @@ function poll_node(addr_str, scfg, bicfg, myaddr) var addr = FIDO.parse_addr(addr_str, 1, 'fidonet'); - if ((lock_files = lock_flow(outbound_root(addr, scfg)+addr.flo_outbound(myaddr.zone))) === undefined) - return; - else { - if (check_held(addr, scfg, myaddr)) { - unlock_flow(lock_files); + var outbound_dir = outbound_root(addr, scfg); + log(LOG_DEBUG, "poll_node " + addr_str + ", outbound_dir: " + outbound_dir); + if(file_isdir(outbound_dir)) { + if ((lock_files = lock_flow(outbound_dir + addr.flo_outbound(myaddr.zone))) === undefined) return; + else { + if (check_held(addr, scfg, myaddr)) { + unlock_flow(lock_files); + return; + } } } log(LOG_INFO, "Attempting poll for node "+addr); - locks.push(lock_files); + if(lock_files) + locks.push(lock_files); // Use a try/catch to ensure we clean up the lock files. callout(addr, scfg, locks, bicfg); locks.forEach(unlock_flow); @@ -965,6 +973,7 @@ function run_polls(ran) var myaddr; var locks = []; + log(LOG_DEBUG, "Running polls"); scfg = new SBBSEchoCfg(); bicfg = new BinkITCfg(); myaddr = FIDO.parse_addr(system.fido_addr_list[0], 1, 'fidonet'); -- GitLab