Skip to content
Snippets Groups Projects
Commit f9afa7b9 authored by rswindell's avatar rswindell
Browse files

Added errormsg callback function pointer to all startup structures to allow

error counting/logging/messages to be handled by front-end (e.g. control panel)
regardless of log_level setting.
parent e5da08ed
No related branches found
No related tags found
No related merge requests found
...@@ -105,9 +105,10 @@ BOOL web_running=FALSE; ...@@ -105,9 +105,10 @@ BOOL web_running=FALSE;
BOOL web_stopped=FALSE; BOOL web_stopped=FALSE;
BOOL has_web=FALSE; BOOL has_web=FALSE;
web_startup_t web_startup; web_startup_t web_startup;
uint thread_count=1; ulong thread_count=1;
uint socket_count=0; ulong socket_count=0;
uint client_count=0; ulong client_count=0;
ulong error_count=0;
int prompt_len=0; int prompt_len=0;
static scfg_t scfg; /* To allow rerun */ static scfg_t scfg; /* To allow rerun */
static ulong served=0; static ulong served=0;
...@@ -259,13 +260,18 @@ static int lputs(int level, char *str) ...@@ -259,13 +260,18 @@ static int lputs(int level, char *str)
} }
/* re-display prompt with current stats */ /* re-display prompt with current stats */
if(prompt!=NULL) if(prompt!=NULL)
prompt_len = printf(prompt, thread_count, socket_count, client_count, served); prompt_len = printf(prompt, thread_count, socket_count, client_count, served, error_count);
fflush(stdout); fflush(stdout);
pthread_mutex_unlock(&mutex); pthread_mutex_unlock(&mutex);
return(prompt_len); return(prompt_len);
} }
static void errormsg(void* cbdata, int level, const char* fmt)
{
error_count++;
}
static int lprintf(int level, const char *fmt, ...) static int lprintf(int level, const char *fmt, ...)
{ {
va_list argptr; va_list argptr;
...@@ -952,7 +958,7 @@ static void terminate(void) ...@@ -952,7 +958,7 @@ static void terminate(void)
while(bbs_running || ftp_running || web_running || mail_running || services_running) { while(bbs_running || ftp_running || web_running || mail_running || services_running) {
if(count && (count%10)==0) { if(count && (count%10)==0) {
if(bbs_running) if(bbs_running)
lputs(LOG_INFO,"BBS System thread still running"); lputs(LOG_INFO,"Terminal Server thread still running");
if(ftp_running) if(ftp_running)
lputs(LOG_INFO,"FTP Server thread still running"); lputs(LOG_INFO,"FTP Server thread still running");
if(web_running) if(web_running)
...@@ -1225,6 +1231,7 @@ int main(int argc, char** argv) ...@@ -1225,6 +1231,7 @@ int main(int argc, char** argv)
bbs_startup.log_level = LOG_DEBUG; bbs_startup.log_level = LOG_DEBUG;
bbs_startup.lputs=bbs_lputs; bbs_startup.lputs=bbs_lputs;
bbs_startup.event_lputs=event_lputs; bbs_startup.event_lputs=event_lputs;
bbs_startup.errormsg=errormsg;
bbs_startup.started=bbs_started; bbs_startup.started=bbs_started;
bbs_startup.recycle=recycle; bbs_startup.recycle=recycle;
bbs_startup.terminated=bbs_terminated; bbs_startup.terminated=bbs_terminated;
...@@ -1247,6 +1254,7 @@ int main(int argc, char** argv) ...@@ -1247,6 +1254,7 @@ int main(int argc, char** argv)
ftp_startup.cbdata=&ftp_startup; ftp_startup.cbdata=&ftp_startup;
ftp_startup.log_level = LOG_DEBUG; ftp_startup.log_level = LOG_DEBUG;
ftp_startup.lputs=ftp_lputs; ftp_startup.lputs=ftp_lputs;
ftp_startup.errormsg=errormsg;
ftp_startup.started=ftp_started; ftp_startup.started=ftp_started;
ftp_startup.recycle=recycle; ftp_startup.recycle=recycle;
ftp_startup.terminated=ftp_terminated; ftp_startup.terminated=ftp_terminated;
...@@ -1266,6 +1274,7 @@ int main(int argc, char** argv) ...@@ -1266,6 +1274,7 @@ int main(int argc, char** argv)
web_startup.cbdata=&web_startup; web_startup.cbdata=&web_startup;
web_startup.log_level = LOG_DEBUG; web_startup.log_level = LOG_DEBUG;
web_startup.lputs=web_lputs; web_startup.lputs=web_lputs;
web_startup.errormsg=errormsg;
web_startup.started=web_started; web_startup.started=web_started;
web_startup.recycle=recycle; web_startup.recycle=recycle;
web_startup.terminated=web_terminated; web_startup.terminated=web_terminated;
...@@ -1284,6 +1293,7 @@ int main(int argc, char** argv) ...@@ -1284,6 +1293,7 @@ int main(int argc, char** argv)
mail_startup.cbdata=&mail_startup; mail_startup.cbdata=&mail_startup;
mail_startup.log_level = LOG_DEBUG; mail_startup.log_level = LOG_DEBUG;
mail_startup.lputs=mail_lputs; mail_startup.lputs=mail_lputs;
mail_startup.errormsg=errormsg;
mail_startup.started=mail_started; mail_startup.started=mail_started;
mail_startup.recycle=recycle; mail_startup.recycle=recycle;
mail_startup.terminated=mail_terminated; mail_startup.terminated=mail_terminated;
...@@ -1302,6 +1312,7 @@ int main(int argc, char** argv) ...@@ -1302,6 +1312,7 @@ int main(int argc, char** argv)
services_startup.cbdata=&services_startup; services_startup.cbdata=&services_startup;
services_startup.log_level = LOG_DEBUG; services_startup.log_level = LOG_DEBUG;
services_startup.lputs=services_lputs; services_startup.lputs=services_lputs;
services_startup.errormsg=errormsg;
services_startup.started=services_started; services_startup.started=services_started;
services_startup.recycle=recycle; services_startup.recycle=recycle;
services_startup.terminated=services_terminated; services_startup.terminated=services_terminated;
...@@ -1903,7 +1914,7 @@ int main(int argc, char** argv) ...@@ -1903,7 +1914,7 @@ int main(int argc, char** argv)
else /* interactive */ else /* interactive */
#endif #endif
{ {
prompt = "[Threads: %d Sockets: %d Clients: %d Served: %lu] (?=Help): "; prompt = "[Threads: %d Sockets: %d Clients: %d Served: %lu Errors: %lu] (?=Help): ";
lputs(LOG_INFO,NULL); /* display prompt */ lputs(LOG_INFO,NULL); /* display prompt */
while(!terminated) { while(!terminated) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment