test/kdbus-util: add kdbus_conn_info()
authorDaniel Mack <daniel@zonque.org>
Wed, 1 Oct 2014 18:52:39 +0000 (20:52 +0200)
committerDaniel Mack <daniel@zonque.org>
Wed, 1 Oct 2014 18:52:39 +0000 (20:52 +0200)
Add a user of KDBUS_CMD_CONN_INFO as utility function to the test suite.

Signed-off-by: Daniel Mack <daniel@zonque.org>
test/kdbus-util.c
test/kdbus-util.h

index 043b06f552616a520c1970b472673988003717b9..efb03e92fc7778dfe469d7f5782c354a1d91b642 100644 (file)
@@ -221,6 +221,37 @@ struct kdbus_conn *kdbus_hello_activator(const char *path, const char *name,
                                     KDBUS_HELLO_ACTIVATOR);
 }
 
+int kdbus_conn_info(struct kdbus_conn *conn, uint64_t id,
+                   const char *name, uint64_t *offset)
+{
+       struct kdbus_cmd_conn_info *cmd;
+       size_t size = sizeof(*cmd);
+       int ret;
+
+       if (name)
+               size += strlen(name) + 1;
+
+       cmd = alloca(size);
+       memset(cmd, 0, size);
+       cmd->size = size;
+
+       if (name)
+               strcpy(cmd->name, name);
+       else
+               cmd->id = id;
+
+       ret = ioctl(conn->fd, KDBUS_CMD_CONN_INFO, cmd);
+       if (ret < 0)
+               return -errno;
+
+       if (offset)
+               *offset = cmd->offset;
+       else
+               kdbus_free(conn, cmd->offset);
+
+       return 0;
+}
+
 void kdbus_conn_free(struct kdbus_conn *conn)
 {
        if (!conn)
index 3248e3ec497bbd8cccef63ef6fb103ef8d5cc40a..ac1af23e30b910cec881034207313e8834bf20fd 100644 (file)
@@ -76,6 +76,8 @@ struct kdbus_conn *kdbus_hello_registrar(const char *path, const char *name,
 struct kdbus_conn *kdbus_hello_activator(const char *path, const char *name,
                                         const struct kdbus_policy_access *access,
                                         size_t num_access);
+int kdbus_conn_info(struct kdbus_conn *conn, uint64_t id,
+                   const char *name, uint64_t *offset);
 void kdbus_conn_free(struct kdbus_conn *conn);
 int kdbus_conn_update_attach_flags(struct kdbus_conn *conn, uint64_t flags);
 int kdbus_conn_update_policy(struct kdbus_conn *conn, const char *name,