[freeside-commits] freeside/FS/FS prepay_credit.pm,1.9,1.10

Ivan,,, ivan at wavetail.420.am
Tue Feb 19 18:07:04 PST 2008


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv21322/FS/FS

Modified Files:
	prepay_credit.pm 
Log Message:
retry collisions a bit, acme is getting duplicate errors... guess they're using lots and lots of prepaid cards.  closes: RT#3104

Index: prepay_credit.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/prepay_credit.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- prepay_credit.pm	7 Dec 2006 02:40:31 -0000	1.9
+++ prepay_credit.pm	20 Feb 2008 02:07:01 -0000	1.10
@@ -162,10 +162,18 @@
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
+  my $condup = 0; #don't retry forever
+
   my @cards = ();
   for ( 1 ... $num ) {
+
+    my $identifier = join('', map($codeset[int(rand $#codeset)], (0..7) ) );
+
+    redo if qsearchs('prepay_credit',{identifier=>$identifier}) && $condup++<23;
+    $condup = 0;
+
     my $prepay_credit = new FS::prepay_credit {
-      'identifier' => join('', map($codeset[int(rand $#codeset)], (0..7) ) ),
+      'identifier' => $identifier,
       %$hashref,
     };
     my $error = $prepay_credit->check || $prepay_credit->insert;



More information about the freeside-commits mailing list