chiark
/
gitweb
/
~ijackson
/
d.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9efccaa
)
break out gen_local_part_alphanum
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Wed, 4 Sep 2013 22:11:22 +0000
(23:11 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Wed, 4 Sep 2013 22:11:22 +0000
(23:11 +0100)
service
patch
|
blob
|
history
diff --git
a/service
b/service
index f9992a36044d67125690e3542e32665446e69b8e..3e1197d141b6b21dc4b768e4aaf7b05465ea3e85 100755
(executable)
--- a/
service
+++ b/
service
@@
-41,6
+41,7
@@
our $dom;
our $user;
our $priv;
our $showcomment;
our $user;
our $priv;
our $showcomment;
+our $genmethod = 'alphanum';
sub nextarg () {
die "too few arguments\n" unless @ARGV;
sub nextarg () {
die "too few arguments\n" unless @ARGV;
@@
-160,16
+161,21
@@
sub local_part_inuse ($) {
return !!$row;
}
return !!$row;
}
+sub gen_local_part_alphanum {
+ my $s = chr(ord('a')+goodrand(26));
+ while (length $s < $randlength) {
+ my $v = goodrand(36);
+ $s .= chr($v < 26
+ ? ord('a')+($v)
+ : ord('0')+($v-26));
+ }
+ return $s;
+}
+
sub generate_local_part () {
my $s;
for (;;) {
sub generate_local_part () {
my $s;
for (;;) {
- $s = chr(ord('a')+goodrand(26));
- while (length $s < $randlength) {
- my $v = goodrand(36);
- $s .= chr($v < 26
- ? ord('a')+($v)
- : ord('0')+($v-26));
- }
+ { no strict qw(refs); $s = &{"gen_local_part_$genmethod"}; }
# print STDERR "$s\n";
last if !local_part_inuse($s);
}
# print STDERR "$s\n";
last if !local_part_inuse($s);
}