#!/usr/local/bin/perl $scsi_cmd = "/http/cgi-bin/g_scsi"; $main = "/damon/daview.html"; $img = "/damon/"; $ENV{'PATH'} = '/bin:/usr/bin'; $ENV{'SHELL'} = '/bin/sh' if $ENV{'SHELL'} ne ''; $ENV{'IFS'} = '' if $ENV{'IFS'} ne ''; # # Print out a content-type for HTTP/1.0 compatibility # print "Content-type: text/html\n\n"; print " DA View

TEXA Disk Array Parameter Viewer

"; &Get_Para; # Get & setup Input parameters &Get_RAID_Mode; # get parameters $mtype =~ s/\s//g; open(FILE, "param.dat"); $Start=0; while() { if($Start==1) { $parabuf=$parabuf.$_; } $Start=0 if /Model/ && $Start==1; $Start=1 if /$mtype/; }; $parabuf =~ s/\b +\b/\#/g; $parabuf =~ s/\s//g; $parabuf =~ s/\#/ /g; @para = split(/\;/,$parabuf); if ($err == 0) { print " "; print " "; print " "; print " "; foreach $parameter (@para) { @item=split(/\,/,$parameter); if($rev ge $item[0]) { if($Group ne $item[1]) { $GroupNumber=0; foreach $GroupPara (@para) { @GroupItem=split(/\,/,$GroupPara); $GroupNumber+=1 if $GroupItem[1] eq $item[1] and $rev ge $GroupItem[0]; } if($nu[$item[3]] ne "FF") { print " "; } else { print " "; } $Group=$item[1]; } else { if($nu[$item[3]] ne "FF") { print " "; } else { print " "; } } } } print "
Group Description Value
Inquiry Product ID ",$product,"
Vendor ID ",$vendor,"
FirmWare ",$rev,"
$item[1] $item[2] ",$item[hex($nu[$item[3]])+4],"
$item[1] $item[2] ","NOT USED","
$item[2] ",$item[hex($nu[$item[3]])+4],"
$item[2] ","NOT USED","
"; } print "

to Startup Menu
"; exit; # # Get RAID mode # sub Get_RAID_Mode { $err=0; open(SCSI, "$scsi_cmd $port $id 0|"); # Inquiry read(SCSI, $buf, 1024); @nu = split(/ /, $buf); if ((length($nu[0]) == 0)||($nu[0] ne "00")) { print "SCSI access Error
\n"; $err=1; } else { #vendor id $vendor = pack("H2" x 4,$nu[9],$nu[10],$nu[11],$nu[12]); $vendor .= pack("H2" x 4,$nu[13],$nu[14],$nu[15],$nu[16]); #product id $product = pack("H2" x 4,$nu[17],$nu[18],$nu[19],$nu[20]); $product .= pack("H2" x 4,$nu[21],$nu[22],$nu[23],$nu[24]); $product .= pack("H2" x 4,$nu[25],$nu[26],$nu[27],$nu[28]); $product .= pack("H2" x 4,$nu[29],$nu[30],$nu[31],$nu[32]); } close(SCSI); open(SCSI, "$scsi_cmd $port $id 1|"); # mode sense 3e read(SCSI, $buf, 1024); @nu = split(/ /, $buf); if ((length($nu[0]) == 0)||($nu[0] ne "00")) { print "SCSI access Error
\n"; $err=1; } else { #firmware revision $rev = pack("H2" x 5,$nu[18],$nu[19],$nu[20],$nu[21],$nu[22]); $mtype = pack("H2" x 4,$nu[31],$nu[32],$nu[33],$nu[34]); #get type } close(SCSI); } # # Get input parameters # sub Get_Para{ $buffer=$ENV{'QUERY_STRING'}; #GET @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } $port = $FORM{'port'}; # SCSI card port number if ($port eq "") {$port = 0;} $id = $FORM{'id'}; # SCSI ID number if ($id eq "") {$id = 0;} }