summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Jonglez2020-08-24 23:00:30 +0000
committerPaul Spooren2020-11-24 22:07:51 +0000
commit1c1480e573fc6b4c5f9c51bf225c32456672e5f8 (patch)
tree3183a7cc9be548de3fd1cd57806235965711b4b8
parent293b1cef8b5a6de64d3fec87c01729b64006713a (diff)
downloadopkg-lede-1c1480e573fc6b4c5f9c51bf225c32456672e5f8.tar.gz
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 <git@bitsofnetworks.org>
-rw-r--r--libopkg/opkg_download.c17
1 files 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);