Tracking whether a connection is alive

Daniel Silverstone dsilvers at
Sun Jul 11 15:26:54 PDT 2004

David Zeuthen wrote:
> Is there any easier or more general way to do this? Can the problem be
> solved in a general way that may be useful for other applications of D-
> BUS?

When you process the AcquireLock() method... obtain the base service of the 
caller using dbus_message_get_sender().

Add a matcher to your connection similar to:

   dbus_bus_add_match( connection, 
"interface='org.freedesktop.DBus',member='ServiceDeleted'", NULL );

Then, in your filter function...

   if( dbus_message_is_signal( message,
                               "ServiceDeleted" ) ) {
    /* code to forcibly release the lock*/

I hope that helps.


Daniel Silverstone               
PGP mail accepted and encouraged.            Key Id: 2BC8 4016 2068 7895

More information about the dbus mailing list