m->header->version = bus ? bus->message_version : 1;
m->allow_fds = !bus || bus->can_fds || (bus->state != BUS_HELLO && bus->state != BUS_RUNNING);
+ if (bus)
+ m->bus = sd_bus_ref(bus);
+
return m;
}
}
int bus_message_seal(sd_bus_message *m, uint64_t serial) {
- int r;
+ struct bus_body_part *part;
size_t l, a;
+ unsigned i;
+ int r;
assert(m);
m->header->fields_size -= a;
}
+ for (i = 0, part = &m->body; i < m->n_body_parts; i++, part = part->next)
+ if (part->memfd >= 0 && part->sealed)
+ ioctl(part->memfd, KDBUS_CMD_MEMFD_SEAL_SET, 1);
+
m->header->serial = serial;
m->sealed = true;