On Tue, Aug 12, 2014 at 12:58 AM, Marc-André Lureau <[email protected]> wrote:
> > > ----- Original Message ----- > > On windows guest, after dra gging a zero-size file, the file will be > occupied > > by vdagent. For spice-gtk ignores this case, and stops sending data after > > sending > > a start message to agent, see here for more details: > > > http://lists.freedesktop.org/archives/spice-devel/2014-August/017184.html > > I accept the suggestion of Christophe and fix the bug in spice-gtk. > > Pay attention to the modification of > > > > agent_msg_queue_many, I think it's a small trick. > > Isn't this changing the protocol? > > We use to send xfer-start of data size 0 and then xfer-data of data size > 0, and now we skip the second part. > > That's an an incompatible change. I would prefer if we keep sending the > xfer-data message, even if it is of size 0. > > Or if you prefer don't initiate xfer at all if the file size is 0. But I > don't think that's worth it, and it would be some "racy" code (check size > before doing actual operation) You mean client shouldn't send a zero-size file?I think sending such file is meaningless, too. And I prefer this can be fixed through a more comfortable way. > > > > > > --- > > gtk/channel-main.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/gtk/channel-main.c b/gtk/channel-main.c > > index 7a299a4..1e8e3f5 100644 > > --- a/gtk/channel-main.c > > +++ b/gtk/channel-main.c > > @@ -936,7 +936,7 @@ static void > > > > agent_msg_queue_many(SpiceMainChannel *channel, int type, const void > > memcpy(payload, &msg, sizeof(VDAgentMessage)); > > payload += sizeof(VDAgentMessage); > > paysize -= sizeof(VDAgentMessage); > > - if (paysize == 0) { > > + if (size != 0 && paysize == 0) { > > g_queue_push_tail(c->agent_msg_queue, out); > > out = NULL; > > } > > @@ -1637,7 +1637,7 @@ static void file_xfer_read_cb(GObject > *source_object, > > return; > > } > > > > - if (count > 0) { > > + if (count >= 0) { > > task->read_bytes += count; > > file_xfer_queue(task, count); > > file_xfer_flush_async(channel, task->cancellable, > > -- > > 1.9.3 > > > > -- > > Q S B D T 0 R F U i B G U k 9 N I F J J R V N U I E 9 G I E N U U 0V V > > > > _______________________________________________ > > Spice-devel mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/spice-devel > > > -- QSBDT0RFUiBGUk9NIFJJRVNUIE9GIENUU0VV
_______________________________________________ Spice-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/spice-devel
