[pacman-dev] Download error codes (was: [PATCH] Remove unused error codes...)

Nagy Gabor ngaba at bibl.u-szeged.hu
Sat Apr 18 12:13:56 EDT 2009


>> From 88c26a6e5902875f07ca7c842971619530fa5aa9 Mon Sep 17 00:00:00 2001
> From: Nagy Gabor <ngaba at bibl.u-szeged.hu>
> Date: Sat, 18 Apr 2009 17:35:08 +0200
> Subject: [PATCH] Remove unused error codes and handle   
> PM_ERR_RETRIEVE by alpm_strerror()
>
> Signed-off-by: Nagy Gabor <ngaba at bibl.u-szeged.hu>
> ---

First I started to work on http://bbs.archlinux.org/viewtopic.php?id=70152

When the server list is empty, user gets "unexpected error". It turned  
out that pacman returns with PM_ERR_RETRIEVE in this case, which was  
not handled by alpm_strerror().

A nice error message should be nice here ("Empty server-list for  
extra\n"), I will provide a patch for that soon.

But. I found a complete mess with error codes in dload.c:

1. download_external() doesn't set any error code in the "/* download  
failed */" case.
2. sync.c override these error codes (to PM_ERR_RETRIEVE), be_files.c  
and fetch_pkgurl() is not.
3. It is not clear why we have PM_ERR_RETRIEVE, PM_ERR_LIBFETCH,  
PM_ERR_EXTERNAL_DOWNLOAD. alpm_errorlast() translates PM_ERR_LIBFETCH  
into fetchLastErrString which is very ugly imho. I don't know too much  
about libfetch error messages, but expect "connection timed out",  
"foo.tar.gz was not found" etc. These should be printed via  
alpm_log(PM_LOG_ERROR,...) not by creating a variable meaning error  
code. (I am not even sure, that pm_errno = PM_ERR_LIBFETCH is always  
set correctly, ie. after libfetch error.)

So my vote is to introduce one error code for "download error"  
(PM_ERR_RETRIEVE), and print out these special errors via alpm_log(),  
or maybe keep PM_ERR_EXTERNAL_DOWNLOAD, but reserved for "error  
invoking external downloader". The problem is that I am not sure I  
completely understand our download code. :-)

Opinions?

Bye


------------------------------------------------------
SZTE Egyetemi Konyvtar - http://www.bibl.u-szeged.hu
This message was sent using IMP: http://horde.org/imp/




More information about the pacman-dev mailing list