summaryrefslogtreecommitdiff
path: root/src/gunzip.c
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2015-11-09 12:47:23 +0200
committerTimo Teräs <timo.teras@iki.fi>2015-11-09 12:51:01 +0200
commitcce4cff55310cddb2e2ec61d19b758e52a4e2c97 (patch)
treede2735305369fc75caee961485a6d44bc2782ce5 /src/gunzip.c
parent7501f6012fc06ebfa8c6d8f928f38318267abe72 (diff)
downloadapk-tools-cce4cff55310cddb2e2ec61d19b758e52a4e2c97.tar.gz
apk-tools-cce4cff55310cddb2e2ec61d19b758e52a4e2c97.tar.bz2
apk-tools-cce4cff55310cddb2e2ec61d19b758e52a4e2c97.tar.xz
apk-tools-cce4cff55310cddb2e2ec61d19b758e52a4e2c97.zip
io, database: preserve [am]time for cached and fetched files
preserve [am]time for all packages and indexes. this fixes the caching error that 'apk update' is after new index is generated, but before the used mirror is synchronized. this caused local apkindex timestamp to be newer than file in mirror, when in fact it was outdated index. this also fixes fetched files to have build timestamp so that files going to .iso or custom images have proper timestamps (rsync with appropriate --modify-window now works)
Diffstat (limited to 'src/gunzip.c')
-rw-r--r--src/gunzip.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gunzip.c b/src/gunzip.c
index 366094f..d1eb0cb 100644
--- a/src/gunzip.c
+++ b/src/gunzip.c
@@ -30,6 +30,13 @@ struct apk_gzip_istream {
apk_blob_t cbarg;
};
+static void gzi_get_meta(void *stream, struct apk_file_meta *meta)
+{
+ struct apk_gzip_istream *gis =
+ container_of(stream, struct apk_gzip_istream, is);
+ gis->bs->get_meta(gis->bs, meta);
+}
+
static ssize_t gzi_read(void *stream, void *ptr, size_t size)
{
struct apk_gzip_istream *gis =
@@ -155,6 +162,7 @@ struct apk_istream *apk_bstream_gunzip_mpart(struct apk_bstream *bs,
if (!gis) goto err;
*gis = (struct apk_gzip_istream) {
+ .is.get_meta = gzi_get_meta,
.is.read = gzi_read,
.is.close = gzi_close,
.bs = bs,