2 # Edit or create a server process
4 require './postfix-lib.pl';
5 $access{'master'} || &error($text{'master_ecannot'});
7 $master = &get_master_config();
10 &ui_print_header(undef, $text{'master_create'}, "");
11 $prog = { 'enabled' => 1,
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'}, "");
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);
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'} ] ]));
39 print &ui_table_row($text{'master_enabled'},
40 &ui_yesno_radio("enabled", int($prog->{'enabled'})));
42 if ($prog->{'name'} =~ s/^(\S+)://) {
45 print &ui_table_row($text{'master_name2'},
46 &ui_textbox("name", $prog->{'name'}, 20));
48 print &ui_table_row($text{'master_host'},
49 &ui_opt_textbox("host", $host, 15, $text{'master_any'}));
51 print &ui_table_row($text{'master_command'},
52 &ui_textbox("command", $prog->{'command'}, 80), 3);
56 print &ui_table_row($text{'master_private2'},
57 &ui_radio("private", $prog->{'private'},
58 [ [ "y", $text{'yes'} ],
60 [ "-", $text{'master_defyes'} ] ]));
62 print &ui_table_row($text{'master_unpriv2'},
63 &ui_radio("unpriv", $prog->{'unpriv'},
64 [ [ "y", $text{'yes'} ],
66 [ "-", $text{'master_defyes'} ] ]));
68 print &ui_table_row($text{'master_chroot2'},
69 &ui_radio("chroot", $prog->{'chroot'},
70 [ [ "y", $text{'yes'} ],
72 [ "-", $text{'master_defyes'} ] ]));
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);
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)) ] ]),
95 print &ui_table_end();
97 $in{'new'} ? ( [ "create", $text{'create'} ] )
98 : ( [ "save", $text{'save'} ], [ "delete", $text{'delete'} ] ) ] );
100 &ui_print_footer("master.cgi", $text{'master_return'},
101 "", $text{'index_return'});