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