#!/usr/local/bin/perl # edit_serv.cgi # Display a form for editing or creating an internet service require './xinetd-lib.pl'; &ReadParse(); if ($in{'new'}) { &ui_print_header(undef, $text{'serv_create'}, ""); } else { &ui_print_header(undef, $text{'serv_edit'}, ""); @conf = &get_xinetd_config(); $xinet = $conf[$in{'idx'}]; $q = $xinet->{'quick'}; ($defs) = grep { $_->{'name'} eq 'defaults' } @conf; foreach $m (@{$defs->{'members'}}) { $ddisable{$m->{'value'}}++ if ($m->{'name'} eq 'disabled'); } } print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'serv_header1'}
\n"; print "\n"; printf "\n", $xinet->{'value'}; $id = $q->{'id'}->[0] || $xinet->{'value'}; $dis = $q->{'disable'}->[0] eq 'yes' || $ddisable{$id}; print "\n"; printf "\n", $dis ? 'checked' : '', $text{'no'}; print "\n"; printf "\n", $q->{'bind'}->[0]; print "\n"; printf "\n", $q->{'port'}->[0]; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'serv_id'}$text{'serv_enabled'} %s\n", $dis ? '' : 'checked', $text{'yes'}; printf " %s
$text{'serv_bind'} %s\n", $q->{'bind'} ? '' : 'checked', $text{'serv_bind_def'}; printf "\n", $q->{'bind'} ? 'checked' : ''; printf "$text{'serv_port'} %s\n", $q->{'port'} ? '' : 'checked', $text{'serv_port_def'}; printf "\n", $q->{'port'} ? 'checked' : ''; printf "
$text{'serv_sock'}$text{'serv_proto'}

\n"; print "\n"; print "\n"; print "
$text{'serv_header2'}
\n"; $prog = &indexof('INTERNAL', @{$q->{'type'}}) >= 0 ? 0 : $q->{'redirect'} ? 2 : 1; print "\n", $prog == 2 ? $q->{'redirect'}->[1] : ""; print "\n"; printf "\n", $q->{'user'}->[0], &user_chooser_button('user'); print "\n"; printf "\n", $q->{'group'}->[0], &group_chooser_button('group'); print "\n"; printf "\n", $q->{'wait'}->[0] eq 'yes' ? '' : 'checked', $text{'no'}; $inst = uc($q->{'instances'}->[0]) eq 'UNLIMITED' ? '' : $q->{'instances'}->[0]; print "\n"; printf "\n", $inst; print "\n"; printf "\n", $q->{'nice'}->[0]; $cps = uc($q->{'cps'}->[0]) eq 'UNLIMITED' ? '' : $q->{'cps'}->[0]; print "\n"; printf "\n", $cps; print "\n"; print "\n"; printf "\n", $q->{'cps'}->[1]; print "
$text{'serv_prog'} \n"; printf " %s
\n", $prog == 0 ? 'checked' : '', $text{'serv_internal'}; printf " %s\n", $prog == 1 ? 'checked' : '', $text{'serv_server'}; printf "
\n", join(" ", $q->{'server'}->[0], @{$q->{'server_args'}}); printf " %s\n", $prog == 2 ? 'checked' : '', $text{'serv_redirect'}; printf " %s\n", $prog == 2 ? $q->{'redirect'}->[0] : "", $text{'serv_rport'}; printf "
$text{'serv_user'} %s$text{'serv_group'} %s\n", $q->{'group'} ? '' : 'checked', $text{'serv_group_def'}; printf "\n", $q->{'group'} ? 'checked' : ''; printf " %s
$text{'serv_wait'} %s\n", $q->{'wait'}->[0] eq 'yes' ? 'checked' : '', $text{'yes'}; printf " %s$text{'serv_inst'} %s\n", $inst ? '' : 'checked', $text{'serv_inst_def'}; printf "\n", $inst ? 'checked' : ''; printf "
$text{'serv_nice'} %s\n", $q->{'nice'} ? '' : 'checked', $text{'default'}; printf "\n", $q->{'nice'} ? 'checked' : ''; printf "$text{'serv_cps0'} %s\n", $cps ? '' : 'checked', $text{'serv_cps_def'}; printf "\n", $cps ? 'checked' : ''; printf " %s
$text{'serv_cps1'} $text{'serv_sec'}

\n"; print "\n"; print "\n"; print "
$text{'serv_header3'}
\n"; print "\n"; printf "\n"; print "\n"; printf "\n"; print "\n"; printf "\n", join(" ", @{$q->{'access_times'}}); print "
$text{'serv_from'} %s\n", $q->{'only_from'} ? '' : 'checked', $text{'serv_from_def'}; printf " %s
\n", $q->{'only_from'} ? 'checked' : '', $text{'serv_from_sel'}; print "
$text{'serv_access'} %s\n", $q->{'no_access'} ? '' : 'checked', $text{'serv_access_def'}; printf " %s
\n", $q->{'no_access'} ? 'checked' : '', $text{'serv_access_sel'}; print "
$text{'serv_times'} %s\n", $q->{'access_times'} ? '' : 'checked', $text{'serv_times_def'}; printf "\n", $q->{'access_times'} ? 'checked' : ''; printf "
\n"; print "\n"; if ($in{'new'}) { print "\n"; } else { print "\n"; print "\n"; } print "

\n"; &ui_print_footer("", $text{'index_return'});