On 08/06/11 17:51, Dan McGee wrote:
They are placeholders, but important for things like trying to re-sync a
database missing a signature. By using the alpm_db_valid() method at the
right time, a client can take the appropriate action with these invalid
databases as necessary.
In pacman's case, we disallow just about anything that involves looking
at a sync database outside of an '-Sy' operation (although we do check
the validity immediately after). A few operations are still permitted-
'-Q' ops that don't touch sync databases as well as '-R'.
Signed-off-by: Dan McGee<[email protected]>
---
lib/libalpm/be_sync.c | 6 +-----
src/pacman/database.c | 2 +-
src/pacman/query.c | 7 ++-----
src/pacman/remove.c | 2 +-
<snip>
diff --git a/src/pacman/util.c b/src/pacman/util.c
index 2388e5c..ce305a4 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
<snip>
@@ -100,6 +103,28 @@ int needs_root(void)
}
}
+int check_syncdbs(int min_count, int check_valid)
unsigned int min_count?
+{
+ alpm_list_t *i, *sync_dbs;
+ sync_dbs = alpm_option_get_syncdbs(config->handle);
+ if(sync_dbs == NULL || alpm_list_count(sync_dbs)< min_count) {
otherwise we are doing a comparison between signed and unsigned integer
expressions here.
Allan