Hi Did you test this? I thought only a single client was handling server migration data. At least intuitively, that's what I think it should do. ----- Original Message ----- > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/red-channel.c | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/server/red-channel.c b/server/red-channel.c > index 7dfb9bf..18f890f 100644 > --- a/server/red-channel.c > +++ b/server/red-channel.c > @@ -963,20 +963,27 @@ int > red_channel_client_is_waiting_for_migrate_data(RedChannelClient *rcc) > return rcc->wait_migrate_data; > } > > +/** > + * Returns TRUE is at least one client is waiting for migration data > + */ > int red_channel_is_waiting_for_migrate_data(RedChannel *channel) > { > - RedChannelClient *rcc; > + RingItem *link, *next; > > - if (!red_channel_is_connected(channel)) { > + if (!channel) { > return FALSE; > } > > - if (channel->clients_num > 1) { > - return FALSE; > + RING_FOREACH_SAFE(link, next, &channel->clients) { > + RedChannelClient *rcc; > + > + rcc = SPICE_CONTAINEROF(link, RedChannelClient, channel_link); > + if (red_channel_client_is_waiting_for_migrate_data(rcc)) { > + return TRUE; > + } > } > - spice_assert(channel->clients_num == 1); > - rcc = SPICE_CONTAINEROF(ring_get_head(&channel->clients), > RedChannelClient, channel_link); > - return red_channel_client_is_waiting_for_migrate_data(rcc); > + > + return FALSE; > } > > static void red_channel_client_default_connect(RedChannel *channel, > RedClient *client, > -- > 2.4.3 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel