This means that we do not attempt to use agent mouse mode if there is no connected agent. It fixes a bug which would occur if an agent disconnected after session startup which would result in having no useful mouse. Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx> --- src/spiceqxl_vdagent.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/spiceqxl_vdagent.c b/src/spiceqxl_vdagent.c index 4208233..315ae53 100644 --- a/src/spiceqxl_vdagent.c +++ b/src/spiceqxl_vdagent.c @@ -56,11 +56,12 @@ static int vmc_read(SpiceCharDeviceInstance *sin, uint8_t *buf, int len) if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) { return 0; } - fprintf(stderr, "ERROR: vdagentd died\n"); + fprintf(stderr, "ERROR: vdagent died\n"); close(virtio_client_fd); virtio_client_fd = -1; vdagent_sin.qxl->core->watch_remove(virtio_client_watch); virtio_client_watch = NULL; + spice_server_remove_interface(&vdagent_sin.base.base); } return nbytes; } @@ -120,6 +121,9 @@ static void on_accept(int fd, int event, void *opaque) } virtio_client_watch = qxl->core->watch_add(virtio_client_fd, SPICE_WATCH_EVENT_READ /* TODO - SPICE_WATCH_EVENT_WRITE */, on_read_available, qxl); + + spice_server_add_interface(qxl->spice_server, &vdagent_sin.base.base); + return; error: @@ -167,6 +171,5 @@ void spiceqxl_vdagent_init(qxl_screen_t *qxl) /* TODO - SPICE_WATCH_EVENT_WRITE */, on_accept, qxl); vdagent_sin.base.base.sif = &vmc_interface.base; - spice_server_add_interface(qxl->spice_server, &vdagent_sin.base.base); spiceqxl_uinput_init(qxl); } -- 2.1.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel