diff options
author | Jacek Bukarewicz <j.bukarewicz@samsung.com> | 2014-11-28 12:39:33 +0100 |
---|---|---|
committer | Adrian Szyndela <adrian.s@samsung.com> | 2016-02-19 11:53:57 +0100 |
commit | 39a2176ea2a51c3d3b270f4083fc031981b16b75 (patch) | |
tree | 4238701ca6014677f184282e15a8256b22181b4f /bus/bus.h | |
parent | 45ba968436b10e4e0238cb67d76c770e1deabe5b (diff) | |
download | dbus-39a2176ea2a51c3d3b270f4083fc031981b16b75.tar.gz dbus-39a2176ea2a51c3d3b270f4083fc031981b16b75.tar.bz2 dbus-39a2176ea2a51c3d3b270f4083fc031981b16b75.zip |
Handle receive rule result unavailability and message broadcasts
When message is sent to the addressed recipient and receive rule
result is unavailable we don't want to block the sender
as it most likely will be the privileged service, so instead we queue
it at the recipient. Any further messages sent to it will be queued to
maintain message order. Once the answer from Cynara arrives messages are
dispatched from the recipient queue. In such case full dispatch is
performed - messages are sent to addressed recipient and other
interested connections.
Messages sent to non-addressed recipients (eavesdroppers or broadcast
message recipients) are handled in a similar way. The difference is
that it is not full dispatch meaning message is sent to a single recipient.
Change-Id: Iecd5395f75a4c7811fa97247a37d8fc4d42e8814
Diffstat (limited to 'bus/bus.h')
-rw-r--r-- | bus/bus.h | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -161,4 +161,23 @@ BusResult bus_context_check_security_policy (BusContext DBusError *error, BusDeferredMessage **deferred_message); +dbus_bool_t bus_context_check_recipient_message_limits (BusContext *context, + DBusConnection *recipient, + DBusConnection *sender, + DBusMessage *message, + dbus_bool_t requested_reply, + DBusError *error); +void bus_context_complain_about_message (BusContext *context, + const char *error_name, + const char *complaint, + int matched_rules, + DBusMessage *message, + DBusConnection *sender, + DBusConnection *proposed_recipient, + dbus_bool_t requested_reply, + dbus_bool_t log, + const char *privilege, + DBusError *error); + + #endif /* BUS_BUS_H */ |