speed up service search
authorMark Wells <mark@freeside.biz>
Fri, 5 Apr 2013 19:13:45 +0000 (12:13 -0700)
committerMark Wells <mark@freeside.biz>
Fri, 5 Apr 2013 19:14:23 +0000 (12:14 -0700)
FS/FS/svc_hardware.pm

index 96502e4..b28cc9e 100644 (file)
@@ -105,9 +105,13 @@ sub search_sql {
   my ($class, $string) = @_;
   my @where = ();
 
-  my $ip = NetAddr::IP->new($string);
-  if ( $ip ) {
-    push @where, $class->search_sql_field('ip_addr', $ip->addr);
+  if ( $string =~ /^[\d\.:]+$/ ) {
+    # if the string isn't an IP address, this will waste several seconds
+    # attempting a DNS lookup.  so try to filter those out.
+    my $ip = NetAddr::IP->new($string);
+    if ( $ip ) {
+      push @where, $class->search_sql_field('ip_addr', $ip->addr);
+    }
   }
   
   if ( $string =~ /^(\w+)$/ ) {