[virt-tools-list] [PATCH virt-viewer] Add support for raw IPv6 addresses in VNC URIs
Laine Stump
laine at redhat.com
Wed Apr 18 17:24:56 UTC 2012
On 04/18/2012 11:44 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Support vnc://[x:y:z:]:5901/ for raw IPv6 addresses in URIs
> ---
> src/virt-viewer-session-vnc.c | 17 ++++++++++++++++-
> 1 files changed, 16 insertions(+), 1 deletions(-)
>
> diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c
> index 3e27566..238c865 100644
> --- a/src/virt-viewer-session-vnc.c
> +++ b/src/virt-viewer-session-vnc.c
> @@ -197,6 +197,7 @@ virt_viewer_session_vnc_open_uri(VirtViewerSession* session,
> VirtViewerSessionVnc *self = VIRT_VIEWER_SESSION_VNC(session);
> xmlURIPtr uri = NULL;
> gchar *portstr;
> + gchar *hoststr = NULL;
> gboolean ret;
>
> g_return_val_if_fail(self != NULL, FALSE);
> @@ -207,8 +208,22 @@ virt_viewer_session_vnc_open_uri(VirtViewerSession* session,
>
> portstr = g_strdup_printf("%d", uri->port);
>
> - ret = vnc_display_open_host(self->priv->vnc, uri->server, portstr);
> + if (uri->server) {
> + if (uri->server[0] == '[') {
> + gchar *tmp;
> + hoststr = g_strdup(uri->server + 1);
> + if ((tmp = strchr(hoststr, ']')))
> + *tmp = '\0';
> + } else {
> + hoststr = g_strdup(uri->server);
> + }
> + }
> +
> + ret = vnc_display_open_host(self->priv->vnc,
> + hoststr,
> + portstr);
> g_free(portstr);
> + g_free(hoststr);
> xmlFreeURI(uri);
> return ret;
> }
ACK to this, but it looks like it would be good to give the same
treatment to the results of xmlParseURI in
virt_viewer_util_extract_host() (although to tell the truth this is the
first time I've looked at this code, so I'm not sure exactly when/how
it's used :-).
More information about the virt-tools-list
mailing list