]> git.ipfire.org Git - pakfire.git/commitdiff
repo: Drop using our own errno implementation
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Apr 2021 17:24:07 +0000 (17:24 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Apr 2021 17:24:07 +0000 (17:24 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/repo.c
src/libpakfire/include/pakfire/errno.h
src/libpakfire/repo.c

index 6f4808eca17bab54cb4a75c89eee614f457fa589..810d10a8ad903ed52a4117899ada559244cdf2cf 100644 (file)
@@ -20,7 +20,6 @@
 
 #include <Python.h>
 
-#include <pakfire/errno.h>
 #include <pakfire/package.h>
 #include <pakfire/repo.h>
 #include <pakfire/util.h>
@@ -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) {
index cff789fa9e1373fa80dd86a70901ac0466c59a6b..21fc79d272bc59deac41393fe16c5d2df95c87db 100644 (file)
@@ -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,
index fb999b432211799ec0e002482f05b2f6b019b6dc..25b055265eea8a8b1b2d1e1347c0b881aa96d13f 100644 (file)
@@ -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);