Postpone credential cache pool creation until it is used.
parent
2f23e20ed0
commit
7f3d4406e1
19
Redmine.pm
19
Redmine.pm
|
@ -261,6 +261,7 @@ sub RedmineDbPass { set_val('DbPass', @_); }
|
||||||
sub RedmineProject { set_val('Project', @_); }
|
sub RedmineProject { set_val('Project', @_); }
|
||||||
sub RedmineReadPermissions { push_val('ReadPermissions', @_); }
|
sub RedmineReadPermissions { push_val('ReadPermissions', @_); }
|
||||||
sub RedmineWritePermissions { push_val('WritePermissions', @_); }
|
sub RedmineWritePermissions { push_val('WritePermissions', @_); }
|
||||||
|
sub RedmineCacheCredsMax { set_val('CacheCredsMax', @_); }
|
||||||
sub RedmineCacheCredsMaxAge { set_val('CacheCredsMaxAge', @_); }
|
sub RedmineCacheCredsMaxAge { set_val('CacheCredsMaxAge', @_); }
|
||||||
sub RedmineDenyAnonymous { set_val('DenyAnonymous', @_); }
|
sub RedmineDenyAnonymous { set_val('DenyAnonymous', @_); }
|
||||||
sub RedmineDenyNonMember { set_val('DenyNonMember', @_); }
|
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 {
|
sub set_val {
|
||||||
my ($key, $cfg, $parms, $arg) = @_;
|
my ($key, $cfg, $parms, $arg) = @_;
|
||||||
$cfg->{$key} = $arg;
|
$cfg->{$key} = $arg;
|
||||||
|
@ -589,7 +579,7 @@ sub cache_get {
|
||||||
my($r, $key) = @_;
|
my($r, $key) = @_;
|
||||||
|
|
||||||
my $cfg = get_config($r);
|
my $cfg = get_config($r);
|
||||||
return unless $cfg->{CacheCredsMax};
|
return unless $cfg->{CacheCredsMax} && $cfg->{CacheCreds};
|
||||||
|
|
||||||
my $time = $cfg->{CacheCreds}->get($key)
|
my $time = $cfg->{CacheCreds}->get($key)
|
||||||
or return 0;
|
or return 0;
|
||||||
|
@ -609,6 +599,11 @@ sub cache_set {
|
||||||
my $cfg = get_config($r);
|
my $cfg = get_config($r);
|
||||||
return unless $cfg->{CacheCredsMax};
|
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}) {
|
if($cfg->{CacheCredsCount} >= $cfg->{CacheCredsMax}) {
|
||||||
$cfg->{CacheCreds}->clear;
|
$cfg->{CacheCreds}->clear;
|
||||||
$cfg->{CacheCredsCount} = 0;
|
$cfg->{CacheCredsCount} = 0;
|
||||||
|
|
Loading…
Reference in New Issue