Currently when caling alpm_trans_commit, if fetching a package restults
in a 404 (or other non 400 response code), the function returns -1 but
errno is never set.

Thish patch sets errno to ALPM_ERR_RETRIEVE.

diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c
index 05813c40..e5696bb0 100644
--- a/lib/libalpm/dload.c
+++ b/lib/libalpm/dload.c
@@ -454,6 +454,7 @@ static int curl_download_internal(struct dload_payload 
*payload,
                        if(payload->respcode >= 400) {
                                payload->unlink_on_fail = 1;
                                if(!payload->errors_ok) {
+                                       handle->pm_errno = ALPM_ERR_RETRIEVE;
                                        /* non-translated message is same as 
libcurl */
                                        snprintf(error_buffer, 
sizeof(error_buffer),
                                                        "The requested URL 
returned error: %ld", payload->respcode);
-- 
2.21.0

Reply via email to