diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp index 6910051a3b76d04ef15fdda8fdf93f75f6f1e51e..16bb762467061af0a67f8e7662b3801363e934dc 100644 --- a/src/sbbs3/logout.cpp +++ b/src/sbbs3/logout.cpp @@ -25,7 +25,7 @@ /****************************************************************************/ /* Function that is called after a user hangs up or logs off */ /****************************************************************************/ -void sbbs_t::logout() +void sbbs_t::logout(bool logged_in) { char path[MAX_PATH+1]; char str[256]; @@ -60,7 +60,7 @@ void sbbs_t::logout() clearbatdl(); } - if(sys_status&SS_USERON && thisnode.status!=NODE_QUIET && !(useron.rest&FLAG('Q'))) + if(sys_status&SS_USERON && thisnode.status!=NODE_QUIET && !(useron.rest&FLAG('Q')) && logged_in) for(i=1;i<=cfg.sys_nodes;i++) if(i!=cfg.node_num) { getnodedat(i,&node,0); diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index eb466adfbafc2378a144c992e6b74762354346bc..f9a4fa3d13162667b7d104376616042113d5c3a7 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -4365,6 +4365,7 @@ void node_thread(void* arg) break; } listRemoveTaggedNode(¤t_logins, sbbs->cfg.node_num, /* free_data */true); + sbbs->logoffstats(); /* Updates both system and node dsts.ini (daily statistics) files */ } #ifdef _WIN32 @@ -4375,9 +4376,7 @@ void node_thread(void* arg) sbbs->hangup(); /* closes sockets, calls client_off, and shuts down the output_thread */ node_socket[sbbs->cfg.node_num-1]=INVALID_SOCKET; - sbbs->logout(); - if(login_success) - sbbs->logoffstats(); /* Updates both system and node dsts.ini (daily statistics) files */ + sbbs->logout(login_success); time_t now = time(NULL); SAFEPRINTF(str, "%sclient.ini", sbbs->cfg.node_dir); diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index c600360e7bc1c499d0cd7bec63106e3f00b7653c..ce5b33ca04292f854d3b504d3bff3aef608d10ed 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -1035,7 +1035,7 @@ public: bool logon(void); /* logout.cpp */ - void logout(void); + void logout(bool logged_in = true); /* newuser.cpp */ bool newuser(void); /* Get new user */