node->leaf.last_iteration = bus->iteration_counter;
}
+ r = sd_bus_message_rewind(m, true);
+ if (r < 0)
+ return r;
+
/* Run the callback. And then invoke siblings. */
assert(node->leaf.callback);
r = node->leaf.callback(bus, ret, m, node->leaf.userdata);
if (c->timeout != 0)
prioq_remove(bus->reply_callbacks_prioq, c, &c->prioq_idx);
+ r = sd_bus_message_rewind(m, true);
+ if (r < 0)
+ return r;
+
r = c->callback(bus, 0, m, c->userdata);
free(c);
l->last_iteration = bus->iteration_counter;
+ r = sd_bus_message_rewind(m, true);
+ if (r < 0)
+ return r;
+
r = l->callback(bus, 0, m, l->userdata);
if (r != 0)
return r;
c->last_iteration = bus->iteration_counter;
+ r = sd_bus_message_rewind(m, true);
+ if (r < 0)
+ return r;
+
r = c->callback(bus, 0, m, c->userdata);
if (r != 0)
return r;
c->last_iteration = bus->iteration_counter;
+ r = sd_bus_message_rewind(m, true);
+ if (r < 0)
+ return r;
+
r = c->callback(bus, 0, m, c->userdata);
if (r != 0)
return r;
goto null_message;
if (ret) {
+ r = sd_bus_message_rewind(m, true);
+ if (r < 0)
+ return r;
+
*ret = m;
m = NULL;
return 1;