From 8db671d655a134e54a722f37a1f989e1167710ae Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 Sep 2013 23:00:41 +0100 Subject: [PATCH] break out local_part_inuse --- service | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/service b/service index 741206c..a966409 100755 --- a/service +++ b/service @@ -145,9 +145,16 @@ sub rhsargs ($) { return $row; } -sub generate_local_part () { +sub local_part_inuse ($) { + my ($s) = @_; our $checkexist_q ||= $dbh->prepare("SELECT localpart FROM addrs WHERE localpart=?"); + $checkexist_q->execute($s); + my $row = $checkexist_q->fetchrow_arrayref(); + return !!$row; +} + +sub generate_local_part () { my $s; for (;;) { $s = chr(ord('a')+goodrand(26)); @@ -158,9 +165,7 @@ sub generate_local_part () { : ord('0')+($v-26)); } # print STDERR "$s\n"; - $checkexist_q->execute($s); - my $row = $checkexist_q->fetchrow_arrayref(); - last if !$row; + last if !local_part_inuse($s); } return $s; } -- 2.30.2