diff options
author | José Bollo <jose.bollo@iot.bzh> | 2015-12-15 16:22:32 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2015-12-15 16:22:32 +0100 |
commit | 41e3ea4dbae634ca13941d134e990d953b741c4b (patch) | |
tree | 96b3e921cbf802605bb7ec50dc6ee69241abdaa1 /src/utils-jbus.c | |
parent | 32c6eecb9955e94b4d68efc09912efe88140ce83 (diff) |
work in progress
Change-Id: Ifa4371f99968a56e980396f7009ab5030b831ebb
Diffstat (limited to 'src/utils-jbus.c')
-rw-r--r-- | src/utils-jbus.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/utils-jbus.c b/src/utils-jbus.c index 988f9cf..8c144ad 100644 --- a/src/utils-jbus.c +++ b/src/utils-jbus.c @@ -291,14 +291,22 @@ int jbus_start_serving(struct jbus *jbus) return 0; case DBUS_REQUEST_NAME_REPLY_EXISTS: case DBUS_REQUEST_NAME_REPLY_IN_QUEUE: + default: errno = EADDRINUSE; return -1; } } +int jbus_read_write_dispatch(struct jbus *jbus, int toms) +{ + if (dbus_connection_read_write_dispatch(jbus->connection, toms)); + return 0; + errno = EPIPE; + return -1; +} + int jbus_callj(struct jbus *jbus, const char *method, const char *query, void (*onresp)(int status, struct json_object *response, void *data), void *data) { - int rc; DBusMessage *msg; struct jrespw *resp; @@ -374,7 +382,7 @@ int main() int s2 = jbus_add_service(jbus, "incr", incr); int s3 = jbus_start_serving(jbus); printf("started %d %d %d\n", s1, s2, s3); - while (dbus_connection_read_write_dispatch (jbus->connection, -1)) + while (!jbus_read_write_dispatch (jbus, -1)) ; } #endif @@ -393,9 +401,9 @@ int main() while(i--) { jbus_callj(jbus, "ping", "{\"toto\":[1,2,3,4,true,\"toto\"]}", onresp, "ping"); jbus_callj(jbus, "incr", "{\"doit\":\"for-me\"}", onresp, "incr"); - dbus_connection_read_write_dispatch (jbus->connection, 1); + jbus_read_write_dispatch (jbus, 1); } - while (dbus_connection_read_write_dispatch (jbus->connection, -1)) + while (!jbus_read_write_dispatch (jbus, -1)) ; } #endif |