From 83c801f7e3e22f454be18f79c605b308495b43ac Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Mon, 15 Dec 2008 05:20:39 +0000 Subject: [PATCH] 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 --- configure.ac | 2 +- libopkg/opkg.c | 15 ++++++++++++++- 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); -- 2.25.1