diff --git a/src/modules/reserve.c b/src/modules/reserve.c index 79ec97ac8..9a9591d25 100644 --- a/src/modules/reserve.c +++ b/src/modules/reserve.c @@ -59,6 +59,8 @@ struct rd_device { static const char introspection[] = DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "" + " \n" " " " " " " @@ -461,8 +463,17 @@ int rd_acquire( if (!(reply = dbus_connection_send_with_reply_and_block( d->connection, m, - -1, + 5000, /* 5s */ error))) { + + if (dbus_error_has_name(error, DBUS_ERROR_TIMED_OUT) || + dbus_error_has_name(error, DBUS_ERROR_UNKNOWN_METHOD) || + dbus_error_has_name(error, DBUS_ERROR_NO_REPLY)) { + /* This must be treated as denied. */ + r = -EBUSY; + goto fail; + } + r = -EIO; goto fail; }