From 1c1480e573fc6b4c5f9c51bf225c32456672e5f8 Mon Sep 17 00:00:00 2001 From: Baptiste Jonglez Date: Tue, 25 Aug 2020 01:00:30 +0200 Subject: [PATCH] download: factor out the logic for building cache filenames If we want to access files in the cache from multiple functions, it is necessary to have a single source of truth regarding the naming of files in the cache. Signed-off-by: Baptiste Jonglez --- libopkg/opkg_download.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/libopkg/opkg_download.c b/libopkg/opkg_download.c index 373f231..cfe8e68 100644 --- a/libopkg/opkg_download.c +++ b/libopkg/opkg_download.c @@ -206,6 +206,17 @@ opkg_download(const char *src, const char *dest_file_name, return err; } +static char* get_cache_filename(const char *dest_file_name) +{ + char *cache_name; + char *filename = strrchr(dest_file_name, '/'); + if (filename) + cache_name = xstrdup(filename + 1); // strip leading '/' + else + cache_name = xstrdup(dest_file_name); + return cache_name; +} + static int opkg_download_cache(const char *src, const char *dest_file_name) { @@ -223,11 +234,7 @@ opkg_download_cache(const char *src, const char *dest_file_name) goto out1; } - char *filename = strrchr(dest_file_name, '/'); - if (filename) - cache_name = xstrdup(filename + 1); // strip leading '/' - else - cache_name = xstrdup(dest_file_name); + cache_name = get_cache_filename(dest_file_name); sprintf_alloc(&cache_location, "%s/%s", conf->cache, cache_name); if (file_exists(cache_location)) opkg_msg(NOTICE, "Copying %s.\n", cache_location); -- 2.30.2