summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJudd Vinet <judd@archlinux.org>2005-10-08 23:40:49 +0000
committerJudd Vinet <judd@archlinux.org>2005-10-08 23:40:49 +0000
commit6f75de92b55d879abeb29b5d0aede2830ffbb1aa (patch)
tree1c3d6919d8252b9fc67570e3c5ed88d117bfe1e3 /lib
parent79a20cdc9685b64f36eb15bc57c06209bceb225f (diff)
added more error messages, enabled the db permission check in trans_commit
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/alpm.c4
-rw-r--r--lib/libalpm/alpm.h2
-rw-r--r--lib/libalpm/error.c42
3 files changed, 39 insertions, 9 deletions
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";
}