[X2Go-Commits] [libx2goclient] 07/09: src/x2goclient-network-ssh.c: add openssh-version property to X2GoClientNetworkSSH.
git-admin at x2go.org
git-admin at x2go.org
Wed May 13 16:41:35 CEST 2020
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository libx2goclient.
commit da42a78369a92db90f7652219545bf777507d721
Author: Mihai Moldovan <ionic at ionic.de>
Date: Wed May 13 15:48:28 2020 +0200
src/x2goclient-network-ssh.c: add openssh-version property to X2GoClientNetworkSSH.
Skeleton only so far, fetching the actual version has to be done in
other places.
Reason follows.
---
src/x2goclient-network-ssh.c | 61 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c
index 0f72712..9fc110a 100644
--- a/src/x2goclient-network-ssh.c
+++ b/src/x2goclient-network-ssh.c
@@ -46,6 +46,7 @@
#include "x2goclient.h"
#include "x2goclient-network-ssh.h"
#include "x2goclient-utils.h"
+#include "x2goclient-openssh-version.h"
struct _X2GoClientNetworkOptionsSSH {
@@ -90,6 +91,9 @@ typedef struct sockaddr_ho_ {
struct _X2GoClientNetworkSSH {
X2GoClientNetwork parent_instance;
+ /* Properties. */
+ X2GoClientOpenSSHVersion *openssh_version;
+
char *control_path;
GSubprocess *master_conn;
};
@@ -97,8 +101,19 @@ struct _X2GoClientNetworkSSH {
G_DEFINE_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT_TYPE_NETWORK);
+/* See src/x2goclient-network.c regarding abbreviations. */
+enum {
+ X2GO_NET_SSH_PROP_OPENSSH_VERSION = 1,
+ X2GO_NET_SSH_N_PROPERTIES
+};
+
+static GParamSpec *net_ssh_obj_properties[X2GO_NET_SSH_N_PROPERTIES] = { NULL, };
+
+
static void x2goclient_network_ssh_dispose (GObject *object);
static void x2goclient_network_ssh_finalize (GObject *object);
+static void x2goclient_network_ssh_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *param_spec);
+static void x2goclient_network_ssh_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *param_spec);
static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork *parent, const GString *sockspec);
static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent, GError **gerr);
static gboolean x2goclient_network_ssh_kill_subprocesses (X2GoClientNetworkSSH *self);
@@ -110,6 +125,17 @@ static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass)
object_class->dispose = &x2goclient_network_ssh_dispose;
object_class->dispose = &x2goclient_network_ssh_finalize;
+ object_class->set_property = &x2goclient_network_ssh_set_property;
+ object_class->get_property = &x2goclient_network_ssh_get_property;
+
+ net_ssh_obj_properties[X2GO_NET_SSH_PROP_OPENSSH_VERSION] = g_param_spec_boxed ("openssh-version", _("Parsed OpenSSH version number"),
+ _("The OpenSSH client version number, parsed in a custom "
+ "structure."),
+ X2GOCLIENT_TYPE_OPENSSH_VERSION,
+ G_PARAM_WRITABLE);
+
+ g_object_class_install_properties (object_class, X2GO_NET_SSH_N_PROPERTIES, net_ssh_obj_properties);
+
X2GoClientNetworkClass *parent_class = X2GOCLIENT_NETWORK_CLASS (klass);
parent_class->connect = &x2goclient_network_ssh_parent_connect;
@@ -117,6 +143,9 @@ static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass)
}
static void x2goclient_network_ssh_init (X2GoClientNetworkSSH *self) {
+ /* Properties. */
+ self->openssh_version = NULL;
+
self->control_path = NULL;
self->master_conn = NULL;
}
@@ -156,6 +185,11 @@ static void x2goclient_network_ssh_dispose (GObject *object) {
static void x2goclient_network_ssh_finalize (GObject *object) {
X2GoClientNetworkSSH *self = X2GOCLIENT_NETWORK_SSH (object);
+ /* Properties. */
+ x2goclient_openssh_version_free (self->openssh_version);
+ self->openssh_version = NULL;
+
+
g_free (self->control_path);
self->control_path = NULL;
@@ -167,6 +201,33 @@ static void x2goclient_network_ssh_finalize (GObject *object) {
}
+static void x2goclient_network_ssh_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *param_spec) {
+ X2GoClientNetworkSSH *self = X2GOCLIENT_NETWORK_SSH (object);
+
+ switch (prop_id) {
+ case (X2GO_NET_SSH_PROP_OPENSSH_VERSION):
+ x2goclient_openssh_version_free (self->openssh_version);
+ self->openssh_version = g_value_dup_boxed (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec);
+ break;
+ }
+}
+
+static void x2goclient_network_ssh_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *param_spec) {
+ X2GoClientNetworkSSH *self = X2GOCLIENT_NETWORK_SSH (object);
+
+ switch (prop_id) {
+ case (X2GO_NET_SSH_PROP_OPENSSH_VERSION):
+ g_value_set_object (value, self->openssh_version);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec);
+ break;
+ }
+}
+
static GSocketAddress* x2goclient_network_ssh_parse_sockspec_unix_socket (const GString *sockspec) {
GSocketAddress *ret = NULL;
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
More information about the x2go-commits
mailing list