diff options
-rw-r--r-- | src/apk_defines.h | 3 | ||||
-rw-r--r-- | src/database.c | 2 | ||||
-rw-r--r-- | src/print.c | 6 | ||||
-rw-r--r-- | src/url.c | 2 |
4 files changed, 8 insertions, 5 deletions
diff --git a/src/apk_defines.h b/src/apk_defines.h index 6bf4624..1867b82 100644 --- a/src/apk_defines.h +++ b/src/apk_defines.h @@ -32,7 +32,8 @@ #define NULL 0L #endif -#define EAPKSTALEINDEX 1024 +#define EAPKBADURL 1024 +#define EAPKSTALEINDEX 1025 static inline void *ERR_PTR(long error) { return (void*) error; } static inline void *ERR_CAST(const void *ptr) { return (void*) ptr; } diff --git a/src/database.c b/src/database.c index 0b26bb2..0f0496b 100644 --- a/src/database.c +++ b/src/database.c @@ -2591,6 +2591,8 @@ static int apk_db_unpack_pkg(struct apk_database *db, bs = apk_bstream_from_fd_url(filefd, file); if (IS_ERR_OR_NULL(bs)) { r = PTR_ERR(bs); + if (r == -ENOENT && pkg->filename == NULL) + r = -EAPKSTALEINDEX; goto err_msg; } if (need_copy) { diff --git a/src/print.c b/src/print.c index e0681ee..3e2a570 100644 --- a/src/print.c +++ b/src/print.c @@ -143,15 +143,15 @@ const char *apk_error_str(int error) case ENXIO: return "DNS lookup error"; case EREMOTEIO: - return "error code returned by repo server (try 'apk update')"; + return "remote server returned error (try 'apk update')"; case ETIMEDOUT: return "operation timed out"; case EAGAIN: return "temporary error (try again later)"; - case EINVAL: + case EAPKBADURL: return "invalid URL (check your repositories file)"; case EAPKSTALEINDEX: - return "file not available from repo server (try 'apk update')"; + return "package mentioned in index not found (try 'apk update')"; default: return strerror(error); } @@ -58,7 +58,7 @@ static int fetch_maperror(int ec) [FETCH_TIMEOUT] = -ETIMEDOUT, [FETCH_UNAVAIL] = -ENOENT, [FETCH_UNKNOWN] = -EIO, - [FETCH_URL] = -EINVAL, + [FETCH_URL] = -EAPKBADURL, [FETCH_UNCHANGED] = -EALREADY, }; |