#
# Report all operating system classes.  On the fly evaluate the number of
# hosts per class, per operating system version and related statistics.
#
print CLIENT <<EOF;
<HTML>
<HEAD>
<title> Host Tables - by System Type </title>
<LINK REV="made" HREF="mailto:saint\@saintcorporation.com">
</HEAD>
<BODY BGCOLOR="white" vlink="#000000" link="#04289D">

<P></P>

<P>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
	<TR>
		<TD COLSPAN="2"><IMG SRC="$HTML_ROOT/images/data_analysis_banner.gif" WIDTH="621" HEIGHT="106" ALIGN="BOTTOM" ALT="Data Analysis" BORDER="0"></TD>
	</TR>
	<TR>
	  <TD WIDTH="86" VALIGN="TOP">
	    <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
		<TR>
		    <TD WIDTH="86"><A HREF="http://www.saintcorporation.com"><IMG SRC="$HTML_ROOT/images/home.gif" WIDTH="86" HEIGHT="55" ALIGN="BOTTOM" ALT="SAINT Corporation"
			BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86"><A HREF="$HTML_ROOT/saint.html"><IMG SRC="$HTML_ROOT/images/home_button.gif" WIDTH="86" HEIGHT="46"
			ALIGN="BOTTOM" ALT="SAINT Home" BORDER="0" STYLE="Background-Image : none"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86"><A HREF="$HTML_SERVER/data/saint_data_form.pl"><IMG SRC="$HTML_ROOT/images/data_mgmt_button.gif" WIDTH="86"
			HEIGHT="46" ALIGN="BOTTOM" ALT="Data Management" BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86"><A HREF="$HTML_SERVER/running/saint_run_form.pl"><IMG SRC="$HTML_ROOT/images/target_selection_button.gif"
			WIDTH="86" HEIGHT="46" ALIGN="BOTTOM" ALT="Target Selection" BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86"><A HREF="$HTML_SERVER/reporting/analysis.pl"><IMG SRC="$HTML_ROOT/images/data_analysis_button.gif" WIDTH="86"
			HEIGHT="46" ALIGN="BOTTOM" ALT="Data Analysis" BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86"><A HREF="$HTML_SERVER/admin/saint_cf_form.pl"><IMG SRC="$HTML_ROOT/images/config_mgmt_button.gif" WIDTH="86"
			HEIGHT="46" ALIGN="BOTTOM" ALT="Configuration Management" BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86"><A HREF="$HTML_ROOT/saint_documentation.html"><IMG SRC="$HTML_ROOT/images/documentation_button.gif"
			WIDTH="86" HEIGHT="46" ALIGN="BOTTOM" ALT="SAINT Documentation" BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86" HEIGHT="46"><A HREF="$HTML_ROOT/docs/FAQ.html#trouble"><IMG SRC="$HTML_ROOT/images/troubleshooting_button.gif" WIDTH="86"
			HEIGHT="46" ALIGN="BOTTOM" ALT="Troubleshooting" BORDER="0"></A></TD>
		</TR>
		<TR>
		    <TD WIDTH="86" HEIGHT="65"><IMG SRC="$HTML_ROOT/images/bottom_border.gif" WIDTH="86" HEIGHT="75" ALIGN="BOTTOM" ALT="--------" BORDER="0"></TD>
		</TR>
	    </TABLE>
	  </TD>
	  <TD VALIGN="TOP">
		<DL>
			<P>
		</DL>

<CENTER><H1>Host Tables - by System Type</H1></CENTER>
<hr>
<UL><UL>
<h3>Number of hosts per system type (vulnerable/total).</h3>
<ul>
EOF

&make_hosttype_info() ;

for (sort keys %systypes_by_class) {
	# Mask possible blanks in the system class names.
	($_class = $_) =~ tr / \//?!/;
	$sysclass_severities{$_class} = 0 
		unless defined($sysclass_severities{$_class});
	$_dot = $sysclass_severities{$_} ? "reddot" : "blackdot";
	$_alt = $sysclass_severities{$_} ? "*" : "-";
	print CLIENT <<EOF
	<dt><IMG SRC=$HTML_ROOT/dots/$_dot.gif ALT="$_alt"> 
	<a href="saint_info_OSclass.pl,$_class,"> $_</a>
	($sysclass_severities{$_}/$sysclass_counts{$_})
EOF
	unless /other/;
}
if (sizeof(*hosttype) > 0) {
	$_class = "other";
	$sysclass_severities{$_class} = 0 
		unless defined($sysclass_severities{$_class});
	$_dot = $sysclass_severities{$_class} ? "reddot" : "blackdot";
	$_alt = $sysclass_severities{$_class} ? "*" : "-";
	print CLIENT <<EOF;
	<dt><IMG SRC=$HTML_ROOT/dots/$_dot.gif ALT="$_alt">
	<a href="saint_info_OSclass.pl,other,"> Other/unknown</a>
	($sysclass_severities{$_class}/$sysclass_counts{$_class})
	</ul>
	<HL><strong>System types with a red dot next to them have a vulnerable host contained within.</strong>
EOF
} else {
	print CLIENT <<EOF;
	</ul>
	No system type information available.
EOF
}

print CLIENT <<EOF;
<hr> <a href=$HTML_STARTPAGE> Back to the SAINT start page </a> |
<a href=analysis.pl> Back to SAINT Reporting and Analysis </a>
</UL></UL>
	  </TD>
	</TR>
</TABLE>
</BODY>
</HTML>
EOF
