#!/usr/local/bin/perl -w
# _____ ___ ____ _ _
# | ___| __ ___ ___|_ _| _ \ __| | |__
# | |_ | '__/ _ \/ _ \| || |_) / _` | '_ \
# | _|| | | __/ __/| || __/ (_| | |_) |
# |_| |_| \___|\___|___|_| \__,_|_.__/
#
# search.cgi-$Name: $-$Revision: 1.10 $ $Date: 2002/09/05 00:16:50 $ <$Author: bapril $@freeipdb.org>
######################################################################
require 'ipdb_httpcgi.pl';
use config;
%config = config::config();
$config{'_REMOTE_USER'} = $ENV{'REMOTE_USER'};
$config{'_REMOTE_ADDR'} = $ENV{'REMOTE_ADDR'};
printHead("$config{ver}");
use DBI;
my $script = get_cgi($0);
my $conn = DBI->connect("DBI:Pg:dbname=$config{dbname};host=$config{dbhost};port=$config{dbport}", "$config{dbuser}", "$config{dbpass}",);
my $buffer;
my @pairs;
my $pair;
my $name;
my $value;
my %FORM;
my $exit;
#Get Variable Space
if($ENV{'CONTENT_LENGTH'}){
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair (@pairs){
($name,$value) = split(/=/,$pair);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
$FORM{NULL} = "NULL";
}
unless($FORM{'ACTION'}){$FORM{'ACTION'} = "NULL"};
print <<EOF;
<center><table BORDER COLS=2>
<tr>
<td BGCOLOR="$config{headcolor}" COLSPAN=2>
<center>
<h1>
<b><font face="Arial,Helvetica" color="$config{headtextcolor}" size=+2>$config{ver}</font>
</font></font></b></h1></center>
</td>
</tr>
</TABLE>
EOF
if($FORM{'ACTION'} =~ /RECURSE/){
my $id1 = $FORM{'CHILDL'};
my $id2 = $FORM{'CHILDR'};
&AllocatedSearch_Head();
&AllocatedSearch($conn,$script,1,$id1);
&AllocatedSearch($conn,$script,1,$id2);
print "</TABLE></FORM>";
$conn->disconnect;
exit();
}
if($FORM{'ACTION'} =~ /SUBMIT2/){
my $block = "";
if($FORM{'BLOCK'}){
$block = &IP2Deci($FORM{'BLOCK'});
}
my $region = $FORM{'REGION'};
my $bits = $FORM{'BITS'};
my $cust = $FORM{'CUSTOMER'};
my $custdesc = $FORM{'CUSTDESC'};
&AllocatedSearch_Head();
&AllocatedSearch($conn,$script,0,0,$block,$bits,$region,$cust,$custdesc,$FORM{'HOSTNAME'});
print "</TABLE></FORM>";
printTail();
$conn->disconnect;
exit();
}
if($FORM{'ACTION'} =~ /SUBMIT3/){
print "<TABLE BORDER=0 BGCOLOR=BLACK CELLPADDING=1 CELLSPACING=1>";
print "<TR><TH>REGION</TH><TH>Block</TH><TH>Reclaim</TH><TH>ID</TH></TR>\n";
&FreeList($conn);
print "</TABLE></FORM>";
printTail();
$conn->disconnect;
exit();
}
print <<EOF;
<TABLE BORDER=0 BGCOLOR=BLACK CELLPADDING=1 CELLSPACING=1>
<TR>
</FORM><FORM ACTION=$script METHOD=POST>
<INPUT TYPE=HIDDEN NAME=ACTION VALUE=SUBMIT2>
<td bgcolor=#000000><font color=#FFFFFF>Search:</font></td>
<td bgcolor=#000000><font color=#FFFFFF>List EVERY available block in ALL regions</font></td>
</tr>
<tr>
<td>Block:<input TYPE=TEXT NAME=BLOCK SIZE=18> Region:<SELECT NAME=REGION>
<option> --- Please Choose --
EOF
ListRegions($conn);
print "</select>\n";
print "Bits: <INPUT NAME=BITS SIZE=4><BR>\n";
if($config{custname}){
print "$config{custname_f}: <INPUT NAME=CUSTDESC><BR> \n";
}
if($config{custnum}){
print "$config{custnum_f}:<INPUT NAME=CUSTOMER><BR>\n";
}
if($config{allowDNS}){
print "Hostname:<INPUT NAME=HOSTNAME><BR>\n";
}
print <<EOF;
<input TYPE=SUBMIT VALUE=Search></td></FORM>
<FORM ACTION=$script METHOD=POST>
<INPUT TYPE=HIDDEN NAME=ACTION VALUE=SUBMIT3>
<td><input TYPE=SUBMIT VALUE="List" NAME=function></td>
</FORM>
</tr>
<tr>
</TABLE>
EOF
&printTail();
$conn->disconnect;