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 2003/02/09 17:11:23 UTC
cvs commit: jakarta-commons-sandbox/daemon/src/native/nt/procrun procrun.vcproj procrun.h procrun.c
mturk 2003/02/09 08:11:23
Modified: daemon/src/native/nt/procrun procrun.vcproj procrun.h
procrun.c
Log:
Adde PROCRUN_WINDLL build and tree exported functions
for use in Installation programs.
1. InstallService Installs the service
2. UpdateService Sets the services param/value pair
3. RemoveService. Deletes the service (used for uninstall)
Revision Changes Path
1.2 +92 -1 jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.vcproj
Index: procrun.vcproj
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.vcproj,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- procrun.vcproj 7 Feb 2003 07:04:35 -0000 1.1
+++ procrun.vcproj 9 Feb 2003 16:11:23 -0000 1.2
@@ -33,7 +33,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib shlwapi.lib"
- OutputFile="$(OutDir)/procrun.exe"
+ OutputFile="$(OutDir)/procrunw.exe"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/procrun.pdb"
@@ -174,6 +174,97 @@
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ <Configuration
+ Name="DebugDLL|Win32"
+ OutputDirectory="DebugDLL"
+ IntermediateDirectory="DebugDLL"
+ ConfigurationType="2"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="$(JAVA_HOME)\include,$(JAVA_HOME)\include\win32"
+ PreprocessorDefinitions="_WIN32,WIN32,_DEBUG,_DEBUG_TRACE,_WINDOWS,STRICT,_WIN32_WINNT=0x0400,PROCRUN_WINDLL"
+ MinimalRebuild="TRUE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="FALSE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="comctl32.lib shlwapi.lib"
+ OutputFile="$(OutDir)/procrun.dll"
+ LinkIncremental="2"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile="$(OutDir)/procrun.pdb"
+ SubSystem="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ <Configuration
+ Name="ReleaseDLL|Win32"
+ OutputDirectory="ReleaseDLL"
+ IntermediateDirectory="ReleaseDLL"
+ ConfigurationType="2"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="TRUE"
+ AdditionalIncludeDirectories="$(JAVA_HOME)\include,$(JAVA_HOME)\include\win32"
+ PreprocessorDefinitions="_WIN32,WIN32,NDEBUG,_WINDOWS,STRICT,_WIN32_WINNT=0x0400,PROCRUN_WINDLL"
+ StringPooling="TRUE"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="FALSE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="comctl32.lib shlwapi.lib"
+ OutputFile="bin/procrun.dll"
+ LinkIncremental="1"
+ GenerateDebugInformation="TRUE"
+ SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
1.4 +2 -1 jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.h
Index: procrun.h
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- procrun.h 9 Feb 2003 09:38:54 -0000 1.3
+++ procrun.h 9 Feb 2003 16:11:23 -0000 1.4
@@ -134,7 +134,8 @@
enum {
PROCRUN_MODE_WINAPP = 1,
PROCRUN_MODE_GUI,
- PROCRUN_MODE_CONSOLE
+ PROCRUN_MODE_CONSOLE,
+ PROCRUN_MODE_WINDLL
};
enum {
1.5 +107 -3 jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.c
Index: procrun.c
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/daemon/src/native/nt/procrun/procrun.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- procrun.c 9 Feb 2003 09:38:54 -0000 1.4
+++ procrun.c 9 Feb 2003 16:11:23 -0000 1.5
@@ -2208,9 +2208,12 @@
static void free_environment(procrun_t *env)
{
- free(env->m);
- free(env->c);
- free(env);
+ if (env) {
+ free(env->m);
+ free(env->c);
+ free(env);
+ env = NULL;
+ }
}
#if defined(PROCRUN_WINAPP)
@@ -2244,6 +2247,107 @@
procrun_main(argc, argv, _environ, env);
free_environment(env);
+}
+#elif defined(PROCRUN_WINDLL)
+#pragma message("Compiling DLL Application mode")
+
+
+BOOL WINAPI DllMain(HINSTANCE hInst,
+ ULONG ulReason,
+ LPVOID lpReserved)
+{
+
+ switch (ulReason) {
+ case DLL_PROCESS_ATTACH:
+ g_env = NULL;
+ break;
+ case DLL_PROCESS_DETACH:
+ free_environment(g_env);
+ break;
+ default:
+ break;
+ }
+ return TRUE;
+}
+
+__declspec(dllexport) void InstallService(const char *service_name,
+ const char *install,
+ const char *image_path,
+ const char *display_name,
+ const char *description)
+{
+ int argc = 0;
+ char *argv[12];
+ char b[MAX_PATH];
+
+ procrun_t *env = alloc_environment();
+ g_proc_mode = PROCRUN_MODE_WINDLL;
+ g_env = env;
+
+ argv[argc++] = "PROCRUN.DLL";
+ strcpy(b, PROC_ARG_INSTALL_SERVICE);
+ strcat(b, service_name);
+ argv[argc++] = b;
+ argv[argc++] = "--" PROCRUN_PARAMS_IMAGE;
+ argv[argc++] = (char *)image_path;
+ argv[argc++] = "--" PROCRUN_PARAMS_INSTALL;
+ argv[argc++] = (char *)install;
+ argv[argc++] = "--" PROCRUN_PARAMS_DISPLAY;
+ argv[argc++] = (char *)display_name;
+ argv[argc++] = "--" PROCRUN_PARAMS_DESCRIPTION;
+ argv[argc++] = (char *)description;
+
+ procrun_main(argc, argv, _environ, env);
+
+ free_environment(env);
+ g_env = NULL;
+}
+
+__declspec(dllexport) void UpdateService(const char *service_name,
+ const char *param,
+ const char *value)
+{
+ int argc = 0;
+ char *argv[4];
+ char b[MAX_PATH], p[MAX_PATH];
+
+ procrun_t *env = alloc_environment();
+ g_proc_mode = PROCRUN_MODE_WINDLL;
+ g_env = env;
+
+ argv[argc++] = "PROCRUN.DLL";
+ strcpy(b, PROC_ARG_UPDATE_SERVICE);
+ strcat(b, service_name);
+ strcpy(p, "--");
+ strcat(p, param);
+ argv[argc++] = b;
+ argv[argc++] = p;
+ argv[argc++] = (char *)value;
+
+ procrun_main(argc, argv, _environ, env);
+
+ free_environment(env);
+ g_env = NULL;
+}
+
+__declspec(dllexport) void RemoveService(const char *service_name)
+{
+ int argc = 0;
+ char *argv[4];
+ char b[MAX_PATH];
+
+ procrun_t *env = alloc_environment();
+ g_proc_mode = PROCRUN_MODE_WINDLL;
+ g_env = env;
+
+ argv[argc++] = "PROCRUN.DLL";
+ strcpy(b, PROC_ARG_DELETE_SERVICE);
+ strcat(b, service_name);
+ argv[argc++] = b;
+ procrun_main(argc, argv, _environ, env);
+
+ free_environment(env);
+ g_env = NULL;
}
#else
#error Unknown application mode
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org