clang-format this repo
Use the proper-clang-format file on this repository as required by
the openbmc documentation.
Change-Id: I4f1e0d707388605f1e818dfdc647533a335e5f2d
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/libmapper/app.c b/libmapper/app.c
index 3bdd0c6..d926173 100644
--- a/libmapper/app.c
+++ b/libmapper/app.c
@@ -22,248 +22,264 @@
static int call_main(int argc, char *argv[])
{
- int r;
- sd_bus *conn = NULL;
- char *service = NULL;
- sd_bus_message *m = NULL, *reply = NULL;
- sd_bus_error error = SD_BUS_ERROR_NULL;
+ int r;
+ sd_bus *conn = NULL;
+ char *service = NULL;
+ sd_bus_message *m = NULL, *reply = NULL;
+ sd_bus_error error = SD_BUS_ERROR_NULL;
- if(argc < 5) {
- fprintf(stderr, "Usage: %s call OBJECTPATH INTERFACE "
- "METHOD [SIGNATURE [ARGUMENT...]\n", argv[0]);
- r = -1;
- goto finish;
- }
+ if (argc < 5)
+ {
+ fprintf(stderr,
+ "Usage: %s call OBJECTPATH INTERFACE "
+ "METHOD [SIGNATURE [ARGUMENT...]\n",
+ argv[0]);
+ r = -1;
+ goto finish;
+ }
- r = sd_bus_default_system(&conn);
- if(r < 0) {
- fprintf(stderr, "Error connecting to system bus: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_default_system(&conn);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error connecting to system bus: %s\n", strerror(-r));
+ goto finish;
+ }
- r = mapper_get_service(conn, argv[2], &service);
- if(r < 0) {
- fprintf(stderr, "Error finding '%s' service: %s\n",
- argv[2], strerror(-r));
- goto finish;
- }
+ r = mapper_get_service(conn, argv[2], &service);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error finding '%s' service: %s\n", argv[2],
+ strerror(-r));
+ goto finish;
+ }
- r = sd_bus_message_new_method_call(
- conn, &m, service, argv[2], argv[3], argv[4]);
- if(r < 0) {
- fprintf(stderr, "Error populating message: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_message_new_method_call(conn, &m, service, argv[2], argv[3],
+ argv[4]);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error populating message: %s\n", strerror(-r));
+ goto finish;
+ }
- if(argc > 5) {
- char **p;
- p = argv + 6;
- r = sd_bus_message_append_cmdline(m, argv[5], &p);
- if(r < 0) {
- fprintf(stderr, "Error appending method arguments: %s\n",
- strerror(-r));
- goto finish;
- }
- }
+ if (argc > 5)
+ {
+ char **p;
+ p = argv + 6;
+ r = sd_bus_message_append_cmdline(m, argv[5], &p);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error appending method arguments: %s\n",
+ strerror(-r));
+ goto finish;
+ }
+ }
- r = sd_bus_call(conn, m, 0, &error, &reply);
- if(r < 0) {
- fprintf(stderr, "Error invoking method: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_call(conn, m, 0, &error, &reply);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error invoking method: %s\n", strerror(-r));
+ goto finish;
+ }
finish:
- exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+ exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
static void quit(int r, void *loop)
{
- sd_event_exit((sd_event *)loop, r);
+ sd_event_exit((sd_event *)loop, r);
}
static int wait_main(int argc, char *argv[])
{
- int r;
- sd_bus *conn = NULL;
- sd_event *loop = NULL;
- mapper_async_wait *wait = NULL;
+ int r;
+ sd_bus *conn = NULL;
+ sd_event *loop = NULL;
+ mapper_async_wait *wait = NULL;
- if(argc < 3) {
- fprintf(stderr, "Usage: %s wait OBJECTPATH...\n", argv[0]);
- exit(EXIT_FAILURE);
- }
+ if (argc < 3)
+ {
+ fprintf(stderr, "Usage: %s wait OBJECTPATH...\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
- r = sd_bus_default_system(&conn);
- if(r < 0) {
- fprintf(stderr, "Error connecting to system bus: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_default_system(&conn);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error connecting to system bus: %s\n", strerror(-r));
+ goto finish;
+ }
- r = sd_event_default(&loop);
- if (r < 0) {
- fprintf(stderr, "Error obtaining event loop: %s\n",
- strerror(-r));
+ r = sd_event_default(&loop);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error obtaining event loop: %s\n", strerror(-r));
- goto finish;
- }
+ goto finish;
+ }
- r = sd_bus_attach_event(conn, loop, SD_EVENT_PRIORITY_NORMAL);
- if (r < 0) {
- fprintf(stderr, "Failed to attach system "
- "bus to event loop: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_attach_event(conn, loop, SD_EVENT_PRIORITY_NORMAL);
+ if (r < 0)
+ {
+ fprintf(stderr,
+ "Failed to attach system "
+ "bus to event loop: %s\n",
+ strerror(-r));
+ goto finish;
+ }
- r = mapper_wait_async(conn, loop, argv+2, quit, loop, &wait);
- if(r < 0) {
- fprintf(stderr, "Error configuring waitlist: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = mapper_wait_async(conn, loop, argv + 2, quit, loop, &wait);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error configuring waitlist: %s\n", strerror(-r));
+ goto finish;
+ }
- r = sd_event_loop(loop);
- if(r < 0) {
- fprintf(stderr, "Error starting event loop: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_event_loop(loop);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error starting event loop: %s\n", strerror(-r));
+ goto finish;
+ }
finish:
- exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+ exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
static int subtree_main(int argc, char *argv[])
{
- int r = 0;
- int op = 0;
- static const char* token = ":";
- char* tmp = NULL;
- char* namespace = NULL;
- char* interface = NULL;
- sd_bus *conn = NULL;
- sd_event *loop = NULL;
- mapper_async_subtree *subtree = NULL;
+ int r = 0;
+ int op = 0;
+ static const char *token = ":";
+ char *tmp = NULL;
+ char *namespace = NULL;
+ char *interface = NULL;
+ sd_bus *conn = NULL;
+ sd_event *loop = NULL;
+ mapper_async_subtree *subtree = NULL;
- if (argc != 3) {
- fprintf(stderr, "Usage: %s subtree-remove "
- "NAMESPACE%sINTERFACE\n", argv[0], token);
- exit(EXIT_FAILURE);
- }
+ if (argc != 3)
+ {
+ fprintf(stderr,
+ "Usage: %s subtree-remove "
+ "NAMESPACE%sINTERFACE\n",
+ argv[0], token);
+ exit(EXIT_FAILURE);
+ }
- op = MAPPER_OP_REMOVE;
+ op = MAPPER_OP_REMOVE;
- namespace = strtok_r(argv[2], token, &tmp);
- interface = strtok_r(NULL, token, &tmp);
- if ((namespace == NULL) || (interface == NULL)) {
- fprintf(stderr, "Token '%s' was not found in '%s'\n", token, argv[2]);
- exit(EXIT_FAILURE);
- }
+ namespace = strtok_r(argv[2], token, &tmp);
+ interface = strtok_r(NULL, token, &tmp);
+ if ((namespace == NULL) || (interface == NULL))
+ {
+ fprintf(stderr, "Token '%s' was not found in '%s'\n", token, argv[2]);
+ exit(EXIT_FAILURE);
+ }
- r = sd_bus_default_system(&conn);
- if(r < 0) {
- fprintf(stderr, "Error connecting to system bus: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_default_system(&conn);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error connecting to system bus: %s\n", strerror(-r));
+ goto finish;
+ }
- r = sd_event_default(&loop);
- if (r < 0) {
- fprintf(stderr, "Error obtaining event loop: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_event_default(&loop);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error obtaining event loop: %s\n", strerror(-r));
+ goto finish;
+ }
- r = sd_bus_attach_event(conn, loop, SD_EVENT_PRIORITY_NORMAL);
- if (r < 0) {
- fprintf(stderr, "Failed to attach system bus to event loop: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_attach_event(conn, loop, SD_EVENT_PRIORITY_NORMAL);
+ if (r < 0)
+ {
+ fprintf(stderr, "Failed to attach system bus to event loop: %s\n",
+ strerror(-r));
+ goto finish;
+ }
- r = mapper_subtree_async(conn, loop, namespace, interface, quit, loop,
- &subtree, op);
- if(r < 0) {
- fprintf(stderr, "Error configuring subtree list: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = mapper_subtree_async(conn, loop, namespace, interface, quit, loop,
+ &subtree, op);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error configuring subtree list: %s\n", strerror(-r));
+ goto finish;
+ }
- r = sd_event_loop(loop);
- if(r < 0) {
- fprintf(stderr, "Error starting event loop: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_event_loop(loop);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error starting event loop: %s\n", strerror(-r));
+ goto finish;
+ }
finish:
- exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+ exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
/* print out the distinct dbus service name for the input dbus path */
static int get_service_main(int argc, char *argv[])
{
- int r;
- sd_bus *conn = NULL;
- char *service = NULL;
+ int r;
+ sd_bus *conn = NULL;
+ char *service = NULL;
- if(argc != 3) {
- fprintf(stderr, "Usage: %s get-service OBJECTPATH\n",
- argv[0]);
- exit(EXIT_FAILURE);
- }
+ if (argc != 3)
+ {
+ fprintf(stderr, "Usage: %s get-service OBJECTPATH\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
- r = sd_bus_default_system(&conn);
- if(r < 0) {
- fprintf(stderr, "Error connecting to system bus: %s\n",
- strerror(-r));
- goto finish;
- }
+ r = sd_bus_default_system(&conn);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error connecting to system bus: %s\n", strerror(-r));
+ goto finish;
+ }
- r = mapper_get_service(conn, argv[2], &service);
- if(r < 0) {
- fprintf(stderr, "Error finding '%s' service: %s\n",
- argv[2], strerror(-r));
- goto finish;
- }
+ r = mapper_get_service(conn, argv[2], &service);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error finding '%s' service: %s\n", argv[2],
+ strerror(-r));
+ goto finish;
+ }
- printf("%s\n", service);
-
+ printf("%s\n", service);
finish:
- exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
+ exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
int main(int argc, char *argv[])
{
- static const char *usage =
- "Usage: %s {COMMAND} ...\n"
- "\nCOMMANDS:\n"
- " call invoke the specified method\n"
- " wait wait for the specified objects to appear on the DBus\n"
- " subtree-remove\n"
- " wait until the specified interface is not present\n"
- " in any of the subtrees of the specified namespace\n"
- " get-service return the service identifier for input path\n";
+ static const char *usage =
+ "Usage: %s {COMMAND} ...\n"
+ "\nCOMMANDS:\n"
+ " call invoke the specified method\n"
+ " wait wait for the specified objects to appear on the "
+ "DBus\n"
+ " subtree-remove\n"
+ " wait until the specified interface is not present\n"
+ " in any of the subtrees of the specified namespace\n"
+ " get-service return the service identifier for input path\n";
- if(argc < 2) {
- fprintf(stderr, usage, argv[0]);
- exit(EXIT_FAILURE);
- }
+ if (argc < 2)
+ {
+ fprintf(stderr, usage, argv[0]);
+ exit(EXIT_FAILURE);
+ }
- if(!strcmp(argv[1], "call"))
- call_main(argc, argv);
- if(!strcmp(argv[1], "wait"))
- wait_main(argc, argv);
- if(!strcmp(argv[1], "subtree-remove"))
- subtree_main(argc, argv);
- if(!strcmp(argv[1], "get-service"))
- get_service_main(argc, argv);
+ if (!strcmp(argv[1], "call"))
+ call_main(argc, argv);
+ if (!strcmp(argv[1], "wait"))
+ wait_main(argc, argv);
+ if (!strcmp(argv[1], "subtree-remove"))
+ subtree_main(argc, argv);
+ if (!strcmp(argv[1], "get-service"))
+ get_service_main(argc, argv);
- fprintf(stderr, usage, argv[0]);
- exit(EXIT_FAILURE);
+ fprintf(stderr, usage, argv[0]);
+ exit(EXIT_FAILURE);
}
diff --git a/libmapper/mapper.c b/libmapper/mapper.c
index 34c053c..8bb42e9 100644
--- a/libmapper/mapper.c
+++ b/libmapper/mapper.c
@@ -25,660 +25,616 @@
#include "mapper.h"
static const char *async_wait_introspection_match =
- "type='signal',"
- "sender='xyz.openbmc_project.ObjectMapper',"
- "interface='xyz.openbmc_project.ObjectMapper.Private',"
- "member='IntrospectionComplete'";
+ "type='signal',"
+ "sender='xyz.openbmc_project.ObjectMapper',"
+ "interface='xyz.openbmc_project.ObjectMapper.Private',"
+ "member='IntrospectionComplete'";
static const char *async_wait_interfaces_added_match =
- "type='signal',"
- "interface='org.freedesktop.DBus.ObjectManager',"
- "member='InterfacesAdded'";
+ "type='signal',"
+ "interface='org.freedesktop.DBus.ObjectManager',"
+ "member='InterfacesAdded'";
static const char *interfaces_removed_match =
- "type='signal',"
- "interface='org.freedesktop.DBus.ObjectManager',"
- "member='InterfacesRemoved'";
+ "type='signal',"
+ "interface='org.freedesktop.DBus.ObjectManager',"
+ "member='InterfacesRemoved'";
static const int mapper_busy_retries = 5;
static const uint64_t mapper_busy_delay_interval_usec = 1000000;
struct mapper_async_wait
{
- char **objs;
- void (*callback)(int, void *);
- void *userdata;
- sd_event *loop;
- sd_bus *conn;
- sd_bus_slot *introspection_slot;
- sd_bus_slot *intf_slot;
- int *status;
- int count;
- int finished;
- int r;
+ char **objs;
+ void (*callback)(int, void *);
+ void *userdata;
+ sd_event *loop;
+ sd_bus *conn;
+ sd_bus_slot *introspection_slot;
+ sd_bus_slot *intf_slot;
+ int *status;
+ int count;
+ int finished;
+ int r;
};
struct async_wait_callback_data
{
- mapper_async_wait *wait;
- const char *path;
- sd_event_source *event_source;
- int retry;
+ mapper_async_wait *wait;
+ const char *path;
+ sd_event_source *event_source;
+ int retry;
};
struct mapper_async_subtree
{
- char *namespace;
- char *interface;
- void (*callback)(int, void *);
- void *userdata;
- sd_event *loop;
- sd_bus *conn;
- sd_bus_slot *slot;
- sd_event_source *event_source;
- int finished;
- int op;
- int retry;
+ char *namespace;
+ char *interface;
+ void (*callback)(int, void *);
+ void *userdata;
+ sd_event *loop;
+ sd_bus *conn;
+ sd_bus_slot *slot;
+ sd_event_source *event_source;
+ int finished;
+ int op;
+ int retry;
};
static int async_wait_match_introspection_complete(sd_bus_message *, void *,
- sd_bus_error *);
+ sd_bus_error *);
static int async_wait_check_done(mapper_async_wait *);
static void async_wait_done(int r, mapper_async_wait *);
static int async_wait_get_objects(mapper_async_wait *);
-static int async_wait_getobject_callback(sd_bus_message *,
- void *, sd_bus_error *);
+static int async_wait_getobject_callback(sd_bus_message *, void *,
+ sd_bus_error *);
static int async_subtree_match_callback(sd_bus_message *, void *,
- sd_bus_error *);
+ sd_bus_error *);
static void async_subtree_done(int r, mapper_async_subtree *);
static int async_subtree_getpaths(mapper_async_subtree *);
-static int async_subtree_getpaths_callback(sd_bus_message *,
- void *, sd_bus_error *);
+static int async_subtree_getpaths_callback(sd_bus_message *, void *,
+ sd_bus_error *);
static int sarraylen(char *array[])
{
- int count = 0;
- char **p = array;
+ int count = 0;
+ char **p = array;
- while(*p != NULL) {
- ++count;
- ++p;
- }
+ while (*p != NULL)
+ {
+ ++count;
+ ++p;
+ }
- return count;
+ return count;
}
static void sarrayfree(char *array[])
{
- char **p = array;
- while(*p != NULL) {
- free(*p);
- ++p;
- }
- free(array);
+ char **p = array;
+ while (*p != NULL)
+ {
+ free(*p);
+ ++p;
+ }
+ free(array);
}
static char **sarraydup(char *array[])
{
- int count = sarraylen(array);
- int i;
- char **ret = NULL;
+ int count = sarraylen(array);
+ int i;
+ char **ret = NULL;
- ret = malloc(sizeof(*ret) * count);
- if(!ret)
- return NULL;
+ ret = malloc(sizeof(*ret) * count);
+ if (!ret)
+ return NULL;
- for(i=0; i<count; ++i) {
- ret[i] = strdup(array[i]);
- if(!ret[i])
- goto error;
- }
+ for (i = 0; i < count; ++i)
+ {
+ ret[i] = strdup(array[i]);
+ if (!ret[i])
+ goto error;
+ }
- return ret;
+ return ret;
error:
- sarrayfree(ret);
- return NULL;
+ sarrayfree(ret);
+ return NULL;
}
-static int async_wait_timeout_callback(sd_event_source *s,
- uint64_t usec, void *userdata)
+static int async_wait_timeout_callback(sd_event_source *s, uint64_t usec,
+ void *userdata)
{
- int r;
- struct async_wait_callback_data *data = userdata;
- mapper_async_wait *wait = data->wait;
+ int r;
+ struct async_wait_callback_data *data = userdata;
+ mapper_async_wait *wait = data->wait;
- sd_event_source_unref(data->event_source);
- r = sd_bus_call_method_async(
- wait->conn,
- NULL,
- MAPPER_BUSNAME,
- MAPPER_PATH,
- MAPPER_INTERFACE,
- "GetObject",
- async_wait_getobject_callback,
- data,
- "sas",
- data->path,
- 0,
- NULL);
- if(r < 0) {
- async_wait_done(r, wait);
- free(data);
- }
+ sd_event_source_unref(data->event_source);
+ r = sd_bus_call_method_async(wait->conn, NULL, MAPPER_BUSNAME, MAPPER_PATH,
+ MAPPER_INTERFACE, "GetObject",
+ async_wait_getobject_callback, data, "sas",
+ data->path, 0, NULL);
+ if (r < 0)
+ {
+ async_wait_done(r, wait);
+ free(data);
+ }
- return 0;
+ return 0;
}
-static int async_wait_getobject_callback(sd_bus_message *m,
- void *userdata,
- sd_bus_error *e)
+static int async_wait_getobject_callback(sd_bus_message *m, void *userdata,
+ sd_bus_error *e)
{
- int i, r;
- struct async_wait_callback_data *data = userdata;
- mapper_async_wait *wait = data->wait;
- uint64_t now;
+ int i, r;
+ struct async_wait_callback_data *data = userdata;
+ mapper_async_wait *wait = data->wait;
+ uint64_t now;
- if(wait->finished)
- goto exit;
+ if (wait->finished)
+ goto exit;
- r = sd_bus_message_get_errno(m);
- if(r == ENOENT)
- goto exit;
+ r = sd_bus_message_get_errno(m);
+ if (r == ENOENT)
+ goto exit;
- if(r == EBUSY && data->retry < mapper_busy_retries) {
- r = sd_event_now(wait->loop,
- CLOCK_MONOTONIC,
- &now);
- if(r < 0) {
- async_wait_done(r, wait);
- goto exit;
- }
+ if (r == EBUSY && data->retry < mapper_busy_retries)
+ {
+ r = sd_event_now(wait->loop, CLOCK_MONOTONIC, &now);
+ if (r < 0)
+ {
+ async_wait_done(r, wait);
+ goto exit;
+ }
- ++data->retry;
- r = sd_event_add_time(wait->loop,
- &data->event_source,
- CLOCK_MONOTONIC,
- now + mapper_busy_delay_interval_usec,
- 0,
- async_wait_timeout_callback,
- data);
- if(r < 0) {
- async_wait_done(r, wait);
- goto exit;
- }
+ ++data->retry;
+ r = sd_event_add_time(wait->loop, &data->event_source, CLOCK_MONOTONIC,
+ now + mapper_busy_delay_interval_usec, 0,
+ async_wait_timeout_callback, data);
+ if (r < 0)
+ {
+ async_wait_done(r, wait);
+ goto exit;
+ }
- return 0;
- }
+ return 0;
+ }
- if(r) {
- async_wait_done(-r, wait);
- goto exit;
- }
+ if (r)
+ {
+ async_wait_done(-r, wait);
+ goto exit;
+ }
- for(i=0; i<wait->count; ++i) {
- if(!strcmp(data->path, wait->objs[i])) {
- wait->status[i] = 1;
- }
- }
+ for (i = 0; i < wait->count; ++i)
+ {
+ if (!strcmp(data->path, wait->objs[i]))
+ {
+ wait->status[i] = 1;
+ }
+ }
- if(async_wait_check_done(wait))
- async_wait_done(0, wait);
+ if (async_wait_check_done(wait))
+ async_wait_done(0, wait);
exit:
- free(data);
- return 0;
+ free(data);
+ return 0;
}
static int async_wait_get_objects(mapper_async_wait *wait)
{
- int i, r;
- struct async_wait_callback_data *data = NULL;
+ int i, r;
+ struct async_wait_callback_data *data = NULL;
- for(i=0; i<wait->count; ++i) {
- if(wait->status[i])
- continue;
- data = malloc(sizeof(*data));
- data->wait = wait;
- data->path = wait->objs[i];
- data->retry = 0;
- data->event_source = NULL;
- r = sd_bus_call_method_async(
- wait->conn,
- NULL,
- MAPPER_BUSNAME,
- MAPPER_PATH,
- MAPPER_INTERFACE,
- "GetObject",
- async_wait_getobject_callback,
- data,
- "sas",
- wait->objs[i],
- 0,
- NULL);
- if(r < 0) {
- free(data);
- fprintf(stderr, "Error invoking method: %s\n",
- strerror(-r));
- return r;
- }
- }
+ for (i = 0; i < wait->count; ++i)
+ {
+ if (wait->status[i])
+ continue;
+ data = malloc(sizeof(*data));
+ data->wait = wait;
+ data->path = wait->objs[i];
+ data->retry = 0;
+ data->event_source = NULL;
+ r = sd_bus_call_method_async(wait->conn, NULL, MAPPER_BUSNAME,
+ MAPPER_PATH, MAPPER_INTERFACE, "GetObject",
+ async_wait_getobject_callback, data, "sas",
+ wait->objs[i], 0, NULL);
+ if (r < 0)
+ {
+ free(data);
+ fprintf(stderr, "Error invoking method: %s\n", strerror(-r));
+ return r;
+ }
+ }
- return 0;
+ return 0;
}
static int async_wait_match_introspection_complete(sd_bus_message *m, void *w,
- sd_bus_error *e)
+ sd_bus_error *e)
{
- int r;
+ int r;
- mapper_async_wait *wait = w;
- if(wait->finished)
- return 0;
+ mapper_async_wait *wait = w;
+ if (wait->finished)
+ return 0;
- r = async_wait_get_objects(wait);
- if(r < 0)
- async_wait_done(r, wait);
+ r = async_wait_get_objects(wait);
+ if (r < 0)
+ async_wait_done(r, wait);
- return 0;
+ return 0;
}
static void async_wait_done(int r, mapper_async_wait *w)
{
- if(w->finished)
- return;
+ if (w->finished)
+ return;
- w->finished = 1;
- sd_bus_slot_unref(w->introspection_slot);
- sd_bus_slot_unref(w->intf_slot);
+ w->finished = 1;
+ sd_bus_slot_unref(w->introspection_slot);
+ sd_bus_slot_unref(w->intf_slot);
- if(w->callback)
- w->callback(r, w->userdata);
+ if (w->callback)
+ w->callback(r, w->userdata);
}
static int async_wait_check_done(mapper_async_wait *w)
{
- int i;
+ int i;
- if(w->finished)
- return 1;
+ if (w->finished)
+ return 1;
- for(i=0; i<w->count; ++i)
- if(!w->status[i])
- return 0;
+ for (i = 0; i < w->count; ++i)
+ if (!w->status[i])
+ return 0;
- return 1;
+ return 1;
}
void mapper_wait_async_free(mapper_async_wait *w)
{
- free(w->status);
- sarrayfree(w->objs);
- free(w);
+ free(w->status);
+ sarrayfree(w->objs);
+ free(w);
}
-int mapper_wait_async(sd_bus *conn,
- sd_event *loop,
- char *objs[],
- void (*callback)(int, void *),
- void *userdata,
- mapper_async_wait **w)
+int mapper_wait_async(sd_bus *conn, sd_event *loop, char *objs[],
+ void (*callback)(int, void *), void *userdata,
+ mapper_async_wait **w)
{
- int r;
- mapper_async_wait *wait = NULL;
+ int r;
+ mapper_async_wait *wait = NULL;
- wait = malloc(sizeof(*wait));
- if(!wait)
- return -ENOMEM;
+ wait = malloc(sizeof(*wait));
+ if (!wait)
+ return -ENOMEM;
- memset(wait, 0, sizeof(*wait));
- wait->conn = conn;
- wait->loop = loop;
- wait->callback = callback;
- wait->userdata = userdata;
- wait->count = sarraylen(objs);
- if(!wait->count)
- return 0;
+ memset(wait, 0, sizeof(*wait));
+ wait->conn = conn;
+ wait->loop = loop;
+ wait->callback = callback;
+ wait->userdata = userdata;
+ wait->count = sarraylen(objs);
+ if (!wait->count)
+ return 0;
- wait->objs = sarraydup(objs);
- if(!wait->objs) {
- r = -ENOMEM;
- goto free_wait;
- }
+ wait->objs = sarraydup(objs);
+ if (!wait->objs)
+ {
+ r = -ENOMEM;
+ goto free_wait;
+ }
- wait->status = malloc(sizeof(*wait->status) * wait->count);
- if(!wait->status) {
- r = -ENOMEM;
- goto free_objs;
- }
- memset(wait->status, 0, sizeof(*wait->status) * wait->count);
+ wait->status = malloc(sizeof(*wait->status) * wait->count);
+ if (!wait->status)
+ {
+ r = -ENOMEM;
+ goto free_objs;
+ }
+ memset(wait->status, 0, sizeof(*wait->status) * wait->count);
- r = sd_bus_add_match(conn,
- &wait->introspection_slot,
- async_wait_introspection_match,
- async_wait_match_introspection_complete,
- wait);
- if(r < 0) {
- fprintf(stderr, "Error adding match rule: %s\n",
- strerror(-r));
- goto free_status;
- }
+ r = sd_bus_add_match(conn, &wait->introspection_slot,
+ async_wait_introspection_match,
+ async_wait_match_introspection_complete, wait);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error adding match rule: %s\n", strerror(-r));
+ goto free_status;
+ }
- r = sd_bus_add_match(conn,
- &wait->intf_slot,
- async_wait_interfaces_added_match,
- async_wait_match_introspection_complete,
- wait);
- if(r < 0) {
- fprintf(stderr, "Error adding match rule: %s\n",
- strerror(-r));
- goto unref_name_slot;
- }
+ r = sd_bus_add_match(conn, &wait->intf_slot,
+ async_wait_interfaces_added_match,
+ async_wait_match_introspection_complete, wait);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error adding match rule: %s\n", strerror(-r));
+ goto unref_name_slot;
+ }
- r = async_wait_get_objects(wait);
- if(r < 0) {
- fprintf(stderr, "Error calling method: %s\n",
- strerror(-r));
- goto unref_intf_slot;
- }
+ r = async_wait_get_objects(wait);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error calling method: %s\n", strerror(-r));
+ goto unref_intf_slot;
+ }
- *w = wait;
+ *w = wait;
- return 0;
+ return 0;
unref_intf_slot:
- sd_bus_slot_unref(wait->intf_slot);
+ sd_bus_slot_unref(wait->intf_slot);
unref_name_slot:
- sd_bus_slot_unref(wait->introspection_slot);
+ sd_bus_slot_unref(wait->introspection_slot);
free_status:
- free(wait->status);
+ free(wait->status);
free_objs:
- sarrayfree(wait->objs);
+ sarrayfree(wait->objs);
free_wait:
- free(wait);
+ free(wait);
- return r;
+ return r;
}
-static int async_subtree_timeout_callback(sd_event_source *s,
- uint64_t usec, void *userdata)
+static int async_subtree_timeout_callback(sd_event_source *s, uint64_t usec,
+ void *userdata)
{
- int r;
- struct mapper_async_subtree *subtree = userdata;
+ int r;
+ struct mapper_async_subtree *subtree = userdata;
- sd_event_source_unref(subtree->event_source);
- r = sd_bus_call_method_async(
- subtree->conn,
- NULL,
- MAPPER_BUSNAME,
- MAPPER_PATH,
- MAPPER_INTERFACE,
- "GetSubTreePaths",
- async_subtree_getpaths_callback,
- subtree,
- "sias",
- subtree->namespace,
- 0, 1,
- subtree->interface);
- if(r < 0)
- async_subtree_done(r, subtree);
+ sd_event_source_unref(subtree->event_source);
+ r = sd_bus_call_method_async(
+ subtree->conn, NULL, MAPPER_BUSNAME, MAPPER_PATH, MAPPER_INTERFACE,
+ "GetSubTreePaths", async_subtree_getpaths_callback, subtree, "sias",
+ subtree->namespace, 0, 1, subtree->interface);
+ if (r < 0)
+ async_subtree_done(r, subtree);
- return 0;
+ return 0;
}
-static int async_subtree_getpaths_callback(sd_bus_message *m,
- void *userdata,
- sd_bus_error *e)
+static int async_subtree_getpaths_callback(sd_bus_message *m, void *userdata,
+ sd_bus_error *e)
{
- int r;
- char *intf = NULL;
- struct mapper_async_subtree *subtree = userdata;
- uint64_t now;
+ int r;
+ char *intf = NULL;
+ struct mapper_async_subtree *subtree = userdata;
+ uint64_t now;
- if(subtree->finished)
- goto exit;
+ if (subtree->finished)
+ goto exit;
- r = sd_bus_message_get_errno(m);
+ r = sd_bus_message_get_errno(m);
- if(r == ENOENT) {
- if (subtree->op == MAPPER_OP_REMOVE)
- r = 0;
- else
- goto exit;
- }
+ if (r == ENOENT)
+ {
+ if (subtree->op == MAPPER_OP_REMOVE)
+ r = 0;
+ else
+ goto exit;
+ }
- if(r == EBUSY && subtree->retry < mapper_busy_retries) {
- r = sd_event_now(subtree->loop,
- CLOCK_MONOTONIC,
- &now);
- if(r < 0) {
- async_subtree_done(r, subtree);
- goto exit;
- }
+ if (r == EBUSY && subtree->retry < mapper_busy_retries)
+ {
+ r = sd_event_now(subtree->loop, CLOCK_MONOTONIC, &now);
+ if (r < 0)
+ {
+ async_subtree_done(r, subtree);
+ goto exit;
+ }
- ++subtree->retry;
- r = sd_event_add_time(subtree->loop,
- &subtree->event_source,
- CLOCK_MONOTONIC,
- now + mapper_busy_delay_interval_usec,
- 0,
- async_subtree_timeout_callback,
- subtree);
- if(r < 0) {
- async_subtree_done(r, subtree);
- goto exit;
- }
+ ++subtree->retry;
+ r = sd_event_add_time(subtree->loop, &subtree->event_source,
+ CLOCK_MONOTONIC,
+ now + mapper_busy_delay_interval_usec, 0,
+ async_subtree_timeout_callback, subtree);
+ if (r < 0)
+ {
+ async_subtree_done(r, subtree);
+ goto exit;
+ }
- return 0;
- }
+ return 0;
+ }
- if(r) {
- async_subtree_done(-r, subtree);
- goto exit;
- }
+ if (r)
+ {
+ async_subtree_done(-r, subtree);
+ goto exit;
+ }
- sd_bus_message_read(m, "as", 1, &intf);
- if (subtree->op == MAPPER_OP_REMOVE) {
- /* For remove, operation is complete when the interface is not present */
- if (intf == NULL)
- async_subtree_done(0, subtree);
- }
+ sd_bus_message_read(m, "as", 1, &intf);
+ if (subtree->op == MAPPER_OP_REMOVE)
+ {
+ /* For remove, operation is complete when the interface is not present
+ */
+ if (intf == NULL)
+ async_subtree_done(0, subtree);
+ }
exit:
- return 0;
+ return 0;
}
static int async_subtree_getpaths(mapper_async_subtree *subtree)
{
- int r = 0;
+ int r = 0;
- subtree->retry = 0;
- subtree->event_source = NULL;
- r = sd_bus_call_method_async(
- subtree->conn,
- NULL,
- MAPPER_BUSNAME,
- MAPPER_PATH,
- MAPPER_INTERFACE,
- "GetSubTreePaths",
- async_subtree_getpaths_callback,
- subtree,
- "sias",
- subtree->namespace,
- 0, 1,
- subtree->interface);
- if (r < 0) {
- fprintf(stderr, "Error invoking method: %s\n", strerror(-r));
- return r;
- }
+ subtree->retry = 0;
+ subtree->event_source = NULL;
+ r = sd_bus_call_method_async(
+ subtree->conn, NULL, MAPPER_BUSNAME, MAPPER_PATH, MAPPER_INTERFACE,
+ "GetSubTreePaths", async_subtree_getpaths_callback, subtree, "sias",
+ subtree->namespace, 0, 1, subtree->interface);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error invoking method: %s\n", strerror(-r));
+ return r;
+ }
- return 0;
+ return 0;
}
-static int async_subtree_match_callback(sd_bus_message *m,
- void *t,
- sd_bus_error *e)
+static int async_subtree_match_callback(sd_bus_message *m, void *t,
+ sd_bus_error *e)
{
- int r;
+ int r;
- mapper_async_subtree *subtree = t;
- if(subtree->finished)
- return 0;
+ mapper_async_subtree *subtree = t;
+ if (subtree->finished)
+ return 0;
- r = async_subtree_getpaths(subtree);
- if(r < 0)
- async_subtree_done(r, subtree);
+ r = async_subtree_getpaths(subtree);
+ if (r < 0)
+ async_subtree_done(r, subtree);
- return 0;
+ return 0;
}
static void async_subtree_done(int r, mapper_async_subtree *t)
{
- if(t->finished)
- return;
+ if (t->finished)
+ return;
- t->finished = 1;
- sd_bus_slot_unref(t->slot);
+ t->finished = 1;
+ sd_bus_slot_unref(t->slot);
- if(t->callback)
- t->callback(r, t->userdata);
+ if (t->callback)
+ t->callback(r, t->userdata);
}
-int mapper_subtree_async(sd_bus *conn,
- sd_event *loop,
- char *namespace,
- char *interface,
- void (*callback)(int, void *),
- void *userdata,
- mapper_async_subtree **t,
- int op)
+int mapper_subtree_async(sd_bus *conn, sd_event *loop, char *namespace,
+ char *interface, void (*callback)(int, void *),
+ void *userdata, mapper_async_subtree **t, int op)
{
- int r = 0;
- mapper_async_subtree *subtree = NULL;
+ int r = 0;
+ mapper_async_subtree *subtree = NULL;
- subtree = malloc(sizeof(*subtree));
- if(!subtree)
- return -ENOMEM;
+ subtree = malloc(sizeof(*subtree));
+ if (!subtree)
+ return -ENOMEM;
- memset(subtree, 0, sizeof(*subtree));
- subtree->conn = conn;
- subtree->loop = loop;
- subtree->namespace = namespace;
- subtree->interface = interface;
- subtree->callback = callback;
- subtree->userdata = userdata;
- subtree->op = op;
+ memset(subtree, 0, sizeof(*subtree));
+ subtree->conn = conn;
+ subtree->loop = loop;
+ subtree->namespace = namespace;
+ subtree->interface = interface;
+ subtree->callback = callback;
+ subtree->userdata = userdata;
+ subtree->op = op;
- if (subtree->op == MAPPER_OP_REMOVE) {
- r = sd_bus_add_match(
- conn,
- &subtree->slot,
- interfaces_removed_match,
- async_subtree_match_callback,
- subtree);
- if(r < 0) {
- fprintf(stderr, "Error adding match rule: %s\n",
- strerror(-r));
- goto unref_slot;
- }
- } else {
- /* Operation not supported */
- r = -EINVAL;
- goto free_subtree;
- }
+ if (subtree->op == MAPPER_OP_REMOVE)
+ {
+ r = sd_bus_add_match(conn, &subtree->slot, interfaces_removed_match,
+ async_subtree_match_callback, subtree);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error adding match rule: %s\n", strerror(-r));
+ goto unref_slot;
+ }
+ }
+ else
+ {
+ /* Operation not supported */
+ r = -EINVAL;
+ goto free_subtree;
+ }
- r = async_subtree_getpaths(subtree);
- if(r < 0) {
- fprintf(stderr, "Error calling method: %s\n",
- strerror(-r));
- goto unref_slot;
- }
+ r = async_subtree_getpaths(subtree);
+ if (r < 0)
+ {
+ fprintf(stderr, "Error calling method: %s\n", strerror(-r));
+ goto unref_slot;
+ }
- *t = subtree;
+ *t = subtree;
- return 0;
+ return 0;
unref_slot:
- sd_bus_slot_unref(subtree->slot);
+ sd_bus_slot_unref(subtree->slot);
free_subtree:
- free(subtree);
+ free(subtree);
- return r;
+ return r;
}
int mapper_get_object(sd_bus *conn, const char *obj, sd_bus_message **reply)
{
- sd_bus_error error = SD_BUS_ERROR_NULL;
- sd_bus_message *request = NULL;
- int r, retry = 0;
+ sd_bus_error error = SD_BUS_ERROR_NULL;
+ sd_bus_message *request = NULL;
+ int r, retry = 0;
- r = sd_bus_message_new_method_call(
- conn,
- &request,
- MAPPER_BUSNAME,
- MAPPER_PATH,
- MAPPER_INTERFACE,
- "GetObject");
- if (r < 0)
- goto exit;
+ r = sd_bus_message_new_method_call(conn, &request, MAPPER_BUSNAME,
+ MAPPER_PATH, MAPPER_INTERFACE,
+ "GetObject");
+ if (r < 0)
+ goto exit;
- r = sd_bus_message_append(request, "s", obj);
- if (r < 0)
- goto exit;
- r = sd_bus_message_append(request, "as", 0, NULL);
- if (r < 0)
- goto exit;
+ r = sd_bus_message_append(request, "s", obj);
+ if (r < 0)
+ goto exit;
+ r = sd_bus_message_append(request, "as", 0, NULL);
+ if (r < 0)
+ goto exit;
- while(retry < mapper_busy_retries) {
- sd_bus_error_free(&error);
- r = sd_bus_call(conn, request, 0, &error, reply);
- if (r < 0 && sd_bus_error_get_errno(&error) == EBUSY) {
- ++retry;
+ while (retry < mapper_busy_retries)
+ {
+ sd_bus_error_free(&error);
+ r = sd_bus_call(conn, request, 0, &error, reply);
+ if (r < 0 && sd_bus_error_get_errno(&error) == EBUSY)
+ {
+ ++retry;
- if(retry != mapper_busy_retries)
- usleep(mapper_busy_delay_interval_usec);
- continue;
- }
- break;
- }
+ if (retry != mapper_busy_retries)
+ usleep(mapper_busy_delay_interval_usec);
+ continue;
+ }
+ break;
+ }
- if (r < 0)
- goto exit;
+ if (r < 0)
+ goto exit;
exit:
- sd_bus_error_free(&error);
- sd_bus_message_unref(request);
+ sd_bus_error_free(&error);
+ sd_bus_message_unref(request);
- return r;
+ return r;
}
int mapper_get_service(sd_bus *conn, const char *obj, char **service)
{
- sd_bus_message *reply = NULL;
- const char *tmp;
- int r;
+ sd_bus_message *reply = NULL;
+ const char *tmp;
+ int r;
- r = mapper_get_object(conn, obj, &reply);
- if (r < 0)
- goto exit;
+ r = mapper_get_object(conn, obj, &reply);
+ if (r < 0)
+ goto exit;
- r = sd_bus_message_enter_container(reply, 0, NULL);
- if (r < 0)
- goto exit;
+ r = sd_bus_message_enter_container(reply, 0, NULL);
+ if (r < 0)
+ goto exit;
- r = sd_bus_message_enter_container(reply, 0, NULL);
- if (r < 0)
- goto exit;
+ r = sd_bus_message_enter_container(reply, 0, NULL);
+ if (r < 0)
+ goto exit;
- r = sd_bus_message_read(reply, "s", &tmp);
- if (r < 0)
- goto exit;
+ r = sd_bus_message_read(reply, "s", &tmp);
+ if (r < 0)
+ goto exit;
- *service = strdup(tmp);
+ *service = strdup(tmp);
exit:
- sd_bus_message_unref(reply);
+ sd_bus_message_unref(reply);
- return r;
+ return r;
}
diff --git a/libmapper/mapper.h b/libmapper/mapper.h
index 8fa5db6..854f40c 100644
--- a/libmapper/mapper.h
+++ b/libmapper/mapper.h
@@ -4,19 +4,17 @@
#ifdef __cplusplus
extern "C" {
#endif
-typedef enum mapper_operation
-{
- MAPPER_OP_REMOVE = 1
-} mapper_operation;
+typedef enum mapper_operation { MAPPER_OP_REMOVE = 1 } mapper_operation;
typedef struct mapper_async_wait mapper_async_wait;
typedef struct mapper_async_subtree mapper_async_subtree;
void mapper_wait_async_free(mapper_async_wait *);
void mapper_subtree_async_free(mapper_async_subtree *);
-int mapper_wait_async(sd_bus *, sd_event *, char *[],
- void (*)(int, void *), void *, mapper_async_wait **);
+int mapper_wait_async(sd_bus *, sd_event *, char *[], void (*)(int, void *),
+ void *, mapper_async_wait **);
int mapper_subtree_async(sd_bus *, sd_event *, char *, char *,
- void (*)(int, void *), void *, mapper_async_subtree **, int);
+ void (*)(int, void *), void *, mapper_async_subtree **,
+ int);
int mapper_get_service(sd_bus *conn, const char *obj, char **service);
int mapper_get_object(sd_bus *conn, const char *obj, sd_bus_message **reply);
#ifdef __cplusplus
diff --git a/libmapper/workaround/systemd.h b/libmapper/workaround/systemd.h
index 1b32753..51fb2e3 100644
--- a/libmapper/workaround/systemd.h
+++ b/libmapper/workaround/systemd.h
@@ -2,5 +2,8 @@
#include <systemd/sd-bus.h>
int sd_bus_message_append_cmdline(sd_bus_message *m, const char *signature,
- char ***x) { return 0; }
+ char ***x)
+{
+ return 0;
+}
#endif