From: Michael Tremer Date: Tue, 6 Apr 2021 17:24:07 +0000 (+0000) Subject: repo: Drop using our own errno implementation X-Git-Tag: 0.9.28~1285^2~420 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db2bfc82711ada4e885b6cf1325d1389a2d4e5a1;p=pakfire.git repo: Drop using our own errno implementation Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/repo.c b/src/_pakfire/repo.c index 6f4808eca..810d10a8a 100644 --- a/src/_pakfire/repo.c +++ b/src/_pakfire/repo.c @@ -20,7 +20,6 @@ #include -#include #include #include #include @@ -251,36 +250,13 @@ static PyObject* Repo_read_solv(RepoObject* self, PyObject* args) { if (!PyArg_ParseTuple(args, "s", &filename)) return NULL; - int ret = pakfire_repo_read_solv(self->repo, filename, 0); - - switch (ret) { - case 0: - Py_RETURN_NONE; - break; - - case PAKFIRE_E_SOLV_NOT_SOLV: - PyErr_Format(PyExc_ValueError, "File not in SOLV format: %s", filename); - break; - - case PAKFIRE_E_SOLV_UNSUPPORTED: - PyErr_Format(PyExc_ValueError, "File in an unsupported version" - " of the SOLV format: %s", filename); - break; - - case PAKFIRE_E_SOLV_CORRUPTED: - PyErr_Format(PyExc_ValueError, "SOLV file is corrupted: %s", filename); - break; - - case PAKFIRE_E_IO: - PyErr_Format(PyExc_IOError, "Could not read file %s: %s", filename, strerror(errno)); - break; - - default: - PyErr_Format(PyExc_RuntimeError, "pakfire_repo_read() failed: %s", ret); - break; + int r = pakfire_repo_read_solv(self->repo, filename, 0); + if (r) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; } - return NULL; + Py_RETURN_NONE; } static PyObject* Repo_write_solv(RepoObject* self, PyObject* args) { @@ -289,23 +265,13 @@ static PyObject* Repo_write_solv(RepoObject* self, PyObject* args) { if (!PyArg_ParseTuple(args, "s", &filename)) return NULL; - int ret = pakfire_repo_write_solv(self->repo, filename, 0); - - switch (ret) { - case 0: - Py_RETURN_NONE; - break; - - case PAKFIRE_E_IO: - PyErr_Format(PyExc_IOError, "Could not open file %s", filename); - break; - - default: - PyErr_Format(PyExc_RuntimeError, "pakfire_repo_write() failed: %d", ret); - break; + int r = pakfire_repo_write_solv(self->repo, filename, 0); + if (r) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; } - return NULL; + Py_RETURN_NONE; } static PyObject* Repo__add_package(RepoObject* self, PyObject* args) { diff --git a/src/libpakfire/include/pakfire/errno.h b/src/libpakfire/include/pakfire/errno.h index cff789fa9..21fc79d27 100644 --- a/src/libpakfire/include/pakfire/errno.h +++ b/src/libpakfire/include/pakfire/errno.h @@ -25,7 +25,6 @@ enum _pakfire_errors { PAKFIRE_E_FAILED = 1, // general runtime error PAKFIRE_E_OP, // client programming error PAKFIRE_E_LIBSOLV, // error propagated from libsolv - PAKFIRE_E_IO, // I/O error PAKFIRE_E_ARCH, PAKFIRE_E_SELECTOR, PAKFIRE_E_EOF, diff --git a/src/libpakfire/repo.c b/src/libpakfire/repo.c index fb999b432..25b055265 100644 --- a/src/libpakfire/repo.c +++ b/src/libpakfire/repo.c @@ -661,9 +661,8 @@ PAKFIRE_EXPORT int pakfire_repo_is_installed_repo(PakfireRepo repo) { PAKFIRE_EXPORT int pakfire_repo_read_solv(PakfireRepo repo, const char* filename, int flags) { FILE* f = fopen(filename, "rb"); - if (!f) { - return PAKFIRE_E_IO; - } + if (!f) + return 1; int ret = pakfire_repo_read_solv_fp(repo, f, flags); fclose(f); @@ -710,9 +709,8 @@ PAKFIRE_EXPORT int pakfire_repo_read_solv_fp(PakfireRepo repo, FILE *f, int flag PAKFIRE_EXPORT int pakfire_repo_write_solv(PakfireRepo repo, const char* filename, int flags) { FILE* f = fopen(filename, "wb"); - if (!f) { - return PAKFIRE_E_IO; - } + if (!f) + return 1; int ret = pakfire_repo_write_solv_fp(repo, f, flags); fclose(f);