Author: gonzalo
Date: 2005-03-11 00:46:30 -0500 (Fri, 11 Mar 2005)
New Revision: 41674
Modified:
trunk/mod_mono/ChangeLog
trunk/mod_mono/src/mod_mono.c
Log:
2005-03-11 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
* src/mod_mono.c: added MonoSetEnv directive. From a patch by Joel
Reed to 1.0.6.
Modified: trunk/mod_mono/ChangeLog
===================================================================
--- trunk/mod_mono/ChangeLog 2005-03-11 05:06:51 UTC (rev 41673)
+++ trunk/mod_mono/ChangeLog 2005-03-11 05:46:30 UTC (rev 41674)
@@ -1,3 +1,8 @@
+2005-03-11 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
+
+ * src/mod_mono.c: added MonoSetEnv directive. From a patch by Joel
+ Reed to 1.0.6.
+
2005-03-05 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
* src/mod_mono.c: try to connect to mod-mono-server before forking.
Modified: trunk/mod_mono/src/mod_mono.c
===================================================================
--- trunk/mod_mono/src/mod_mono.c 2005-03-11 05:06:51 UTC (rev 41673)
+++ trunk/mod_mono/src/mod_mono.c 2005-03-11 05:46:30 UTC (rev 41674)
@@ -66,6 +66,7 @@
char *max_cpu_time;
char *max_memory;
char *debug;
+ char *env_vars;
char status; /* One of the FORK_* in the enum above.
* Don't care if run_xsp is "false" */
char is_virtual; /* is the server virtual? */
@@ -144,6 +145,7 @@
server->max_cpu_time = NULL;
server->max_memory = NULL;
server->debug = "False";
+ server->env_vars = NULL;
server->status = FORK_NONE;
server->is_virtual = is_virtual;
@@ -758,6 +760,35 @@
#endif
static void
+set_environment_variables (apr_pool_t *pool, char *environment_variables)
+{
+ char *tmp;
+ char *name;
+ char *value;
+
+ /* were any environment_variables specified? */
+ if (environment_variables == NULL)
+ return;
+
+ name = environment_variables;
+ tmp = strchr (environment_variables, '=');
+ while (tmp != NULL) {
+ *tmp = '\0';
+ value = tmp + 1;
+ tmp = strchr (value, ';');
+ if (tmp != NULL)
+ *tmp = '\0';
+
+ SETENV (pool, name, value);
+ if (tmp == NULL)
+ break;
+
+ name = tmp + 1;
+ tmp = strchr (name, '=');
+ }
+}
+
+static void
set_process_limits (int max_cpu_time, int max_memory)
{
#ifdef HAVE_SETRLIMIT
@@ -844,6 +875,8 @@
if (config->max_cpu_time != NULL)
max_cpu_time = atoi (config->max_cpu_time);
+ set_environment_variables (pool, config->env_vars);
+
pid = fork ();
if (pid > 0) {
wait (&status);
@@ -1446,6 +1479,13 @@
" Default value: False"
),
+MAKE_CMD12 (MonoSetEnv, env_vars,
+ "A string of name=value pairs separated by semicolons."
+ "For each pair, setenv(name, value) is called before running "
+ "mod-mono-server."
+ " Default value: Default: \"\""
+ ),
+
MAKE_CMD_ITERATE2 (AddMonoApplications, applications,
"Appends an application."
),
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches