diff options
Diffstat (limited to 'perl/Wallet/Object/WAKeyring.pm')
-rw-r--r-- | perl/Wallet/Object/WAKeyring.pm | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/perl/Wallet/Object/WAKeyring.pm b/perl/Wallet/Object/WAKeyring.pm index 97984d3..b26be58 100644 --- a/perl/Wallet/Object/WAKeyring.pm +++ b/perl/Wallet/Object/WAKeyring.pm @@ -50,7 +50,7 @@ sub file_path { $name =~ s/([^\w-])/sprintf ('%%%02X', ord ($1))/ge; my $parent = "$Wallet::Config::WAKEYRING_BUCKET/$hash"; unless (-d $parent || mkdir ($parent, 0700)) { - $self->error ("cannot create file bucket $hash: $!"); + $self->error ("cannot create keyring bucket $hash: $!"); return; } return "$Wallet::Config::WAKEYRING_BUCKET/$hash/$name"; @@ -83,6 +83,7 @@ sub get { return; } my $path = $self->file_path; + return unless defined $path; # Create a WebAuth context and ensure we can load the relevant modules. my $wa = eval { WebAuth->new }; @@ -127,7 +128,7 @@ sub get { } # Read the keyring. - my $ring = eval { WebAuth::Keyring->read ($path) }; + my $ring = eval { WebAuth::Keyring->read ($wa, $path) }; if ($@) { $self->error ("cannot read keyring: $@"); return; @@ -172,7 +173,7 @@ sub get { $i++; } } - if (@purge) { + if (@purge && $count - @purge >= 3) { eval { for my $key (reverse @purge) { $ring->remove ($key); |