Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<%@ LANGUAGE = PerlScript%> <html> <head> <meta name="GENERATOR" content="ActiveState_Hack = Dick Hardt"> <!-- Copyright (c) 1996, Microsoft Corporation. All rights reserved. Developed by ActiveState Internet Corp., http://www.ActiveState.com --> <title>Dump PerlScript's Variables</title> </head> <body> <BODY BGCOLOR=#FFFFFF> <!-- ActiveState PerlScript sample PerlScript: The coolest way to program custom web solutions. -->
<!-- Masthead --> <TABLE CELLPADDING=3 BORDER=0 CELLSPACING=0> <TR VALIGN=TOP ><TD WIDTH=400> <A NAME="TOP"><IMG SRC="PSBWlogo.gif" WIDTH=400 HEIGHT=48 ALT="ActiveState PerlScript" BORDER=0></A><P> </TD></TR></TABLE>
<% # # here are some variables and functions defined # just so we can see them in the dump #
$MyForm::var5= "MyForm::var5"; $YourForm::var5= "YourForm::var5";
$myScalar = "Scalar String"; $myLongString = "Here is a long string that goes on and on and on and on and on and on and on"; $myHash{red}="apple"; $myHash{green}="pear"; $myHash{black}="olive"; @myArray=('one','two','three');
sub foo ($$$) { my ($a,$b,$c) = @_; }
sub MyForm::foo($$$) { my ($a,$b,$c) = @_; } %>
<h2> Dump PerlScript's Variables </h2> <hr> <PRE> <code> <% DumpPerlNames(); %> </code></pre> <hr> <h2> ... That's all folks! </h2>
<script language=PerlScript RUNAT=Server>
# Perl Variable tree dump
sub strip{ my $str = $_[0];
$str =~ s/</</g; $str =~ s/>/>/g; $str =~ s/[\x00-\x1F]/<b>.<\/b>/g; return $str; }
sub DumpNames(\%$) { my ($package,$packname) = @_; my $symname = 0; my $value = 0; my $key = 0; my $i = 0;
if ($packname eq 'main::') {
$Response->write("<H2>Packages</H2>\n");
foreach $symname (sort keys %$package) { local *sym = $$package{$symname}; $Response->write("\t<A HREF=#Package_$symname>$symname</A>\n") if ((defined %sym) && ($symname =~/::/)); } }
$Response->write("<H2>\n<a name=\"Package_$packname\"::>Package $packname</a>\n</H2>"); #Scalars Lists Hashes Functions $Response->write("$packname Scalars\n"); foreach $symname (sort keys %$package) { local *sym = $$package{$symname}; if (defined $sym) { #$value = ' 'x(length($symname) - 30)."\$$symname"; #$value = $value."\t=".((length($sym) > 40) ? sprintf("%37.37s...",$sym) : $sym); $value = "\t\$".strip($symname)."\t".strip($sym)."\n"; $Response->write($value); } }
$Response->write("$packname Functions\n"); foreach $symname (sort keys %$package) { local *sym = $$package{$symname}; $Response->write("\t$symname()\n") if defined &sym; } $Response->write("$packname Lists\n"); foreach $symname (sort keys %$package) { local *sym = $$package{$symname}; $Response->write("\t\@$symname\n") if defined @sym; }
$Response->write("$packname Hashes\n"); foreach $symname (sort keys %$package) { local *sym = $$package{$symname}; $Response->write("\t\@$symname\n") if ((defined %sym) && !($symname =~/::/)); }
$Response->write("\n");
if ($packname ne 'main::') { return; }
foreach $symname (sort keys %$package) { local *sym = $$package{$symname}; DumpNames(\%sym,$symname) if ((defined %sym) && ($symname =~/::/) && ($symname ne 'main::')); } }
sub DumpPerlNames { DumpNames(%main::,'main::'); }
</script> <!-- +++++++++++++++++++++++++++++++++++++ here is the standard showsource link - Note that PerlScript must be the default language --> <hr> <% $url = $Request->ServerVariables('PATH_INFO')->item; $_ = $Request->ServerVariables('PATH_TRANSLATED')->item; s/[\/\\](\w*\.asp\Z)//m; $params = 'filename='."$1".'&URL='."$url"; $params =~ s#([^a-zA-Z0-9&_.:%/-\\]{1})#uc '%' . unpack('H2', $1)#eg; %> <A HREF="index.htm"> Return </A> <A HREF="showsource.asp?<%=$params%>"> <h4><i>view the source</i></h4></A>
</body> </html>
|