#!/usr/local/bin/perl # edit_rpc.cgi # Display a form for editing a RPC service require './inetd-lib.pl'; &ReadParse(); if ($in{'new'}) { &ui_print_header(undef, $text{'editrpc_title1'}, ""); } else { &ui_print_header(undef, $text{'editrpc_title2'}, ""); @rpc = @{(&list_rpcs())[$in{'rpos'}]}; if ($in{'ipos'} =~ /\d/) { @inet = @{(&list_inets())[$in{'ipos'}]}; } } print "
\n"; if (@rpc) { print "\n"; print "\n"; } print "\n"; print "\n"; print "
$text{'editrpc_detail'}
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$text{'editrpc_prgname'}$text{'editrpc_prgnum'}
$text{'editrpc_aliase'} \n"; print "

\n"; if ($config{'rpc_inetd'}) { print "\n"; print "\n"; print "
$text{'editrpc_server'}
\n"; print "\n"; print "\n"; if ($inet[3] =~ /^[^\/]+\/([0-9]+)\-([0-9]+)$/) { $vfrom = $1; $vto = $2; } elsif ($inet[3] =~ /^[^\/]+\/([0-9]+)$/) { $vfrom = $1; $vto = $1; } else { $vfrom = $vto = ""; } print "\n"; print "\n"; print "\n"; print "\n"; $inet[5] =~ /^[^\/]+\/(.*)$/; if ($1 eq "*") { @usedpr = split(/\s+/, $config{'rpc_protocols'}); } else { @usedpr = split(/,/, $1); } print "\n"; $qm = ($inet[8] =~ s/^\?//); print "\n"; if (!$config{'no_internal'}) { printf "\n"; print "\n", $inet[8] eq "internal" ? "" : $inet[9]; } else { printf "\n", $inet[9]; } if ($inet[6] =~ /^(\S+)\.(\d+)$/) { $waitmode = $1; $permin = $2; } else { $waitmode = $inet[6]; $permin = -1; } if ($inet[7] =~ /^(\S+)\.(\S+)$/) { $user = $1; $group = $2; } else { $user = $inet[7]; undef($group); } print "\n"; printf "\n", $waitmode eq "nowait" ? "checked" : ""; print "\n"; print "\n"; if ($config{extended_inetd}) { print "\n", $permin<0 ? "" : $permin; print "\n"; print "\n"; endgrent() if ($gconfig{'os_type'} ne 'hpux'); } print "
\n"; printf " $text{'editrpc_noassigned'}\n", @inet ? "" : "checked"; printf " $text{'editrpc_disable'}\n", @inet && !$inet[1] ? "checked" : ""; printf " $text{'editrpc_enable'}\n", $inet[1] ? "checked" : ""; print "
$text{'editrpc_version'} -\n"; print "$text{'editrpc_socket'}
$text{'editrpc_protocol'}\n"; foreach $upr (split(/\s+/, $config{rpc_protocols})) { printf "". " $upr\n", &indexof($upr,@usedpr)<0?"":"checked"; } print "
$text{'editrpc_server'} $text{'editrpc_internal'}\n", $inet[8] eq "internal" ? "checked" : ""; printf "\n", $inet[8] ne "internal" || !@inet ? "checked" : ""; printf "\n", $inet[8] ne "internal" || !@inet ? $inet[8] : ""; } else { printf "\n"; printf "\n", @inet ? $inet[8] : ""; } print &file_chooser_button("program", 0); if ($config{'qm_mode'}) { print "
"," " x 5; printf " %s\n", $qm ? "checked" : "", $text{'editserv_qm'}; } print "
$text{'editrpc_command'} \n"; if (!$config{'no_internal'}) { printf "
$text{'editrpc_waitmode'} $text{'editrpc_wait'}\n", $waitmode eq "wait" || !@inet ? "checked" : ""; printf " $text{'editrpc_nowait'}$text{'editrpc_execasuser'} ", &user_chooser_button("user", 0),"
$text{'editrpc_max'} \n"; printf " $text{'editrpc_default'}\n", $permin<0 ? "checked" : ""; printf "  \n", $permin<0 ? "" : "checked"; printf "$text{'editrpc_execasgrp'}

\n"; } if (@rpc) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; } else { print "

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