diff options
author | Alban Crequy <alban.crequy@collabora.co.uk> | 2012-05-28 11:09:14 +0000 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2012-05-29 16:01:40 +0200 |
commit | 506e12fb6a5c6439a44b81894b2cf157c1ece8c3 (patch) | |
tree | 1d6b7cd2fb9a212a37c123a2310ea1fbfa95c49e | |
parent | 1f2473a21c8810dec0bb1e499a367e9e57530a8b (diff) | |
download | dbus-506e12fb6a5c6439a44b81894b2cf157c1ece8c3.tar.gz |
Introduce dbus_server_is_afbus()
It will be used to:
1. check there is maximum one AF_BUS server
2. keep a reference to the AF_BUS server for proxying
-rw-r--r-- | dbus/dbus-server-afbus.c | 2 | ||||
-rw-r--r-- | dbus/dbus-server-protected.h | 3 | ||||
-rw-r--r-- | dbus/dbus-server.c | 20 | ||||
-rw-r--r-- | dbus/dbus-server.h | 2 |
4 files changed, 27 insertions, 0 deletions
diff --git a/dbus/dbus-server-afbus.c b/dbus/dbus-server-afbus.c index a9554d55..1d8e9bd2 100644 --- a/dbus/dbus-server-afbus.c +++ b/dbus/dbus-server-afbus.c @@ -268,6 +268,8 @@ _dbus_server_new_for_afbus (int fd, const char *path, DBusError *error) goto failed_2; server = (DBusServer *) afbus_server; + server->is_afbus = TRUE; + SERVER_LOCK (server); diff --git a/dbus/dbus-server-protected.h b/dbus/dbus-server-protected.h index dd5234b9..b423cb97 100644 --- a/dbus/dbus-server-protected.h +++ b/dbus/dbus-server-protected.h @@ -89,6 +89,9 @@ struct DBusServer #ifndef DBUS_DISABLE_CHECKS unsigned int have_server_lock : 1; /**< Does someone have the server mutex locked */ #endif +#ifdef HAVE_AFBUS + unsigned int is_afbus : 1; /**< TRUE if this server listen on a AF_BUS socket */ +#endif }; dbus_bool_t _dbus_server_init_base (DBusServer *server, diff --git a/dbus/dbus-server.c b/dbus/dbus-server.c index 0894b0a4..1dc83a56 100644 --- a/dbus/dbus-server.c +++ b/dbus/dbus-server.c @@ -850,6 +850,26 @@ dbus_server_get_address (DBusServer *server) } /** + * Returns TRUE if the server listens on an AF_BUS address + * + * @param server the server + * @returns TRUE if the server listens on an AF_BUS address + */ +dbus_bool_t +dbus_server_is_afbus (DBusServer *server) +{ + dbus_bool_t retval; + + _dbus_return_val_if_fail (server != NULL, FALSE); + + SERVER_LOCK (server); + retval = server->is_afbus; + SERVER_UNLOCK (server); + + return retval; +} + +/** * Returns the unique ID of the server, as a newly-allocated * string which must be freed by the caller. This ID is * normally used by clients to tell when two #DBusConnection diff --git a/dbus/dbus-server.h b/dbus/dbus-server.h index bdbefa0f..49cb9cfb 100644 --- a/dbus/dbus-server.h +++ b/dbus/dbus-server.h @@ -62,6 +62,8 @@ dbus_bool_t dbus_server_get_is_connected (DBusServer *server); DBUS_EXPORT char* dbus_server_get_address (DBusServer *server); DBUS_EXPORT +dbus_bool_t dbus_server_is_afbus (DBusServer *server); +DBUS_EXPORT char* dbus_server_get_id (DBusServer *server); DBUS_EXPORT void dbus_server_set_new_connection_function (DBusServer *server, |