[Spice-devel] [PATCH spice-gtk 05/13] migration: fail with client provided fd

Marc-André Lureau mlureau at redhat.com
Wed Nov 12 07:46:35 PST 2014



----- Original Message -----
> On Sun, Nov 09, 2014 at 05:31:37PM +0100, Marc-André Lureau wrote:
> > This is not yet supported, so fail early.
> 
> Seems like this bit from your cover letter would fit in the log here:
> "Currently the fd request is done on the migration session, which is
> not connected with the client session, so the client has no way to
> provide fd for the migration. And the original and migration session
> ends up stuck. Failing early seems the best for now. "
> 
> > ---
> >  TODO                |  2 +-
> >  gtk/spice-channel.c |  4 ++++
> >  gtk/spice-session.c | 18 +++++++++++++-----
> >  3 files changed, 18 insertions(+), 6 deletions(-)
> > 
> > diff --git a/TODO b/TODO
> > index 34e2c39..68ea4d5 100644
> > --- a/TODO
> > +++ b/TODO
> > @@ -1,5 +1,5 @@
> > +* implement migration support with client fd
> >  * create a ChannelBaseAudio
> > -* missing TunnelChannel implementation
> 
> This removed line is unrelated to this commit.
> 

I will push it separately, the tunnel channel is long deprecated, no need to have that in todo here.

> >  * revive the win32 GDI backend
> >  
> >  See also list of bugs open:
> > diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c
> > index ed18e09..93c2a78 100644
> > --- a/gtk/spice-channel.c
> > +++ b/gtk/spice-channel.c
> > @@ -2468,6 +2468,10 @@ static gboolean channel_connect(SpiceChannel
> > *channel)
> >  
> >      if (spice_session_get_client_provided_socket(c->session)) {
> >          if (c->fd == -1) {
> > +            CHANNEL_DEBUG(channel, "requesting fd");
> > +            /* FIXME: no way for client to provide fd atm. */
> > +            /* It could either chain on parent channel.. */
> > +            /* or register migration channel on parent session, or ? */
> >              g_signal_emit(channel, signals[SPICE_CHANNEL_OPEN_FD], 0,
> >              c->tls);
> >              return true;
> 
> return FALSE; here maybe?

It's not yet a connect error, so it must return TRUE. Agree, that dealing with async and sync error report sucks, but we don't want to break API.


More information about the Spice-devel mailing list