[vinagre] Added ssh-tunnel-host property to the VncConnection class
- From: Jonh Wendell <jwendell src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vinagre] Added ssh-tunnel-host property to the VncConnection class
- Date: Mon, 25 Jan 2010 17:41:58 +0000 (UTC)
commit 6e4d6c9a0b06dc61743850a0661a7ed8d29138e0
Author: Jonh Wendell <jwendell gnome org>
Date: Fri Oct 30 14:23:35 2009 -0300
Added ssh-tunnel-host property to the VncConnection class
plugins/vnc/vinagre-vnc-connection.c | 50 +++++++++++++++++++++++++++++++++-
plugins/vnc/vinagre-vnc-connection.h | 4 +++
2 files changed, 53 insertions(+), 1 deletions(-)
---
diff --git a/plugins/vnc/vinagre-vnc-connection.c b/plugins/vnc/vinagre-vnc-connection.c
index fb4e78c..a5b0e23 100644
--- a/plugins/vnc/vinagre-vnc-connection.c
+++ b/plugins/vnc/vinagre-vnc-connection.c
@@ -33,6 +33,7 @@ struct _VinagreVncConnectionPrivate
gint fd;
gint depth_profile;
gboolean lossy_encoding;
+ gchar *ssh_tunnel_host;
};
enum
@@ -44,7 +45,8 @@ enum
PROP_SHARED,
PROP_FD,
PROP_DEPTH_PROFILE,
- PROP_LOSSY_ENCODING
+ PROP_LOSSY_ENCODING,
+ PROP_SSH_TUNNEL_HOST
};
#define VINAGRE_VNC_CONNECTION_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VINAGRE_TYPE_VNC_CONNECTION, VinagreVncConnectionPrivate))
@@ -62,6 +64,7 @@ vinagre_vnc_connection_init (VinagreVncConnection *conn)
conn->priv->fd = 0;
conn->priv->depth_profile = 0;
conn->priv->lossy_encoding = FALSE;
+ conn->priv->ssh_tunnel_host = NULL;
}
static void
@@ -76,6 +79,7 @@ vinagre_vnc_connection_finalize (GObject *object)
VinagreVncConnection *conn = VINAGRE_VNC_CONNECTION (object);
g_free (conn->priv->desktop_name);
+ g_free (conn->priv->ssh_tunnel_host);
G_OBJECT_CLASS (vinagre_vnc_connection_parent_class)->finalize (object);
}
@@ -119,6 +123,10 @@ vinagre_vnc_connection_set_property (GObject *object, guint prop_id, const GValu
vinagre_vnc_connection_set_lossy_encoding (conn, g_value_get_boolean (value));
break;
+ case PROP_SSH_TUNNEL_HOST:
+ vinagre_vnc_connection_set_ssh_tunnel_host (conn, g_value_get_string (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -164,6 +172,10 @@ vinagre_vnc_connection_get_property (GObject *object, guint prop_id, GValue *val
g_value_set_boolean (value, conn->priv->lossy_encoding);
break;
+ case PROP_SSH_TUNNEL_HOST:
+ g_value_set_string (value, conn->priv->ssh_tunnel_host);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -180,6 +192,9 @@ vnc_fill_writer (VinagreConnection *conn, xmlTextWriter *writer)
xmlTextWriterWriteFormatElement (writer, (const xmlChar *)"scaling", "%d", vnc_conn->priv->scaling);
xmlTextWriterWriteFormatElement (writer, (const xmlChar *)"depth_profile", "%d", vnc_conn->priv->depth_profile);
xmlTextWriterWriteFormatElement (writer, (const xmlChar *)"lossy_encoding", "%d", vnc_conn->priv->lossy_encoding);
+
+ if (vnc_conn->priv->ssh_tunnel_host && *vnc_conn->priv->ssh_tunnel_host)
+ xmlTextWriterWriteFormatElement (writer, (const xmlChar *)"ssh_tunnel_host", "%s", vnc_conn->priv->ssh_tunnel_host);
}
static void
@@ -212,6 +227,10 @@ vnc_parse_item (VinagreConnection *conn, xmlNode *root)
{
vinagre_vnc_connection_set_lossy_encoding (vnc_conn, vinagre_utils_parse_boolean ((const gchar *)s_value));
}
+ else if (!xmlStrcmp(curr->name, (const xmlChar *)"ssh_tunnel_host"))
+ {
+ vinagre_vnc_connection_set_ssh_tunnel_host (vnc_conn, (const gchar *)s_value);
+ }
xmlFree (s_value);
}
@@ -384,6 +403,18 @@ vinagre_vnc_connection_class_init (VinagreVncConnectionClass *klass)
G_PARAM_STATIC_NAME |
G_PARAM_STATIC_BLURB));
+ g_object_class_install_property (object_class,
+ PROP_SSH_TUNNEL_HOST,
+ g_param_spec_string ("ssh-tunnel-host",
+ "SSH Tunnel Host",
+ "hostname used to create the SSH tunnel",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_NICK |
+ G_PARAM_STATIC_NAME |
+ G_PARAM_STATIC_BLURB));
+
}
VinagreConnection *
@@ -508,4 +539,21 @@ vinagre_vnc_connection_get_lossy_encoding (VinagreVncConnection *conn)
return conn->priv->lossy_encoding;
}
+void
+vinagre_vnc_connection_set_ssh_tunnel_host (VinagreVncConnection *conn,
+ const gchar *host)
+{
+ g_return_if_fail (VINAGRE_IS_VNC_CONNECTION (conn));
+
+ g_free (conn->priv->ssh_tunnel_host);
+ conn->priv->ssh_tunnel_host = g_strdup (host);
+}
+const gchar *
+vinagre_vnc_connection_get_ssh_tunnel_host (VinagreVncConnection *conn)
+{
+ g_return_val_if_fail (VINAGRE_IS_VNC_CONNECTION (conn), NULL);
+
+ return conn->priv->ssh_tunnel_host;
+}
+
/* vim: set ts=8: */
diff --git a/plugins/vnc/vinagre-vnc-connection.h b/plugins/vnc/vinagre-vnc-connection.h
index 671c91b..8d456c7 100644
--- a/plugins/vnc/vinagre-vnc-connection.h
+++ b/plugins/vnc/vinagre-vnc-connection.h
@@ -83,6 +83,10 @@ gboolean vinagre_vnc_connection_get_lossy_encoding (VinagreVncConnection *co
void vinagre_vnc_connection_set_lossy_encoding (VinagreVncConnection *conn,
gboolean enable);
+const gchar* vinagre_vnc_connection_get_ssh_tunnel_host (VinagreVncConnection *conn);
+void vinagre_vnc_connection_set_ssh_tunnel_host (VinagreVncConnection *conn,
+ const gchar *host);
+
G_END_DECLS
#endif /* __VINAGRE_VNC_CONNECTION_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]