summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2018-01-08 11:45:09 +0200
committerTimo Teräs <timo.teras@iki.fi>2018-01-08 11:56:48 +0200
commit5f7dcadc691f4064464be02427fa6e7fd61888f1 (patch)
tree69a9a9c8fcb1b2e32ee94a5a3997d6e169128ec2
parentd0a25d670a35583701f07196d5ed2ba51eab9f3a (diff)
downloadapk-tools-5f7dcadc691f4064464be02427fa6e7fd61888f1.tar.bz2
apk-tools-5f7dcadc691f4064464be02427fa6e7fd61888f1.tar.xz
auto-update index only when database is opened for writing
-rw-r--r--src/apk_database.h1
-rw-r--r--src/database.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/apk_database.h b/src/apk_database.h
index daf4ddc..19bafcd 100644
--- a/src/apk_database.h
+++ b/src/apk_database.h
@@ -156,6 +156,7 @@ struct apk_database {
unsigned int pending_triggers;
int performing_self_upgrade : 1;
int permanent : 1;
+ int open_write : 1;
int open_complete : 1;
int compat_newfeatures : 1;
int compat_notinstallable : 1;
diff --git a/src/database.c b/src/database.c
index df06ade..3976d3d 100644
--- a/src/database.c
+++ b/src/database.c
@@ -1517,6 +1517,7 @@ int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts)
r = -1;
goto ret_r;
}
+ if (dbopts->open_flags & APK_OPENF_WRITE) db->open_write = 1;
if (!dbopts->cache_dir) dbopts->cache_dir = "etc/apk/cache";
apk_db_setup_repositories(db, dbopts->cache_dir);
@@ -2263,7 +2264,7 @@ int apk_db_add_repository(apk_database_t _db, apk_blob_t _repository)
r = apk_repo_format_real_url(db, repo, NULL, buf, sizeof(buf));
if (r == 0) apk_message("fetch %s", buf);
} else {
- apk_repository_update(db, repo);
+ if (db->open_write) apk_repository_update(db, repo);
r = apk_repo_format_cache_index(APK_BLOB_BUF(buf), repo);
}
} else {