From 9a5f01fb1c6bb99b07bd28094efbfb566057109d Mon Sep 17 00:00:00 2001 From: Sean Chen Date: Wed, 24 Oct 2018 11:37:17 -0700 Subject: [PATCH] Add cache_free function to cache.c and cache.h --- src/cache.c | 15 +++++++++++++++ src/cache.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/cache.c b/src/cache.c index 8426b2fe8..19134906e 100644 --- a/src/cache.c +++ b/src/cache.c @@ -96,6 +96,21 @@ struct cache *cache_create(int max_size, int hashsize) /////////////////// } +void cache_free(struct cache *cache) +{ + struct cache_entry *cur_entry = cache->head; + + hashtable_destroy(cache->index); + + while (cur_entry != NULL) { + struct cache_entry *next_entry = cur_entry->next; + + free_entry(cur_entry); + + cur_entry = next_entry; + } +} + /** * Store an entry in the cache * diff --git a/src/cache.h b/src/cache.h index 5dd2db0a7..f64c976ad 100644 --- a/src/cache.h +++ b/src/cache.h @@ -22,6 +22,7 @@ struct cache { extern struct cache_entry *alloc_entry(char *path, char *content_type, void *content, int content_length); extern void free_entry(struct cache_entry *entry); extern struct cache *cache_create(int max_size, int hashsize); +extern void cache_free(struct cache *cache); extern void cache_put(struct cache *cache, char *path, char *content_type, void *content, int content_length); extern struct cache_entry *cache_get(struct cache *cache, char *path);