On windows guest, after dragging 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.
--- 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 -- QSBDT0RFUiBGUk9NIFJJRVNUIE9GIENUU0VV
_______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel