X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fbus-message.c;h=4e95226c5d7b231d516b50369c183d64f3b892cd;hb=b28ff39f42877daef31383748fd2f313d7fd67c1;hp=0c3913e2b0c6f2a9f8c60c86ecd3cc468a314e40;hpb=6a0e376c1cd303ff09777e5d18f070fe43e6b915;p=elogind.git diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c index 0c3913e2b..4e95226c5 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -831,16 +831,17 @@ _public_ int sd_bus_message_get_reply_cookie(sd_bus_message *m, uint64_t *cookie return 0; } -_public_ int sd_bus_message_get_no_reply(sd_bus_message *m) { +_public_ int sd_bus_message_get_expect_reply(sd_bus_message *m) { assert_return(m, -EINVAL); - return m->header->type == SD_BUS_MESSAGE_METHOD_CALL ? !!(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED) : 0; + return m->header->type == SD_BUS_MESSAGE_METHOD_CALL && + !(m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED); } -_public_ int sd_bus_message_get_no_auto_start(sd_bus_message *m) { +_public_ int sd_bus_message_get_auto_start(sd_bus_message *m) { assert_return(m, -EINVAL); - return !!(m->header->flags & BUS_MESSAGE_NO_AUTO_START); + return !(m->header->flags & BUS_MESSAGE_NO_AUTO_START); } _public_ const char *sd_bus_message_get_path(sd_bus_message *m) { @@ -880,19 +881,23 @@ _public_ const sd_bus_error *sd_bus_message_get_error(sd_bus_message *m) { return &m->error; } -_public_ int sd_bus_message_get_monotonic_timestamp(sd_bus_message *m, uint64_t *usec) { +_public_ int sd_bus_message_get_monotonic_usec(sd_bus_message *m, uint64_t *usec) { assert_return(m, -EINVAL); assert_return(usec, -EINVAL); - assert_return(m->monotonic > 0, -ENODATA); + + if (m->monotonic <= 0) + return -ENODATA; *usec = m->monotonic; return 0; } -_public_ int sd_bus_message_get_realtime_timestamp(sd_bus_message *m, uint64_t *usec) { +_public_ int sd_bus_message_get_realtime_usec(sd_bus_message *m, uint64_t *usec) { assert_return(m, -EINVAL); assert_return(usec, -EINVAL); - assert_return(m->realtime > 0, -ENODATA); + + if (m->realtime <= 0) + return -ENODATA; *usec = m->realtime; return 0; @@ -901,7 +906,9 @@ _public_ int sd_bus_message_get_realtime_timestamp(sd_bus_message *m, uint64_t * _public_ int sd_bus_message_get_seqnum(sd_bus_message *m, uint64_t *seqnum) { assert_return(m, -EINVAL); assert_return(seqnum, -EINVAL); - assert_return(m->seqnum > 0, -ENODATA); + + if (m->seqnum <= 0) + return -ENODATA; *seqnum = m->seqnum; return 0; @@ -962,27 +969,27 @@ _public_ int sd_bus_message_is_method_error(sd_bus_message *m, const char *name) return 1; } -_public_ int sd_bus_message_set_no_reply(sd_bus_message *m, int b) { +_public_ int sd_bus_message_set_expect_reply(sd_bus_message *m, int b) { assert_return(m, -EINVAL); assert_return(!m->sealed, -EPERM); assert_return(m->header->type == SD_BUS_MESSAGE_METHOD_CALL, -EPERM); if (b) - m->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; - else m->header->flags &= ~BUS_MESSAGE_NO_REPLY_EXPECTED; + else + m->header->flags |= BUS_MESSAGE_NO_REPLY_EXPECTED; return 0; } -_public_ int sd_bus_message_set_no_auto_start(sd_bus_message *m, int b) { +_public_ int sd_bus_message_set_auto_start(sd_bus_message *m, int b) { assert_return(m, -EINVAL); assert_return(!m->sealed, -EPERM); if (b) - m->header->flags |= BUS_MESSAGE_NO_AUTO_START; - else m->header->flags &= ~BUS_MESSAGE_NO_AUTO_START; + else + m->header->flags |= BUS_MESSAGE_NO_AUTO_START; return 0; } @@ -5542,3 +5549,19 @@ int bus_message_append_sender(sd_bus_message *m, const char *sender) { return message_append_field_string(m, BUS_MESSAGE_HEADER_SENDER, SD_BUS_TYPE_STRING, sender, &m->sender); } + +_public_ int sd_bus_message_get_priority(sd_bus_message *m, int64_t *priority) { + assert_return(m, -EINVAL); + assert_return(priority, -EINVAL); + + *priority = m->priority; + return 0; +} + +_public_ int sd_bus_message_set_priority(sd_bus_message *m, int64_t priority) { + assert_return(m, -EINVAL); + assert_return(!m->sealed, -EPERM); + + m->priority = priority; + return 0; +}