From 17d9122e01f5a675f4c7882e68ceae65aae7b5aa Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 20 Aug 2007 13:28:51 -0400 Subject: Fix for FS 6404 and functionalize some cachedir handling stuff In order to best resolve bug 6404, move some cachedir handling stuff out of sync.c and into util.c and create two new functions: filecache_find and filecache_setup. sync.c was rewritten to use these, and alpm_fetch_pkgurl now also uses these routines. Signed-off-by: Dan McGee --- lib/libalpm/package.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'lib/libalpm/package.c') diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index cb56bccf..e11d7476 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -101,10 +101,8 @@ int SYMEXPORT alpm_pkg_free(pmpkg_t *pkg) */ int SYMEXPORT alpm_pkg_checkmd5sum(pmpkg_t *pkg) { - char path[PATH_MAX]; - struct stat buf; + char *fpath; char *md5sum = NULL; - alpm_list_t *i; int retval = 0; ALPM_LOG_FUNC; @@ -114,16 +112,9 @@ int SYMEXPORT alpm_pkg_checkmd5sum(pmpkg_t *pkg) ASSERT(pkg->origin == PKG_FROM_CACHE, RET_ERR(PM_ERR_PKG_INVALID, -1)); ASSERT(pkg->origin_data.db != handle->db_local, RET_ERR(PM_ERR_PKG_INVALID, -1)); - /* Loop through the cache dirs until we find a matching file */ - for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) { - snprintf(path, PATH_MAX, "%s%s-%s" PKGEXT, (char*)alpm_list_getdata(i), - alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); - if(stat(path, &buf) == 0) { - break; - } - } + fpath = _alpm_filecache_find(alpm_pkg_get_filename(pkg)); + md5sum = alpm_get_md5sum(fpath); - md5sum = alpm_get_md5sum(path); if(md5sum == NULL) { _alpm_log(PM_LOG_ERROR, _("could not get md5sum for package %s-%s"), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg)); @@ -141,6 +132,7 @@ int SYMEXPORT alpm_pkg_checkmd5sum(pmpkg_t *pkg) } } + FREE(fpath); FREE(md5sum); return(retval); -- cgit v1.2.3-70-g09d2