mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-09-05 13:11:32 +00:00
sd-bus: add support for new allow-interactive-authorization message header flag
This commit is contained in:
@@ -849,6 +849,13 @@ _public_ int sd_bus_message_get_auto_start(sd_bus_message *m) {
|
||||
return !(m->header->flags & BUS_MESSAGE_NO_AUTO_START);
|
||||
}
|
||||
|
||||
_public_ int sd_bus_message_get_allow_interactive_authorization(sd_bus_message *m) {
|
||||
assert_return(m, -EINVAL);
|
||||
|
||||
return m->header->type == SD_BUS_MESSAGE_METHOD_CALL &&
|
||||
(m->header->flags & BUS_MESSAGE_ALLOW_INTERACTIVE_AUTHORIZATION);
|
||||
}
|
||||
|
||||
_public_ const char *sd_bus_message_get_path(sd_bus_message *m) {
|
||||
assert_return(m, NULL);
|
||||
|
||||
@@ -999,6 +1006,18 @@ _public_ int sd_bus_message_set_auto_start(sd_bus_message *m, int b) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_public_ int sd_bus_message_set_allow_interactive_authorization(sd_bus_message *m, int b) {
|
||||
assert_return(m, -EINVAL);
|
||||
assert_return(!m->sealed, -EPERM);
|
||||
|
||||
if (b)
|
||||
m->header->flags |= BUS_MESSAGE_ALLOW_INTERACTIVE_AUTHORIZATION;
|
||||
else
|
||||
m->header->flags &= ~BUS_MESSAGE_ALLOW_INTERACTIVE_AUTHORIZATION;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct bus_container *message_get_container(sd_bus_message *m) {
|
||||
assert(m);
|
||||
|
||||
|
||||
@@ -42,7 +42,8 @@ enum {
|
||||
|
||||
enum {
|
||||
BUS_MESSAGE_NO_REPLY_EXPECTED = 1,
|
||||
BUS_MESSAGE_NO_AUTO_START = 2
|
||||
BUS_MESSAGE_NO_AUTO_START = 2,
|
||||
BUS_MESSAGE_ALLOW_INTERACTIVE_AUTHORIZATION = 4,
|
||||
};
|
||||
|
||||
/* Header fields */
|
||||
|
||||
@@ -195,9 +195,11 @@ sd_bus_message* sd_bus_message_unref(sd_bus_message *m);
|
||||
int sd_bus_message_get_type(sd_bus_message *m, uint8_t *type);
|
||||
int sd_bus_message_get_cookie(sd_bus_message *m, uint64_t *cookie);
|
||||
int sd_bus_message_get_reply_cookie(sd_bus_message *m, uint64_t *cookie);
|
||||
int sd_bus_message_get_priority(sd_bus_message *m, int64_t *priority);
|
||||
|
||||
int sd_bus_message_get_expect_reply(sd_bus_message *m);
|
||||
int sd_bus_message_get_auto_start(sd_bus_message *m);
|
||||
int sd_bus_message_get_priority(sd_bus_message *m, int64_t *priority);
|
||||
int sd_bus_message_get_allow_interactive_authorization(sd_bus_message *m);
|
||||
|
||||
const char *sd_bus_message_get_signature(sd_bus_message *m, int complete);
|
||||
const char *sd_bus_message_get_path(sd_bus_message *m);
|
||||
@@ -221,6 +223,8 @@ int sd_bus_message_is_method_error(sd_bus_message *m, const char *name);
|
||||
|
||||
int sd_bus_message_set_expect_reply(sd_bus_message *m, int b);
|
||||
int sd_bus_message_set_auto_start(sd_bus_message *m, int b);
|
||||
int sd_bus_message_set_allow_interactive_authorization(sd_bus_message *m, int b);
|
||||
|
||||
int sd_bus_message_set_destination(sd_bus_message *m, const char *destination);
|
||||
int sd_bus_message_set_priority(sd_bus_message *m, int64_t priority);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user