Commit 9ad0aafe authored by John Palmieri's avatar John Palmieri

* Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:

- dbus/dbus-bus.c
(internal_bus_get): new method that take over the heavy lifting
of dbus_bus_get and adds the ability to get a private connection
to the bus
(dbus_bus_get): wrapper to internal_bus_get that provides the same
interface as in previous versions
(dbus_bus_get_private): new method that is a wrapper to
internal_bus_get to get a private connection to the bus

- dbus/dbus-bus.h
(dbus_bus_get_private): add as a public libdbus interface

- dbus-1.pc.in: output system_bus_default_address and
sysconfdir variables so apps can use them when compiling
parent cd883ae0
2005-09-26 John (J5) Palmieri <johnp@redhat.com>
* Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
- dbus/dbus-bus.c
(internal_bus_get): new method that take over the heavy lifting
of dbus_bus_get and adds the ability to get a private connection
to the bus
(dbus_bus_get): wrapper to internal_bus_get that provides the same
interface as in previous versions
(dbus_bus_get_private): new method that is a wrapper to
internal_bus_get to get a private connection to the bus
- dbus/dbus-bus.h
(dbus_bus_get_private): add as a public libdbus interface
- dbus-1.pc.in: output system_bus_default_address and
sysconfdir variables so apps can use them when compiling
2005-09-23 Harald Fernengel <harry@kdevelop.org> 2005-09-23 Harald Fernengel <harry@kdevelop.org>
* dbus/qt: New Qt bindings * dbus/qt: New Qt bindings
......
...@@ -2,6 +2,8 @@ prefix=@prefix@ ...@@ -2,6 +2,8 @@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@ libdir=@libdir@
includedir=@includedir@ includedir=@includedir@
system_bus_default_address=@DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@
sysconfdir=@EXPANDED_SYSCONFDIR@
Name: dbus Name: dbus
Description: Free desktop message bus Description: Free desktop message bus
......
...@@ -302,27 +302,9 @@ ensure_bus_data (DBusConnection *connection) ...@@ -302,27 +302,9 @@ ensure_bus_data (DBusConnection *connection)
return bd; return bd;
} }
/** @} */ /* end of implementation details docs */ static DBusConnection *
internal_bus_get (DBusBusType type,
/** DBusError *error, dbus_bool_t private)
* @addtogroup DBusBus
* @{
*/
/**
* Connects to a bus daemon and registers the client with it. If a
* connection to the bus already exists, then that connection is
* returned. Caller owns a reference to the bus.
*
* @todo alex thinks we should nullify the connection when we get a disconnect-message.
*
* @param type bus type
* @param error address where an error can be returned.
* @returns a DBusConnection with new ref
*/
DBusConnection *
dbus_bus_get (DBusBusType type,
DBusError *error)
{ {
const char *address; const char *address;
DBusConnection *connection; DBusConnection *connection;
...@@ -356,7 +338,7 @@ dbus_bus_get (DBusBusType type, ...@@ -356,7 +338,7 @@ dbus_bus_get (DBusBusType type,
bus_connection_addresses[activation_bus_type] != NULL) bus_connection_addresses[activation_bus_type] != NULL)
type = activation_bus_type; type = activation_bus_type;
if (bus_connections[type] != NULL) if (!private && bus_connections[type] != NULL)
{ {
connection = bus_connections[type]; connection = bus_connections[type];
dbus_connection_ref (connection); dbus_connection_ref (connection);
...@@ -374,7 +356,10 @@ dbus_bus_get (DBusBusType type, ...@@ -374,7 +356,10 @@ dbus_bus_get (DBusBusType type,
return NULL; return NULL;
} }
connection = dbus_connection_open (address, error); if (private)
connection = dbus_connection_open_private(address, error);
else
connection = dbus_connection_open (address, error);
if (!connection) if (!connection)
{ {
...@@ -399,7 +384,9 @@ dbus_bus_get (DBusBusType type, ...@@ -399,7 +384,9 @@ dbus_bus_get (DBusBusType type,
return NULL; return NULL;
} }
bus_connections[type] = connection; if (!private)
bus_connections[type] = connection;
bd = ensure_bus_data (connection); bd = ensure_bus_data (connection);
_dbus_assert (bd != NULL); _dbus_assert (bd != NULL);
...@@ -410,6 +397,46 @@ dbus_bus_get (DBusBusType type, ...@@ -410,6 +397,46 @@ dbus_bus_get (DBusBusType type,
} }
/** @} */ /* end of implementation details docs */
/**
* @addtogroup DBusBus
* @{
*/
/**
* Connects to a bus daemon and registers the client with it. If a
* connection to the bus already exists, then that connection is
* returned. Caller owns a reference to the bus.
*
* @todo alex thinks we should nullify the connection when we get a disconnect-message.
*
* @param type bus type
* @param error address where an error can be returned.
* @returns a DBusConnection with new ref
*/
DBusConnection *
dbus_bus_get (DBusBusType type,
DBusError *error) {
return internal_bus_get(type, error, FALSE);
}
/**
* Connects to a bus daemon and registers the client with it. Unlike
* dbus_bus_get(), always creates a new connection. This connection
* will not be saved or recycled by libdbus. Caller owns a reference
* to the bus.
*
* @param type bus type
* @param error address where an error can be returned.
* @returns a DBusConnection with new ref
*/
DBusConnection *
dbus_bus_get_private (DBusBusType type,
DBusError *error) {
return internal_bus_get(type, error, TRUE);
}
/** /**
* Registers a connection with the bus. This must be the first * Registers a connection with the bus. This must be the first
* thing an application does when connecting to the message bus. * thing an application does when connecting to the message bus.
......
...@@ -33,6 +33,9 @@ DBUS_BEGIN_DECLS ...@@ -33,6 +33,9 @@ DBUS_BEGIN_DECLS
DBusConnection *dbus_bus_get (DBusBusType type, DBusConnection *dbus_bus_get (DBusBusType type,
DBusError *error); DBusError *error);
DBusConnection *dbus_bus_get_private (DBusBusType type,
DBusError *error);
dbus_bool_t dbus_bus_register (DBusConnection *connection, dbus_bool_t dbus_bus_register (DBusConnection *connection,
DBusError *error); DBusError *error);
dbus_bool_t dbus_bus_set_unique_name (DBusConnection *connection, dbus_bool_t dbus_bus_set_unique_name (DBusConnection *connection,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment