diff options
-rw-r--r-- | lib/libalpm/alpm.c | 16 | ||||
-rw-r--r-- | lib/libalpm/alpm.h | 6 | ||||
-rw-r--r-- | lib/libalpm/error.c | 7 |
3 files changed, 16 insertions, 13 deletions
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c index d3eceefa..788e504c 100644 --- a/lib/libalpm/alpm.c +++ b/lib/libalpm/alpm.c @@ -312,7 +312,7 @@ int alpm_db_update(PM_DB *db, char *archive, char *ts) _alpm_log(PM_LOG_ERROR, "could not remove database entry %s/%s", db->treename, ((pmpkg_t *)lp->data)->name); } - RET_ERR(PM_ERR_XXX, -1); + RET_ERR(PM_ERR_DB_REMOVE, -1); } } @@ -325,12 +325,12 @@ int alpm_db_update(PM_DB *db, char *archive, char *ts) db_write each entry (see sync_load_dbarchive to get archive content) */ _alpm_log(PM_LOG_FLOW2, "unpacking %s", archive); if(_alpm_unpack(archive, db->path, NULL)) { - RET_ERR(PM_ERR_XXX, -1); + RET_ERR(PM_ERR_SYSTEM, -1); } if(ts && strlen(ts) != 0) { if(db_setlastupdate(db, ts) == -1) { - RET_ERR(PM_ERR_XXX, -1); + RET_ERR(PM_ERR_SYSTEM, -1); } } @@ -527,9 +527,11 @@ int alpm_pkg_load(char *filename, pmpkg_t **pkg) int alpm_pkg_free(pmpkg_t *pkg) { ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - ASSERT(pkg->origin != PKG_FROM_CACHE, RET_ERR(PM_ERR_XXX, -1)); - pkg_free(pkg); + /* Only free packages loaded in user space */ + if(pkg->origin != PKG_FROM_CACHE) { + pkg_free(pkg); + } return(0); } @@ -545,7 +547,7 @@ int alpm_pkg_checkmd5sum(pmpkg_t *pkg) int retval = 0; ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1)); - ASSERT(pkg->md5sum[0] != 0, RET_ERR(PM_ERR_XXX, -1)); + ASSERT(pkg->md5sum[0] != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1)); asprintf(&path, "%s%s/%s-%s" PM_EXT_PKG, handle->root, handle->cachedir, @@ -719,7 +721,7 @@ int alpm_trans_sysupgrade() trans = handle->trans; ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1)); - ASSERT(trans->type == PM_TRANS_TYPE_SYNC, RET_ERR(PM_ERR_XXX, -1)); + ASSERT(trans->type == PM_TRANS_TYPE_SYNC, RET_ERR(PM_ERR_TRANS_TYPE, -1)); return(trans_sysupgrade(trans)); } diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 1980d89c..b69d5fde 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -348,6 +348,7 @@ extern enum __pmerrno_t { PM_ERR_DB_NOT_NULL, PM_ERR_DB_NOT_FOUND, PM_ERR_DB_WRITE, + PM_ERR_DB_REMOVE, PM_ERR_DB_UPTODATE, /* Configuration */ PM_ERR_OPT_LOGFILE, @@ -359,10 +360,10 @@ extern enum __pmerrno_t { PM_ERR_TRANS_NOT_NULL, PM_ERR_TRANS_NULL, PM_ERR_TRANS_DUP_TARGET, - PM_ERR_TRANS_INITIALIZED, PM_ERR_TRANS_NOT_INITIALIZED, PM_ERR_TRANS_NOT_PREPARED, PM_ERR_TRANS_ABORT, + PM_ERR_TRANS_TYPE, /* Packages */ PM_ERR_PKG_NOT_FOUND, PM_ERR_PKG_INVALID, @@ -379,8 +380,7 @@ extern enum __pmerrno_t { PM_ERR_FILE_CONFLICTS, /* Misc */ PM_ERR_USER_ABORT, - PM_ERR_INTERNAL_ERROR, - PM_ERR_XXX + PM_ERR_INTERNAL_ERROR } pm_errno; char *alpm_strerror(int err); diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index 54220e0b..1428ff35 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -55,6 +55,8 @@ char *alpm_strerror(int err) return "could not find database"; case PM_ERR_DB_WRITE: return "could not update database"; + case PM_ERR_DB_REMOVE: + return "could not remove database entry"; case PM_ERR_DB_UPTODATE: return "database is up to date"; /* Configuration */ @@ -71,14 +73,14 @@ char *alpm_strerror(int err) return "transaction already initialized"; case PM_ERR_TRANS_DUP_TARGET: return "duplicate target"; - case PM_ERR_TRANS_INITIALIZED: - return "transaction already initialized"; case PM_ERR_TRANS_NOT_INITIALIZED: return "transaction not initialized"; case PM_ERR_TRANS_NOT_PREPARED: return "transaction not prepared"; case PM_ERR_TRANS_ABORT: return "transaction aborted"; + case PM_ERR_TRANS_TYPE: + return "operation not compatible with the transaction type"; /* Packages */ case PM_ERR_PKG_NOT_FOUND: return "could not find or read package"; @@ -109,7 +111,6 @@ char *alpm_strerror(int err) return "user aborted"; case PM_ERR_INTERNAL_ERROR: return "internal error"; - case PM_ERR_XXX: default: return "unexpected error"; } |