summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Jonglez2020-08-24 23:00:28 +0000
committerPaul Spooren2020-11-24 22:07:51 +0000
commita786e25f5cbcb9372864a4edf12b7e80774c4514 (patch)
tree93693354daf9c2c99c4573cb2abac1d25f0f144e
parentda9746aaa28fdc63a6e062bf00b25eba52bc8e5f (diff)
downloadopkg-lede-a786e25f5cbcb9372864a4edf12b7e80774c4514.tar.gz
download: remove compatibility with old cache naming scheme
A long time ago, the name of cached files was derived from the source URL. This was changed in 2011 with d46db43e21 ("Don't include the source URI in the cached filename.") Some compatibility code was left behind: even today, we are still trying to read from the old filename. The goal of this compatibility code was to account for existing caches that still had files with the old naming scheme. More than 9 years later, it is safe to remove this compatibility code. It simplifies the download code and avoids a useless disk access. Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
-rw-r--r--libopkg/opkg_download.c36
1 files changed, 11 insertions, 25 deletions
diff --git a/libopkg/opkg_download.c b/libopkg/opkg_download.c
index 7bbf34b..d5bc92c 100644
--- a/libopkg/opkg_download.c
+++ b/libopkg/opkg_download.c
@@ -131,8 +131,7 @@ opkg_download(const char *src, const char *dest_file_name,
static int
opkg_download_cache(const char *src, const char *dest_file_name)
{
- char *cache_name = xstrdup(src);
- char *cache_location, *p;
+ char *cache_name, *cache_location;
int err = 0;
if (!conf->cache || str_starts_with(src, "file:")) {
@@ -146,32 +145,19 @@ opkg_download_cache(const char *src, const char *dest_file_name)
goto out1;
}
- for (p = cache_name; *p; p++)
- if (*p == '/')
- *p = ','; /* looks nicer than | or # */
-
+ char *filename = strrchr(dest_file_name, '/');
+ if (filename)
+ cache_name = xstrdup(filename + 1); // strip leading '/'
+ else
+ cache_name = xstrdup(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);
else {
- /* cache file with funky name not found, try simple name */
- free(cache_name);
- char *filename = strrchr(dest_file_name, '/');
- if (filename)
- cache_name = xstrdup(filename + 1); // strip leading '/'
- else
- cache_name = xstrdup(dest_file_name);
- free(cache_location);
- sprintf_alloc(&cache_location, "%s/%s", conf->cache,
- cache_name);
- if (file_exists(cache_location))
- opkg_msg(NOTICE, "Copying %s.\n", cache_location);
- else {
- err = opkg_download(src, cache_location, 0);
- if (err) {
- (void)unlink(cache_location);
- goto out2;
- }
+ err = opkg_download(src, cache_location, 0);
+ if (err) {
+ (void)unlink(cache_location);
+ goto out2;
}
}
@@ -179,8 +165,8 @@ opkg_download_cache(const char *src, const char *dest_file_name)
out2:
free(cache_location);
-out1:
free(cache_name);
+out1:
return err;
}