[Rt-commit] r6120 - in rtir/branches/2.1-EXPERIMENTAL: .

jesse at bestpractical.com jesse at bestpractical.com
Fri Sep 29 11:28:37 EDT 2006


Author: jesse
Date: Fri Sep 29 11:28:36 2006
New Revision: 6120

Modified:
   rtir/branches/2.1-EXPERIMENTAL/   (props changed)
   rtir/branches/2.1-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm

Log:
 r27943 at 249:  jesse | 2006-09-29 11:28:30 -0400
 * Skip duplicated addresses when adding them to the IPs field


Modified: rtir/branches/2.1-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm
==============================================================================
--- rtir/branches/2.1-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm	(original)
+++ rtir/branches/2.1-EXPERIMENTAL/lib/RT/Action/RTIR_FindIP.pm	Fri Sep 29 11:28:36 2006
@@ -29,16 +29,23 @@
     my $cf = $ticket->LoadCustomFieldByIdentifier('_RTIR_IP');
     return 1 unless $cf && $cf->id;
 
+    my %existing;
+    for( @{$cf->ValuesForObject($ticket)->ItemsArrayRef} ) {
+        $existing{$_->Content} =  1;
+
+    }
     my $attach = $self->TransactionObj->ContentObj;
     return 1 unless $attach && $attach->id;
 
     my @IPs = ( $attach->Content =~ /($RE{net}{IPv4})/go );
-    foreach ( @IPs ) {
+    foreach my $ip ( @IPs ) {
+        next if ($existing{$ip}); # skip any IP we already had.
         my ($status, $msg) = $ticket->AddCustomFieldValue(
-            Value => $_,
+            Value => $ip,
             Field => $cf,
         );
         $RT::Logger->error("Couldn't add CF value: $msg") unless $status;
+        $existing{$ip} = 1;
     }
 
     my @CIDRs = ( $attach->Content =~ /$RE{net}{CIDR}{IPv4}{-keep}/go );


More information about the Rt-commit mailing list