You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2002/06/06 02:22:46 UTC
cvs commit: httpd-2.0/modules/arch/win32 mod_win32.c
wrowe 2002/06/05 17:22:45
Modified: . CHANGES
modules/arch/win32 mod_win32.c
Log:
Catch up with Brad's changes, this knocks off the CGI popup windows bug
Revision Changes Path
1.812 +7 -4 httpd-2.0/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/httpd-2.0/CHANGES,v
retrieving revision 1.811
retrieving revision 1.812
diff -u -r1.811 -r1.812
--- CHANGES 5 Jun 2002 23:30:30 -0000 1.811
+++ CHANGES 6 Jun 2002 00:22:45 -0000 1.812
@@ -1,10 +1,13 @@
Changes with Apache 2.0.37
+ *) Added the "detached" attribute to the cgi_exec_info_t internals
+ so that Win32 and Netware won't create a new window or console
+ for each CGI invoked. PR 8387
+ [Brad Nicholes, William Rowe]
+
*) Consolidated the command line parameters and attributes that are
- manipulated by the optional function ap_cgi_build_command() in
- mod_cgi into a single structure. Also added a "detached" attribute
- to the structure so that in addition to building the command
- line, each OS can specify how the CGI binary should be launched.
+ manipulated by the optional function ap_cgi_build_command() in
+ mod_cgi into a single structure.
[Brad Nicholes]
*) Get rid of uninitialized value errors with "apxs -q" on certain
1.16 +10 -12 httpd-2.0/modules/arch/win32/mod_win32.c
Index: mod_win32.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/arch/win32/mod_win32.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- mod_win32.c 17 May 2002 11:33:08 -0000 1.15
+++ mod_win32.c 6 Jun 2002 00:22:45 -0000 1.16
@@ -69,7 +69,7 @@
#include "http_log.h"
#include "util_script.h"
#include "mod_core.h"
-#include "apr_optional.h"
+#include "mod_cgi.h"
#include "apr_lib.h"
#ifdef WIN32
@@ -413,7 +413,7 @@
static apr_status_t ap_cgi_build_command(const char **cmd, const char ***argv,
request_rec *r, apr_pool_t *p,
- int process_cgi, apr_cmdtype_e *type)
+ cgi_exec_info_t *e_info)
{
const char *ext = NULL;
const char *interpreter = NULL;
@@ -424,7 +424,7 @@
d = (win32_dir_conf *)ap_get_module_config(r->per_dir_config,
&win32_module);
- if (process_cgi) {
+ if (e_info->cmd_type) {
/* Handle the complete file name, we DON'T want to follow suexec, since
* an unrooted command is as predictable as shooting craps in Win32.
*
@@ -457,8 +457,8 @@
== INTERPRETER_SOURCE_REGISTRY_STRICT);
interpreter = get_interpreter_from_win32_registry(r->pool, ext,
strict);
- if (interpreter && *type != APR_SHELLCMD) {
- *type = APR_PROGRAM_PATH;
+ if (interpreter && e_info->prog_type != APR_SHELLCMD) {
+ e_info->prog_type = APR_PROGRAM_PATH;
}
else {
ap_log_error(APLOG_MARK, APLOG_INFO, 0, r->server,
@@ -499,8 +499,8 @@
while (isspace(*interpreter)) {
++interpreter;
}
- if (*type != APR_SHELLCMD) {
- *type = APR_PROGRAM_PATH;
+ if (e_info->prog_type != APR_SHELLCMD) {
+ e_info->prog_type = APR_PROGRAM_PATH;
}
}
}
@@ -529,13 +529,11 @@
*argv = (const char **)(split_argv(p, interpreter, *cmd,
args)->elts);
*cmd = (*argv)[0];
+
+ e_info->detached = 1;
+
return APR_SUCCESS;
}
-
-APR_DECLARE_OPTIONAL_FN(apr_status_t, ap_cgi_build_command,
- (const char **cmd, const char ***argv,
- request_rec *r, apr_pool_t *p,
- int replace_cmd, apr_cmdtype_e *type));
static void register_hooks(apr_pool_t *p)
{