summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/dload.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index 05555f2e..6bf9b4db 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -118,13 +118,14 @@ static int download_internal(const char *url, const char *localpath,
filename = get_filename(url);
if(!filename) {
- return(-1);
+ _alpm_log(PM_LOG_ERROR, _("url '%s' is invalid\n"), url);
+ RET_ERR(PM_ERR_SERVER_BAD_URL, -1);
}
fileurl = fetchParseURL(url);
if(!fileurl) {
_alpm_log(PM_LOG_ERROR, _("url '%s' is invalid\n"), url);
- RET_ERR(PM_ERR_SERVER_BAD_URL, -1);
+ RET_ERR(PM_ERR_LIBFETCH, -1);
}
destfile = get_destfile(localpath, filename);
@@ -179,6 +180,9 @@ static int download_internal(const char *url, const char *localpath,
* non-stat request, so avoid it. */
fetchLastErrCode = 0;
if(fetchStat(fileurl, &ust, "") == -1) {
+ pm_errno = PM_ERR_LIBFETCH;
+ _alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s\n"),
+ filename, gethost(fileurl), fetchLastErrString);
ret = -1;
goto cleanup;
}
@@ -230,6 +234,7 @@ static int download_internal(const char *url, const char *localpath,
dl_thisfile = 0;
localf = fopen(tempfile, "wb");
if(localf == NULL) { /* still null? */
+ pm_errno = PM_ERR_RETRIEVE;
_alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"),
tempfile, strerror(errno));
ret = -1;
@@ -247,6 +252,7 @@ static int download_internal(const char *url, const char *localpath,
size_t nwritten = 0;
nwritten = fwrite(buffer, 1, nread, localf);
if((nwritten != nread) || ferror(localf)) {
+ pm_errno = PM_ERR_RETRIEVE;
_alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"),
tempfile, strerror(errno));
ret = -1;