On Wed, Mar 11, 2015 at 04:27:37PM +0100, Fabiano Fidêncio wrote: > When connecting to a remote host that has a virtual machine listening to > "127.0.0.1", virt_viewer_is_reachable() must take --direct into account, > otherwise it can end up connecting to a local virtual machine listening > to "0.0.0.0" instead of return that the guest is not reachable. You could be a bit more specific here and indicate that the problem was with qemu+ssh. Patch looks good to me, but I hope virt_viewer_is_reachable won't get more complicated than that. ACK. > > Resolves: rhbz#1085216 > --- > src/virt-viewer.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/src/virt-viewer.c b/src/virt-viewer.c > index e4bca74..acad6c6 100644 > --- a/src/virt-viewer.c > +++ b/src/virt-viewer.c > @@ -355,8 +355,10 @@ virt_viewer_is_loopback(const char *host) > > > static gboolean > -virt_viewer_is_reachable(const gchar *host, const char *transport, > - const char *transport_host) > +virt_viewer_is_reachable(const gchar *host, > + const char *transport, > + const char *transport_host, > + gboolean direct) > { > gboolean host_is_loopback; > gboolean transport_is_loopback; > @@ -367,7 +369,7 @@ virt_viewer_is_reachable(const gchar *host, const char *transport, > if (!transport) > return TRUE; > > - if (strcmp(transport, "ssh") == 0) > + if (strcmp(transport, "ssh") == 0 && !direct) > return TRUE; > > if (strcmp(transport, "unix") == 0) > @@ -402,6 +404,7 @@ virt_viewer_extract_connect_info(VirtViewer *self, > gchar *user = NULL; > gint port = 0; > gchar *uri = NULL; > + gboolean direct = virt_viewer_app_get_direct(app); > > virt_viewer_app_free_connect_info(app); > > @@ -457,8 +460,7 @@ virt_viewer_extract_connect_info(VirtViewer *self, > */ > if (virt_viewer_replace_host(ghost)) { > gchar *replacement_host = NULL; > - if ((g_strcmp0(transport, "ssh") == 0) > - && !virt_viewer_app_get_direct(app)) { > + if ((g_strcmp0(transport, "ssh") == 0) && !direct) { > replacement_host = g_strdup("localhost"); > } else { > replacement_host = g_strdup(host); > @@ -469,7 +471,7 @@ virt_viewer_extract_connect_info(VirtViewer *self, > ghost = replacement_host; > } > > - if (!virt_viewer_is_reachable(ghost, transport, host)) { > + if (!virt_viewer_is_reachable(ghost, transport, host, direct)) { > g_debug("graphics listen '%s' is not reachable from this machine", > ghost ? ghost : ""); > virt_viewer_app_simple_message_dialog(app, _("Guest '%s' is not reachable"), > -- > 2.3.1 > > _______________________________________________ > virt-tools-list mailing list > virt-tools-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/virt-tools-list
Attachment:
pgp4foNORrykK.pgp
Description: PGP signature
_______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list