Index: /trunk/DNSDB.pm
===================================================================
--- /trunk/DNSDB.pm	(revision 827)
+++ /trunk/DNSDB.pm	(revision 828)
@@ -6575,5 +6575,17 @@
     my $stamp = shift;
     my $loc = shift;
-    my $zone = new NetAddr::IP shift;
+    my $zone = shift;
+    # error/sanity check - if $zone is not an IP address, make sure we're just
+    # converting a string that looks like an IP into a NetAddr::IP, instead of
+    # doing a DNS lookup that is virtually guaranteed to be wrong.  still a
+    # little hazy where this functionality in NetAddr::IP is useful.
+    # instead, fall back to the octet-boundary CIDR derived from $sub.
+    if ($zone !~ m,^\d+\.\d+\.\d+\.\d+/\d+$,) {
+      $zone = $sub;
+      $zone =~ s,\d+/\d+$,0/24,;   ##fixme:  case of larger than /24?
+      # could apply another sanity check here?  as above anything much larger
+      # than a /16 is WAY too time-consuming to publish in one go
+    }
+    $zone = new NetAddr::IP $zone;
     my $ptronly = shift || 0;
 
