From 6af93d70a4b9fb27526a393bd58e4da3ad5d16f2 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sun, 29 Nov 2020 12:27:36 -0800 Subject: [PATCH] Fallback to the "first node" configuration If a node's configuration can't be loaded (e.g. nodeX/node.cnf is missing), fall-back and load the "first node" (e.g. Node1) configuration. On recent *nix installs (since the migration to Git), the node2+/node.cnf files were not copied/created, so let's solve that soon-to-be-FAQ now. --- src/sbbs3/main.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 672f0bfb47..81afb036fb 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -5716,16 +5716,20 @@ NO_SSH: lprintf(LOG_INFO,"Node %d Loading configuration files from %s", cfg->node_num, cfg->ctrl_dir); SAFECOPY(logstr,UNKNOWN_LOAD_ERROR); if(!load_cfg(cfg, node_text[i - 1], TRUE, logstr)) { - lprintf(LOG_CRIT,"!ERROR %s",logstr); - lprintf(LOG_CRIT,"!FAILED to load configuration files"); - sbbs->bprintf(" FAILED: %s", logstr); - client_off(client_socket); - SSH_END(client_socket); - close_socket(client_socket); - sbbs->getnodedat(cfg->node_num,&node,true); - node.status = NODE_WFC; - sbbs->putnodedat(cfg->node_num,&node); - continue; + cfg->node_num = first_node; + if(!load_cfg(cfg, node_text[i - 1], TRUE, logstr)) { + lprintf(LOG_CRIT,"!ERROR %s",logstr); + lprintf(LOG_CRIT,"!FAILED to load configuration files"); + sbbs->bprintf("\r\nFAILED: %s", logstr); + client_off(client_socket); + SSH_END(client_socket); + close_socket(client_socket); + sbbs->getnodedat(cfg->node_num,&node,true); + node.status = NODE_WFC; + sbbs->putnodedat(cfg->node_num,&node); + continue; + } + cfg->node_num = i; // correct the node number } if(node.misc & NODE_RRUN) { sbbs->getnodedat(cfg->node_num,&node,true); -- GitLab