From a79c1af5c0d3908a3ad30806530c754b42cf80e2 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 10 Feb 2017 11:06:38 +0100 Subject: [PATCH] libopkg: clarify messages and errors related to downloads Clarify opkg's messages related to downloads: * more visible error message for package list download failure * separate error message for signature file download error * if wget returns 4, signal the network error more clearly * remove '.' from end of filenames and URLs * try signature check only if the package list was downloaded ok. Signed-off-by: Hannu Nyman --- libopkg/opkg_cmd.c | 11 ++++++++--- libopkg/opkg_download.c | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libopkg/opkg_cmd.c b/libopkg/opkg_cmd.c index fa43478..d2adc31 100644 --- a/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c @@ -85,6 +85,7 @@ opkg_update_cmd(int argc, char **argv) char *tmp; int err; int failures; + int pkglist_dl_error; char *lists_dir; pkg_src_list_elt_t *iter; pkg_src_t *src; @@ -130,15 +131,19 @@ opkg_update_cmd(int argc, char **argv) sprintf_alloc(&url, "%s/%s", src->value, src->gzip ? "Packages.gz" : "Packages"); sprintf_alloc(&list_file_name, "%s/%s", lists_dir, src->name); + pkglist_dl_error = 0; if (opkg_download(url, list_file_name, NULL, NULL, 0)) { failures++; + pkglist_dl_error = 1; + opkg_msg(NOTICE, "*** Failed to download the package list from %s\n\n", + url); } else { - opkg_msg(NOTICE, "Updated list of available packages in %s.\n", + opkg_msg(NOTICE, "Updated list of available packages in %s\n", list_file_name); } free(url); #if defined(HAVE_GPGME) || defined(HAVE_OPENSSL) || defined(HAVE_USIGN) - if (conf->check_signature) { + if (pkglist_dl_error == 0 && conf->check_signature) { /* download detached signitures to verify the package lists */ /* get the url for the sig file */ if (src->extra_data) /* debian style? */ @@ -156,7 +161,7 @@ opkg_update_cmd(int argc, char **argv) err = opkg_download(url, tmp_file_name, NULL, NULL, 0); if (err) { failures++; - opkg_msg(NOTICE, "Signature check failed.\n"); + opkg_msg(NOTICE, "Signature file download failed.\n"); } else { err = opkg_verify_file (list_file_name, tmp_file_name); if (err == 0) diff --git a/libopkg/opkg_download.c b/libopkg/opkg_download.c index 631bdab..3f86462 100644 --- a/libopkg/opkg_download.c +++ b/libopkg/opkg_download.c @@ -91,7 +91,7 @@ opkg_download(const char *src, const char *dest_file_name, char *src_base = basename(src_basec); char *tmp_file_location; - opkg_msg(NOTICE,"Downloading %s.\n", src); + opkg_msg(NOTICE,"Downloading %s\n", src); if (str_starts_with(src, "file:")) { const char *file_src = src + 5; @@ -175,6 +175,8 @@ opkg_download(const char *src, const char *dest_file_name, if (res) { opkg_msg(ERROR, "Failed to download %s, wget returned %d.\n", src, res); + if (res == 4) + opkg_msg(ERROR, "Check your network settings and connectivity.\n\n"); free(tmp_file_location); return -1; } -- 2.25.1