From 50fb079808cf6ff76fb8213c3469e435774ae42f Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 24 Aug 2008 23:02:03 +0000 Subject: [PATCH] Properly name the windows service error constants and put proper descriptions in the error strings git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10251 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/exitcodes.h | 43 ++++++++++++++++++++----------------------- src/inspircd.cpp | 9 +++------ win/win32service.cpp | 10 +++++----- 3 files changed, 28 insertions(+), 34 deletions(-) diff --git a/include/exitcodes.h b/include/exitcodes.h index 1cb26eec8..66e8d4d72 100644 --- a/include/exitcodes.h +++ b/include/exitcodes.h @@ -18,29 +18,26 @@ */ enum ExitStatus { - EXIT_STATUS_NOERROR = 0, /* No error */ - EXIT_STATUS_DIE = 1, /* Operator issued DIE */ - EXIT_STATUS_FAILED_EXEC = 2, /* execv() failed */ - EXIT_STATUS_INTERNAL = 3, /* Internal error */ - EXIT_STATUS_CONFIG = 4, /* Config error */ - EXIT_STATUS_LOG = 5, /* Log file error */ - EXIT_STATUS_FORK = 6, /* fork() failed */ - EXIT_STATUS_ARGV = 7, /* Invalid program arguments */ - EXIT_STATUS_BIND = 8, /* Port binding failed on all ports */ - EXIT_STATUS_PID = 9, /* Couldn't write PID file */ - EXIT_STATUS_SOCKETENGINE = 10, /* Couldn't start socket engine */ - EXIT_STATUS_ROOT = 11, /* Refusing to start as root */ - EXIT_STATUS_DIETAG = 12, /* Found a die tag in the config file */ - 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_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 */ + EXIT_STATUS_NOERROR = 0, /* No error */ + EXIT_STATUS_DIE = 1, /* Operator issued DIE */ + EXIT_STATUS_FAILED_EXEC = 2, /* execv() failed */ + EXIT_STATUS_INTERNAL = 3, /* Internal error */ + EXIT_STATUS_CONFIG = 4, /* Config error */ + EXIT_STATUS_LOG = 5, /* Log file error */ + EXIT_STATUS_FORK = 6, /* fork() failed */ + EXIT_STATUS_ARGV = 7, /* Invalid program arguments */ + EXIT_STATUS_BIND = 8, /* Port binding failed on all ports */ + EXIT_STATUS_PID = 9, /* Couldn't write PID file */ + EXIT_STATUS_SOCKETENGINE = 10, /* Couldn't start socket engine */ + EXIT_STATUS_ROOT = 11, /* Refusing to start as root */ + EXIT_STATUS_DIETAG = 12, /* Found a die tag in the config file */ + 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_RSCH_FAILED = 17, /* Windows service specific failure, will name these later */ + EXIT_STATUS_UPDATESCM_FAILED = 18, /* Windows service specific failure, will name these later */ + EXIT_STATUS_CREATE_EVENT_FAILED = 19 /* 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 550baa027..3bebbf30d 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -78,12 +78,9 @@ const char* ExitCodes[] = "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 */ + "RegisterServiceCtrlHandler failed", /* 17 */ + "UpdateSCMStatus failed", /* 18 */ + "CreateEvent failed" /* 19 */ }; void InspIRCd::Cleanup() diff --git a/win/win32service.cpp b/win/win32service.cpp index ab1fae140..62d75178c 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(22, GetLastError()); + terminateService(18, GetLastError()); return; } } @@ -184,14 +184,14 @@ VOID ServiceMain(DWORD argc, LPTSTR *argv) serviceStatusHandle = RegisterServiceCtrlHandler("InspIRCd", (LPHANDLER_FUNCTION)ServiceCtrlHandler); if (!serviceStatusHandle) { - terminateService(18, GetLastError()); + terminateService(17, GetLastError()); return; } success = UpdateSCMStatus(SERVICE_START_PENDING, NO_ERROR, 0, 1, 1000); if (!success) { - terminateService(19, GetLastError()); + terminateService(18, GetLastError()); return; } @@ -200,14 +200,14 @@ VOID ServiceMain(DWORD argc, LPTSTR *argv) if (!killServiceEvent || !hThreadEvent) { - terminateService(20, GetLastError()); + terminateService(19, GetLastError()); return; } success = UpdateSCMStatus(SERVICE_START_PENDING, NO_ERROR, 0, 2, 1000); if (!success) { - terminateService(21, GetLastError()); + terminateService(18, GetLastError()); return; } -- 2.39.2