forked from enlightenment/efl
eldbus: do not require error return when adding/removing signal matches
this forces the functions to be synchronous and blocks (potentially forever)
This commit is contained in:
parent
c0b3a0b562
commit
aaf3659faf
|
@ -78,10 +78,7 @@ eldbus_signal_handler_match_extra_vset(Eldbus_Signal_Handler *sh, va_list ap)
|
||||||
|
|
||||||
dbus_error_init(&err);
|
dbus_error_init(&err);
|
||||||
dbus_bus_remove_match(sh->conn->dbus_conn,
|
dbus_bus_remove_match(sh->conn->dbus_conn,
|
||||||
eina_strbuf_string_get(sh->match), &err);
|
eina_strbuf_string_get(sh->match), NULL);
|
||||||
if (dbus_error_is_set(&err))
|
|
||||||
ERR("handler(%p): %s - %s", sh, err.name, err.message);
|
|
||||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(dbus_error_is_set(&err), EINA_FALSE);
|
|
||||||
|
|
||||||
for (read = va_arg(ap, char *); read; read = va_arg(ap, char *))
|
for (read = va_arg(ap, char *); read; read = va_arg(ap, char *))
|
||||||
{
|
{
|
||||||
|
@ -113,23 +110,16 @@ eldbus_signal_handler_match_extra_vset(Eldbus_Signal_Handler *sh, va_list ap)
|
||||||
key = NULL;
|
key = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
dbus_error_init(&err);
|
|
||||||
dbus_bus_add_match(sh->conn->dbus_conn,
|
dbus_bus_add_match(sh->conn->dbus_conn,
|
||||||
eina_strbuf_string_get(sh->match), &err);
|
eina_strbuf_string_get(sh->match), NULL);
|
||||||
if (dbus_error_is_set(&err))
|
return EINA_TRUE;
|
||||||
ERR("handler(%p): %s - %s", sh, err.name, err.message);
|
|
||||||
if (!dbus_error_is_set(&err))
|
|
||||||
return EINA_TRUE;
|
|
||||||
|
|
||||||
ERR("Error setting new match.");
|
ERR("Error setting new match.");
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
dbus_error_init(&err);
|
|
||||||
dbus_bus_add_match(sh->conn->dbus_conn,
|
dbus_bus_add_match(sh->conn->dbus_conn,
|
||||||
eina_strbuf_string_get(sh->match), &err);
|
eina_strbuf_string_get(sh->match), NULL);
|
||||||
if (dbus_error_is_set(&err))
|
|
||||||
ERR("handler(%p): %s - %s", sh, err.name, err.message);
|
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +168,6 @@ _eldbus_signal_handler_add(Eldbus_Connection *conn, const char *sender, const ch
|
||||||
{
|
{
|
||||||
Eldbus_Signal_Handler *sh;
|
Eldbus_Signal_Handler *sh;
|
||||||
Eina_Strbuf *match;
|
Eina_Strbuf *match;
|
||||||
DBusError err;
|
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(conn, NULL);
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cb, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(cb, NULL);
|
||||||
|
@ -196,11 +185,7 @@ _eldbus_signal_handler_add(Eldbus_Connection *conn, const char *sender, const ch
|
||||||
_match_append(match, "interface", interface);
|
_match_append(match, "interface", interface);
|
||||||
_match_append(match, "member", member);
|
_match_append(match, "member", member);
|
||||||
|
|
||||||
dbus_error_init(&err);
|
dbus_bus_add_match(conn->dbus_conn, eina_strbuf_string_get(match), NULL);
|
||||||
dbus_bus_add_match(conn->dbus_conn, eina_strbuf_string_get(match), &err);
|
|
||||||
if (dbus_error_is_set(&err))
|
|
||||||
ERR("handler(%p): %s - %s", sh, err.name, err.message);
|
|
||||||
if (dbus_error_is_set(&err)) goto cleanup;
|
|
||||||
|
|
||||||
if (sender)
|
if (sender)
|
||||||
{
|
{
|
||||||
|
@ -242,9 +227,7 @@ _eldbus_signal_handler_clean(Eldbus_Signal_Handler *handler)
|
||||||
DBG("clean handler=%p path=%p cb=%p", handler, handler->path, handler->cb);
|
DBG("clean handler=%p path=%p cb=%p", handler, handler->path, handler->cb);
|
||||||
dbus_error_init(&err);
|
dbus_error_init(&err);
|
||||||
dbus_bus_remove_match(handler->conn->dbus_conn,
|
dbus_bus_remove_match(handler->conn->dbus_conn,
|
||||||
eina_strbuf_string_get(handler->match), &err);
|
eina_strbuf_string_get(handler->match), NULL);
|
||||||
if (dbus_error_is_set(&err))
|
|
||||||
ERR("error removing handler(%p): %s - %s", handler, err.name, err.message);
|
|
||||||
handler->dangling = EINA_TRUE;
|
handler->dangling = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,4 +349,3 @@ eldbus_signal_handler_connection_get(const Eldbus_Signal_Handler *handler)
|
||||||
ELDBUS_SIGNAL_HANDLER_CHECK_RETVAL(handler, NULL);
|
ELDBUS_SIGNAL_HANDLER_CHECK_RETVAL(handler, NULL);
|
||||||
return handler->conn;
|
return handler->conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue