mirror of git://git.sysmocom.de/ofono
gdbus: fix not handling bus disconnects
We where not dispatching data when a bus disconnects which cause Disconnected signal to not be processed and thus causing the process to either not exit or to not trigger callbacks registered with g_dbus_set_disconnect_function. To fix this now we always schedule a dispatch which will make sure data still not processed will make its way to the proper handlers even if disconnected.
This commit is contained in:
parent
5085e299fd
commit
c896d11724
|
@ -95,6 +95,7 @@ static gboolean watch_func(GIOChannel *chan, GIOCondition cond, gpointer data)
|
||||||
{
|
{
|
||||||
struct watch_info *info = data;
|
struct watch_info *info = data;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
DBusDispatchStatus status;
|
||||||
|
|
||||||
dbus_connection_ref(info->conn);
|
dbus_connection_ref(info->conn);
|
||||||
|
|
||||||
|
@ -105,6 +106,9 @@ static gboolean watch_func(GIOChannel *chan, GIOCondition cond, gpointer data)
|
||||||
|
|
||||||
dbus_watch_handle(info->watch, flags);
|
dbus_watch_handle(info->watch, flags);
|
||||||
|
|
||||||
|
status = dbus_connection_get_dispatch_status(info->conn);
|
||||||
|
queue_dispatch(info->conn, status);
|
||||||
|
|
||||||
dbus_connection_unref(info->conn);
|
dbus_connection_unref(info->conn);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in New Issue