diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 06cef3754f2087639f665dbbfd34164e112e8303..b398cd98dd10f5c494a0d4bee01e5a099cbb3e3c 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -4083,15 +4083,18 @@ void sbbs_t::daily_maint(void) uint i; uint usernum; uint lastusernum; - node_t node; user_t user; now=time(NULL); - sbbs->getnodedat(sbbs->cfg.node_num,&node,1); - node.status=NODE_EVENT_RUNNING; - sbbs->putnodedat(sbbs->cfg.node_num,&node); - + if(sbbs->cfg.node_num) { + if((i=sbbs->getnodedat(sbbs->cfg.node_num,&sbbs->thisnode,true)) != 0) + sbbs->errormsg(WHERE,ERR_LOCK,"node file",i); + else { + sbbs->thisnode.status=NODE_EVENT_RUNNING; + sbbs->putnodedat(sbbs->cfg.node_num,&sbbs->thisnode); + } + } sbbs->logentry("!:","Ran system daily maintenance"); if(sbbs->cfg.user_backup_level) { @@ -5422,7 +5425,7 @@ NO_PASSTHRU: new_node->telnet_mode|=TELNET_MODE_OFF; // SSH does not use Telnet commands new_node->ssh_session=sbbs->ssh_session; /* Wait for pending data to be sent then turn off ssh_mode for uber-output */ - while(RingBufFull(&sbbs->outbuf)) + while(sbbs->output_thread_running && RingBufFull(&sbbs->outbuf)) SLEEP(1); cryptPopData(sbbs->ssh_session, str, sizeof(str), &i); sbbs->ssh_mode=false;