Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=f43b7b6f14d96ba96319a5de41d6ce0fc51d1f2f

commit f43b7b6f14d96ba96319a5de41d6ce0fc51d1f2f
Author: Miklos Vajna <[EMAIL PROTECTED]>
Date:   Sun Oct 28 02:05:26 2007 +0200

_pacman_sync_prepare(): free the pkgcache of localdb if it's outdated
closes #2533

diff --git a/lib/libpacman/sync.c b/lib/libpacman/sync.c
index bbcc3ff..5cee0cb 100644
--- a/lib/libpacman/sync.c
+++ b/lib/libpacman/sync.c
@@ -401,6 +401,23 @@ static int check_olddelay()
return(0);
}

+static int check_oldcache()
+{
+       pmdb_t *db = handle->db_local;
+       char lastupdate[16] = "";
+
+       if(_pacman_db_getlastupdate(db, lastupdate) == -1) {
+               return(-1);
+       }
+       if(strlen(db->lastupdate) && strcmp(lastupdate, db->lastupdate) != 0) {
+               _pacman_log(PM_LOG_DEBUG, _("cache for '%s' repo is too old"), 
db->treename);
+               _pacman_db_free_pkgcache(db);
+       } else {
+               _pacman_log(PM_LOG_DEBUG, _("cache for '%s' repo is up to 
date"), db->treename);
+       }
+       return(0);
+}
+
int _pacman_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, pmlist_t 
*dbs_sync, pmlist_t **data)
{
pmlist_t *deps = NULL;
@@ -422,6 +439,8 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmdb_t 
*db_local, pmlist_t *dbs_sync,
list = _pacman_list_add(list, sync->pkg);
}

+       check_oldcache();
+
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
trail = _pacman_list_new();
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to