diff --git a/src/sbbs3/ctrl/MainFormUnit.cpp b/src/sbbs3/ctrl/MainFormUnit.cpp index df48688683e13c69613d8eb4eddb6cc5b0c33a9a..9808174cc56e880164825408f16494736b4be926 100644 --- a/src/sbbs3/ctrl/MainFormUnit.cpp +++ b/src/sbbs3/ctrl/MainFormUnit.cpp @@ -316,17 +316,45 @@ static void bbs_log_msg(log_msg_t* msg) log_msg(TelnetForm->Log, msg); } -static void bbs_status(void* p, const char *str) +static const char* server_state_str(enum server_state state) +{ + switch(state) { + case SERVER_STOPPED: return "Down"; + case SERVER_INIT: return "Initializing"; + case SERVER_READY: return "Listening"; + case SERVER_RELOADING: return "Recycling"; + case SERVER_STOPPING: return "Terminating"; + default: return "Unknown state"; + } +} + +static void bbs_set_state(void* p, enum server_state state) { +#if 0 static HANDLE mutex; if(!mutex) mutex=CreateMutex(NULL,false,NULL); WaitForSingleObject(mutex,INFINITE); - - TelnetForm->Status->Caption=AnsiString(str); - - ReleaseMutex(mutex); +#endif + TelnetForm->Status->Caption = server_state_str(state); + + switch(state) { + case SERVER_STOPPED: + MainForm->TelnetStart->Enabled=true; + MainForm->TelnetStop->Enabled=false; + MainForm->TelnetRecycle->Enabled=false; + MainForm->TelnetPause->Enabled=false; + MainForm->TelnetPause->Checked=false; + break; + case SERVER_READY: + MainForm->TelnetStart->Enabled=false; + MainForm->TelnetStop->Enabled=true; + MainForm->TelnetRecycle->Enabled=true; + MainForm->TelnetPause->Enabled=true; + MainForm->TelnetPause->Checked=false; + break; + } } static void bbs_clients(void* p, int clients) @@ -348,30 +376,10 @@ static void bbs_clients(void* p, int clients) ReleaseMutex(mutex); } -static void bbs_terminated(void* p, int code) -{ - Screen->Cursor=crDefault; - MainForm->TelnetStart->Enabled=true; - MainForm->TelnetStop->Enabled=false; - MainForm->TelnetRecycle->Enabled=false; - MainForm->TelnetPause->Enabled=false; - MainForm->TelnetPause->Checked=false; - Application->ProcessMessages(); -} -static void bbs_started(void* p) -{ - Screen->Cursor=crDefault; - MainForm->TelnetStart->Enabled=false; - MainForm->TelnetStop->Enabled=true; - MainForm->TelnetRecycle->Enabled=true; - MainForm->TelnetPause->Enabled=true; - MainForm->TelnetPause->Checked=false; - Application->ProcessMessages(); -} static void bbs_start(void) { - Screen->Cursor=crAppStart; - bbs_status(NULL,"Starting"); +// Screen->Cursor=crAppStart; +// TelnetForm->Status->Caption = "Starting"; FILE* fp=fopen(MainForm->ini_file,"r"); sbbs_read_ini(fp, MainForm->ini_file @@ -427,38 +435,36 @@ static void services_log_msg(log_msg_t* msg) log_msg(ServicesForm->Log, msg); } -static void services_status(void* p, const char *str) +static void services_set_state(void* p, enum server_state state) { +#if 0 static HANDLE mutex; if(!mutex) mutex=CreateMutex(NULL,false,NULL); WaitForSingleObject(mutex,INFINITE); - - ServicesForm->Status->Caption=AnsiString(str); - - ReleaseMutex(mutex); -} - -static void services_terminated(void* p, int code) -{ - Screen->Cursor=crDefault; - MainForm->ServicesStart->Enabled=true; - MainForm->ServicesStop->Enabled=false; - MainForm->ServicesRecycle->Enabled=false; - MainForm->ServicesPause->Enabled=false; - MainForm->ServicesPause->Checked=false; - Application->ProcessMessages(); -} -static void services_started(void* p) -{ - Screen->Cursor=crDefault; - MainForm->ServicesStart->Enabled=false; - MainForm->ServicesStop->Enabled=true; - MainForm->ServicesRecycle->Enabled=true; - MainForm->ServicesPause->Enabled=true; - MainForm->ServicesPause->Checked=false; - Application->ProcessMessages(); +#endif + ServicesForm->Status->Caption = server_state_str(state); + +// Screen->Cursor=crDefault; + switch(state) { + case SERVER_STOPPED: + MainForm->ServicesStart->Enabled=true; + MainForm->ServicesStop->Enabled=false; + MainForm->ServicesRecycle->Enabled=false; + MainForm->ServicesPause->Enabled=false; + MainForm->ServicesPause->Checked=false; + break; + case SERVER_READY: + MainForm->ServicesStart->Enabled=false; + MainForm->ServicesStop->Enabled=true; + MainForm->ServicesRecycle->Enabled=true; + MainForm->ServicesPause->Enabled=true; + MainForm->ServicesPause->Checked=false; + break; + } +// ReleaseMutex(mutex); + // Application->ProcessMessages(); } static void services_clients(void* p, int clients) @@ -505,17 +511,36 @@ static void mail_log_msg(log_msg_t* msg) } } -static void mail_status(void* p, const char *str) +static void mail_set_state(void* p, enum server_state state) { +#if 0 static HANDLE mutex; if(!mutex) mutex=CreateMutex(NULL,false,NULL); WaitForSingleObject(mutex,INFINITE); - - MailForm->Status->Caption=AnsiString(str); - - ReleaseMutex(mutex); +#endif + MailForm->Status->Caption = server_state_str(state); + +// Screen->Cursor=crDefault; + switch(state) { + case SERVER_STOPPED: + MainForm->MailStart->Enabled=true; + MainForm->MailStop->Enabled=false; + MainForm->MailRecycle->Enabled=false; + MainForm->MailPause->Enabled=false; + MainForm->MailPause->Checked=false; + break; + case SERVER_READY: + MainForm->MailStart->Enabled=false; + MainForm->MailStop->Enabled=true; + MainForm->MailRecycle->Enabled=true; + MainForm->MailPause->Enabled=true; + MainForm->MailPause->Checked=false; + break; + } +// ReleaseMutex(mutex); + // Application->ProcessMessages(); } static void mail_clients(void* p, int clients) @@ -532,30 +557,10 @@ static void mail_clients(void* p, int clients) ReleaseMutex(mutex); } -static void mail_terminated(void* p, int code) -{ - Screen->Cursor=crDefault; - MainForm->MailStart->Enabled=true; - MainForm->MailStop->Enabled=false; - MainForm->MailRecycle->Enabled=false; - MainForm->MailPause->Enabled=false; - MainForm->MailPause->Checked=false; - Application->ProcessMessages(); -} -static void mail_started(void* p) -{ - Screen->Cursor=crDefault; - MainForm->MailStart->Enabled=false; - MainForm->MailStop->Enabled=true; - MainForm->MailRecycle->Enabled=true; - MainForm->MailPause->Enabled=true; - MainForm->MailPause->Checked=false; - Application->ProcessMessages(); -} static void mail_start(void) { - Screen->Cursor=crAppStart; - mail_status(NULL, "Starting"); +// Screen->Cursor=crAppStart; +// mail_status(NULL, "Starting"); FILE* fp=fopen(MainForm->ini_file,"r"); sbbs_read_ini(fp, MainForm->ini_file @@ -614,17 +619,36 @@ static void ftp_log_msg(log_msg_t* msg) } } -static void ftp_status(void* p, const char *str) +static void ftp_set_state(void* p, enum server_state state) { +#if 0 static HANDLE mutex; if(!mutex) mutex=CreateMutex(NULL,false,NULL); WaitForSingleObject(mutex,INFINITE); - - FtpForm->Status->Caption=AnsiString(str); - - ReleaseMutex(mutex); +#endif + FtpForm->Status->Caption = server_state_str(state); + +// Screen->Cursor=crDefault; + switch(state) { + case SERVER_STOPPED: + MainForm->FtpStart->Enabled=true; + MainForm->FtpStop->Enabled=false; + MainForm->FtpRecycle->Enabled=false; + MainForm->FtpPause->Enabled=false; + MainForm->FtpPause->Checked=false; + break; + case SERVER_READY: + MainForm->FtpStart->Enabled=false; + MainForm->FtpStop->Enabled=true; + MainForm->FtpRecycle->Enabled=true; + MainForm->FtpPause->Enabled=true; + MainForm->FtpPause->Checked=false; + break; + } +// ReleaseMutex(mutex); + // Application->ProcessMessages(); } static void ftp_clients(void* p, int clients) @@ -641,30 +665,10 @@ static void ftp_clients(void* p, int clients) ReleaseMutex(mutex); } -static void ftp_terminated(void* p, int code) -{ - Screen->Cursor=crDefault; - MainForm->FtpStart->Enabled=true; - MainForm->FtpStop->Enabled=false; - MainForm->FtpRecycle->Enabled=false; - MainForm->FtpPause->Enabled=false; - MainForm->FtpPause->Checked=false; - Application->ProcessMessages(); -} -static void ftp_started(void* p) -{ - Screen->Cursor=crDefault; - MainForm->FtpStart->Enabled=false; - MainForm->FtpStop->Enabled=true; - MainForm->FtpRecycle->Enabled=true; - MainForm->FtpPause->Enabled=true; - MainForm->FtpPause->Checked=false; - Application->ProcessMessages(); -} static void ftp_start(void) { - Screen->Cursor=crAppStart; - ftp_status(NULL, "Starting"); +// Screen->Cursor=crAppStart; +// ftp_status(NULL, "Starting"); FILE* fp=fopen(MainForm->ini_file,"r"); sbbs_read_ini(fp, MainForm->ini_file @@ -696,17 +700,36 @@ static void web_log_msg(log_msg_t* msg) log_msg(WebForm->Log, msg); } -static void web_status(void* p, const char *str) +static void web_set_state(void* p, enum server_state state) { +#if 0 static HANDLE mutex; if(!mutex) mutex=CreateMutex(NULL,false,NULL); WaitForSingleObject(mutex,INFINITE); - - WebForm->Status->Caption=AnsiString(str); - - ReleaseMutex(mutex); +#endif + WebForm->Status->Caption = server_state_str(state); + +// Screen->Cursor=crDefault; + switch(state) { + case SERVER_STOPPED: + MainForm->WebStart->Enabled=true; + MainForm->WebStop->Enabled=false; + MainForm->WebRecycle->Enabled=false; + MainForm->WebPause->Enabled=false; + MainForm->WebPause->Checked=false; + break; + case SERVER_READY: + MainForm->WebStart->Enabled=false; + MainForm->WebStop->Enabled=true; + MainForm->WebRecycle->Enabled=true; + MainForm->WebPause->Enabled=true; + MainForm->WebPause->Checked=false; + break; + } +// ReleaseMutex(mutex); + // Application->ProcessMessages(); } static void web_clients(void* p, int clients) @@ -723,30 +746,10 @@ static void web_clients(void* p, int clients) ReleaseMutex(mutex); } -static void web_terminated(void* p, int code) -{ - Screen->Cursor=crDefault; - MainForm->WebStart->Enabled=true; - MainForm->WebStop->Enabled=false; - MainForm->WebRecycle->Enabled=false; - MainForm->WebPause->Enabled=false; // caused exception - MainForm->WebPause->Checked=false; - Application->ProcessMessages(); -} -static void web_started(void* p) -{ - Screen->Cursor=crDefault; - MainForm->WebStart->Enabled=false; - MainForm->WebStop->Enabled=true; - MainForm->WebRecycle->Enabled=true; - MainForm->WebPause->Enabled=true; - MainForm->WebPause->Checked=false; - Application->ProcessMessages(); -} static void web_start(void) { - Screen->Cursor=crAppStart; - web_status(NULL, "Starting"); +// Screen->Cursor=crAppStart; +// web_status(NULL, "Starting"); FILE* fp=fopen(MainForm->ini_file,"r"); sbbs_read_ini(fp, MainForm->ini_file @@ -848,11 +851,9 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) bbs_startup.lputs=lputs; bbs_startup.event_lputs=lputs; bbs_startup.errormsg=errormsg; - bbs_startup.status=bbs_status; + bbs_startup.set_state=bbs_set_state; bbs_startup.clients=bbs_clients; - bbs_startup.started=bbs_started; bbs_startup.recycle=recycle; - bbs_startup.terminated=bbs_terminated; bbs_startup.thread_up=thread_up; bbs_startup.client_on=client_on; bbs_startup.socket_open=socket_open; @@ -866,11 +867,9 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) mail_startup.pop3_port=110; mail_startup.lputs=lputs; mail_startup.errormsg=errormsg; - mail_startup.status=mail_status; + mail_startup.set_state=mail_set_state; mail_startup.clients=mail_clients; - mail_startup.started=mail_started; mail_startup.recycle=recycle; - mail_startup.terminated=mail_terminated; mail_startup.options=MAIL_OPT_ALLOW_POP3; mail_startup.thread_up=thread_up; mail_startup.client_on=client_on; @@ -888,11 +887,9 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) ftp_startup.port=IPPORT_FTP; ftp_startup.lputs=lputs; ftp_startup.errormsg=errormsg; - ftp_startup.status=ftp_status; + ftp_startup.set_state=ftp_set_state; ftp_startup.clients=ftp_clients; - ftp_startup.started=ftp_started; ftp_startup.recycle=recycle; - ftp_startup.terminated=ftp_terminated; ftp_startup.thread_up=thread_up; ftp_startup.client_on=client_on; ftp_startup.socket_open=socket_open; @@ -907,11 +904,9 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) web_startup.cbdata=&web_log_list; web_startup.lputs=lputs; web_startup.errormsg=errormsg; - web_startup.status=web_status; + web_startup.set_state=web_set_state; web_startup.clients=web_clients; - web_startup.started=web_started; web_startup.recycle=recycle; - web_startup.terminated=web_terminated; web_startup.thread_up=thread_up; web_startup.client_on=client_on; web_startup.socket_open=socket_open; @@ -922,11 +917,9 @@ __fastcall TMainForm::TMainForm(TComponent* Owner) services_startup.cbdata=&services_log_list; services_startup.lputs=lputs; services_startup.errormsg=errormsg; - services_startup.status=services_status; + services_startup.set_state=services_set_state; services_startup.clients=services_clients; - services_startup.started=services_started; services_startup.recycle=recycle; - services_startup.terminated=services_terminated; services_startup.thread_up=thread_up; services_startup.client_on=client_on; services_startup.socket_open=socket_open; @@ -1211,8 +1204,8 @@ void __fastcall TMainForm::ServicesStartExecute(TObject *Sender) { if(StartNTsvc(services_svc,&services_svc_status,services_svc_config,services_svc_config_size)) return; - Screen->Cursor=crAppStart; - services_status(NULL, "Starting"); +// Screen->Cursor=crAppStart; +// services_status(NULL, "Starting"); FILE* fp=fopen(ini_file,"r"); sbbs_read_ini(fp, MainForm->ini_file @@ -1245,8 +1238,8 @@ void __fastcall TMainForm::ServicesStopExecute(TObject *Sender) { if(StopNTsvc(services_svc,&services_svc_status)) return; - Screen->Cursor=crAppStart; - services_status(NULL, "Terminating"); +// Screen->Cursor=crAppStart; +// services_status(NULL, "Terminating"); services_terminate(); Application->ProcessMessages(); } @@ -1256,8 +1249,7 @@ void __fastcall TMainForm::TelnetStopExecute(TObject *Sender) { if(StopNTsvc(bbs_svc,&bbs_svc_status)) return; - Screen->Cursor=crAppStart; - bbs_status(NULL, "Terminating"); +// Screen->Cursor=crAppStart; bbs_terminate(); Application->ProcessMessages(); } @@ -1320,8 +1312,8 @@ void __fastcall TMainForm::MailStopExecute(TObject *Sender) { if(StopNTsvc(mail_svc,&mail_svc_status)) return; - Screen->Cursor=crAppStart; - mail_status(NULL, "Terminating"); +// Screen->Cursor=crAppStart; +// mail_status(NULL, "Terminating"); mail_terminate(); Application->ProcessMessages(); } @@ -1385,8 +1377,8 @@ void __fastcall TMainForm::FtpStopExecute(TObject *Sender) { if(StopNTsvc(ftp_svc,&ftp_svc_status)) return; - Screen->Cursor=crAppStart; - ftp_status(NULL, "Terminating"); +// Screen->Cursor=crAppStart; +// ftp_status(NULL, "Terminating"); ftp_terminate(); Application->ProcessMessages(); } @@ -1415,8 +1407,8 @@ void __fastcall TMainForm::WebStopExecute(TObject *Sender) { if(StopNTsvc(web_svc,&web_svc_status)) return; - Screen->Cursor=crAppStart; - web_status(NULL, "Terminating"); +// Screen->Cursor=crAppStart; +// web_status(NULL, "Terminating"); web_terminate(); Application->ProcessMessages(); }