From 7f3d4406e131f64c7fc7781930c6c8610068ec44 Mon Sep 17 00:00:00 2001 From: Adirelle Date: Wed, 4 Apr 2012 17:09:52 +0200 Subject: [PATCH] Postpone credential cache pool creation until it is used. --- Redmine.pm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/Redmine.pm b/Redmine.pm index 5b5aa1d..2a7bc82 100644 --- a/Redmine.pm +++ b/Redmine.pm @@ -261,6 +261,7 @@ sub RedmineDbPass { set_val('DbPass', @_); } sub RedmineProject { set_val('Project', @_); } sub RedmineReadPermissions { push_val('ReadPermissions', @_); } sub RedmineWritePermissions { push_val('WritePermissions', @_); } +sub RedmineCacheCredsMax { set_val('CacheCredsMax', @_); } sub RedmineCacheCredsMaxAge { set_val('CacheCredsMaxAge', @_); } sub RedmineDenyAnonymous { set_val('DenyAnonymous', @_); } sub RedmineDenyNonMember { set_val('DenyNonMember', @_); } @@ -273,17 +274,6 @@ sub RedmineDbWhereClause { } } -sub RedmineCacheCredsMax { - my ($cfg, $parms, $arg) = @_; - if ($arg) { - unless($cfg->{CachePool}) { - $cfg->{CachePool} = APR::Pool->new; - $cfg->{CacheCreds} = APR::Table::make($cfg->{CachePool}, $arg); - } - $cfg->{CacheCredsMax} = $arg; - } -} - sub set_val { my ($key, $cfg, $parms, $arg) = @_; $cfg->{$key} = $arg; @@ -589,7 +579,7 @@ sub cache_get { my($r, $key) = @_; my $cfg = get_config($r); - return unless $cfg->{CacheCredsMax}; + return unless $cfg->{CacheCredsMax} && $cfg->{CacheCreds}; my $time = $cfg->{CacheCreds}->get($key) or return 0; @@ -609,6 +599,11 @@ sub cache_set { my $cfg = get_config($r); return unless $cfg->{CacheCredsMax}; + unless($cfg->{CacheCreds}) { + $cfg->{CachePool} = APR::Pool->new; + $cfg->{CacheCreds} = APR::Table::make($cfg->{CachePool}, $cfg->{CacheCredsMax}); + } + if($cfg->{CacheCredsCount} >= $cfg->{CacheCredsMax}) { $cfg->{CacheCreds}->clear; $cfg->{CacheCredsCount} = 0;