From: Michael Tremer Date: Tue, 6 Apr 2021 17:33:11 +0000 (+0000) Subject: errno: Drop more errors X-Git-Tag: 0.9.28~1285^2~418 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eded1449161ff48f6f6611f07eea39f0877e1d6a;p=pakfire.git errno: Drop more errors Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/request.c b/src/_pakfire/request.c index 24eba0abb..af8ef2daa 100644 --- a/src/_pakfire/request.c +++ b/src/_pakfire/request.c @@ -21,7 +21,6 @@ #include #include -#include #include #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) { diff --git a/src/_pakfire/selector.c b/src/_pakfire/selector.c index af6d1f0b9..0b7140b53 100644 --- a/src/_pakfire/selector.c +++ b/src/_pakfire/selector.c @@ -20,7 +20,6 @@ #include -#include #include #include #include @@ -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) { diff --git a/src/libpakfire/include/pakfire/errno.h b/src/libpakfire/include/pakfire/errno.h index 35b37ed1c..e270ebfba 100644 --- a/src/libpakfire/include/pakfire/errno.h +++ b/src/libpakfire/include/pakfire/errno.h @@ -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; diff --git a/src/libpakfire/key.c b/src/libpakfire/key.c index d8fd4d40c..ce0d49c33 100644 --- a/src/libpakfire/key.c +++ b/src/libpakfire/key.c @@ -27,7 +27,6 @@ #include #include -#include #include #include #include @@ -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 diff --git a/src/libpakfire/selector.c b/src/libpakfire/selector.c index 084cc8bbf..89f4c690b 100644 --- a/src/libpakfire/selector.c +++ b/src/libpakfire/selector.c @@ -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; }