Clight: update to 4.1.

Includes upstream patch to enable compilation on ARM archs.
This commit is contained in:
Andrew J. Hesford 2020-10-01 23:29:51 -04:00 committed by Andrew J. Hesford
parent 331f6200dd
commit 9107bd50dc
2 changed files with 84 additions and 3 deletions

View file

@ -0,0 +1,81 @@
diff --git src/modules/bus.c src/modules/bus.c
index 00f49cf..7e65fef 100644
--- src/modules/bus.c
+++ src/modules/bus.c
@@ -2,7 +2,6 @@
#define GET_BUS(a) sd_bus *tmp = a->bus; if (!tmp) { tmp = a->type == USER_BUS ? userbus : sysbus; } if (!tmp) { return -1; }
-static int _call(const bus_args *a, const char *signature, va_list args_va, const void **args_ptr, bool expect_reply);
static void free_bus_structs(sd_bus_error *err, sd_bus_message *m, sd_bus_message *reply);
static int check_err(int *r, sd_bus_error *err, const char *caller);
@@ -66,7 +65,10 @@ static void receive(const msg_t *const msg, UNUSED const void* userdata) {
}
}
-static int _call(const bus_args *a, const char *signature, va_list args_va, const void **args_ptr, bool expect_reply) {
+/*
+ * Call a method on bus and store its result of type userptr_type in userptr.
+ */
+int call(const bus_args *a, const char *signature, ...) {
sd_bus_error error = SD_BUS_ERROR_NULL;
sd_bus_message *m = NULL, *reply = NULL;
GET_BUS(a);
@@ -76,26 +78,20 @@ static int _call(const bus_args *a, const char *signature, va_list args_va, cons
goto finish;
}
- r = sd_bus_message_set_expect_reply(m, expect_reply);
+ r = sd_bus_message_set_expect_reply(m, a->reply_cb != NULL);
if (check_err(&r, &error, a->caller)) {
goto finish;
}
- if (args_va) {
- sd_bus_message_appendv(m, signature, args_va);
- } else if (args_ptr) {
- int len = strlen(signature);
- if (len == 1) {
- sd_bus_message_append_basic(m, signature[0], args_ptr);
- } else {
- for (int i = 0; i < len; i++) {
- sd_bus_message_append_basic(m, signature[i], args_ptr[i]);
- }
- }
+ if (signature && strlen(signature)) {
+ va_list args;
+ va_start(args, signature);
+ sd_bus_message_appendv(m, signature, args);
+ va_end(args);
}
/* Check if we need to wait for a response message */
- if (expect_reply) {
+ if (a->reply_cb != NULL) {
r = sd_bus_call(tmp, m, 0, &error, &reply);
if (check_err(&r, &error, a->caller)) {
goto finish;
@@ -111,22 +107,6 @@ finish:
return r;
}
-/*
- * Call a method on bus and store its result of type userptr_type in userptr.
- */
-int call(const bus_args *a, const char *signature, ...) {
- int r = 0;
- if (signature) {
- va_list args;
- va_start(args, signature);
- r = _call(a, signature, args, NULL, a->reply_cb != NULL);
- va_end(args);
- } else {
- r = _call(a, signature, NULL, NULL, a->reply_cb != NULL);
- }
- return r;
-}
-
/*
* Add a match on bus on certain signal for cb callback
*/

View file

@ -1,7 +1,7 @@
# Template file for 'Clight'
pkgname=Clight
version=4.0
revision=2
version=4.1
revision=1
build_style=cmake
hostmakedepends="pkg-config"
makedepends="popt-devel gsl-devel libconfig-devel elogind-devel bash-completion
@ -12,4 +12,4 @@ maintainer="Dominic Monroe <monroef4@googlemail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/FedeDP/Clight"
distfiles="https://github.com/FedeDP/Clight/archive/${version}.tar.gz"
checksum=ae1deba71d376b14acc2a7495b1a6a4ed43fa438c59c1d4fcb2648d44964bd71
checksum=84156f3dfd9ab863be25d3efc8b5d6d6043ba4a0b44259c2a1cee1367b3c97aa