diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 732e883f38f5a04055726d48065b2faf66f85e27..0365ed861370f3590c9c08c0830d86f526e3bcff 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -152,7 +152,7 @@ static int lprintf(char *fmt, ...) vsnprintf(sbuf,sizeof(sbuf),fmt,argptr); sbuf[sizeof(sbuf)-1]=0; va_end(argptr); - result=startup->lputs(startup->cbdata,sbuf); + result=startup->lputs(startup->cbdata,LOG_INFO,sbuf); return(result); } diff --git a/src/sbbs3/ftpsrvr.h b/src/sbbs3/ftpsrvr.h index 1d917ff9b6bd2e2c240e12b6405338c56035b499..a765587fef1ebe14cb1fc499ac5ac3f1ec6a99f2 100644 --- a/src/sbbs3/ftpsrvr.h +++ b/src/sbbs3/ftpsrvr.h @@ -56,7 +56,7 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, char*); + int (*lputs)(void*, int, char*); void (*status)(void*, char*); void (*started)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 2b3ed7666ce0d0fd5e4794005b4ad76eb44ce81a..63d5b9d185a9842cdc51f90815ab167798bc46f1 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -125,7 +125,7 @@ static int lprintf(char *fmt, ...) vsnprintf(sbuf,sizeof(sbuf),fmt,argptr); sbuf[sizeof(sbuf)-1]=0; va_end(argptr); - return(startup->lputs(startup->cbdata,sbuf)); + return(startup->lputs(startup->cbdata,LOG_INFO,sbuf)); } #ifdef _WINSOCKAPI_ diff --git a/src/sbbs3/mailsrvr.h b/src/sbbs3/mailsrvr.h index 551870e4e4c877a4f111a8a759f6f3caa57107a0..079fb4aa1b58619a602cf746a96f40052a4881b3 100644 --- a/src/sbbs3/mailsrvr.h +++ b/src/sbbs3/mailsrvr.h @@ -61,7 +61,7 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, char*); + int (*lputs)(void*, int, char*); void (*status)(void*, char*); void (*started)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 1e24a0670e84dc0014a0cb583bbef4baf3b1e9dd..9fbe270b389028bdbb0b92b09e90d05712b70a4d 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -147,7 +147,7 @@ int lputs(char* str) } #endif - return(startup->lputs(startup->cbdata,str)); + return(startup->lputs(startup->cbdata,LOG_INFO,str)); } int lprintf(char *fmt, ...) @@ -162,7 +162,7 @@ int lprintf(char *fmt, ...) vsnprintf(sbuf,sizeof(sbuf),fmt,argptr); sbuf[sizeof(sbuf)-1]=0; va_end(argptr); - return(startup->lputs(startup->cbdata,sbuf)); + return(startup->lputs(startup->cbdata,LOG_INFO,sbuf)); } int eprintf(char *fmt, ...) @@ -170,7 +170,7 @@ int eprintf(char *fmt, ...) va_list argptr; char sbuf[1024]; - if(startup==NULL || startup->event_log==NULL) + if(startup==NULL || startup->event_lputs==NULL) return(0); va_start(argptr,fmt); @@ -178,7 +178,7 @@ int eprintf(char *fmt, ...) sbuf[sizeof(sbuf)-1]=0; va_end(argptr); strip_ctrl(sbuf); - return(startup->event_log(sbuf)); + return(startup->event_lputs(LOG_INFO,sbuf)); } SOCKET open_socket(int type) @@ -452,8 +452,8 @@ js_log(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if((str=JS_ValueToString(cx, argv[i]))==NULL) return(JS_FALSE); if(sbbs->online==ON_LOCAL) { - if(startup!=NULL && startup->event_log!=NULL) - startup->event_log(JS_GetStringBytes(str)); + if(startup!=NULL && startup->event_lputs!=NULL) + startup->event_lputs(LOG_INFO,JS_GetStringBytes(str)); } else lputs(JS_GetStringBytes(str)); } diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c index a6d584064739ef18d0651065192f97346ce0fc3e..c45647f5dde61289a44f44d44b97cf65638b20d7 100644 --- a/src/sbbs3/sbbscon.c +++ b/src/sbbs3/sbbscon.c @@ -195,7 +195,7 @@ static const char* services_usage = "Services settings:\n" "\n" ; -static int lputs(char *str) +static int log_puts(int level, char *str) { static pthread_mutex_t mutex; static BOOL mutex_initialized; @@ -205,9 +205,9 @@ static int lputs(char *str) if (is_daemon) { if(str!=NULL) { if (std_facilities) - syslog(LOG_INFO|LOG_AUTH,"%s",str); + syslog(level|LOG_AUTH,"%s",str); else - syslog(LOG_INFO,"%s",str); + syslog(level,"%s",str); } return(0); } @@ -265,8 +265,8 @@ static BOOL do_seteuid(BOOL to_new) pthread_mutex_unlock(&mutex); if(!result) { - lputs("!seteuid FAILED"); - lputs(strerror(errno)); + log_puts(LOG_ERR,"!seteuid FAILED"); + log_puts(LOG_ERR,strerror(errno)); } return result; } @@ -285,15 +285,15 @@ BOOL do_setuid(BOOL force) setreuid(-1,old_uid); if(setregid(new_gid,new_gid)) { - lputs("!setgid FAILED"); - lputs(strerror(errno)); + log_puts(LOG_ERR,"!setgid FAILED"); + log_puts(LOG_ERR,strerror(errno)); result=FALSE; } if(setreuid(new_uid,new_uid)) { - lputs("!setuid FAILED"); - lputs(strerror(errno)); + log_puts(LOG_ERR,"!setuid FAILED"); + log_puts(LOG_ERR,strerror(errno)); result=FALSE; } if(force && (!result)) @@ -357,7 +357,7 @@ static void thread_up(void* p, BOOL up, BOOL setuid) else if(thread_count>0) thread_count--; pthread_mutex_unlock(&mutex); - lputs(NULL); /* update displayed stats */ + log_puts(LOG_INFO,NULL); /* update displayed stats */ } static void socket_open(void* p, BOOL open) @@ -376,7 +376,7 @@ static void socket_open(void* p, BOOL open) else if(socket_count>0) socket_count--; pthread_mutex_unlock(&mutex); - lputs(NULL); /* update displayed stats */ + log_puts(LOG_INFO,NULL); /* update displayed stats */ } static void client_on(void* p, BOOL on, int sock, client_t* client, BOOL update) @@ -396,13 +396,13 @@ static void client_on(void* p, BOOL on, int sock, client_t* client, BOOL update) } else if(!on && client_count>0) client_count--; pthread_mutex_unlock(&mutex); - lputs(NULL); /* update displayed stats */ + log_puts(LOG_INFO,NULL); /* update displayed stats */ } /****************************************************************************/ /* BBS local/log print routine */ /****************************************************************************/ -static int bbs_lputs(void* p, char *str) +static int bbs_lputs(void* p, int level, char *str) { char logline[512]; char tstr[64]; @@ -414,9 +414,9 @@ static int bbs_lputs(void* p, char *str) if(str==NULL) return(0); if (std_facilities) - syslog(LOG_INFO|LOG_AUTH,"%s",str); + syslog(level|LOG_AUTH,"%s",str); else - syslog(LOG_INFO," %s",str); + syslog(level," %s",str); return(strlen(str)); } #endif @@ -431,7 +431,7 @@ static int bbs_lputs(void* p, char *str) sprintf(logline,"%s %.*s",tstr,(int)sizeof(logline)-32,str); truncsp(logline); - lputs(logline); + log_puts(level,logline); return(strlen(logline)+1); } @@ -455,7 +455,7 @@ static void bbs_terminated(void* p, int code) /****************************************************************************/ /* FTP local/log print routine */ /****************************************************************************/ -static int ftp_lputs(void* p, char *str) +static int ftp_lputs(void* p, int level, char *str) { char logline[512]; char tstr[64]; @@ -468,12 +468,12 @@ static int ftp_lputs(void* p, char *str) return(0); if (std_facilities) #ifdef __solaris__ - syslog(LOG_INFO|LOG_DAEMON,"%s",str); + syslog(level|LOG_DAEMON,"%s",str); #else - syslog(LOG_INFO|LOG_FTP,"%s",str); + syslog(level|LOG_FTP,"%s",str); #endif else - syslog(LOG_INFO,"ftp %s",str); + syslog(level,"ftp %s",str); return(strlen(str)); } #endif @@ -488,7 +488,7 @@ static int ftp_lputs(void* p, char *str) sprintf(logline,"%sftp %.*s",tstr,(int)sizeof(logline)-32,str); truncsp(logline); - lputs(logline); + log_puts(level,logline); return(strlen(logline)+1); } @@ -512,7 +512,7 @@ static void ftp_terminated(void* p, int code) /****************************************************************************/ /* Mail Server local/log print routine */ /****************************************************************************/ -static int mail_lputs(void* p, char *str) +static int mail_lputs(void* p, int level, char *str) { char logline[512]; char tstr[64]; @@ -524,9 +524,9 @@ static int mail_lputs(void* p, char *str) if(str==NULL) return(0); if (std_facilities) - syslog(LOG_INFO|LOG_MAIL,"%s",str); + syslog(level|LOG_MAIL,"%s",str); else - syslog(LOG_INFO,"mail %s",str); + syslog(level,"mail %s",str); return(strlen(str)); } #endif @@ -541,7 +541,7 @@ static int mail_lputs(void* p, char *str) sprintf(logline,"%smail %.*s",tstr,(int)sizeof(logline)-32,str); truncsp(logline); - lputs(logline); + log_puts(level,logline); return(strlen(logline)+1); } @@ -565,7 +565,7 @@ static void mail_terminated(void* p, int code) /****************************************************************************/ /* Services local/log print routine */ /****************************************************************************/ -static int services_lputs(void* p, char *str) +static int services_lputs(void* p, int level, char *str) { char logline[512]; char tstr[64]; @@ -577,9 +577,9 @@ static int services_lputs(void* p, char *str) if(str==NULL) return(0); if (std_facilities) - syslog(LOG_INFO|LOG_DAEMON,"%s",str); + syslog(level|LOG_DAEMON,"%s",str); else - syslog(LOG_INFO,"srvc %s",str); + syslog(level,"srvc %s",str); return(strlen(str)); } #endif @@ -594,7 +594,7 @@ static int services_lputs(void* p, char *str) sprintf(logline,"%ssrvc %.*s",tstr,(int)sizeof(logline)-32,str); truncsp(logline); - lputs(logline); + log_puts(level,logline); return(strlen(logline)+1); } @@ -618,7 +618,7 @@ static void services_terminated(void* p, int code) /****************************************************************************/ /* Event thread local/log print routine */ /****************************************************************************/ -static int event_lputs(char *str) +static int event_lputs(int level, char *str) { char logline[512]; char tstr[64]; @@ -630,9 +630,9 @@ static int event_lputs(char *str) if(str==NULL) return(0); if (std_facilities) - syslog(LOG_INFO|LOG_CRON,"%s",str); + syslog(level|LOG_CRON,"%s",str); else - syslog(LOG_INFO,"evnt %s",str); + syslog(level,"evnt %s",str); return(strlen(str)); } #endif @@ -647,7 +647,7 @@ static int event_lputs(char *str) sprintf(logline,"%sevnt %.*s",tstr,(int)sizeof(logline)-32,str); truncsp(logline); - lputs(logline); + log_puts(level,logline); return(strlen(logline)+1); } @@ -655,7 +655,7 @@ static int event_lputs(char *str) /****************************************************************************/ /* web local/log print routine */ /****************************************************************************/ -static int web_lputs(void* p, char *str) +static int web_lputs(void* p, int level, char *str) { char logline[512]; char tstr[64]; @@ -667,9 +667,9 @@ static int web_lputs(void* p, char *str) if(str==NULL) return(0); if (std_facilities) - syslog(LOG_INFO|LOG_DAEMON,"%s",str); + syslog(level|LOG_DAEMON,"%s",str); else - syslog(LOG_INFO,"web %s",str); + syslog(level,"web %s",str); return(strlen(str)); } #endif @@ -684,7 +684,7 @@ static int web_lputs(void* p, char *str) sprintf(logline,"%sweb %.*s",tstr,(int)sizeof(logline)-32,str); truncsp(logline); - lputs(logline); + log_puts(level,logline); return(strlen(logline)+1); } @@ -722,15 +722,15 @@ static void terminate(void) while(bbs_running || ftp_running || web_running || mail_running || services_running) { if(count && (count%10)==0) { if(bbs_running) - bbs_lputs(NULL,"BBS System thread still running"); + bbs_lputs(NULL,LOG_INFO,"BBS System thread still running"); if(ftp_running) - ftp_lputs(NULL,"FTP Server thread still running"); + ftp_lputs(NULL,LOG_INFO,"FTP Server thread still running"); if(web_running) - web_lputs(NULL,"Web Server thread still running"); + web_lputs(NULL,LOG_INFO,"Web Server thread still running"); if(mail_running) - mail_lputs(NULL,"Mail Server thread still running"); + mail_lputs(NULL,LOG_INFO,"Mail Server thread still running"); if(services_running) - services_lputs(NULL,"Services thread still running"); + services_lputs(NULL,LOG_INFO,"Services thread still running"); } count++; SLEEP(1000); @@ -761,7 +761,7 @@ void _sighandler_quit(int sig) /* Can I get away with leaving this locked till exit? */ sprintf(str," Got quit signal (%d)",sig); - lputs(str); + log_puts(LOG_NOTICE,str); terminate(); if(is_daemon) @@ -773,7 +773,7 @@ void _sighandler_quit(int sig) void _sighandler_rerun(int sig) { - lputs(" Got HUP (rerun) signal"); + log_puts(LOG_NOTICE," Got HUP (rerun) signal"); #if 0 /* old way, we don't want to recycle all nodes, necessarily */ for(i=1;i<=scfg.sys_nodes;i++) { @@ -853,7 +853,7 @@ static void handle_sigs(void) { while(1) { sigwait(&sigs,&sig); /* wait here until signaled */ sprintf(str," Got signal (%d)",sig); - lputs(str); + log_puts(LOG_NOTICE,str); switch(sig) { /* QUIT-type signals */ case SIGINT: @@ -867,7 +867,7 @@ static void handle_sigs(void) { break; default: sprintf(str," Signal has no handler (unexpected)"); - lputs(str); + log_puts(LOG_NOTICE,str); } } } @@ -951,7 +951,7 @@ int main(int argc, char** argv) bbs_startup.size=sizeof(bbs_startup); bbs_startup.lputs=bbs_lputs; - bbs_startup.event_log=event_lputs; + bbs_startup.event_lputs=event_lputs; bbs_startup.started=bbs_started; bbs_startup.terminated=bbs_terminated; bbs_startup.thread_up=thread_up; @@ -1070,7 +1070,7 @@ int main(int argc, char** argv) /* Read .ini file here */ if(ini_file[0]!=0 && (fp=fopen(ini_file,"r"))!=NULL) { sprintf(str,"Reading %s",ini_file); - bbs_lputs(NULL,str); + bbs_lputs(NULL,LOG_INFO,str); } prompt = "[Threads: %d Sockets: %d Clients: %d Served: %lu] (?=Help): "; @@ -1456,7 +1456,7 @@ int main(int argc, char** argv) scfg.size=sizeof(scfg); SAFECOPY(error,UNKNOWN_LOAD_ERROR); sprintf(str,"Loading configuration files from %s", scfg.ctrl_dir); - bbs_lputs(NULL,str); + bbs_lputs(NULL,LOG_INFO,str); if(!load_cfg(&scfg, NULL /* text.dat */, TRUE /* prep */, error)) { fprintf(stderr,"\n!ERROR Loading Configuration Files: %s\n", error); return(-1); @@ -1536,15 +1536,15 @@ int main(int argc, char** argv) #ifdef __unix__ if(getuid()) { /* are we running as a normal user? */ sprintf(str,"!Started as non-root user. Cannot bind() to ports below %u.", IPPORT_RESERVED); - bbs_lputs(NULL,str); + bbs_lputs(NULL,LOG_ERR,str); } else if(new_uid_name[0]==0) /* check the user arg, if we have uid 0 */ - bbs_lputs(NULL,"Warning: No user account specified, running as root."); + bbs_lputs(NULL,LOG_WARNING,"Warning: No user account specified, running as root."); else { - bbs_lputs(NULL,"Waiting for child threads to bind ports..."); + bbs_lputs(NULL,LOG_INFO,"Waiting for child threads to bind ports..."); while((run_bbs && !(bbs_running || bbs_stopped)) || (run_ftp && !(ftp_running || ftp_stopped)) || (run_web && !(web_running || web_stopped)) @@ -1552,25 +1552,25 @@ int main(int argc, char** argv) || (run_services && !(services_running || services_stopped))) { mswait(1000); if(run_bbs && !(bbs_running || bbs_stopped)) - bbs_lputs(NULL,"Waiting for BBS thread"); + bbs_lputs(NULL,LOG_INFO,"Waiting for BBS thread"); if(run_web && !(web_running || web_stopped)) - bbs_lputs(NULL,"Waiting for Web thread"); + bbs_lputs(NULL,LOG_INFO,"Waiting for Web thread"); if(run_ftp && !(ftp_running || ftp_stopped)) - bbs_lputs(NULL,"Waiting for FTP thread"); + bbs_lputs(NULL,LOG_INFO,"Waiting for FTP thread"); if(run_mail && !(mail_running || mail_stopped)) - bbs_lputs(NULL,"Waiting for Mail thread"); + bbs_lputs(NULL,LOG_INFO,"Waiting for Mail thread"); if(run_services && !(services_running || services_stopped)) - bbs_lputs(NULL,"Waiting for Services thread"); + bbs_lputs(NULL,LOG_INFO,"Waiting for Services thread"); } if(!do_setuid(FALSE)) /* actually try to change the uid of this process */ - bbs_lputs(NULL,"!Setting new user_id failed! (Does the user exist?)"); + bbs_lputs(NULL,LOG_ERR,"!Setting new user_id failed! (Does the user exist?)"); else { char str[256]; sprintf(str,"Successfully changed user_id to %s", new_uid_name); - bbs_lputs(NULL,str); + bbs_lputs(NULL,LOG_INFO,str); /* Can't recycle servers (re-bind ports) as non-root user */ /* ToDo: Something seems to be broken here on FreeBSD now */ @@ -1661,7 +1661,7 @@ int main(int argc, char** argv) #endif break; } - lputs(""); /* redisplay prompt */ + log_puts(LOG_INFO,""); /* redisplay prompt */ } terminate(); diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index 4b3f83a122a960a65299172b862da34f9215efda..806fc9a39b1a432fab4f29fbc7f8cdae64b2eefc 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -153,7 +153,7 @@ static int lprintf(char *fmt, ...) vsnprintf(sbuf,sizeof(sbuf),fmt,argptr); sbuf[sizeof(sbuf)-1]=0; va_end(argptr); - return(startup->lputs(startup->cbdata,sbuf)); + return(startup->lputs(startup->cbdata,LOG_INFO,sbuf)); } #ifdef _WINSOCKAPI_ diff --git a/src/sbbs3/services.h b/src/sbbs3/services.h index 1e2945c978eaca48e5023258b63fb46026d53d5e..51c44d913c2ec2469b89dcf4402e1544ebaa109e 100644 --- a/src/sbbs3/services.h +++ b/src/sbbs3/services.h @@ -59,7 +59,7 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, char*); /* Log - put string */ + int (*lputs)(void*, int, char*); /* Log - put string */ void (*status)(void*, char*); void (*started)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index b8ba42f0701a4d9121ec1a2383ddc742c401133a..ac701725edbc1405aa65f303c384f69915892db5 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -72,8 +72,8 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*event_log)(char*); /* Event log - put string */ - int (*lputs)(void*, char*); /* Log - put string */ + int (*lputs)(void*, int, char*); /* Log - put string */ + int (*event_lputs)(int, char*); /* Event log - put string */ void (*status)(void*, char*); void (*started)(void*); void (*terminated)(void*, int code); diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index 6b2f83a586a2d7eb8ce4b5059d3cd3e22a2654a2..86dd6a427e784492607fcc319913bd942cb0127e 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -275,7 +275,7 @@ static int lprintf(char *fmt, ...) vsnprintf(sbuf,sizeof(sbuf),fmt,argptr); sbuf[sizeof(sbuf)-1]=0; va_end(argptr); - return(startup->lputs(startup->cbdata,sbuf)); + return(startup->lputs(startup->cbdata,LOG_INFO,sbuf)); } #ifdef _WINSOCKAPI_ diff --git a/src/sbbs3/websrvr.h b/src/sbbs3/websrvr.h index f13d94614b978fb24e0383d426e553c7305c0373..f8b494565d4b47a9a2d8e5ced87373eb7652cc29 100644 --- a/src/sbbs3/websrvr.h +++ b/src/sbbs3/websrvr.h @@ -55,7 +55,7 @@ typedef struct { void* cbdata; /* Private data passed to callbacks */ /* Callbacks (NULL if unused) */ - int (*lputs)(void*, char*); + int (*lputs)(void*, int, char*); void (*status)(void*, char*); void (*started)(void*); void (*terminated)(void*, int code);