download: factor out the logic for building cache filenames
authorBaptiste Jonglez <git@bitsofnetworks.org>
Mon, 24 Aug 2020 23:00:30 +0000 (01:00 +0200)
committerPaul Spooren <mail@aparcar.org>
Tue, 24 Nov 2020 22:07:51 +0000 (12:07 -1000)
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>
libopkg/opkg_download.c

index 373f2319e0b32c3ab5b06ad4c98e36438f9f6d27..cfe8e68d93431cae6ec7d67d74f6ba2994ed2a8e 100644 (file)
@@ -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);