From 1cbead747c938b98fb309d8b7d616b4fe318d53e Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Thu, 19 May 2011 17:20:24 +0000
Subject: [PATCH] Fix OPENDJ-161 - Rebranding Windows service integration to OpenDJ
---
opends/src/build-tools/windows/service.c | 74 ++++++++++++++++++++----------------
1 files changed, 41 insertions(+), 33 deletions(-)
diff --git a/opends/src/build-tools/windows/service.c b/opends/src/build-tools/windows/service.c
index 7102901..fad6a83 100644
--- a/opends/src/build-tools/windows/service.c
+++ b/opends/src/build-tools/windows/service.c
@@ -23,6 +23,7 @@
*
*
* Copyright 2008-2010 Sun Microsystems, Inc.
+* Portions Copyright 2011 ForgeRock AS
*/
#include "service.h"
@@ -94,7 +95,7 @@
reportOk = ReportEvent(
_eventLog, // event log handle
eventType, // info, warning, error
- WIN_FACILITY_NAME_OPENDS, // unique category for OPENDS
+ WIN_FACILITY_NAME_OPENDJ, // unique category for OPENDJ
eventId,
NULL, // no user security identifier
argCount, // number of args
@@ -109,7 +110,7 @@
reportOk = ReportEvent(
_eventLog, // event log handle
eventType, // info, warning, error
- WIN_FACILITY_NAME_OPENDS, // unique category for OPENDS
+ WIN_FACILITY_NAME_OPENDJ, // unique category for OPENDJ
eventId,
NULL, // no user security identifier
argCount, // number of args
@@ -298,7 +299,7 @@
}
}
- // Set the number of categories: 1 (OPENDS)
+ // Set the number of categories: 1 (OPENDJ)
if (success)
{
long result = RegSetValueEx(
@@ -522,7 +523,7 @@
BOOL createOk;
BOOL waitOk;
- debug("doStartApplication called");
+ debug("doStartApplication");
if (strlen(relativePath)+strlen(_instanceDir)+1 < COMMAND_SIZE)
{
@@ -538,11 +539,11 @@
// startup is deleted (file logs\server.starting).
const DWORD STARTDS_WAIT_DEFAULT_VALUE = 300000;
DWORD wait = STARTDS_WAIT_DEFAULT_VALUE;
- char * nWaitForStartDS = getenv("OPENDS_WINDOWS_SERVICE_STARTDS_WAIT");
+ char * nWaitForStartDS = getenv("OPENDJ_WINDOWS_SERVICE_STARTDS_WAIT");
DWORD startDSExit;
if (nWaitForStartDS != NULL)
{
- debug("doStartApplication: OPENDS_WINDOWS_SERVICE_STARTDS_WAIT env var set to %s",
+ debug("doStartApplication: OPENDJ_WINDOWS_SERVICE_STARTDS_WAIT env var set to %s",
nWaitForStartDS);
wait = (int)strtol(nWaitForStartDS, (char **)NULL, 10);
if (wait <= 0)
@@ -552,7 +553,7 @@
}
else
{
- debug("doStartApplication: OPENDS_WINDOWS_SERVICE_STARTDS_WAIT is not set. Using default %d milliseconds.",
+ debug("doStartApplication: OPENDJ_WINDOWS_SERVICE_STARTDS_WAIT is not set. Using default %d milliseconds.",
STARTDS_WAIT_DEFAULT_VALUE);
}
waitOk = waitForProcess(&procInfo, wait, &startDSExit);
@@ -594,11 +595,11 @@
// Try to see if server is really running
const DWORD DEFAULT_TRIES = 100;
int nTries = DEFAULT_TRIES;
- char * nTriesEnv = getenv("OPENDS_WINDOWS_SERVICE_START_NTRIES");
+ char * nTriesEnv = getenv("OPENDJ_WINDOWS_SERVICE_START_NTRIES");
BOOL running = FALSE;
if (nTriesEnv != NULL)
{
- debug("OPENDS_WINDOWS_SERVICE_START_NTRIES env var set to %s", nTriesEnv);
+ debug("OPENDJ_WINDOWS_SERVICE_START_NTRIES env var set to %s", nTriesEnv);
nTries = (int)strtol(nTriesEnv, (char **)NULL, 10);
if (nTries <= 0)
{
@@ -607,7 +608,7 @@
}
else
{
- debug("OPENDS_WINDOWS_SERVICE_START_NTRIES is not set. Using default %d tries.", nTries);
+ debug("OPENDJ_WINDOWS_SERVICE_START_NTRIES is not set. Using default %d tries.", nTries);
}
debug(
@@ -667,6 +668,8 @@
// init out params
char* relativePath = "\\bat\\stop-ds.bat";
char command[COMMAND_SIZE];
+
+ debug("doStopApplication");
if (strlen(relativePath)+strlen(_instanceDir)+1 < COMMAND_SIZE)
{
sprintf(command, "\"%s%s\" --windowsNetStop", _instanceDir, relativePath);
@@ -725,7 +728,7 @@
// serviceBinPath the path to the service binary.
// instanceDir the instanceDirectory.
// The string stored in serviceBinPath looks like
-// <SERVER_ROOT>/lib/opends_service.exe start <_instanceDir>
+// <SERVER_ROOT>/lib/opendj_service.exe start <_instanceDir>
// It is up to the caller of the function to allocate
// at least COMMAND_SIZE bytes in serviceBinPath.
// The function returns SERVICE_RETURN_OK if we could create the binary
@@ -748,7 +751,7 @@
{
// failed to get the path of the executable file
returnValue = SERVICE_RETURN_ERROR;
- debug("Could not get the path of the executable file.");
+ debug("Could not get the path of the executable file.");
}
else
{
@@ -978,7 +981,7 @@
// __debugbreak();
- debug("serviceMain called.");
+ debug("serviceMain");
code = createServiceBinPath(cmdToRun);
@@ -1055,7 +1058,7 @@
break;
default:
- debugError("doApplication() failed");
+ debugError("serviceMain: doStartApplication() failed");
code = SERVICE_RETURN_ERROR;
_serviceCurStatus = SERVICE_STOPPED;
updateServiceStatus (
@@ -1089,7 +1092,7 @@
BOOL updatedRunningStatus = FALSE;
DWORD returnValue;
int refreshPeriodSeconds = 10;
- char *refreshPeriodEnv = getenv("OPENDS_WINDOWS_SERVICE_REFRESH_PERIOD");
+ char *refreshPeriodEnv = getenv("OPENDJ_WINDOWS_SERVICE_REFRESH_PERIOD");
if (refreshPeriodEnv != NULL)
{
refreshPeriodSeconds = (int)strtol(refreshPeriodEnv, (char **)NULL, 10);
@@ -1188,7 +1191,7 @@
_serviceStatusHandle
);
}
- debug("serviceMain() returning.");
+ debug("serviceMain returning.");
} // serviceMain
@@ -1269,7 +1272,7 @@
{
WORD argCount = 1;
const char *argc[] = {_instanceDir};
- debug("The server could not be stopped.");
+ debug("serviceHandler: The server could not be stopped.");
// We could not stop the server
reportLogEvent(
EVENTLOG_ERROR_TYPE,
@@ -1329,7 +1332,7 @@
break;
}
-
+ debug("serviceHandler returning.");
} // serviceHandler
// ---------------------------------------------------------------
@@ -1371,7 +1374,7 @@
if (myService == NULL)
{
- debugError("Failed to open the service '%s'.", serviceName);
+ debugError("getBinaryPathName: Failed to open the service '%s'.", serviceName);
}
else
{
@@ -1399,7 +1402,7 @@
}
else
{
- debug("getBinaryPath: error calling QueryServiceConfig. Code [%d]",
+ debug("getBinaryPathName: error calling QueryServiceConfig. Code [%d]",
errCode);
break;
}
@@ -1413,11 +1416,16 @@
}
else
{
- debug("getBinaryPath: the length of the binary path name is too big. serviceName='%s', binaryPath='%s'",
+ debug("getBinaryPathName: the length of the binary path name is too big. serviceName='%s', binaryPath='%s'",
serviceName, serviceConfig->lpBinaryPathName);
}
}
}
+ if (!CloseServiceHandle(myService))
+ {
+ debug("getBinaryPathName: error closing handle of service. Code [%d]",
+ GetLastError());
+ }
}
// free buffers
@@ -1635,9 +1643,9 @@
} // serviceNameInUse
// ---------------------------------------------------------------
-// Build a service name for OpenDS and make sure
+// Build a service name for OpenDJ and make sure
// the service name is unique on the system. To achieve this requirement
-// the service name looks like <baseName> for the first OpenDS and
+// the service name looks like <baseName> for the first OpenDJ and
// <baseName>-n if there are more than one.
//
// The functions returns SERVICE_RETURN_OK if we could create a service
@@ -1945,7 +1953,7 @@
// ---------------------------------------------------------------
-// Function called to create a service for the OpenDS instance
+// Function called to create a service for the OpenDJ instance
// where this executable is installed.
// The first argument that is passed is the displayName of the service
// and the second the description,
@@ -1973,7 +1981,7 @@
{
debug("Service '%s' already exists.", displayName);
// There is a valid serviceName for the command to run, so
- // OpenDS is registered as a service.
+ // OpenDJ is registered as a service.
code = SERVICE_ALREADY_EXISTS;
createRegistryKey(serviceName);
}
@@ -2024,7 +2032,7 @@
} // createService
// ---------------------------------------------------------------
-// Function called to know if the OpenDS instance where this
+// Function called to know if the OpenDJ instance where this
// executable is installed is running as a service or not.
// Returns 0 if the instance is running as a service and print the
// serviceName in the standard output.
@@ -2052,7 +2060,7 @@
if (code == SERVICE_RETURN_OK)
{
// There is a valid serviceName for the command to run, so
- // OpenDS is registered as a service.
+ // OpenDJ is registered as a service.
fprintf(stdout, serviceName);
returnCode = 0;
debug("Service '%s' is enabled.", serviceName);
@@ -2086,7 +2094,7 @@
int returnCode = 0;
ServiceReturnCode code = serviceNameInUse(serviceName);
- debug("Removing service.");
+ debug("Removing service with name %s.", serviceName);
if (code != SERVICE_IN_USE)
{
@@ -2119,7 +2127,7 @@
} // removeServiceWithServiceName
// ---------------------------------------------------------------
-// Function called to remove the service for the OpenDS instance
+// Function called to remove the service for the OpenDJ instance
// where this executable is installed.
// Returns 0 if the service was successfully removed.
// Returns 1 if the service does not exist.
@@ -2134,7 +2142,7 @@
char serviceName[MAX_SERVICE_NAME];
ServiceReturnCode code;
- debug("removeService()");
+ debug("removeService");
code = createServiceBinPath(cmdToRun);
if (code == SERVICE_RETURN_OK)
@@ -2154,7 +2162,7 @@
returnCode = 2;
}
- debug("removeService() returning %d.", returnCode);
+ debug("removeService returning %d.", returnCode);
return returnCode;
} // removeService
@@ -2173,7 +2181,7 @@
char cmdToRun[COMMAND_SIZE];
ServiceReturnCode code;
- debug("startService()");
+ debug("startService");
code = createServiceBinPath(cmdToRun);
if (code == SERVICE_RETURN_OK)
@@ -2229,7 +2237,7 @@
WIN_EVENT_ID_SERVER_START_FAILED,
argCount, argc
);
- debugError("For instance dir '%s', %s", argc[0], argc[1]);
+ debugError("startService: For instance dir '%s', %s", argc[0], argc[1]);
}
deregisterEventLog();
}
--
Gitblit v1.10.0