uint32_t *array_size;
/* gvariant: list of offsets to end of children if this is struct/dict entry/array */
- size_t *offsets, n_offsets, n_offsets_allocated, offset_index;
+ size_t *offsets, n_offsets, offsets_allocated, offset_index;
size_t item_size;
+
+ char *peeked_signature;
};
struct bus_header {
uint8_t flags;
uint8_t version;
uint32_t body_size;
+
+ /* Note that what the bus spec calls "serial" we'll call
+ "cookie" instead, because we don't want to imply that the
+ cookie was in any way monotonically increasing. */
uint32_t serial;
uint32_t fields_size;
} _packed_;
void *data;
size_t size;
size_t mapped;
+ size_t allocated;
int memfd;
bool free_this:1;
bool munmap_this:1;
sd_bus *bus;
- uint32_t reply_serial;
+ uint32_t reply_cookie;
const char *path;
const char *interface;
struct bus_container root_container, *containers;
unsigned n_containers;
+ size_t containers_allocated;
struct iovec *iovec;
struct iovec iovec_fixed[2];
return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_64(u) : u;
}
-static inline uint32_t BUS_MESSAGE_SERIAL(sd_bus_message *m) {
+static inline uint32_t BUS_MESSAGE_COOKIE(sd_bus_message *m) {
return BUS_MESSAGE_BSWAP32(m, m->header->serial);
}
int bus_message_to_errno(sd_bus_message *m);
int bus_message_new_synthetic_error(sd_bus *bus, uint64_t serial, const sd_bus_error *e, sd_bus_message **m);
+
+int bus_message_remarshal(sd_bus *bus, sd_bus_message **m);
+
+int bus_message_append_sender(sd_bus_message *m, const char *sender);