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

Addded recycle semaphore to startup structures for inter-process server

recycling without using semaphore files.
parent 85f9cf2a
No related branches found
No related tags found
No related merge requests found
......@@ -74,6 +74,7 @@ typedef struct {
char* display_name;
char* description;
void* startup;
HANDLE* recycle_sem;
void (*thread)(void* arg);
void (WINAPI *ctrl_handler)(DWORD);
HANDLE log_handle;
......@@ -89,6 +90,7 @@ sbbs_ntsvc_t bbs ={
"Provides support for Telnet and RLogin clients and executes timed events. " \
"This service provides the critical functions of your Synchronet BBS.",
&bbs_startup,
&bbs_startup.recycle_sem,
bbs_thread,
bbs_ctrl_handler,
INVALID_HANDLE_VALUE
......@@ -102,6 +104,7 @@ sbbs_ntsvc_t event ={
NULL,
NULL,
NULL,
NULL,
INVALID_HANDLE_VALUE
};
......@@ -110,6 +113,7 @@ sbbs_ntsvc_t ftp = {
"Synchronet FTP Server",
"Provides support for FTP clients (including web browsers) for file transfers.",
&ftp_startup,
&ftp_startup.recycle_sem,
ftp_server,
ftp_ctrl_handler,
INVALID_HANDLE_VALUE
......@@ -121,6 +125,7 @@ sbbs_ntsvc_t web = {
"Synchronet Web Server",
"Provides support for Web (HTML/HTTP) clients (browsers).",
&web_startup,
&web_startup.recycle_sem,
web_server,
web_ctrl_handler,
INVALID_HANDLE_VALUE
......@@ -133,6 +138,7 @@ sbbs_ntsvc_t mail = {
"Sends and receives Internet e-mail (using SMTP) and allows users to remotely " \
"access their e-mail using an Internet mail client (using POP3).",
&mail_startup,
&mail_startup.recycle_sem,
mail_server,
mail_ctrl_handler,
INVALID_HANDLE_VALUE
......@@ -146,6 +152,7 @@ sbbs_ntsvc_t services = {
"Stock services include Finger, Gopher, NNTP, and IRC. Edit your ctrl/services.ini " \
"file for configuration of individual Synchronet Services.",
&services_startup,
&services_startup.recycle_sem,
services_thread,
services_ctrl_handler,
INVALID_HANDLE_VALUE
......@@ -377,6 +384,10 @@ static void WINAPI svc_start(sbbs_ntsvc_t* svc, DWORD argc, LPTSTR *argv)
return;
}
if(svc->recycle_sem!=NULL
&& ((*svc->recycle_sem)=CreateSemaphore(NULL,0,1,svc->name))==NULL)
svc_lputs(svc,"!Error creating recycle semaphore");
memset(&svc->status,0,sizeof(SERVICE_STATUS));
svc->status.dwServiceType=SERVICE_WIN32_SHARE_PROCESS;
svc->status.dwControlsAccepted=SERVICE_ACCEPT_SHUTDOWN;
......
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