%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,mail,shell_exec,system,proc_open,popen,ini_alter,dl,proc_close,curl_exec,curl_multi_exec,readfile,parse_ini_file,escapeshellarg,escapeshellcmd,show_source,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,mail,php_uname,phpinfo MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/smf/ |
Upload File : |
#!/usr/bin/perl # chooser.cgi # Outputs HTML for a frame-based svc chooser require './smf-lib.pl'; &init_config(); &ReadParse(); # type specifies svc, inst or both $type = "both"; if (defined($in{'type'})) { $type = $in{'type'}; } if ((defined($in{'add'})) && ($in{'add'})) { # Only use last fmri by default $in{'fmri'} =~ s/\s+$//; if ($in{'fmri'} =~ /\n(.*)$/) { $in{'fmri'} = $1; } } $fmri = $in{'fmri'}; if ($fmri =~ /^svc\:\/([^\:]*)\:*(.*)$/) { # fmri entered is valid $svc = $1; $inst = $2; } else { $fmri = "svc:/"; $svc = ""; $inst = ""; } $add = int($in{'add'}); $frame = $in{'frame'}; if ($frame eq "" ) { $frame = 0; } if ($in{'frame'} == 0) { # base frame &PrintHeader(); if ($in{'type'} eq "svc") { print "<title>$text{'svc_chooser_titlesvc'}</title>\n"; } elsif ($in{'type'} eq "inst") { print "<title>$text{'svc_chooser_titleinst'}</title>\n";} else { print "<title>$text{'svc_chooser_titleboth'}</title>\n";} print "<frameset rows='*,50'>\n"; print "<frame marginwidth=10 marginheight=10 name=topframe ", "src=\"@{[&get_webprefix()]}/svc_chooser.cgi?frame=1&fmri=$fmri&add=$add&type=$type\">\n"; print "<frame marginwidth=10 marginheight=10 name=bottomframe ", "src=\"@{[&get_webprefix()]}/svc_chooser.cgi?frame=2&add=$add&fmri=$fmri&type=$type\" ", "scrolling=no>\n"; print "</frameset>\n"; } elsif ($in{'frame'} == 1) { # List of svcs &header(); print <<EOF; <script> function svcclick(fmri, inst, expand, isvalid) { if ((inst == "") || (inst == ":")) { selected_fmri = fmri; } else { selected_fmri = fmri+inst; } curr = top.bottomframe.document.forms[0].fmri.value; if (isvalid ==1) { top.bottomframe.document.forms[0].fmri.value = selected_fmri; } if (expand == 1) { location ="svc_chooser.cgi?frame=1&add=$add&type=$type&fmri="+fmri+inst; } } </script> EOF print "<b>", &text('svc_chooser_fmri', $fmri),"</b>\n"; print "<table>\n"; # filter fmris via fmri var @list = &svcs_listing("$fmri", "-sFMRI"); foreach $f_hash (@list) { $full_fmri = $f_hash->{"FMRI"}; if ($full_fmri =~ /^$fmri([^\/:]+[\/\:]*).*$/) { $elt = "$1"; # check if its an instance, if so add colon if ($fmri =~ /.*\:$/) { $elt = ":$elt"; } push(@flist, "$elt"); } } @fmris = &unique(@flist); $uplevel = $fmri; if ($uplevel =~ /^svc\:\/.+$/) { $uplevel =~ /^svc\:\/(([^\/\:]+[\:\/])*)[^\/\:]+[\/]*[\:]*$/; $uplevel = "svc:/$1"; unshift(@fmris, $uplevel); } foreach $f (@fmris) { print "<tr>\n"; # determine img type if ($f eq $uplevel) { $img = "images/uplevel.gif"; $link = "<a href='javascript:svcclick(\"$uplevel\",\"\",1,0)'>"; } elsif ($f =~ /^.*\/$/) { $img = "images/nextlevel.gif"; $link = "<a href='javascript:svcclick(\"$fmri$f\",\"\",1,0)'>"; } elsif ($f =~ /^\:.*/) { # at instance level... # remove leading ":" $f =~ s/^\:(\S+)$/$1/; $img = "images/instance.gif"; $link = "<a href='javascript:svcclick(\"$fmri\",\"$f\",0,1)'>"; } else { # service $img = "images/service.gif"; # remove final ":" if present $f =~ s/^([^\:]+)\:$/$1/; $inst = ":"; if ($type eq "svc") { # cannot click to instance level! # remove final ":" if present $isvalid = 1; $expand = 0; } elsif ($type eq "inst") { # cannot select svc... $isvalid = 0; $expand = 1; } else { # both valid $isvalid = 1; $expand = 1; } $link = "<a href='javascript:svcclick(\"$fmri$f\",\"$inst\",$expand,$isvalid)'>"; } print "<td>$link<img border=0 width=30 height=30 src=$img></a></td>\n"; print "<td>$link$f</a></td>\n"; print "</tr>\n"; } print "</table></td></tr></table>\n"; &footer(); } elsif ($in{'frame'} == 2) { # Current fmri and OK/cancel buttons &header(); print <<EOF; <script> function fmrichosen() { if ($add == 0) { top.opener.ifield.value = document.forms[0].fmri.value; } else { if (top.opener.ifield.value != "") { top.opener.ifield.value += " "; } top.opener.ifield.value += document.forms[0].fmri.value; } top.close(); } </script> EOF print "<table width=100%><tr><td>\n"; print "<form onSubmit='fmrichosen(); return false'>\n"; print "<input name=fmri size=45 value=\"\">\n"; print "<input type=\"submit\" value=\"$text{'svc_chooser_ok'}\">\n"; print "</form>\n"; print "</td><td>\n"; print "<form>"; print "<input type=\"button\" onClick='top.close()' value=\"$text{'svc_chooser_cancel'}\">"; print "</form>"; print "</td></tr></table></form>\n"; &footer(); }