chiark
/
gitweb
/
~ijackson
/
evade-mail-usrlocal.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8a1f8c3
)
break out local_part_inuse
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Wed, 4 Sep 2013 22:00:41 +0000
(23:00 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Wed, 4 Sep 2013 22:00:41 +0000
(23:00 +0100)
service
patch
|
blob
|
history
diff --git
a/service
b/service
index 741206c8c318c691adb906e2130c876a3124fb1b..a966409b8da72bc043b42c9a52506cbf689f6aac 100755
(executable)
--- a/
service
+++ b/
service
@@
-145,9
+145,16
@@
sub rhsargs ($) {
return $row;
}
return $row;
}
-sub generate_local_part () {
+sub local_part_inuse ($) {
+ my ($s) = @_;
our $checkexist_q ||=
$dbh->prepare("SELECT localpart FROM addrs WHERE localpart=?");
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));
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";
: 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;
}
}
return $s;
}