Index: trunk/cgi-bin/IPDB.pm
===================================================================
--- trunk/cgi-bin/IPDB.pm	(revision 918)
+++ trunk/cgi-bin/IPDB.pm	(revision 920)
@@ -1340,7 +1340,22 @@
   my $pcity = shift;
 
+  my $rangelimit = shift;
+  if ($rangelimit) {
+    if ($rangelimit !~ /^[\d\.\/]+$/) {
+      # Just skip limiting on ridiculous range limits
+      $rangelimit = '';
+    } else {
+      # now check for sanity
+      $rangelimit = new NetAddr::IP $rangelimit;
+      $rangelimit = '' if !$rangelimit;
+    }
+  }
+
   my ($ptype) = ($iptype =~ /^(.)i$/);
   return if !$ptype;
   $ptype .= '_';
+
+  my @qargs = ($pcity, $ptype);
+  push @qargs, "$rangelimit" if $rangelimit;
 
   my $plist = $dbh->selectall_arrayref(	q(
@@ -1348,9 +1363,10 @@
 	FROM poolips p
 	JOIN allocations a ON p.parent_id=a.id
-	WHERE p.available='y' AND a.city = ? AND p.type LIKE ?
+	WHERE p.available='y' AND a.city = ? AND p.type LIKE ?).
+	($rangelimit ? ' AND a.cidr << ?' : '').q(
 	GROUP BY a.id,a.cidr,a.city
         ORDER BY a.cidr
 	),
-	{ Slice => {} }, ($pcity, $ptype) );
+	{ Slice => {} }, @qargs );
   return $plist;
 } # end getPoolSelect()
