BusRegistry *registry;
dbus_bool_t requested_reply;
DBusConnection *peer;
+ const char *name;
DBusMessage *message;
dbus_bool_t eavesdropping;
} sr;
privilege, matched_rule);
}
}
- else
- score = find_and_check_rules_for_name (rules, DBUS_SERVICE_DBUS, score,
- check_func, params,
- toggles, log, result,
- privilege, matched_rule);
+ else if (p->u.sr.name != NULL)
+ {
+ score = find_and_check_rules_for_name (rules, p->u.sr.name, score,
+ check_func, params,
+ toggles, log, result,
+ privilege, matched_rule);
+ }
}
else
score = find_and_check_rules_for_name (rules, _dbus_string_get_data(p->u.name),
params.u.sr.requested_reply = requested_reply;
params.u.sr.peer = receiver;
params.u.sr.message = message;
+ params.u.sr.name = dbus_message_get_destination (message);
_dbus_verbose (" (policy) checking send rules\n");
params.u.sr.eavesdropping =
addressed_recipient != proposed_recipient &&
dbus_message_get_destination (message) != NULL;
+ params.u.sr.name = dbus_message_get_sender (message);
_dbus_verbose (" (policy) checking receive rules, eavesdropping = %d\n", eavesdropping);