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 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user