media_cache: Mark cache entry stale if cache file is removed

In the event that a cache file is removed out from under us, we should
treat the cache entry as stale and force a refresh.

ASTERISK-26774 #close
Reported by: Igor Gamayunov

Change-Id: I3b1bd0c999d59d18664ef73a29823bc5b431dc52
This commit is contained in:
Sean Bright 2017-02-28 14:48:51 -05:00
parent 0986998f2f
commit 60e9e4fcc0
1 changed files with 2 additions and 1 deletions

View File

@ -224,7 +224,8 @@ int ast_media_cache_retrieve(const char *uri, const char *preferred_file_name,
*/
bucket_file = ao2_find(media_cache, uri, OBJ_SEARCH_KEY | OBJ_NOLOCK);
if (bucket_file) {
if (!ast_bucket_file_is_stale(bucket_file)) {
if (!ast_bucket_file_is_stale(bucket_file)
&& !access(bucket_file->path, R_OK)) {
ast_copy_string(file_path, bucket_file->path, len);
if ((ext = strrchr(file_path, '.'))) {
*ext = '\0';