On Wed,  4 Dec 2013 17:38:23 +0100
Sebastian Wick <sebast...@sebastianwick.net> wrote:

> This patch adds a screenshooter section with the "restrict-access"
> setting which is on by default and is the current behavior of weston.
> When turning it off, all clients can use the screenshooter protocol.
> This makes screen capturing for clients easier because they don't
> have to be started by weston.
> ---
>  man/weston.ini.man  | 6 ++++++
>  src/screenshooter.c | 8 +++++++-
>  weston.ini.in       | 3 +++
>  3 files changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/man/weston.ini.man b/man/weston.ini.man
> index 6be90bf..b94ac3d 100644
> --- a/man/weston.ini.man
> +++ b/man/weston.ini.man
> @@ -408,6 +408,12 @@ The terminal shell (string). Sets the $TERM
> variable. sets the path to the xserver to run (string).
>  .RE
>  .RE
> +.SH "SCREENSHOOTER SECTION"
> +.TP 7
> +.BI "restrict-access=" true
> +only allow authenticated clients to take screenshots (boolean).
> +.RE
> +.RE
>  .SH "SEE ALSO"
>  .BR weston (1),
>  .BR weston-launch (1),
> diff --git a/src/screenshooter.c b/src/screenshooter.c
> index 0c657bc..65b6c09 100644
> --- a/src/screenshooter.c
> +++ b/src/screenshooter.c
> @@ -224,11 +224,17 @@ bind_shooter(struct wl_client *client,
>  {
>       struct screenshooter *shooter = data;
>       struct wl_resource *resource;
> +     struct weston_config_section *section;
> +     int restrict_access;
>  
>       resource = wl_resource_create(client,
>                                     &screenshooter_interface, 1,
> id); 
> -     if (client != shooter->client) {
> +     section = weston_config_get_section(shooter->ec->config,
> "screenshooter", NULL, NULL);
> +     weston_config_section_get_bool(section,
> +                             "restrict-access", &restrict_access,
> 1); +
> +     if (restrict_access && client != shooter->client) {
>               wl_resource_post_error(resource,
> WL_DISPLAY_ERROR_INVALID_OBJECT, "screenshooter failed: permission
> denied"); wl_resource_destroy(resource);
> diff --git a/weston.ini.in b/weston.ini.in
> index 5181a9e..bc32567 100644
> --- a/weston.ini.in
> +++ b/weston.ini.in
> @@ -65,3 +65,6 @@ path=@libexecdir@/weston-keyboard
>  #constant_accel_factor = 50
>  #min_accel_factor = 0.16
>  #max_accel_factor = 1.0
> +
> +#[screenshooter]
> +#restrict-access=false

This looks ok to me.

Thanks,
pq
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to