summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2008-12-15 00:20:39 (EST)
committer ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2008-12-15 00:20:39 (EST)
commit83c801f7e3e22f454be18f79c605b308495b43ac (patch)
tree564aac7bd519dc470e295ba26053afb5cbf83bd2
parent04c02d72227f9fddc95741a0a936ed0f7ac33c39 (diff)
opkg: update error handling for opkg_update_pkg in opkg.c and bump version number
git-svn-id: http://opkg.googlecode.com/svn/trunk@124 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
-rw-r--r--configure.ac2
-rw-r--r--libopkg/opkg.c15
2 files changed, 15 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 8ecb2ac..0397078 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script
AC_INIT(libopkg/libopkg.c)
-AM_INIT_AUTOMAKE([opkg], [0.1.4])
+AM_INIT_AUTOMAKE([opkg], [0.1.5])
AM_CONFIG_HEADER(libopkg/config.h)
AC_CANONICAL_HOST
diff --git a/libopkg/opkg.c b/libopkg/opkg.c
index 6cd0423..3d5447f 100644
--- a/libopkg/opkg.c
+++ b/libopkg/opkg.c
@@ -620,8 +620,21 @@ opkg_upgrade_package (opkg_t *opkg, const char *package_name, opkg_progress_call
progress (pdata, 0);
err = opkg_upgrade_pkg (opkg->conf, pkg);
+ /* opkg_upgrade_pkg returns the error codes of opkg_install_pkg */
if (err)
- return OPKG_UNKNOWN_ERROR;
+ {
+ switch (err)
+ {
+ case PKG_INSTALL_ERR_NOT_TRUSTED: return OPKG_GPG_ERROR;
+ case PKG_INSTALL_ERR_DOWNLOAD: return OPKG_DOWNLOAD_FAILED;
+ case PKG_INSTALL_ERR_DEPENDENCIES:
+ case PKG_INSTALL_ERR_CONFLICTS: return OPKG_DEPENDENCIES_FAILED;
+ case PKG_INSTALL_ERR_ALREADY_INSTALLED: return OPKG_PACKAGE_ALREADY_INSTALLED;
+ case PKG_INSTALL_ERR_SIGNATURE: return OPKG_GPG_ERROR;
+ case PKG_INSTALL_ERR_MD5: return OPKG_MD5_ERROR;
+ default: return OPKG_UNKNOWN_ERROR;
+ }
+ }
progress (pdata, 75);
err = opkg_configure_packages (opkg->conf, NULL);