summaryrefslogtreecommitdiffstats
path: root/server/sbus/sssd_dbus_private.h
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2009-08-05 05:44:20 -0400
committerStephen Gallagher <sgallagh@redhat.com>2009-08-10 09:42:19 -0400
commitf1e4471551aa74015579bff0b64735cc9b085b74 (patch)
tree45071c03d3f4810e8214a9097c36b21641d9cfc3 /server/sbus/sssd_dbus_private.h
parent0c7050d8569ce7ee61b13d02b4733249a11e171f (diff)
downloadsssd-f1e4471551aa74015579bff0b64735cc9b085b74.tar.gz
sssd-f1e4471551aa74015579bff0b64735cc9b085b74.tar.xz
sssd-f1e4471551aa74015579bff0b64735cc9b085b74.zip
merge server and connection structures
This reduce code duplication as it allows to use one set of watch and timeout functions, and at the same time also allow not to use a secondary structure just to unify these functions.
Diffstat (limited to 'server/sbus/sssd_dbus_private.h')
-rw-r--r--server/sbus/sssd_dbus_private.h36
1 files changed, 29 insertions, 7 deletions
diff --git a/server/sbus/sssd_dbus_private.h b/server/sbus/sssd_dbus_private.h
index fdee121e9..01eaf00d3 100644
--- a/server/sbus/sssd_dbus_private.h
+++ b/server/sbus/sssd_dbus_private.h
@@ -1,27 +1,49 @@
#ifndef _SSSD_DBUS_PRIVATE_H_
#define _SSSD_DBUS_PRIVATE_H_
-union dbus_pointer {
+union dbus_conn_pointer {
DBusServer *server;
DBusConnection *conn;
};
-enum dbus_pointer_type {
+enum dbus_conn_type {
SBUS_SERVER,
SBUS_CONNECTION
};
-struct sbus_generic_dbus_ctx {
+struct sbus_connection {
struct tevent_context *ev;
- enum dbus_pointer_type type;
- union dbus_pointer dbus;
+
+ enum dbus_conn_type type;
+ union dbus_conn_pointer dbus;
+
+ char *address;
+ int connection_type;
+ int disconnect;
+
+ sbus_conn_destructor_fn destructor;
+ void *pvt_data; /* Private data for this connection */
+
+ /* dbus tables and handlers */
+ struct method_holder *method_list;
+
+ /* reconnect settings */
+ int retries;
+ int max_retries;
+ sbus_conn_reconn_callback_fn reconnect_callback;
+ /* Private data needed to reinit after reconnection */
+ void *reconnect_pvt;
+
+ /* server related stuff */
+ struct sbus_method_ctx *server_method;
+ sbus_server_conn_init_fn srv_init_fn;
+ void *srv_init_data;
};
/* =Watches=============================================================== */
struct sbus_watch_ctx {
DBusWatch *dbus_watch;
- enum dbus_pointer_type dbus_type;
- union dbus_pointer dbus;
+ struct sbus_connection *conn;
struct tevent_fd *fde;
};