[pulseaudio-discuss] [PATCH] context: add pa_context_load_cookie_file()

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Tue Aug 27 06:42:11 PDT 2013


On Tue, 2013-08-27 at 03:18 +0200, Alexander Couzens wrote:
> There is no function to load the authentication cookie for a context.
> You can only set environment variables. This patch adds pa_context_load_cookie_file()

You forgot to update the function name in the commit message.

> Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
> ---
>  src/pulse/context.c | 10 ++++++++++
>  src/pulse/context.h |  3 +++
>  2 files changed, 13 insertions(+)

I mentioned this already in IRC, but for completeness, I'll mention this
also here: you need to update src/map-file when adding functions to the
public API of libpulse, otherwise applications (or module-tunnel-sink)
won't be able to link to the new functions.

> 
> diff --git a/src/pulse/context.c b/src/pulse/context.c
> index 1ba2672..5c0405f 100644
> --- a/src/pulse/context.c
> +++ b/src/pulse/context.c
> @@ -1448,3 +1448,13 @@ size_t pa_context_get_tile_size(pa_context *c, const pa_sample_spec *ss) {
>      mbs = PA_ROUND_DOWN(pa_mempool_block_size_max(c->mempool), fs);
>      return PA_MAX(mbs, fs);
>  }
> +
> +int pa_context_load_cookie_from_file(pa_context *c, const char *cookie_file_path) {
> +    pa_assert(c);
> +    pa_assert(PA_REFCNT_VALUE(c) >= 1);

The cookie_file_path pointer should also be checked.

> +
> +    PA_CHECK_VALIDITY(c, !pa_detect_fork(), PA_ERR_FORKED);
> +    PA_CHECK_VALIDITY(c, c->state == PA_CONTEXT_UNCONNECTED, PA_ERR_BADSTATE);
> +
> +    return pa_client_conf_load_cookie_from_file(c->conf, cookie_file_path);
> +}
> diff --git a/src/pulse/context.h b/src/pulse/context.h
> index 6e615f6..b52c0d4 100644
> --- a/src/pulse/context.h
> +++ b/src/pulse/context.h
> @@ -280,6 +280,9 @@ void pa_context_rttime_restart(pa_context *c, pa_time_event *e, pa_usec_t usec);
>   * pa_stream_get_sample_spec(ss)); \since 0.9.20 */
>  size_t pa_context_get_tile_size(pa_context *c, const pa_sample_spec *ss);
>  
> +/** Load the authentication cookie from a file \since 5.0 */

I elaborated the documentation to be more informative for application
developers:

/** Load the authentication cookie from a file. This function is primarily
 * meant for PulseAudio's own tunnel modules, which need to load the cookie
 * from a custom location. Applications don't usually need to care about the
 * cookie at all, but if it happens that you know what the authentication
 * cookie is and your application needs to load it from a non-standard
 * location, feel free to use this function. \since 5.0 */

> +int pa_context_load_cookie_from_file(pa_context *c, const char *cookie_file_path);
> +
>  PA_C_DECL_END
>  
>  #endif

I've applied the patch with the fixes mentioned above. Thanks again for
the patch!

-- 
Tanu



More information about the pulseaudio-discuss mailing list