aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar brain2008-08-24 21:05:15 +0000
committerGravatar brain2008-08-24 21:05:15 +0000
commit3229dee5bb0bd1e13f30752ccae556513b5cdcac (patch)
tree58622fddfb4b6f425a94176e1106433ab6936468
parentProperly give the service specific exit code on failure to start. Now we just... (diff)
No names for the service specific errors, probably wont ever name them as theyre never shown in linux
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10245 e03df62e-2008-0410-955e-edbf42e46eb7
-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;
}