static int async_polkit_callback(sd_bus *bus, sd_bus_message *reply, void *userdata, sd_bus_error *error) { _cleanup_bus_error_free_ sd_bus_error error_buffer = SD_BUS_ERROR_NULL; AsyncPolkitQuery *q = userdata; int r; assert(bus); assert(reply); assert(q); q->slot = sd_bus_slot_unref(q->slot); q->reply = sd_bus_message_ref(reply); r = sd_bus_message_rewind(q->request, true); if (r < 0) { r = sd_bus_reply_method_errno(q->request, r, NULL); goto finish; } r = q->callback(bus, q->request, q->userdata, &error_buffer); r = bus_maybe_reply_error(q->request, r, &error_buffer); finish: async_polkit_query_free(q); return r; }
static int async_polkit_callback(sd_bus *bus, sd_bus_message *reply, void *userdata) { AsyncPolkitQuery *q = userdata; _cleanup_bus_message_unref_ sd_bus_message *m = NULL; int r; assert(bus); assert(reply); assert(q); q->reply = sd_bus_message_ref(reply); q->serial = 0; m = sd_bus_message_ref(q->request); r = sd_bus_message_rewind(m, true); if (r < 0) return r; r = q->callback(bus, m, q->userdata); if (r < 0) return r; return 1; }