From 6f75de92b55d879abeb29b5d0aede2830ffbb1aa Mon Sep 17 00:00:00 2001 From: Judd Vinet Date: Sat, 8 Oct 2005 23:40:49 +0000 Subject: added more error messages, enabled the db permission check in trans_commit --- lib/libalpm/alpm.c | 4 ++-- lib/libalpm/alpm.h | 2 +- lib/libalpm/error.c | 42 ++++++++++++++++++++++++++++++++++++------ 3 files changed, 39 insertions(+), 9 deletions(-) (limited to 'lib/libalpm') diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c index f7a1ec34..d0e31e52 100644 --- a/lib/libalpm/alpm.c +++ b/lib/libalpm/alpm.c @@ -615,8 +615,8 @@ int alpm_trans_commit() ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1)); ASSERT(trans->state == STATE_PREPARED, RET_ERR(PM_ERR_TRANS_NOT_PREPARED, -1)); - /* ORE - ASSERT(handle->access != PM_ACCESS_RW, RET_ERR(PM_ERR_BAD_PERMS, -1));*/ + /* Check for database R/W permission */ + ASSERT(handle->access == PM_ACCESS_RW, RET_ERR(PM_ERR_BADPERMS, -1)); return(trans_commit(handle->trans)); } diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 539d988a..68e8b7b0 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -310,8 +310,8 @@ extern enum __pmerrno_t { PM_ERR_DB_OPEN, PM_ERR_DB_CREATE, PM_ERR_DB_NULL, - PM_ERR_DB_NOT_FOUND, PM_ERR_DB_NOT_NULL, + PM_ERR_DB_NOT_FOUND, PM_ERR_DB_WRITE, PM_ERR_DB_UPTODATE, /* Cache */ diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index 3b7797c7..9f60e907 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -25,6 +25,14 @@ char *alpm_strerror(int err) { switch(err) { /* System */ + case PM_ERR_MEMORY: + return "out of memory!"; + case PM_ERR_SYSTEM: + return "unexpected error"; + case PM_ERR_BADPERMS: + return "insufficient privileges"; + case PM_ERR_WRONG_ARGS: + return "wrong or NULL argument passed"; case PM_ERR_NOT_A_FILE: return "could not find or read file"; /* Interface */ @@ -32,8 +40,8 @@ char *alpm_strerror(int err) return "library not initialized"; case PM_ERR_HANDLE_NOT_NULL: return "library already initialized"; - case PM_ERR_WRONG_ARGS: - return "wrong or NULL argument"; + case PM_ERR_HANDLE_LOCK: + return "unable to lock database"; /* Databases */ case PM_ERR_DB_OPEN: return "could not open database"; @@ -45,9 +53,17 @@ char *alpm_strerror(int err) return "database already registered"; case PM_ERR_DB_NOT_FOUND: return "could not find database"; + case PM_ERR_DB_WRITE: + return "could not update database"; + case PM_ERR_DB_UPTODATE: + return "database is up to date"; + /* Cache */ + case PM_ERR_CACHE_NULL: + return "cache not initialized"; /* Configuration */ case PM_ERR_OPT_LOGFILE: case PM_ERR_OPT_DBPATH: + case PM_ERR_OPT_LOCALDB: case PM_ERR_OPT_SYNCDB: case PM_ERR_OPT_USESYSLOG: return "could not set parameter"; @@ -57,22 +73,33 @@ char *alpm_strerror(int err) case PM_ERR_TRANS_NOT_NULL: return "transaction already initialized"; case PM_ERR_TRANS_DUP_TARGET: - return "duplicated 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"; /* Packages */ case PM_ERR_PKG_NOT_FOUND: return "could not find or read package"; case PM_ERR_PKG_INVALID: return "invalid or corrupted package"; + case PM_ERR_PKG_OPEN: + return "cannot open package file"; + case PM_ERR_PKG_LOAD: + return "cannot load package data"; case PM_ERR_PKG_INSTALLED: return "package already installed"; case PM_ERR_PKG_CANT_FRESH: return "package not installed or lesser version"; case PM_ERR_PKG_INVALID_NAME: return "package name is not valid"; + /* Groups */ + case PM_ERR_GRP_NOT_FOUND: + return "group not found"; /* Dependencies */ case PM_ERR_UNSATISFIED_DEPS: return "could not satisfy dependencies"; @@ -82,9 +109,12 @@ char *alpm_strerror(int err) return "could not resolve dependencies"; case PM_ERR_FILE_CONFLICTS: return "conflicting files"; - /* System */ - case PM_ERR_HANDLE_LOCK: - return "could not create the lock file"; + /* Miscellaenous */ + case PM_ERR_USER_ABORT: + return "user aborted"; + case PM_ERR_INTERNAL_ERROR: + return "internal error"; + case PM_ERR_XXX: default: return "unexpected error"; } -- cgit v1.2.3-70-g09d2