Index: trunk/cgi-bin/IPDB.pm
===================================================================
--- trunk/cgi-bin/IPDB.pm	(revision 652)
+++ trunk/cgi-bin/IPDB.pm	(revision 653)
@@ -500,10 +500,32 @@
   my $custsth = $dbh->prepare("SELECT count(*) FROM customers WHERE custid = ?");
 
+  # snag some more details
+  my $substh = $dbh->prepare("SELECT count(*) FROM allocations WHERE cidr <<= ? AND type='rm' AND master_id = ? AND NOT cidr = ? ");
+  my $alsth = $dbh->prepare("SELECT count(*) FROM allocations WHERE cidr <<= ? ".
+	"AND NOT type='rm' AND NOT type='mm' AND master_id = ?");
+  my $freesth = $dbh->prepare("SELECT count(*) FROM freeblocks WHERE cidr <<= ? AND master_id = ?");
+  my $lfreesth = $dbh->prepare("SELECT masklen(cidr) AS maskbits FROM freeblocks WHERE cidr <<= ?".
+  	" AND master_id = ? ORDER BY masklen(cidr) LIMIT 1");
+
   my @blocklist;
-  while (my ($cidr,$city,$type,$custid,$swip,$desc,$id) = $sth->fetchrow_array()) {
+  while (my ($cidr,$city,$type,$custid,$swip,$desc,$id,$mid) = $sth->fetchrow_array()) {
     $custsth->execute($custid);
     my ($ncust) = $custsth->fetchrow_array();
+    $substh->execute($cidr, $mid, $cidr);
+    my ($cont) = $substh->fetchrow_array();
+    $alsth->execute($cidr, $mid);
+    my ($alloc) = $alsth->fetchrow_array();
+    $freesth->execute($cidr, $mid);
+    my ($free) = $freesth->fetchrow_array();
+    $lfreesth->execute($cidr, $mid);
+    my ($lfree) = $lfreesth->fetchrow_array();
+    $lfree = "/$lfree" if $lfree;
+    $lfree = '<NONE>' if !$lfree;
     my %row = (
 	block => $cidr,
+	subcontainers => $cont,
+	suballocs => $alloc,
+	subfree => $free,
+	lfree => $lfree,
 	city => $city,
 	type => $disp_alloctypes{$type},
