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<dan@archlinux.org> --- 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