]> git.ipfire.org Git - pakfire.git/commitdiff
errno: Drop more errors
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Apr 2021 17:33:11 +0000 (17:33 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Apr 2021 17:33:11 +0000 (17:33 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/request.c
src/_pakfire/selector.c
src/libpakfire/include/pakfire/errno.h
src/libpakfire/key.c
src/libpakfire/selector.c

index 24eba0abbe9b7c996823f283051425d7531e1f82..af8ef2daaa75e723948b7ae2e96f0e0d1c65d7b3 100644 (file)
@@ -21,7 +21,6 @@
 #include <Python.h>
 #include <assert.h>
 
-#include <pakfire/errno.h>
 #include <pakfire/request.h>
 
 #include "errors.h"
@@ -92,19 +91,13 @@ static int Request_args_parse(PyObject* args, PakfirePackage* pkg, PakfireRelati
        return 0;
 }
 
-static PyObject* Request_operation_return(int ret) {
-       if (!ret)
-               Py_RETURN_NONE;
-
-       switch (pakfire_get_errno()) {
-               case PAKFIRE_E_SELECTOR:
-                       PyErr_SetString(PyExc_ValueError, "Ill-formed Selector");
-                       return NULL;
-
-               default:
-                       PyErr_SetString(PyExc_RuntimeError, "Request operation failed");
-                       return NULL;
+static PyObject* Request_operation_return(int r) {
+       if (r) {
+               PyErr_SetFromErrno(PyExc_OSError);
+               return NULL;
        }
+
+       Py_RETURN_NONE;
 }
 
 static PyObject* Request_install(RequestObject* self, PyObject* args) {
index af6d1f0b9d022fbc7846b65ac74191d66d103174..0b7140b53bb9d10bc4965d12dbc73fa8a009dfff 100644 (file)
@@ -20,7 +20,6 @@
 
 #include <Python.h>
 
-#include <pakfire/errno.h>
 #include <pakfire/filter.h>
 #include <pakfire/package.h>
 #include <pakfire/packagelist.h>
@@ -65,16 +64,13 @@ static PyObject* Selector_set(SelectorObject* self, PyObject* args) {
        if (!PyArg_ParseTuple(args, "iis", &keyname, &cmp_type, &match))
                return NULL;
 
-       int ret = pakfire_selector_set(self->selector, keyname, cmp_type, match);
-
-       switch (ret) {
-               case PAKFIRE_E_SELECTOR:
-                       PyErr_SetString(PyExc_ValueError, "Invalid Selector specification");
-                       return NULL;
-
-               default:
-                       Py_RETURN_NONE;
+       int r = pakfire_selector_set(self->selector, keyname, cmp_type, match);
+       if (r) {
+               PyErr_SetFromErrno(PyExc_OSError);
+               return NULL;
        }
+
+       Py_RETURN_NONE;
 }
 
 static PyObject* Selector_get_providers(SelectorObject* self) {
index 35b37ed1c42ac7d885b43fc9e578ba3556c41ba9..e270ebfba8946e0086e19ba9059e4e6a7025c4e8 100644 (file)
@@ -22,9 +22,7 @@
 #define PAKFIRE_ERRNO_H
 
 enum _pakfire_errors {
-       PAKFIRE_E_ARCH,
-       PAKFIRE_E_SELECTOR,
-       PAKFIRE_E_INVALID_INPUT,
+       PAKFIRE_E_NONE
 };
 
 extern __thread int pakfire_errno;
index d8fd4d40cccda7bebd1e1018d7c35e483434cf62..ce0d49c3338dbffa35385cf9a7e9ebdc332fd274 100644 (file)
@@ -27,7 +27,6 @@
 #include <unistd.h>
 
 #include <pakfire/constants.h>
-#include <pakfire/errno.h>
 #include <pakfire/i18n.h>
 #include <pakfire/key.h>
 #include <pakfire/logging.h>
@@ -439,7 +438,7 @@ PAKFIRE_EXPORT PakfireKey* pakfire_key_import(Pakfire pakfire, const char* data)
 
                // Input was invalid
                case GPG_ERR_INV_VALUE:
-                       pakfire_errno = PAKFIRE_E_INVALID_INPUT;
+                       errno = EINVAL;
                        break;
 
                // Fall through for any other errors
index 084cc8bbf264c9f9e6a195b92c03ccbe33558c4b..89f4c690bc950a8c2e7f61b7995570210f02218c 100644 (file)
@@ -119,7 +119,7 @@ static void pakfire_selector_replace_filter(PakfireFilter* filter, int keyname,
 
 PAKFIRE_EXPORT int pakfire_selector_set(PakfireSelector selector, int keyname, int cmp_type, const char* match) {
        if (!pakfire_selector_valid_setting(keyname, cmp_type))
-               return PAKFIRE_E_SELECTOR;
+               return 1;
 
        PakfireFilter* filter = NULL;
 
@@ -135,27 +135,27 @@ PAKFIRE_EXPORT int pakfire_selector_set(PakfireSelector selector, int keyname, i
 
                case PAKFIRE_PKG_NAME:
                        if (selector->f_provides)
-                               return PAKFIRE_E_SELECTOR;
+                               return 1;
 
                        filter = &selector->f_name;
                        break;
 
                case PAKFIRE_PKG_PROVIDES:
                        if (selector->f_name)
-                               return PAKFIRE_E_SELECTOR;
+                               return 1;
 
                        filter = &selector->f_provides;
                        break;
 
                case PAKFIRE_PKG_GROUP:
                        if (selector->f_group)
-                               return PAKFIRE_E_SELECTOR;
+                               return 1;
 
                        filter = &selector->f_group;
                        break;
 
                default:
-                       return PAKFIRE_E_SELECTOR;
+                       return 1;
        }
 
        pakfire_selector_replace_filter(filter, keyname, cmp_type, match);
@@ -211,7 +211,7 @@ static int filter_arch2queue(Pakfire pakfire, const PakfireFilter f, Queue* queu
        Pool* pool = pakfire_get_solv_pool(pakfire);
        Id archid = str2archid(pool, f->match);
        if (archid == 0)
-               return PAKFIRE_E_ARCH;
+               return 1;
 
        for (int i = 0; i < queue->count; i += 2) {
                Id dep = queue->elements[i + 1];
@@ -340,7 +340,7 @@ PAKFIRE_EXPORT int pakfire_selector2queue(const PakfireSelector selector, Queue*
 
        if (selector->f_name == NULL && selector->f_provides == NULL && selector->f_group == NULL) {
                // no name or provides in the selector is an erro
-               ret = PAKFIRE_E_SELECTOR;
+               ret = 1;
                goto finish;
        }