/** How many command line arguments were pass to the program */
int argc;
/** The command line arguments */
- char *const *argv;
+ const char * const *argv;
/** The program name used to execute the program */
const char *short_name;
};
exit(process_exit_value);
}
-static process_rec *create_process(int argc, char *const *argv)
+static process_rec *create_process(int argc, const char * const *argv)
{
process_rec *process;
-
- {
- apr_pool_t *cntx;
- apr_status_t stat;
-
- stat = apr_create_pool(&cntx, NULL);
- if (stat != APR_SUCCESS) {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, NULL,
- "apr_create_pool() failed to create "
- "initial context");
- apr_terminate();
- exit(1);
- }
-
- process = apr_palloc(cntx, sizeof(process_rec));
- process->pool = cntx;
+ apr_pool_t *cntx;
+ apr_status_t stat;
+
+ stat = apr_create_pool(&cntx, NULL);
+ if (stat != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, NULL,
+ "apr_create_pool() failed to create "
+ "initial context");
+ apr_terminate();
+ exit(1);
}
+
+ process = apr_palloc(cntx, sizeof(process_rec));
+ process->pool = cntx;
+
apr_create_pool(&process->pconf, process->pool);
process->argc = argc;
process->argv = argv;
destroy_and_exit_process(process, 1);
}
-int main(int argc, char *argv[])
+int main(int argc, const char * const argv[])
{
char c;
int configtestonly = 0;
}
-#define SERVICE_UNNAMED -1
+#define SERVICE_UNNAMED (-1)
/* service_nt_main_fn needs to append the StartService() args
* outside of our call stack and thread as the service starts...
static apr_status_t service_to_start_success;
static int inst_argc;
-static char **inst_argv;
+static const char * const *inst_argv;
void winnt_rewrite_args(process_rec *process)
{
* initial pre-flight of the config parser.
*/
- mpm_new_argv = apr_make_array(process->pool, process->argc + 2, sizeof(char *));
- new_arg = (char**) apr_push_array(mpm_new_argv);
- *new_arg = (char *) process->argv[0];
-
- new_arg = (char**) apr_push_array(mpm_new_argv);
- *new_arg = "-d";
- new_arg = (char**) apr_push_array(mpm_new_argv);
- *new_arg = def_server_root;
+ mpm_new_argv = apr_make_array(process->pool, process->argc + 2,
+ sizeof(const char *));
+ *(const char **)apr_push_array(mpm_new_argv) = process->argv[0];
+ *(const char **)apr_push_array(mpm_new_argv) = "-d";
+ *(const char **)apr_push_array(mpm_new_argv) = def_server_root;
fixed_args = mpm_new_argv->nelts;
- optbuf[0] = '-'; optbuf[2] = '\0';
+ optbuf[0] = '-';
+ optbuf[2] = '\0';
apr_initopt(&opt, process->pool, process->argc, (char**) process->argv);
while (apr_getopt(opt, "n:k:iu" AP_SERVER_BASEARGS,
optbuf + 1, &optarg) == APR_SUCCESS) {
signal_arg = "uninstall";
break;
default:
- new_arg = (char**) apr_push_array(mpm_new_argv);
- *new_arg = apr_pstrdup(process->pool, optbuf);
+ *(const char **)apr_push_array(mpm_new_argv) =
+ apr_pstrdup(process->pool, optbuf);
+
if (optarg) {
- new_arg = (char**) apr_push_array(mpm_new_argv);
- *new_arg = optarg;
+ *(const char **)apr_push_array(mpm_new_argv) = optarg;
}
break;
}
* These will be used for the -k install parameters, as well as
* for the -k start service override arguments.
*/
- inst_argv = (char**) mpm_new_argv->elts + mpm_new_argv->nelts - inst_argc;
+ inst_argv = (const char * const *)mpm_new_argv->elts
+ + mpm_new_argv->nelts - inst_argc;
process->argc = mpm_new_argv->nelts;
- process->argv = (char**) mpm_new_argv->elts;
+ process->argv = (const char * const *) mpm_new_argv->elts;
}
return_error(rv);
}
-apr_status_t ap_registry_store_array(apr_pool_t *p, const char *key, const char *name, int nelts, char const* const* elts)
+apr_status_t ap_registry_store_array(apr_pool_t *p,
+ const char *key, const char *name,
+ int nelts, const char * const * elts)
{
int bufsize, i;
char *buf, *tmp;
#include "mpm_winnt.h"
#include "apr_strings.h"
-char const* service_name = NULL;
-char const* display_name = NULL;
-char const* signal_arg = NULL;
-
+static const char * service_name = NULL;
+
+/* ### should be namespace-protected */
+const char * display_name = NULL;
+
static struct
{
HANDLE mpm_thread; /* primary thread handle of the apache server */
globdat.ssStatus.dwServiceSpecificExitCode = 0;
globdat.ssStatus.dwCheckPoint = 1;
- if(!(globdat.hServiceStatus = RegisterServiceCtrlHandler(argv[0], service_nt_ctrl)))
+ if (!(globdat.hServiceStatus = RegisterServiceCtrlHandler(argv[0], service_nt_ctrl)))
{
ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_STARTUP, apr_get_os_error(),
NULL, "Failure registering service handler");
*/
if (argc > 1)
{
- char **cmb_data;
- cmb_data = apr_palloc(mpm_new_argv->cont,
- (mpm_new_argv->nelts + argc - 1) * sizeof(char *));
+ const char **cmb_data;
+
+ mpm_new_argv->nalloc = mpm_new_argv->nelts + argc - 1;
+ cmb_data = apr_palloc(mpm_new_argv->cont,
+ mpm_new_argv->nalloc * sizeof(const char *));
/* mpm_new_argv remains first (of lower significance) */
memcpy (cmb_data, mpm_new_argv->elts,
mpm_new_argv->elt_size * (argc - 1));
/* The replacement arg list is complete */
- mpm_new_argv->elts = (char*) cmb_data;
- mpm_new_argv->nalloc = mpm_new_argv->nelts += argc - 1;
+ mpm_new_argv->elts = (char *)cmb_data;
+ mpm_new_argv->nelts = mpm_new_argv->nalloc;
}
/* Let the main thread continue now... but hang on to the
{
apr_array_header_t *svc_args = NULL;
char conf_key[MAX_PATH];
- char **cmb_data;
+ const char **cmb_data;
apr_status_t rv;
apr_snprintf(conf_key, sizeof(conf_key), SERVICEPARAMS, service_name);
* time to _prepend_ the default arguments for the server from
* the service's default arguments (all others override them)...
*/
- cmb_data = apr_palloc(p, (args->nelts + svc_args->nelts) * sizeof(char *));
+ args->nalloc = args->nelts + svc_args->nelts;
+ cmb_data = apr_palloc(p, args->nalloc * sizeof(const char *));
/* First three args (argv[0], -f, path) remain first */
- memcpy (cmb_data, args->elts, args->elt_size * fixed_args);
+ memcpy(cmb_data, args->elts, args->elt_size * fixed_args);
/* Service args follow from service registry array */
- memcpy (cmb_data + fixed_args, svc_args->elts,
- svc_args->elt_size * svc_args->nelts);
+ memcpy(cmb_data + fixed_args, svc_args->elts,
+ svc_args->elt_size * svc_args->nelts);
/* Remaining new args follow */
- memcpy (cmb_data + fixed_args + svc_args->nelts,
- (char**) args->elts + fixed_args,
- args->elt_size * (args->nelts - fixed_args));
+ memcpy(cmb_data + fixed_args + svc_args->nelts,
+ (const char **)args->elts + fixed_args,
+ args->elt_size * (args->nelts - fixed_args));
- args->elts = (char*) cmb_data;
- args->nalloc = (args->nelts += svc_args->nelts);
+ args->elts = (char *)cmb_data;
+ args->nelts = args->nalloc;
return APR_SUCCESS;
}
apr_status_t mpm_service_install(apr_pool_t *ptemp, int argc,
- char const* const* argv)
+ const char * const * argv)
{
char key_name[MAX_PATH];
char exe_path[MAX_PATH];
apr_status_t mpm_service_start(apr_pool_t *ptemp, int argc,
- char const* const* argv)
+ const char * const * argv)
{
apr_status_t rv;
if (osver.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
- char **start_argv;
+ const char **start_argv;
SC_HANDLE schService;
SC_HANDLE schSCManager;
}
argc += 1;
- start_argv = apr_palloc(ptemp, argc * sizeof(char**));
- start_argv[0] = (char*) service_name;
+ start_argv = apr_palloc(ptemp, argc * sizeof(const char **));
+ start_argv[0] = service_name;
if (argc > 1)
- memcpy(start_argv + 1, argv, (argc - 1) * sizeof(char**));
+ memcpy(start_argv + 1, argv, (argc - 1) * sizeof(const char **));
rv = APR_EINIT;
if (StartService(schService, argc, start_argv)
pCommand = apr_psprintf(ptemp, "\"%s\" -n %s -k runservice",
exe_path, service_name);
for (i = 0; i < argc; ++i) {
- pCommand = apr_pstrcat(ptemp, pCommand, " \"", argv[i], "\"", NULL);
+ pCommand = apr_pstrcat(ptemp, pCommand,
+ " \"", argv[i], "\"", NULL);
}
memset(&si, 0, sizeof(si));
static void copyright(void)
{
if (!use_html) {
- printf("This is ApacheBench, Version %s\n", AB_VERSION " <$Revision: 1.38 $> apache-2.0");
+ printf("This is ApacheBench, Version %s\n", AB_VERSION " <$Revision: 1.39 $> apache-2.0");
printf("Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\n");
printf("Copyright (c) 1998-2000 The Apache Software Foundation, http://www.apache.org/\n");
printf("\n");
}
else {
printf("<p>\n");
- printf(" This is ApacheBench, Version %s <i><%s></i> apache-2.0<br>\n", AB_VERSION, "$Revision: 1.38 $");
+ printf(" This is ApacheBench, Version %s <i><%s></i> apache-2.0<br>\n", AB_VERSION, "$Revision: 1.39 $");
printf(" Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br>\n");
printf(" Copyright (c) 1998-2000 The Apache Software Foundation, http://www.apache.org/<br>\n");
printf("</p>\n<p>\n");
usage(argv[0]);
}
- if (parse_url((char*)opt->argv[opt->ind++])) {
+ if (parse_url(apr_pstrdup(cntxt, opt->argv[opt->ind++]))) {
fprintf(stderr, "%s: invalid URL\n", argv[0]);
usage(argv[0]);
}