On 2015-04-07 17:13, Wim Taymans wrote:
+static void check_access_finish_cb(pa_access_data *data, bool res) {
+ pa_protocol_native_access_data *d = (pa_protocol_native_access_data *)
data;
+ pa_native_connection *c = PA_NATIVE_CONNECTION(d->userdata);
+
+ if (!res) {
+ pa_pstream_send_error(c->pstream, d->tag, PA_ERR_ACCESS); \
+ goto finish;
+ }
+
+ /* call the dispatcher again, hopefully this time, the access check will
+ * fail or succeed immediately */
+ command_table[d->command](d->pd, d->command, d->tag, d->tc, d->userdata);
While testing this code, it wasn't working. You have to re-read the
command and the tag, just like pdispatch_run does.
I e, like this:
pa_assert_se(pa_tagstruct_getu32(d->tc, &command) >= 0);
pa_assert_se(pa_tagstruct_getu32(d->tc, &tag) >= 0);
pa_assert(command == d->command);
pa_assert(tag == d->tag);
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss