Postpone credential cache pool creation until it is used.
This commit is contained in:
		
							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 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;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user