Handle hostnames with upper-case letters
[webmin.git] / apache / mod_env.pl
1 # mod_env.pl
2 # Defines editors for passing variables to CGI scripts
3
4 sub mod_env_directives
5 {
6 local($rv);
7 $rv = [ [ 'PassEnv UnsetEnv SetEnv', 1, 11, 'virtual', -1.309 ],
8         [ 'PassEnv UnsetEnv SetEnv', 1, 11, 'virtual directory', 1.309 ] ];
9 return &make_directives($rv, $_[0], "mod_env");
10 }
11
12 sub edit_PassEnv_UnsetEnv_SetEnv
13 {
14 local($d, $e, @var, @mode, @val, $i, $rv);
15 foreach $d (@{$_[0]}, @{$_[1]}, @{$_[2]}) {
16         if ($d->{'name'} ne "SetEnv") {
17                 foreach $e (@{$d->{'words'}}) {
18                         push(@var, $e);
19                         push(@mode, $d->{'name'} eq "PassEnv" ? 0 : 1);
20                         push(@val, "");
21                         }
22                 }
23         else {
24                 push(@var, $d->{'words'}->[0]);
25                 push(@mode, 2);
26                 push(@val, $d->{'words'}->[1]);
27                 }
28         }
29 push(@var, ""); push(@mode, 0); push(@val, "");
30 $rv = "<table border>\n".
31       "<tr $tb> <td><b>$text{'mod_env_var'}</b></td> <td><b>$text{'mod_env_value'}</b></td> </tr>\n";
32 for($i=0; $i<@var; $i++) {
33         $rv .= "<tr $cb>\n";
34         $rv .= "<td><input name=Env_var_$i size=20 value=\"$var[$i]\"></td>\n";
35         $rv .= "<td>".&choice_input($mode[$i], "Env_mode_$i", 0,
36                                     "$text{'mod_env_pass'},0", "$text{'mod_env_clear'},1", "$text{'mod_env_set'},2");
37         $rv .= "<input name=Env_val_$i size=20 value=\"$val[$i]\"></td>\n";
38         $rv .= "</tr>\n";
39         }
40 $rv .= "</table>\n";
41 return (2, "$text{'mod_env_cgivar'}", $rv);
42 }
43 sub save_PassEnv_UnsetEnv_SetEnv
44 {
45 local($i, $var, $mode, $val, @pa, @uns, @se);
46 for($i=0; defined($var = $in{"Env_var_$i"}); $i++) {
47         $mode = $in{"Env_mode_$i"}; $val = $in{"Env_val_$i"};
48         if ($var !~ /\S/ && $val !~ /\S/) { next; }
49         $var =~ /^\S+$/ || &error(&text('mod_env_evar', $var));
50         if ($mode == 0) { push(@pa, $var); }
51         elsif ($mode == 1) { push(@uns, $var); }
52         elsif ($var !~ /^\S+$/) {
53                 &error(&text('mod_env_evalue', $var));
54                 }
55         else { push(@se, "$var \"$val\""); }
56         }
57 return ( \@pa, \@uns, \@se );
58 }
59
60 sub edit_PassEnvAll
61 {
62 return (1, "$text{'mod_env_passall'}",
63         &choice_input($_[0]->{'value'}, "PassEnvAll",
64                       "", "$text{'yes'},on", "$text{'no'},off", "$text{'mod_env_default'},"));
65 }
66 sub save_PassEnvAll
67 {
68 return &parse_choice("PassEnvAll");
69 }
70
71 1;
72