From fd67c768f2f59f7883197889ef02bb3e1fb2b0c7 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Fri, 5 Apr 2013 12:13:45 -0700 Subject: [PATCH] speed up service search --- FS/FS/svc_hardware.pm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/FS/FS/svc_hardware.pm b/FS/FS/svc_hardware.pm index 96502e41e..b28cc9ef5 100644 --- a/FS/FS/svc_hardware.pm +++ b/FS/FS/svc_hardware.pm @@ -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+)$/ ) { -- 2.11.0