Handle hostnames with upper-case letters
[webmin.git] / postfix / edit_master.cgi
1 #!/usr/local/bin/perl
2 # Edit or create a server process
3
4 require './postfix-lib.pl';
5 $access{'master'} || &error($text{'master_ecannot'});
6 &ReadParse();
7 $master = &get_master_config();
8
9 if ($in{'new'}) {
10         &ui_print_header(undef, $text{'master_create'}, "");
11         $prog = { 'enabled' => 1,
12                   'type' => 'inet',
13                   'private' => '-',
14                   'unpriv' => '-',
15                   'chroot' => '-',
16                   'wakeup' => '-',
17                   'maxprocs' => '-',
18                 };
19         }
20 else {
21         ($prog) = grep { $_->{'name'} eq $in{'name'} &&
22                          $_->{'type'} eq $in{'type'} } @$master;
23         $prog || &error($text{'master_egone'});
24         &ui_print_header(undef, $text{'master_edit'}, "");
25         }
26
27 print &ui_form_start("save_master.cgi", "post");
28 print &ui_hidden("new", $in{'new'}),"\n";
29 print &ui_hidden("old", $in{'name'}),"\n";
30 print &ui_hidden("oldtype", $in{'type'}),"\n";
31 print &ui_table_start($text{'master_header'}, "width=100%", 4);
32
33 print &ui_table_row($text{'master_type'},
34             &ui_select("type", $prog->{'type'},
35                 [ [ "inet", $text{'master_inet'} ],
36                   [ "unix", $text{'master_unix'} ],
37                   [ "fifo", $text{'master_fifo'} ] ]));
38
39 print &ui_table_row($text{'master_enabled'},
40                     &ui_yesno_radio("enabled", int($prog->{'enabled'})));
41
42 if ($prog->{'name'} =~ s/^(\S+)://) {
43         $host = $1;
44         }
45 print &ui_table_row($text{'master_name2'},
46                     &ui_textbox("name", $prog->{'name'}, 20));
47
48 print &ui_table_row($text{'master_host'},
49                     &ui_opt_textbox("host", $host, 15, $text{'master_any'}));
50
51 print &ui_table_row($text{'master_command'},
52                     &ui_textbox("command", $prog->{'command'}, 80), 3);
53
54 print &ui_table_hr();
55
56 print &ui_table_row($text{'master_private2'},
57                     &ui_radio("private", $prog->{'private'},
58                         [ [ "y", $text{'yes'} ],
59                           [ "n", $text{'no'} ],
60                           [ "-", $text{'master_defyes'} ] ]));
61
62 print &ui_table_row($text{'master_unpriv2'},
63                     &ui_radio("unpriv", $prog->{'unpriv'},
64                         [ [ "y", $text{'yes'} ],
65                           [ "n", $text{'no'} ],
66                           [ "-", $text{'master_defyes'} ] ]));
67
68 print &ui_table_row($text{'master_chroot2'},
69                     &ui_radio("chroot", $prog->{'chroot'},
70                         [ [ "y", $text{'yes'} ],
71                           [ "n", $text{'no'} ],
72                           [ "-", $text{'master_defyes'} ] ]));
73
74 $wmode = $prog->{'wakeup'} eq '-' ? 0 :
75          $prog->{'wakeup'} eq '0' ? 1 : 2;
76 $wused = $prog->{'wakeup'} =~ s/\?$//;
77 print &ui_table_row($text{'master_wakeup'},
78     &ui_radio("wakeup", $wmode,
79         [ [ 0, $text{'default'} ],
80           [ 1, $text{'master_unlimit'} ],
81           [ 2, &text('master_wtime',
82         &ui_textbox("wtime", $wmode == 2 ? $prog->{'wakeup'} : "", 6)) ] ]).
83         " (".&ui_checkbox("wused", 1, $text{'master_wused'}, $wused).")", 3);
84
85 $pmode = $prog->{'maxprocs'} eq '-' ? 0 :
86          $prog->{'maxprocs'} eq '0' ? 1 : 2;
87 print &ui_table_row($text{'master_max2'},
88     &ui_radio("maxprocs", $pmode,
89         [ [ 0, $text{'default'} ],
90           [ 1, $text{'master_unlimit'} ],
91           [ 2, &text('master_procs',
92         &ui_textbox("procs", $pmode == 2 ? $prog->{'maxprocs'} : "", 6)) ] ]),
93                 3);
94
95 print &ui_table_end();
96 print &ui_form_end([
97         $in{'new'} ? ( [ "create", $text{'create'} ] )
98            : ( [ "save", $text{'save'} ], [ "delete", $text{'delete'} ] ) ] );
99
100 &ui_print_footer("master.cgi", $text{'master_return'},
101                  "", $text{'index_return'});
102