X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-message.c;h=8d449c547827581950825a93c07dd6fa14e9c9bc;hp=0f19ee238ada80b3be29556d16ebeae902fdcd9d;hb=e4bb80a07610e6559aa6d2d763fd0b78634a4b12;hpb=5b1bc83f81bf318aa365dc539b2e0be00fdaa63b diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c index 0f19ee238..8d449c547 100644 --- a/src/libsystemd-bus/bus-message.c +++ b/src/libsystemd-bus/bus-message.c @@ -2695,7 +2695,7 @@ static int bus_message_close_header(sd_bus_message *m) { return 0; } -int bus_message_seal(sd_bus_message *m, uint64_t serial) { +int bus_message_seal(sd_bus_message *m, uint64_t serial, usec_t timeout) { struct bus_body_part *part; size_t l, a; unsigned i; @@ -2742,6 +2742,7 @@ int bus_message_seal(sd_bus_message *m, uint64_t serial) { return r; m->header->serial = serial; + m->timeout = m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED ? 0 : timeout; /* Add padding at the end of the fields part, since we know * the body needs to start at an 8 byte alignment. We made @@ -4151,7 +4152,7 @@ _public_ int sd_bus_message_rewind(sd_bus_message *m, int complete) { } c->offset_index = 0; - c->item_size = c->n_offsets > 0 ? c->offsets[0] : c->end; + c->item_size = (c->n_offsets > 0 ? c->offsets[0] : c->end) - c->begin; return !isempty(c->signature); }