See bugzilla id #8464 for details, but currently in 2.0.36 you cannot 
specify command-line arguments to an external rewrite program, thus:

RewriteMap "prg:/path/to/my/engine -arg1 -arg2"

This was valid in 1.3.24, as it exec'd a shell with the "-c 
/path/to/my/engine -arg1 -arg2" arguments.

Hopefully this patch should enable us to be able to supply command-line 
arguments to our external program again, negating the need for a shell 
script wrapper and meaning the configuration is all in httpd.conf.

Cheers,

JT
-- 
+------------------------------------+------------------------------------+
| James Tait                         | ICQ# 17834893                      |
| MUD programmer and Linux advocate  | http://www.wyrddreams.demon.co.uk/ |
+------------------------------------+------------------------------------+


________________________________________________________________________
This email has been scanned for all viruses by the MessageLabs SkyScan
service. For more information on a proactive anti-virus service working
around the clock, around the globe, visit http://www.messagelabs.com
________________________________________________________________________
--- ../httpd-2.0.36-unmodified/modules/mappers/mod_rewrite.c    Mon Apr 22 11:27:01 
2002
+++ modules/mappers/mod_rewrite.c       Thu May 23 17:21:26 2002
@@ -3370,6 +3370,24 @@
     apr_status_t rc;
     apr_procattr_t *procattr;
     apr_proc_t *procnew;
+    char *arg;
+    char *datafile;
+    const char **args;
+    int nargs;
+
+    procnew = apr_pcalloc(p, sizeof(*procnew));
+    datafile = apr_pstrdup(p, progname);
+    nargs = 0;
+    while (*datafile && ap_getword_white_nc(p, &datafile)) {
+        nargs++;
+    }
+    args = (const char **)apr_pcalloc(p, sizeof(char *) * (nargs + 1));
+    datafile = apr_pstrdup(p, progname);
+    nargs = 0;
+    while (*datafile && (arg = ap_getword_white_nc(p, &datafile))) {
+        args[nargs++] = apr_pstrdup(p, arg);
+    }
+    args[nargs] = NULL;
 
     if (((rc = apr_procattr_create(&procattr, p)) != APR_SUCCESS) ||
         ((rc = apr_procattr_io_set(procattr, APR_FULL_BLOCK,

Reply via email to