#!/usr/local/bin/perl # index.cgi # Display a list of known services, built from those handled by inetd and # from the services file require './inetd-lib.pl'; &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1, 0, &help_search_link("inetd", "man", "doc", "howto")); # break down into rpc and internet services $j = 0; foreach $i (&list_inets()) { if ($i->[2]) { # rpc service $i->[3] =~ /^(\S+)\//; if ($i->[1]) { $rpc_active{$1} = $j; } else { $rpc_disabled{$1} = $j; } } else { # internet service if ($i->[1]) { $int_active{$i->[3],$i->[5]} = $j; } else { $int_disabled{$i->[3],$i->[5]} = $j; } } $j++; } print "
\n"; print "$text{'index_newservice'}.
\n"; print "\n"; print "\n"; print "
$text{'index_service'}
\n"; $i = 0; @slist = &list_services(); if ($config{'sort_mode'} == 1) { @slist = sort { uc($a->[1]) cmp uc($b->[1]) } @slist; } elsif ($config{'sort_mode'} == 2) { @slist = sort { (defined($int_active{$b->[1],$b->[3]}) ? 2 : defined($int_disabled{$b->[1],$b->[3]}) ? 1 : 0) <=> (defined($int_active{$a->[1],$a->[3]}) ? 2 : defined($int_disabled{$a->[1],$a->[3]}) ? 1 : 0) } @slist; } foreach $s (@slist) { $ia = $int_active{$s->[1],$s->[3]}; $id = $int_disabled{$s->[1],$s->[3]}; if ($ia =~ /\d/) { $op = ""; $cl = ""; $ip = $ia; } elsif ($id =~ /\d/) { $op = ""; $cl = ""; $ip = $id; } elsif (!$config{'show_empty'}) { next; } else { $op = $cl = $ip = ""; } if ($i%4 == 0) { print "\n"; } print "\n"; if ($i++%4 == 3) { print "\n"; } } print "
$op"; print "[5]&ipos=$ip\">", &html_escape($s->[1]),"(",&html_escape($s->[3]),")"; print "$cl
\n"; print "\n"; print "\n"; if (!$config{'show_empty'}) { print "\n"; } print "
$text{'index_newservice'}\n"; print "\n"; print "\n"; print "
\n"; print &ui_hr(); print "$text{'index_newrpc'}.
\n"; print "\n"; print "\n"; print "
$text{'index_rpc'}
\n"; $i = 0; @rlist = &list_rpcs(); if ($config{'sort_mode'} == 1) { @rlist = sort { uc($a->[1]) cmp uc($b->[1]) } @rlist; } elsif ($config{'sort_mode'} == 2) { @rlist = sort { ($rpc_active{$b->[1]} ? 2 : $rpc_disabled{$b->[1]} ? 1 : 0) <=> ($rpc_active{$a->[1]} ? 2 : $rpc_disabled{$a->[1]} ? 1 : 0) } @rlist; } foreach $r (@rlist) { if ($i%4 == 0) { print "\n"; } $ra = $rpc_active{$r->[1]}; $rd = $rpc_disabled{$r->[1]}; $ranum = $rpc_active{$r->[2]}; $rdnum = $rpc_disabled{$r->[2]}; if ($ra =~ /\d/) { $op = ""; $cl = ""; $rp = $ra; } elsif ($ranum =~ /\d/) { $op = ""; $cl = ""; $rp = $ranum; } elsif ($rd =~ /\d/) { $op = ""; $cl = ""; $rp = $rd; } elsif ($rdnum =~ /\d/) { $op = ""; $cl = ""; $rp = $rdnum; } else { $op = $cl = $rp = ""; } print "\n"; if ($i++%4 == 3) { print "\n"; } } print "
$op"; print "[4]&ipos=$rp\">", &html_escape($r->[1]),"$cl
\n"; print "$text{'index_newrpc'}.

\n"; print &ui_hr(); print "

\n"; print "\n"; print "\n"; print "\n"; print "
$text{'index_applymsg'}
\n"; &ui_print_footer("/", $text{'index'});