mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-03 14:48:00 +02:00
Dispatch post-activation messages to anyone interested
Previously, if a method call activated a service, it would only be delivered to that service, and not to other services with match rules which should match. This patch replaces the improperly-duplicated dispatch code in activation.c with a call back into the normal dispatch code, fixing this bug (fd.o#26427).
This commit is contained in:
parent
aa275ff175
commit
af95ba7c8e
1 changed files with 6 additions and 14 deletions
|
|
@ -25,6 +25,7 @@
|
|||
#include "activation.h"
|
||||
#include "activation-exit-codes.h"
|
||||
#include "desktop-file.h"
|
||||
#include "dispatch.h"
|
||||
#include "services.h"
|
||||
#include "test.h"
|
||||
#include "utils.h"
|
||||
|
|
@ -1132,21 +1133,12 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation
|
|||
|
||||
addressed_recipient = bus_service_get_primary_owners_connection (service);
|
||||
|
||||
/* Check the security policy, which has the side-effect of adding an
|
||||
* expected pending reply.
|
||||
*/
|
||||
if (!bus_context_check_security_policy (activation->context, transaction,
|
||||
entry->connection,
|
||||
addressed_recipient,
|
||||
addressed_recipient,
|
||||
entry->activation_message, error))
|
||||
/* Resume dispatching where we left off in bus_dispatch() */
|
||||
if (!bus_dispatch_matches (transaction,
|
||||
entry->connection,
|
||||
addressed_recipient,
|
||||
entry->activation_message, error))
|
||||
goto error;
|
||||
|
||||
if (!bus_transaction_send (transaction, addressed_recipient, entry->activation_message))
|
||||
{
|
||||
BUS_SET_OOM (error);
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
||||
link = next;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue