summaryrefslogtreecommitdiffstats
path: root/src/sbus/sssd_dbus_private.h
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2014-12-11 22:23:32 +0100
committerJakub Hrozek <jhrozek@redhat.com>2015-01-23 21:29:31 +0100
commit46ee931314e6a5517f5c6b6b14f759364be119cc (patch)
treeddd462856868f8e5aad32d940302640221dd8e46 /src/sbus/sssd_dbus_private.h
parent894f09f146f0c9cda9e0f7dfe1916519d73dde72 (diff)
downloadsssd-46ee931314e6a5517f5c6b6b14f759364be119cc.tar.gz
sssd-46ee931314e6a5517f5c6b6b14f759364be119cc.tar.xz
sssd-46ee931314e6a5517f5c6b6b14f759364be119cc.zip
sbus: support multiple interfaces on single path
This patch removes the old message handler which is replaced with a new one that supports multiple interfaces registered on single object path. A hash table is used to store registered object paths and their interfaces. When an entry or the table itself is destroyed, registered object path is unregistered through delete callback. It temporarily removes support of Introspect and Properties standard D-Bus interfaces and disables unit tests of those interfaces. The support is brought back by following patches. Resolves: https://fedorahosted.org/sssd/ticket/2339 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/sbus/sssd_dbus_private.h')
-rw-r--r--src/sbus/sssd_dbus_private.h20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/sbus/sssd_dbus_private.h b/src/sbus/sssd_dbus_private.h
index fc63405a1..23d2898f8 100644
--- a/src/sbus/sssd_dbus_private.h
+++ b/src/sbus/sssd_dbus_private.h
@@ -37,14 +37,6 @@ enum dbus_conn_type {
struct sbus_watch_ctx;
-struct sbus_interface_p {
- struct sbus_interface_p *prev, *next;
- struct sbus_connection *conn;
- struct sbus_interface *intf;
-
- const char *reg_path;
-};
-
struct sbus_connection {
struct tevent_context *ev;
@@ -55,8 +47,7 @@ struct sbus_connection {
int connection_type;
int disconnect;
- /* dbus tables and handlers */
- struct sbus_interface_p *intf_list;
+ hash_table_t *managed_paths;
/* reconnect settings */
int retries;
@@ -75,8 +66,6 @@ struct sbus_connection {
struct sbus_watch_ctx *watch_list;
};
-extern DBusObjectPathVTable dbus_object_path_vtable;
-
/* =Watches=============================================================== */
struct sbus_watch_ctx {
@@ -114,9 +103,10 @@ sbus_new_request(struct sbus_connection *conn, struct sbus_interface *intf,
/* =Interface=and=object=paths============================================ */
-void sbus_unreg_object_paths(struct sbus_connection *conn);
-bool sbus_iface_handles_path(struct sbus_interface_p *intf_p,
- const char *path);
+errno_t
+sbus_opath_hash_init(TALLOC_CTX *mem_ctx,
+ struct sbus_connection *conn,
+ hash_table_t **_table);
/* =Interface=introspection=============================================== */
extern const struct sbus_method_meta introspect_method;