cached_config: avoid parsing non-existent files multiple times
This commit is contained in:
		| @ -551,10 +551,14 @@ pub fn cached_config() -> Result<Arc<AclTree>, Error> { | ||||
|         Err(err) => bail!("unable to stat '{}' - {}", ACL_CFG_FILENAME, err), | ||||
|     }; | ||||
|  | ||||
|     if let Some(stat) = stat { | ||||
|     { // limit scope | ||||
|         let cache = CACHED_CONFIG.read().unwrap(); | ||||
|         if stat.st_mtime == cache.last_mtime && stat.st_mtime_nsec == cache.last_mtime_nsec { | ||||
|             if let Some(ref config) = cache.data { | ||||
|         if let Some(ref config) = cache.data { | ||||
|             if let Some(stat) = stat { | ||||
|                 if stat.st_mtime == cache.last_mtime && stat.st_mtime_nsec == cache.last_mtime_nsec { | ||||
|                     return Ok(config.clone()); | ||||
|                 } | ||||
|             } else if cache.last_mtime == 0 && cache.last_mtime_nsec == 0 { | ||||
|                 return Ok(config.clone()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @ -160,10 +160,14 @@ pub fn cached_config() -> Result<Arc<SectionConfigData>, Error> { | ||||
|         Err(err) => bail!("unable to stat '{}' - {}", USER_CFG_FILENAME, err), | ||||
|     }; | ||||
|  | ||||
|     if let Some(stat) = stat { | ||||
|     { // limit scope | ||||
|         let cache = CACHED_CONFIG.read().unwrap(); | ||||
|         if stat.st_mtime == cache.last_mtime && stat.st_mtime_nsec == cache.last_mtime_nsec { | ||||
|             if let Some(ref config) = cache.data { | ||||
|         if let Some(ref config) = cache.data { | ||||
|             if let Some(stat) = stat { | ||||
|                 if stat.st_mtime == cache.last_mtime && stat.st_mtime_nsec == cache.last_mtime_nsec { | ||||
|                     return Ok(config.clone()); | ||||
|                 } | ||||
|             } else if cache.last_mtime == 0 && cache.last_mtime_nsec == 0 { | ||||
|                 return Ok(config.clone()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user