[Rt-commit] r11339 - in rtir/branches/2.3-EXPERIMENTAL: lib/RT/Action

ruz at bestpractical.com ruz at bestpractical.com
Tue Apr 1 17:06:03 EDT 2008


Author: ruz
Date: Tue Apr  1 17:06:02 2008
New Revision: 11339

Modified:
   rtir/branches/2.3-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm
   rtir/branches/2.3-EXPERIMENTAL/t/013-custom-field-ip.t

Log:
* adjust find ip regexps and add tests for false positive matches

Modified: rtir/branches/2.3-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm
==============================================================================
--- rtir/branches/2.3-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm	(original)
+++ rtir/branches/2.3-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm	Tue Apr  1 17:06:02 2008
@@ -38,14 +38,14 @@
         $existing{ $_->Content } =  1;
     }
     my $content = $attach->Content || '';
-    my @IPs = ( $content =~ /(?<!\d)($RE{net}{IPv4})(?!\d)(?!\/(3[0-2]|[1-2]?[0-9]))/go );
+    my @IPs = ( $content =~ /(?<!\d)($RE{net}{IPv4})(?!\d)(?!\/(?:3[0-2]|[1-2]?[0-9])(?:\D|\z))/go );
     $self->AddIP(
         IP          => $_,
         CustomField => $cf,
         Skip        => \%existing,
     ) foreach @IPs;
 
-    my @CIDRs = ( $content =~ /$RE{net}{CIDR}{IPv4}{-keep}/go );
+    my @CIDRs = ( $content =~ /(?<![0-9.])$RE{net}{CIDR}{IPv4}{-keep}(?!\.?[0-9])/go );
     while ( my ($addr, $bits) = splice @CIDRs, 0, 2 ) {
         my $cidr = join( '.', map $_||0, (split /\./, $addr)[0..3] ) ."/$bits";
         my $range = (Net::CIDR::cidr2range( $cidr ))[0] or next;

Modified: rtir/branches/2.3-EXPERIMENTAL/t/013-custom-field-ip.t
==============================================================================
--- rtir/branches/2.3-EXPERIMENTAL/t/013-custom-field-ip.t	(original)
+++ rtir/branches/2.3-EXPERIMENTAL/t/013-custom-field-ip.t	Tue Apr  1 17:06:02 2008
@@ -2,7 +2,7 @@
 
 use strict;
 use warnings;
-use Test::More tests => 475;
+use Test::More tests => 483;
 
 require "t/rtir-test.pl";
 
@@ -297,6 +297,14 @@
     $ticket->Load( $id );
     is($ticket->id, $id, 'loaded ticket');
     is($ticket->CustomFieldValues('_RTIR_IP')->Count, 0, "IP wasn't added");
+
+    $id = create_ir( $agent, { Subject => "test ip", Content => '8.13.8/8.13.0/1.0' } );
+    ok($id, "created a ticket");
+
+    $ticket = RT::Ticket->new( $RT::SystemUser );
+    $ticket->Load( $id );
+    is($ticket->id, $id, 'loaded ticket');
+    is($ticket->CustomFieldValues('_RTIR_IP')->Count, 0, "IP wasn't added");
 }
 
 diag "check that IPs in messages don't add duplicates" if $ENV{'TEST_VERBOSE'};


More information about the Rt-commit mailing list