Go to file
Jonathon Jongsma c2dabf0730 Fix a regression when initial connection fails
Due to changes in commit 65ef66e4, when the initial connection fails,
virt-viewer just sat quietly and didn't indicate what was wrong. It also
did not exit as it did before.  This is because we were using
virt_viewer_session_spice_channel_destroy() incorrectly. This function
was intended to be a callback that is called to clean up the VV session
when the SpiceSession tells us that a channel has been destroyed. It
does not actually destroy the channel, it only cleans up references to
that channel within virt-viewer. After calling this function, the
channel is not affected in any way. If the channel object was valid
before calling the function, it will be valid and unchanged after
calling the function as well.

The problem is that before commit 65ef66e4, this function
(_channel_destroy()) also had a side-effect of emitting a signal that
made us think that the SpiceSession was disconnected when it was not.
The application responded to this signal by exiting even though the
session was not properly disconnected and cleaned up.

We now no longer exit the application until the SpiceSession is properly
disconnected and cleaned up. So we need to make sure that this happens
when our initial connection fails. Therefore, when the main channel
receives an error channel-event, we should not call
virt_viewer_session_spice_channel_destroy(). This function should only
be called when a channel has actually been destroyed, and the channel is
not destroyed at this point.  We should instead explicitly disconnect
the session, which will result in the channels being destroyed properly.
After the session destroys all of the channels, the 'channel-destroy' signal
will be emitted by SpiceSession, so the _channel_destroy() function will
eventually get called by the signal handler.

To make the proper use of the function more obvious, I also changed the
function name from _channel_destroy() to _channel_destroyed() and added
a comment.

Fixes: rhbz#1666869
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2019-04-16 15:19:51 -05:00
build-aux po: minimize & canonicalize translations stored in git 2019-03-12 11:49:41 +00:00
data po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00
docs docs: fix "make syntaxcheck" 2015-12-01 16:46:07 +01:00
icons Add virt-viewer-usb.png 2014-11-24 14:14:14 +01:00
m4 po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00
man remote-viewer: Allow toggling shared clipboard 2019-03-07 19:52:00 +01:00
po po: refresh translations from zanata 2019-03-12 11:49:48 +00:00
src Fix a regression when initial connection fails 2019-04-16 15:19:51 -05:00
tests tests: improvements to monitor-mapping test 2017-04-11 15:20:14 -05:00
.gitpublish Add a git-publish configuration file 2019-03-04 10:43:39 +00:00
.mailmap update .mailmap 2012-03-01 16:20:25 +01:00
acinclude.m4 Disable -Wcast-function-type warning 2018-07-27 11:50:07 +01:00
AUTHORS.in Auto-generate AUTHORS file from GIT logs 2013-02-13 15:17:57 +00:00
autogen.sh po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00
cfg.mk Delete browser plugin entirely 2013-03-13 11:47:42 +00:00
ChangeLog Automatically generate changelog from GIT history during make dist 2011-11-07 12:42:15 +00:00
configure.ac po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00
COPYING Added COPYING/INSTALL files 2007-08-15 20:22:40 -04:00
git.mk git.mk: fix copyright line and remove use of -o / -a 2015-11-05 14:22:35 +00:00
GNUmakefile Import GNULIB rules for syntax checking code 2012-02-06 12:42:23 +00:00
intltool-extract.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
intltool-merge.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
intltool-update.in Add support for i18n of the UI 2010-01-11 16:01:20 +00:00
maint.mk Revert "Don't set LC_ALL=C during build as that breaks python apps" 2017-08-14 11:37:07 +01:00
Makefile.am po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00
mingw-virt-viewer.spec.in po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00
NEWS Update NEWS for 8.0 release 2019-03-01 16:43:57 +00:00
prepare-release.sh spec: Drop %{extra_release} 2018-11-13 10:13:25 +01:00
README.md Bump min spice to 0.35 and address deprecation warnings 2018-07-27 11:50:07 +01:00
virt-viewer.spec.in po: provide custom make rules for po file management 2019-03-12 11:49:38 +00:00

Virt Viewer

Virt Viewer provides a graphical viewer for the guest OS display. At this time is supports guest OS using the VNC or SPICE protocols. Further protocols may be supported in the future as user demand dictates. The viewer can connect directly to both local and remotely hosted guest OS, optionally using SSL/TLS encryption.

Virt Viewer is the GTK3 application. Virt Viewer 3.0 was the last release that supported GTK2.

Virt Viewer uses the GTK-VNC (>= 0.4.0) widget to provide a display of the VNC protocol, which is available from

https://wiki.gnome.org/Projects/gtk-vnc

Virt Viewer uses the SPICE-GTK (>= 0.35) widget to provide a display of the SPICE protocol, which is available from:

https://www.spice-space.org/download.html

Use of either SPICE-GTK or GTK-VNC can be disabled at time of configure, with --without-gtk-vnc or --without-spice-gtk respectively.

Virt Viewer uses libvirt to lookup information about the guest OS display. This is available from

http://libvirt.org/

Further information about the Virt Viewer application can be found on the Virt Manager website:

http://virt-manager.org/

Feedback should be directed to the mailing list at

http://www.redhat.com/mailman/listinfo/virt-tools-list