[Spice-devel] [spice-gtk PATCH v2] spicy.c: Don't attempt to connect automatically if hostname and port are not provided
Marc-André Lureau
marcandre.lureau at gmail.com
Sat Aug 25 15:21:15 PDT 2012
Hi
On Sat, Aug 25, 2012 at 5:18 AM, <riegamaths at gmail.com> wrote:
> From: Dunrong Huang <riegamaths at gmail.com>
>
> This patch will fix following error:
> $ spicy --spice-debug
> ......
> (spicy:21981): GSpice-DEBUG: spice-session.c:1618 new main channel, switching
> (spicy:21981): GSpice-DEBUG: spice-gtk-session.c:811 Changing main channel from (nil) to 0x8534b0
> (spicy:21981): GSpice-DEBUG: spicy.c:1587 new channel (#0)
> (spicy:21981): GSpice-DEBUG: spicy.c:1590 new main channel
> (spicy:21981): GSpice-DEBUG: spice-channel.c:2255 Open coroutine starting 0x8534b0
> (spicy:21981): GSpice-DEBUG: spice-channel.c:2098 Started background coroutine 0x853538 for main-1:0
> (spicy:21981): GSpice-DEBUG: spice-channel.c:2122 connection failed, trying with TLS port
> (spicy:21981): GSpice-DEBUG: spice-channel.c:2126 Connect error
> GSpice-Message: main channel: failed to connect
> ......
>
> When user starts spicy without any command-line arguments, spicy
> should not attempt to connected to server automatically because
> hostname or port are unknown at the moment.
>
> What this patch changes is to show the dialog window instead of
> connecting to server automatically if no hostname or port are found.
>
> Signed-off-by: Dunrong Huang <riegamaths at gmail.com>
> ---
> v1 -> v2:
> * Fix memory leak, pointed out by Marc-André, Thanks
> gtk/spicy.c | 18 +++++++++++++++++-
> 1 files changed, 17 insertions(+), 1 deletions(-)
>
> diff --git a/gtk/spicy.c b/gtk/spicy.c
> index 5510f0c..afd4cbb 100644
> --- a/gtk/spicy.c
> +++ b/gtk/spicy.c
> @@ -1804,6 +1804,7 @@ int main(int argc, char *argv[])
> GOptionContext *context;
> spice_connection *conn;
> gchar *conf_file, *conf;
> + char *host = NULL, *port = NULL, *tls_port = NULL;
>
> #if !GLIB_CHECK_VERSION(2,31,18)
> g_thread_init(NULL);
> @@ -1869,8 +1870,23 @@ int main(int argc, char *argv[])
> conn = connection_new();
> spice_set_session_option(conn->session);
> spice_cmdline_session_setup(conn->session);
> - connection_connect(conn);
>
> + g_object_get(conn->session, "host", &host, NULL);
> + g_object_get(conn->session, "port", &port, NULL);
> + g_object_get(conn->session, "tls-port", &tls_port, NULL);
> +
> + /* If user doesn't provide hostname and port, show the dialog window
> + instead of connecting to server automatically */
> + if (host == NULL || (port == NULL && tls_port == NULL)) {
> + int ret = connect_dialog(conn->session);
> + if (ret != 0) {
> + exit(0);
In theory we would have to free there too.. but spicy is a test
program, and we don't really mind short-lived variable not being freed
here.
thanks, pushed
--
Marc-André Lureau
More information about the Spice-devel
mailing list