You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by mt...@apache.org on 2006/12/03 09:47:33 UTC
svn commit: r481737 - in
/jakarta/commons/proper/daemon/trunk/src/native/nt/procrun:
apps/prunsrv/prunsrv.c apps/prunsrv/prunsrv.dsp libprocrun.dsp src/service.c
Author: mturk
Date: Sun Dec 3 00:47:32 2006
New Revision: 481737
URL: http://svn.apache.org/viewvc?view=rev&rev=481737
Log:
Added --ServiceUser and --ServicePassword params
Modified:
jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.c
jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.dsp
jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/libprocrun.dsp
jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/service.c
Modified: jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.c
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.c?view=diff&rev=481737&r1=481736&r2=481737
==============================================================================
--- jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.c (original)
+++ jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.c Sun Dec 3 00:47:32 2006
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
+
/* ====================================================================
* prunsrv -- Service Runner.
* Contributed by Mladen Turk <mt...@apache.org>
* 05 Aug 2003
- * ====================================================================
+ * ====================================================================
*/
/* Force the JNI vprintf functions */
@@ -74,40 +74,42 @@
/* 0 */ { L"Description", L"Description", NULL, APXCMDOPT_STR | APXCMDOPT_SRV, NULL, 0},
/* 1 */ { L"DisplayName", L"DisplayName", NULL, APXCMDOPT_STR | APXCMDOPT_SRV, NULL, 0},
/* 2 */ { L"Install", L"ImagePath", NULL, APXCMDOPT_STE | APXCMDOPT_SRV, NULL, 0},
-/* 3 */ { L"Startup", L"Startup", NULL, APXCMDOPT_STR | APXCMDOPT_SRV, NULL, 0},
-/* 4 */ { L"DependsOn", L"DependsOn", NULL, APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
-/* 5 */ { L"Environment", L"Environment", NULL, APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
-/* 6 */ { L"User", L"User", NULL, APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 7 */ { L"Password", L"Password", NULL, APXCMDOPT_BIN | APXCMDOPT_REG, NULL, 0},
-
-/* 8 */ { L"JavaHome", L"JavaHome", L"Java", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 9 */ { L"Jvm", L"Jvm", L"Java", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 10 */ { L"JvmOptions", L"Options", L"Java", APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
-/* 11 */ { L"Classpath", L"Classpath", L"Java", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 12 */ { L"JvmMs", L"JvmMs", L"Java", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
-/* 13 */ { L"JvmMx", L"JvmMx", L"Java", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
-/* 14 */ { L"JvmSs", L"JvmSs", L"Java", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
-
-/* 15 */ { L"StopImage", L"Image", L"Stop", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 16 */ { L"StopPath", L"WorkingPath", L"Stop", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 17 */ { L"StopClass", L"Class", L"Stop", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 18 */ { L"StopParams", L"Params", L"Stop", APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
-/* 19 */ { L"StopMethod", L"Method", L"Stop", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 20 */ { L"StopMode", L"Mode", L"Stop", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 21 */ { L"StopTimeout", L"Timeout", L"Stop", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
-
-/* 22 */ { L"StartImage", L"Image", L"Start", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 23 */ { L"StartPath", L"WorkingPath", L"Start", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 24 */ { L"StartClass", L"Class", L"Start", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 25 */ { L"StartParams", L"Params", L"Start", APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
-/* 26 */ { L"StartMethod", L"Method", L"Start", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 27 */ { L"StartMode", L"Mode", L"Start", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-
-/* 28 */ { L"LogPath", L"Path", L"Log", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 29 */ { L"LogPrefix", L"Prefix", L"Log", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 30 */ { L"LogLevel", L"Level", L"Log", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
-/* 31 */ { L"StdError", L"StdError", L"Log", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
-/* 32 */ { L"StdOutput", L"StdOutput", L"Log", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 3 */ { L"ServiceUser", L"ServiceUser", NULL, APXCMDOPT_STR | APXCMDOPT_SRV, NULL, 0},
+/* 4 */ { L"ServicePassword", L"ServicePassword", NULL, APXCMDOPT_STR | APXCMDOPT_SRV, NULL, 0},
+/* 5 */ { L"Startup", L"Startup", NULL, APXCMDOPT_STR | APXCMDOPT_SRV, NULL, 0},
+/* 6 */ { L"DependsOn", L"DependsOn", NULL, APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
+/* 7 */ { L"Environment", L"Environment", NULL, APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
+/* 8 */ { L"User", L"User", NULL, APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 9 */ { L"Password", L"Password", NULL, APXCMDOPT_BIN | APXCMDOPT_REG, NULL, 0},
+
+/* 10 */ { L"JavaHome", L"JavaHome", L"Java", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 11 */ { L"Jvm", L"Jvm", L"Java", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 12 */ { L"JvmOptions", L"Options", L"Java", APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
+/* 13 */ { L"Classpath", L"Classpath", L"Java", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 14 */ { L"JvmMs", L"JvmMs", L"Java", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
+/* 15 */ { L"JvmMx", L"JvmMx", L"Java", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
+/* 16 */ { L"JvmSs", L"JvmSs", L"Java", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
+
+/* 17 */ { L"StopImage", L"Image", L"Stop", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 18 */ { L"StopPath", L"WorkingPath", L"Stop", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 19 */ { L"StopClass", L"Class", L"Stop", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 20 */ { L"StopParams", L"Params", L"Stop", APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
+/* 21 */ { L"StopMethod", L"Method", L"Stop", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 22 */ { L"StopMode", L"Mode", L"Stop", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 23 */ { L"StopTimeout", L"Timeout", L"Stop", APXCMDOPT_INT | APXCMDOPT_REG, NULL, 0},
+
+/* 24 */ { L"StartImage", L"Image", L"Start", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 25 */ { L"StartPath", L"WorkingPath", L"Start", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 26 */ { L"StartClass", L"Class", L"Start", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 27 */ { L"StartParams", L"Params", L"Start", APXCMDOPT_MSZ | APXCMDOPT_REG, NULL, 0},
+/* 28 */ { L"StartMethod", L"Method", L"Start", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 29 */ { L"StartMode", L"Mode", L"Start", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+
+/* 30 */ { L"LogPath", L"Path", L"Log", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 31 */ { L"LogPrefix", L"Prefix", L"Log", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 32 */ { L"LogLevel", L"Level", L"Log", APXCMDOPT_STR | APXCMDOPT_REG, NULL, 0},
+/* 33 */ { L"StdError", L"StdError", L"Log", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
+/* 34 */ { L"StdOutput", L"StdOutput", L"Log", APXCMDOPT_STE | APXCMDOPT_REG, NULL, 0},
/* NULL terminate the array */
{ NULL }
};
@@ -119,47 +121,52 @@
#define ST_DESCRIPTION GET_OPT_T(0)
#define ST_DISPLAYNAME GET_OPT_T(1)
#define ST_INSTALL GET_OPT_T(2)
-#define ST_STARTUP GET_OPT_T(3)
+#define ST_SUSER GET_OPT_T(3)
+#define ST_SPASSWORD GET_OPT_T(4)
+#define ST_STARTUP GET_OPT_T(5)
#define SO_DESCRIPTION GET_OPT_V(0)
#define SO_DISPLAYNAME GET_OPT_V(1)
#define SO_INSTALL GET_OPT_V(2)
-#define SO_STARTUP GET_OPT_V(3)
-#define SO_DEPENDSON GET_OPT_V(4)
-#define SO_ENVIRONMENT GET_OPT_V(5)
-
-#define SO_USER GET_OPT_V(6)
-#define SO_PASSWORD GET_OPT_V(7)
-
-#define SO_JAVAHOME GET_OPT_V(8)
-#define SO_JVM GET_OPT_V(9)
-#define SO_JVMOPTIONS GET_OPT_V(10)
-#define SO_CLASSPATH GET_OPT_V(11)
-#define SO_JVMMS GET_OPT_I(12)
-#define SO_JVMMX GET_OPT_I(13)
-#define SO_JVMSS GET_OPT_I(14)
-
-#define SO_STOPIMAGE GET_OPT_V(15)
-#define SO_STOPPATH GET_OPT_V(16)
-#define SO_STOPCLASS GET_OPT_V(17)
-#define SO_STOPPARAMS GET_OPT_V(18)
-#define SO_STOPMETHOD GET_OPT_V(19)
-#define SO_STOPMODE GET_OPT_V(20)
-#define SO_STOPTIMEOUT GET_OPT_I(21)
-
-#define SO_STARTIMAGE GET_OPT_V(22)
-#define SO_STARTPATH GET_OPT_V(23)
-#define SO_STARTCLASS GET_OPT_V(24)
-#define SO_STARTPARAMS GET_OPT_V(25)
-#define SO_STARTMETHOD GET_OPT_V(26)
-#define SO_STARTMODE GET_OPT_V(27)
-
-#define SO_LOGPATH GET_OPT_V(28)
-#define SO_LOGPREFIX GET_OPT_V(29)
-#define SO_LOGLEVEL GET_OPT_V(30)
+#define SO_SUSER GET_OPT_V(3)
+#define SO_SPASSWORD GET_OPT_V(4)
+
+#define SO_STARTUP GET_OPT_V(5)
+#define SO_DEPENDSON GET_OPT_V(6)
+#define SO_ENVIRONMENT GET_OPT_V(7)
+
+#define SO_USER GET_OPT_V(8)
+#define SO_PASSWORD GET_OPT_V(9)
+
+#define SO_JAVAHOME GET_OPT_V(10)
+#define SO_JVM GET_OPT_V(11)
+#define SO_JVMOPTIONS GET_OPT_V(12)
+#define SO_CLASSPATH GET_OPT_V(13)
+#define SO_JVMMS GET_OPT_I(14)
+#define SO_JVMMX GET_OPT_I(15)
+#define SO_JVMSS GET_OPT_I(16)
+
+#define SO_STOPIMAGE GET_OPT_V(17)
+#define SO_STOPPATH GET_OPT_V(18)
+#define SO_STOPCLASS GET_OPT_V(19)
+#define SO_STOPPARAMS GET_OPT_V(20)
+#define SO_STOPMETHOD GET_OPT_V(21)
+#define SO_STOPMODE GET_OPT_V(22)
+#define SO_STOPTIMEOUT GET_OPT_I(23)
+
+#define SO_STARTIMAGE GET_OPT_V(24)
+#define SO_STARTPATH GET_OPT_V(25)
+#define SO_STARTCLASS GET_OPT_V(26)
+#define SO_STARTPARAMS GET_OPT_V(27)
+#define SO_STARTMETHOD GET_OPT_V(28)
+#define SO_STARTMODE GET_OPT_V(29)
+
+#define SO_LOGPATH GET_OPT_V(20)
+#define SO_LOGPREFIX GET_OPT_V(31)
+#define SO_LOGLEVEL GET_OPT_V(32)
-#define SO_STDERROR GET_OPT_V(31)
-#define SO_STDOUTPUT GET_OPT_V(32)
+#define SO_STDERROR GET_OPT_V(33)
+#define SO_STDOUTPUT GET_OPT_V(34)
/* Main servic table entry
* filled at run-time
@@ -168,9 +175,9 @@
{NULL, NULL},
{NULL, NULL}
};
-
-static SERVICE_STATUS _service_status;
-static SERVICE_STATUS_HANDLE _service_status_handle = NULL;
+
+static SERVICE_STATUS _service_status;
+static SERVICE_STATUS_HANDLE _service_status_handle = NULL;
/* Set if launched by SCM */
static BOOL _service_mode = FALSE;
/* JVM used as worker */
@@ -214,7 +221,7 @@
return 0;
}
-/* redirect console stdout/stderr to files
+/* redirect console stdout/stderr to files
* so that java messages can get logged
* If stderrfile is not specified it will
* go to stdoutfile.
@@ -224,10 +231,10 @@
BOOL aErr = FALSE;
BOOL aOut = FALSE;
- /* Clear up the handles */
+ /* Clear up the handles */
lpWrapper->fpStdErrFile = NULL;
lpWrapper->fpStdOutFile = NULL;
-
+
/* Save the original streams */
lpWrapper->fpStdOutSave = *stdout;
lpWrapper->fpStdErrSave = *stderr;
@@ -260,12 +267,12 @@
}
else {
lpWrapper->hStdOutFile = CreateFileW(L"CONOUT$",
- GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
+ GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
- NULL);
+ NULL);
if (IS_INVALID_HANDLE(lpWrapper->hStdOutFile))
return FALSE;
}
@@ -298,7 +305,7 @@
else {
lpWrapper->hStdErrFile = lpWrapper->hStdOutFile;
}
- /* Open the stream buffers
+ /* Open the stream buffers
* This will redirect all printf to go to the redirected files.
* It is used for JNI vprintf functionality.
*/
@@ -377,7 +384,7 @@
if (!SO_ENVIRONMENT)
return; /* Nothing to do */
-
+
for (p = SO_ENVIRONMENT; *p; p++) {
e = apxExpandStrW(gPool, p);
_wputenv(e);
@@ -456,7 +463,7 @@
++i;
}
apxCloseHandle(hRegistry);
-#ifdef _DEBUG
+#ifdef _DEBUG
dumpCmdline();
#endif
return TRUE;
@@ -510,7 +517,7 @@
BOOL rv;
DWORD dwStart = SERVICE_DEMAND_START;
WCHAR szImage[SIZ_HUGLEN];
-
+
apxLogWrite(APXLOG_MARK_DEBUG "Installing service...");
hService = apxCreateService(gPool, SC_MANAGER_CREATE_SERVICE, FALSE);
if (IS_INVALID_HANDLE(hService)) {
@@ -542,21 +549,36 @@
/* Display configured options */
dumpCmdline();
#endif
- apxLogWrite(APXLOG_MARK_INFO "Service %S name %S", lpCmdline->szApplication,
+ apxLogWrite(APXLOG_MARK_INFO "Service %S name %S", lpCmdline->szApplication,
SO_DISPLAYNAME);
- rv = apxServiceInstall(hService,
+ rv = apxServiceInstall(hService,
lpCmdline->szApplication,
SO_DISPLAYNAME, /* --DisplayName */
- SO_INSTALL,
+ SO_INSTALL,
SO_DEPENDSON, /* --DependendsOn */
SERVICE_WIN32_OWN_PROCESS,
dwStart);
/* Set the --Description */
- if (rv && (ST_DESCRIPTION & APXCMDOPT_FOUND)) {
- apxLogWrite(APXLOG_MARK_DEBUG "Setting service description %S",
- SO_DESCRIPTION);
- apxServiceSetNames(hService, NULL, NULL, SO_DESCRIPTION,
- NULL, NULL);
+ if (rv) {
+ LPCWSTR sd = NULL;
+ LPCWSTR su = NULL;
+ LPCWSTR sp = NULL;
+ if (ST_DESCRIPTION & APXCMDOPT_FOUND) {
+ sd = SO_DESCRIPTION;
+ apxLogWrite(APXLOG_MARK_DEBUG "Setting service description %S",
+ SO_DESCRIPTION);
+ }
+ if (ST_SUSER & APXCMDOPT_FOUND) {
+ su = SO_SUSER;
+ apxLogWrite(APXLOG_MARK_DEBUG "Setting service user %S",
+ SO_SUSER);
+ }
+ if (ST_SPASSWORD & APXCMDOPT_FOUND) {
+ sp = SO_SPASSWORD;
+ apxLogWrite(APXLOG_MARK_DEBUG "Setting service password %S",
+ SO_SPASSWORD);
+ }
+ apxServiceSetNames(hService, NULL, NULL, sd, su, sp);
}
apxCloseHandle(hService);
if (rv) {
@@ -678,7 +700,7 @@
SERVICE_NO_CHANGE,
dwStart,
SERVICE_NO_CHANGE);
-
+
}
apxLogWrite(APXLOG_MARK_INFO "Service %S updated",
lpCmdline->szApplication);
@@ -703,7 +725,7 @@
static DWORD dwCheckPoint = 1;
BOOL fResult = TRUE;
- if (_service_mode && _service_status_handle) {
+ if (_service_mode && _service_status_handle) {
if (dwCurrentState == SERVICE_START_PENDING)
_service_status.dwControlsAccepted = 0;
else
@@ -760,7 +782,7 @@
}
if (_jni_shutdown) {
if (!SO_STARTPATH && SO_STOPPATH) {
- /* If the Working path is specified change the current directory
+ /* If the Working path is specified change the current directory
* but only if the start path wasn't specified already.
*/
SetCurrentDirectoryW(SO_STARTPATH);
@@ -790,16 +812,16 @@
}
else {
apxLogWrite(APXLOG_MARK_DEBUG "Waiting for java jni stop worker to finish...");
- apxJavaWait(hWorker, INFINITE, FALSE);
+ apxJavaWait(hWorker, INFINITE, FALSE);
apxLogWrite(APXLOG_MARK_DEBUG "Java jni stop worker finished.");
}
wait_to_die = TRUE;
- }
+ }
else if (SO_STOPMODE) { /* Only in case we have a stop mode */
DWORD nArgs;
LPWSTR *pArgs;
/* Redirect process */
- hWorker = apxCreateProcessW(gPool,
+ hWorker = apxCreateProcessW(gPool,
0,
child_callback,
SO_USER,
@@ -832,7 +854,7 @@
SO_STOPPATH);
goto cleanup;
}
- /* Finally execute the child process
+ /* Finally execute the child process
*/
if (!apxProcessExecute(hWorker)) {
rv = 5;
@@ -840,7 +862,7 @@
goto cleanup;
} else {
apxLogWrite(APXLOG_MARK_DEBUG "Waiting stop worker to finish...");
- apxHandleWait(hWorker, INFINITE, FALSE);
+ apxHandleWait(hWorker, INFINITE, FALSE);
apxLogWrite(APXLOG_MARK_DEBUG "Stop worker finished.");
}
wait_to_die = TRUE;
@@ -863,11 +885,11 @@
}
SetEvent(gShutdownEvent);
if (timeout > 0x7FFFFFFF)
- timeout = INFINITE; /* If the timeout was '-1' wait forewer */
+ timeout = INFINITE; /* If the timeout was '-1' wait forewer */
if (wait_to_die && !timeout)
timeout = 300 * 1000; /* Use the 5 minute default shutdown */
- if (timeout) {
+ if (timeout) {
FILETIME fts, fte;
ULARGE_INTEGER s, e;
DWORD nms;
@@ -947,7 +969,7 @@
}
else {
/* Redirect process */
- gWorker = apxCreateProcessW(gPool,
+ gWorker = apxCreateProcessW(gPool,
0,
child_callback,
SO_USER,
@@ -980,7 +1002,7 @@
SO_STARTPATH);
goto cleanup;
}
- /* Finally execute the child process
+ /* Finally execute the child process
*/
if (!apxProcessExecute(gWorker)) {
rv = 5;
@@ -1005,7 +1027,7 @@
if (!IS_INVALID_HANDLE(gWorker))
apxCloseHandle(gWorker); /* Close the worker handle */
gWorker = NULL;
- return rv;
+ return rv;
}
/* Service control handler
@@ -1028,7 +1050,7 @@
}
/* Console control handler
- *
+ *
*/
BOOL WINAPI console_handler(DWORD dwCtrlType)
{
@@ -1065,16 +1087,16 @@
{
DWORD rc;
_service_status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
- _service_status.dwCurrentState = SERVICE_START_PENDING;
+ _service_status.dwCurrentState = SERVICE_START_PENDING;
_service_status.dwControlsAccepted = SERVICE_ACCEPT_STOP |
- SERVICE_ACCEPT_PAUSE_CONTINUE;
- _service_status.dwWin32ExitCode = 0;
- _service_status.dwCheckPoint = 0;
- _service_status.dwWaitHint = 0;
- _service_status.dwServiceSpecificExitCode = 0;
+ SERVICE_ACCEPT_PAUSE_CONTINUE;
+ _service_status.dwWin32ExitCode = 0;
+ _service_status.dwCheckPoint = 0;
+ _service_status.dwWaitHint = 0;
+ _service_status.dwServiceSpecificExitCode = 0;
apxLogWrite(APXLOG_MARK_DEBUG "Inside ServiceMain...");
-
+
if (_service_name) {
WCHAR en[SIZ_DESLEN];
int i;
@@ -1096,7 +1118,7 @@
/* Check the StartMode */
if (SO_STARTMODE) {
if (!lstrcmpiW(SO_STARTMODE, PRSRV_JVM)) {
- _jni_startup = TRUE;
+ _jni_startup = TRUE;
WideToAscii(SO_STARTCLASS, _jni_rclass);
/* Exchange all dots with slashes */
apxStrCharReplaceA(_jni_rclass, '.', '/');
@@ -1117,7 +1139,7 @@
/* Check the StopMode */
if (SO_STOPMODE) {
if (!lstrcmpiW(SO_STOPMODE, PRSRV_JVM)) {
- _jni_shutdown = TRUE;
+ _jni_shutdown = TRUE;
WideToAscii(SO_STOPCLASS, _jni_sclass);
apxStrCharReplaceA(_jni_sclass, '.', '/');
_jni_sparam = MzWideToAscii(SO_STOPPARAMS, (LPSTR)SO_STOPPARAMS);
@@ -1153,7 +1175,7 @@
if (_service_mode) {
/* Register Service Control handler */
_service_status_handle = RegisterServiceCtrlHandlerW(_service_name,
- service_ctrl_handler);
+ service_ctrl_handler);
if (IS_INVALID_HANDLE(_service_status_handle)) {
apxLogWrite(APXLOG_MARK_ERROR "Failed to register Service Control for %S",
_service_name);
@@ -1207,7 +1229,7 @@
apxLogWrite(APXLOG_MARK_INFO "Debugging Service...");
serviceMain(0, NULL);
apxLogWrite(APXLOG_MARK_INFO "Debug service finished.");
-
+
return rv;
}
@@ -1220,7 +1242,7 @@
_service_name = lpCmdline->szApplication;
_service_table[0].lpServiceName = lpCmdline->szApplication;
_service_table[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTIONW)serviceMain;
- rv = (StartServiceCtrlDispatcherW(_service_table) == FALSE);
+ rv = (StartServiceCtrlDispatcherW(_service_table) == FALSE);
apxLogWrite(APXLOG_MARK_INFO "Run service finished.");
return rv;
}
@@ -1254,7 +1276,7 @@
apxLogWrite(APXLOG_MARK_DEBUG "Procrun log initialized");
AplZeroMemory(&gStdwrap, sizeof(APX_STDWRAP));
-
+
gStdwrap.szLogPath = SO_LOGPATH;
/* In debug mode allways use console */
if (lpCmdline->dwCmdIndex != 1) {
Modified: jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.dsp
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.dsp?view=diff&rev=481737&r1=481736&r2=481737
==============================================================================
--- jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.dsp (original)
+++ jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/apps/prunsrv/prunsrv.dsp Sun Dec 3 00:47:32 2006
@@ -51,7 +51,7 @@
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib shlwapi.lib /nologo /stack:0x40000 /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "prunsrv - Win32 Debug"
@@ -67,15 +67,15 @@
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x41a /d "_DEBUG"
# ADD RSC /l 0x41a /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib shlwapi.lib /nologo /stack:0x40000 /subsystem:console /debug /machine:I386 /out:"Debug/prunsrvd.exe" /pdbtype:sept
!ELSEIF "$(CFG)" == "prunsrv - Win32 Unicode Release"
@@ -93,7 +93,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /YX /FD /c
# ADD BASE RSC /l 0x41a /d "NDEBUG"
# ADD RSC /l 0x41a /d "NDEBUG"
BSC32=bscmake.exe
@@ -117,8 +117,8 @@
# PROP Intermediate_Dir "Unicode Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /GZ /c
# ADD BASE RSC /l 0x41a /d "_DEBUG"
# ADD RSC /l 0x41a /d "_DEBUG"
BSC32=bscmake.exe
Modified: jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/libprocrun.dsp
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/libprocrun.dsp?view=diff&rev=481737&r1=481736&r2=481737
==============================================================================
--- jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/libprocrun.dsp (original)
+++ jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/libprocrun.dsp Sun Dec 3 00:47:32 2006
@@ -65,8 +65,8 @@
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x41a /d "_DEBUG"
# ADD RSC /l 0x41a /d "_DEBUG"
BSC32=bscmake.exe
@@ -89,7 +89,7 @@
# PROP Intermediate_Dir "Unicode Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_UNICODE" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_UNICODE" /D "UNICODE" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x41a /d "NDEBUG"
# ADD RSC /l 0x41a /d "NDEBUG"
BSC32=bscmake.exe
@@ -111,8 +111,8 @@
# PROP Output_Dir "Unicode Debug"
# PROP Intermediate_Dir "Unicode Debug"
# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_UNICODE" /D "_LIB" /YX /FD /GZ /c
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_UNICODE" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x41a /d "_DEBUG"
# ADD RSC /l 0x41a /d "_DEBUG"
BSC32=bscmake.exe
Modified: jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/service.c
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/service.c?view=diff&rev=481737&r1=481736&r2=481737
==============================================================================
--- jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/service.c (original)
+++ jakarta/commons/proper/daemon/trunk/src/native/nt/procrun/src/service.c Sun Dec 3 00:47:32 2006
@@ -200,8 +200,10 @@
szImagePath,
szUsername,
szPassword,
- szDisplayName))
+ szDisplayName)) {
+ apxLogWrite(APXLOG_MARK_SYSERR);
return FALSE;
+ }
if (szDescription) {
return apxSetServiceDescriptionW(lpService->stServiceEntry.szServiceName,
szDescription);
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org