If I try apache -k install -n foo, the install for service foo will fail if there are any problems in httpd.conf (invalid directives, syntax errors, or if the listener port is already active). While I see some value in failing the install of the service based on httpd.conf, overall I think's its more of a pain than a benefit. This patch moves the install of the service out of the post_config hook and into the rewrite_args hook (same hook where the -k uninstall code lives, Arguably service install/uninstall handling should be moved to the pre_config hook ). Comments?


C:\home\apache\20\httpd-2.0\server\mpm\winnt>svn diff mpm_winnt.c svn diff mpm_winnt.c Index: mpm_winnt.c =================================================================== --- mpm_winnt.c (revision 149412) +++ mpm_winnt.c (working copy) @@ -1070,7 +1070,7 @@ /* Handle the following SCM aspects in this phase: * * -k runservice [transition for WinNT, nothing for Win9x] - * -k (!)install [error out if name is not installed] + * -k install * -k uninstall * -k stop * -k shutdown (same as -k stop). Maintained for backward compatability. @@ -1279,6 +1279,12 @@ "%s: Service is already installed.", service_name); exit(APEXIT_INIT); } + else + { + /* Install the service */ + rv = mpm_service_install(process->pool, inst_argc, inst_argv, 0); + exit(rv); + } } else if (running_as_service) { @@ -1386,7 +1392,6 @@

     /* Handle the following SCM aspects in this phase:
      *
-     *   -k install
      *   -k config
      *   -k start
      *   -k restart
@@ -1399,12 +1404,6 @@
      * these options to fail unexpectedly in another process.
      */

-    if (!strcasecmp(signal_arg, "install")) {
-        rv = mpm_service_install(ptemp, inst_argc, inst_argv, 0);
-        apr_pool_destroy(s->process->pool);
-        apr_terminate();
-        exit(rv);
-    }
     if (!strcasecmp(signal_arg, "config")) {
         rv = mpm_service_install(ptemp, inst_argc, inst_argv, 1);
         apr_pool_destroy(s->process->pool);

Reply via email to