[Spice-devel] [spice-gtk v2 6/7] channel-main: clipboard grab: don't fail silently

Victor Toso victortoso at redhat.com
Mon Dec 10 12:50:34 UTC 2018


On Mon, Dec 10, 2018 at 07:42:35AM -0500, Frediano Ziglio wrote:
> > 
> > From: Victor Toso <me at victortoso.com>
> > 
> > Spice client should listen to SpiceMainChannel::agent-connected
> > notification and avoid calling any clipboard related functions such as
> > spice_gtk_session_paste_from_guest() from client-gtk library.
> > 
> > This patch removes the silent return of agent_clipboard_grab() in
> > order to properly catch bugs with critical messages.
> > 
> > Signed-off-by: Victor Toso <victortoso at redhat.com>
> 
> Documentation for agent-connected: "Whether the agent is connected"
> 
> Documentation for main-agent-update signal:
> 
> /**
>  * SpiceMainChannel::main-agent-update:
>  * @main: the #SpiceMainChannel that emitted the signal
>  *
>  * Notify when the %SpiceMainChannel:agent-connected or
>  * %SpiceMainChannel:agent-caps-0 property change.
>  **/
> 
> Documentation for spice_main_channel_clipboard_selection_grab
> 
> /**
>  * spice_main_channel_clipboard_selection_grab:
>  * @channel: a #SpiceMainChannel
>  * @selection: one of the clipboard #VD_AGENT_CLIPBOARD_SELECTION_*
>  * @types: an array of #VD_AGENT_CLIPBOARD types available in the clipboard
>  * @ntypes: the number of @types
>  *
>  * Grab the guest clipboard, with #VD_AGENT_CLIPBOARD @types.
>  *
>  * Since: 0.35
>  **/
> 
> Documentation for spice_gtk_session_paste_from_guest
> 
> /**
>  * spice_gtk_session_paste_from_guest:
>  * @self: #SpiceGtkSession
>  *                                               
>  * Copy guest clipboard to client-side clipboard.
>  *  
>  * Since 0.8
>  **/
> 
> I don't see any requirement for the client to check agent status.

You mean that we should improve documentation or something else?

As always, thanks for reviewing.

> 
> > ---
> >  src/channel-main.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> > 
> > diff --git a/src/channel-main.c b/src/channel-main.c
> > index 223043a..aa563d2 100644
> > --- a/src/channel-main.c
> > +++ b/src/channel-main.c
> > @@ -1352,9 +1352,7 @@ static bool agent_clipboard_grab(SpiceMainChannel
> > *channel, guint selection,
> >      size_t size;
> >      int i;
> >  
> > -    if (!c->agent_connected)
> > -        return false;
> > -
> > +    g_return_val_if_fail(c->agent_connected, false);
> >      g_return_val_if_fail(test_agent_cap(channel,
> >      VD_AGENT_CAP_CLIPBOARD_BY_DEMAND), false);
> >  
> >      size = sizeof(VDAgentClipboardGrab) + sizeof(uint32_t) * ntypes;
> 
> Frediano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20181210/c195e109/attachment.sig>


More information about the Spice-devel mailing list