[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