equal
deleted
inserted
replaced
21 my ( $ldap, $ubase, $abase ); |
21 my ( $ldap, $ubase, $abase ); |
22 my ( $imap, $acl_password, $nspat ); |
22 my ( $imap, $acl_password, $nspat ); |
23 END { $imap and $imap = undef; } |
23 END { $imap and $imap = undef; } |
24 |
24 |
25 sub _list(); |
25 sub _list(); |
26 sub _mkpw($); |
|
27 |
26 |
28 sub list_by_user($@); |
27 sub list_by_user($@); |
29 sub list_by_folder($); |
28 sub list_by_folder($); |
30 sub list_groups(@); |
29 sub list_groups(@); |
31 sub uniq(@); |
30 sub uniq(@); |
384 my %x; |
383 my %x; |
385 @x{@_} = (); |
384 @x{@_} = (); |
386 return keys %x; |
385 return keys %x; |
387 } |
386 } |
388 |
387 |
389 { |
|
390 my @pw; |
|
391 |
|
392 sub _mkpw($) { |
|
393 my $in = $_[0]; |
|
394 |
|
395 return $in unless $in and $in eq "{pwgen}"; |
|
396 |
|
397 if ( !@pw ) { |
|
398 chomp( @pw = `pwgen 8 10 2>/dev/null` ); |
|
399 die "pwgen: $!" if $?; |
|
400 } |
|
401 return shift @pw; |
|
402 |
|
403 } |
|
404 } |
|
405 |
|
406 sub imap_list($$) { |
388 sub imap_list($$) { |
407 |
389 |
408 my ( $ref, $folder ) = @_; |
390 my ( $ref, $folder ) = @_; |
409 |
391 |
410 my $list = $imap->list( $ref, $folder ) |
392 my $list = $imap->list( $ref, $folder ) |