summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/exitcodes.h8
-rw-r--r--src/inspircd.cpp7
-rw-r--r--win/win32service.cpp10
3 files changed, 19 insertions, 6 deletions
diff --git a/include/exitcodes.h b/include/exitcodes.h
index d9658bd5b..bb1fa47e8 100644
--- a/include/exitcodes.h
+++ b/include/exitcodes.h
@@ -34,7 +34,13 @@ enum ExitStatus
EXIT_STATUS_MODULE = 13, /* Couldn't load a required module */
EXIT_STATUS_CREATEPROCESS = 14, /* CreateProcess failed (windows) */
EXIT_STATUS_SIGTERM = 15, /* Note: dont move this value. It corresponds with the value of #define SIGTERM. */
- EXIT_STATUS_BADHANDLER = 16 /* Bad command handler loaded */
+ EXIT_STATUS_BADHANDLER = 16, /* Bad command handler loaded */
+ EXIT_STATUS_WINSERVICE_1 = 17, /* Windows service specific failure, will name these later */
+ EXIT_STATUS_WINSERVICE_2 = 18, /* Windows service specific failure, will name these later */
+ EXIT_STATUS_WINSERVICE_3 = 19, /* Windows service specific failure, will name these later */
+ EXIT_STATUS_WINSERVICE_4 = 20, /* Windows service specific failure, will name these later */
+ EXIT_STATUS_WINSERVICE_5 = 21, /* Windows service specific failure, will name these later */
+ EXIT_STATUS_WINSERVICE_6 = 22, /* Windows service specific failure, will name these later */
};
/** Array that maps exit codes (ExitStatus types) to
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index dab49ddf0..550baa027 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -77,6 +77,13 @@ const char* ExitCodes[] =
"Couldn't load module on startup", /* 13 */
"Could not create windows forked process", /* 14 */
"Received SIGTERM", /* 15 */
+ "Bad command handler loaded", /* 16 */
+ "Windows service specific error 1", /* 17 - Dont know what to call these yet, will give them */
+ "Windows service specific error 2", /* 18 - better descriptions later on */
+ "Windows service specific error 3", /* 19 */
+ "Windows service specific error 4", /* 20 */
+ "Windows service specific error 5", /* 21 */
+ "Windows service specific error 6" /* 22 */
};
void InspIRCd::Cleanup()
diff --git a/win/win32service.cpp b/win/win32service.cpp
index 42eaa998b..ab1fae140 100644
--- a/win/win32service.cpp
+++ b/win/win32service.cpp
@@ -84,7 +84,7 @@ void SetServiceRunning()
BOOL success = UpdateSCMStatus(SERVICE_RUNNING, NO_ERROR, 0, 0, 0);
if (!success)
{
- terminateService(6, GetLastError());
+ terminateService(22, GetLastError());
return;
}
}
@@ -184,14 +184,14 @@ VOID ServiceMain(DWORD argc, LPTSTR *argv)
serviceStatusHandle = RegisterServiceCtrlHandler("InspIRCd", (LPHANDLER_FUNCTION)ServiceCtrlHandler);
if (!serviceStatusHandle)
{
- terminateService(1, GetLastError());
+ terminateService(18, GetLastError());
return;
}
success = UpdateSCMStatus(SERVICE_START_PENDING, NO_ERROR, 0, 1, 1000);
if (!success)
{
- terminateService(2, GetLastError());
+ terminateService(19, GetLastError());
return;
}
@@ -200,14 +200,14 @@ VOID ServiceMain(DWORD argc, LPTSTR *argv)
if (!killServiceEvent || !hThreadEvent)
{
- terminateService(99, GetLastError());
+ terminateService(20, GetLastError());
return;
}
success = UpdateSCMStatus(SERVICE_START_PENDING, NO_ERROR, 0, 2, 1000);
if (!success)
{
- terminateService(2, GetLastError());
+ terminateService(21, GetLastError());
return;
}