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 <io...@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
_______________________________________________
x2go-commits mailing list
x2go-commits@lists.x2go.org
https://lists.x2go.org/listinfo/x2go-commits

Reply via email to