From: Baptiste Jonglez <g...@bitsofnetworks.org>

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 <g...@bitsofnetworks.org>
---
 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 f7c2f88..175282c 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.27.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to