This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository libx2goclient. from 657b2a0 src/x2goclient-network-ssh.c: fix error handling in parse_sockspec () family. new 0495829 src/x2goclient-network.c: implement destruction phase. new 52d658e src/x2goclient-network-ssh.c: implement destruction phase. new cd02b55 src/test/sshtest.c: clean up object. new 34419f5 src/x2goclient-network-ssh.c: move initialization and destruction code up. new f347bb8 src/x2goclient-network.c: move initialization/destruction functions up. new f742f66 src/x2goclient-network-ssh.c: the parent structures in the instance structure are actually instances, not classes. new db0cc9a src/x2goclient-network.c: use a slightly different notation for function pointers, no actual behavioral change. new 5cbd632 src/x2goclient-network.c: implement session-path property. new 7aa1bca src/x2goclient-network-ssh.{c,h}: implement usage of session-path property in base class. new 9b0dce2 src/test/sshtest.c: use new session-path property and provoke an error to test the functionality. new 9abcdb1 src/test/sshtest.c: more data freeing. new e1f8b53 src/x2goclient-network-ssh.c: rename err arguments to gerr. new f596c41 src/x2goclient-network.{c,h}: let connect method take a GError parameter. new d5eaf76 src/x2goclient-network-ssh.{c,h}: port connect () vfunc gerr change. new 6bb2357 src/test/sshtest.c: pass gerr parameter to connect wrapper. new 2079b54 src/x2goclient-network-ssh.{c,h}: move error helpers to header file to make it public. new b477942 src/x2goclient-network-ssh.c: register control socket path. new 5dbe21d src/x2goclient-network-ssh.{c,h}: start implementing connect () vfunc, create parent directory to control socket. The 18 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: src/test/sshtest.c | 23 +++++- src/x2goclient-network-ssh.c | 174 ++++++++++++++++++++++++++++--------------- src/x2goclient-network-ssh.h | 18 ++++- src/x2goclient-network.c | 112 ++++++++++++++++++++-------- src/x2goclient-network.h | 4 +- 5 files changed, 233 insertions(+), 98 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 52d658e93249b873f311ade2c6066d25eff1646e Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 10:57:50 2019 +0200 src/x2goclient-network-ssh.c: implement destruction phase. --- src/x2goclient-network-ssh.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 7c9939c..1d3f3dc 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -541,3 +541,11 @@ static void x2goclient_network_ssh_init (X2GoClientNetworkSSH *self) { X2GoClientNetworkSSH* x2goclient_network_ssh_new (void) { return (g_object_new (X2GOCLIENT_TYPE_NETWORK_SSH, NULL)); } + +static void x2goclient_network_ssh_dispose (GObject *object) { + (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->dispose (object); +} + +static void x2goclient_network_ssh_finalize (GObject *object) { + (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->finalize (object); +} -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 049582980e7760482aed6e33b61bd898e3abb4ed Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 10:57:17 2019 +0200 src/x2goclient-network.c: implement destruction phase. --- src/x2goclient-network.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index 2461bee..14e48b5 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -159,3 +159,21 @@ static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) { static void x2goclient_network_init (X2GoClientNetwork *self) { X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (self); } + +static void x2goclient_network_dispose (GObject *object) { + X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (X2GOCLIENT_NETWORK (object)); + + g_clear_object (&priv->socket); + g_clear_object (&priv->options); + + (G_OBJECT_CLASS (x2goclient_network_parent_class))->dispose (object); +} + +static void x2goclient_network_finalize (GObject *object) { + X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (X2GOCLIENT_NETWORK (object)); + + g_string_free (priv->socket_spec, TRUE); + priv->socket_spec = NULL; + + (G_OBJECT_CLASS (x2goclient_network_parent_class))->finalize (object); +} -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit cd02b5524e0f55337b19e79cf614547f831858ef Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 11:00:49 2019 +0200 src/test/sshtest.c: clean up object. --- src/test/sshtest.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/sshtest.c b/src/test/sshtest.c index 571c379..10173fd 100644 --- a/src/test/sshtest.c +++ b/src/test/sshtest.c @@ -68,5 +68,7 @@ int main (int argc, char **argv) { gboolean conn_ret = x2goclient_network_ssh_connect (net_ssh); g_printf ("Connection status: %s.\n", (conn_ret) ? "true" : "false"); + g_clear_object (&net_ssh); + return (ret); } -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 7aa1bcaf61900098f0e37916e6874fa35ded3fc9 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 14:15:11 2019 +0200 src/x2goclient-network-ssh.{c,h}: implement usage of session-path property in base class. --- src/x2goclient-network-ssh.c | 28 ++++++++++++++++++++++++++-- src/x2goclient-network-ssh.h | 2 +- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 756a7a3..16ae82d 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -113,8 +113,32 @@ static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass) static void x2goclient_network_ssh_init (X2GoClientNetworkSSH *self) { } -X2GoClientNetworkSSH* x2goclient_network_ssh_new (void) { - return (g_object_new (X2GOCLIENT_TYPE_NETWORK_SSH, NULL)); +X2GoClientNetworkSSH* x2goclient_network_ssh_new (const char *session_path) { + X2GoClientNetworkSSH *ret = NULL; + + GArray *prop_names = g_array_new (FALSE, TRUE, sizeof (gchar*)); + GArray *prop_values = g_array_new (FALSE, TRUE, sizeof (GValue)); + + if (session_path) { + gchar *tmp_name = "session-path"; + g_array_append_val (prop_names, tmp_name); + GValue tmp_val = G_VALUE_INIT; + g_value_init (&tmp_val, G_TYPE_STRING); + g_value_set_string (&tmp_val, session_path); + g_array_append_val (prop_values, tmp_val); + } + + ret = (X2GoClientNetworkSSH*)(g_object_new_with_properties (X2GOCLIENT_TYPE_NETWORK_SSH, + prop_names->len, + (const gchar **)(prop_names->data), + (const GValue*)(prop_values->data))); + + g_array_free (prop_names, TRUE); + prop_names = NULL; + g_array_free (prop_values, TRUE); + prop_values = NULL; + + return (ret); } static void x2goclient_network_ssh_dispose (GObject *object) { diff --git a/src/x2goclient-network-ssh.h b/src/x2goclient-network-ssh.h index fee6793..05be387 100644 --- a/src/x2goclient-network-ssh.h +++ b/src/x2goclient-network-ssh.h @@ -39,7 +39,7 @@ X2GoClientNetworkOptionsSSH* x2goclient_network_options_ssh_new (void); #define X2GOCLIENT_TYPE_NETWORK_SSH (x2goclient_network_ssh_get_type ()) G_DECLARE_FINAL_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT, NETWORK_SSH, X2GoClientNetwork) -X2GoClientNetworkSSH* x2goclient_network_ssh_new (void); +X2GoClientNetworkSSH* x2goclient_network_ssh_new (const gchar *session_path); gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 5cbd63232a34388dd22fb66072d0cda2aba3cb8d Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 14:13:13 2019 +0200 src/x2goclient-network.c: implement session-path property. --- src/x2goclient-network.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index 6278f55..7532b76 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -53,6 +53,7 @@ typedef struct X2GoClientNetworkPrivate_ { GString *socket_spec; GSocketAddress *socket; X2GoClientNetworkOptions *options; + gchar *session_path; /* Will eventually be replaced with a session object, probably. */ } X2GoClientNetworkPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (X2GoClientNetwork, x2goclient_network, G_TYPE_OBJECT); @@ -69,6 +70,7 @@ enum { X2GO_NET_PROP_SOCKET_SPEC = 1, X2GO_NET_PROP_SOCKET, X2GO_NET_PROP_OPTIONS, + X2GO_NET_PROP_SESSION_PATH, X2GO_NET_N_PROPERTIES }; @@ -103,6 +105,17 @@ static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) { X2GOCLIENT_TYPE_NETWORK_OPTIONS, G_PARAM_READWRITE); + GString *default_session_path = g_string_new (g_get_home_dir ()); + g_string_append (default_session_path, "/.libx2goclient/"); + net_obj_properties[X2GO_NET_PROP_SESSION_PATH] = g_param_spec_string ("session-path", _("Base path to session data"), + _("The file system path that will be used as the " + "session data base path. SSH-related files will " + "land there."), + default_session_path->str, + G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE); + g_string_free (default_session_path, TRUE); + default_session_path = NULL; + g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties); } @@ -124,6 +137,8 @@ static void x2goclient_network_finalize (GObject *object) { g_string_free (priv->socket_spec, TRUE); priv->socket_spec = NULL; + g_free (priv->session_path); + priv->session_path = NULL; (G_OBJECT_CLASS (x2goclient_network_parent_class))->finalize (object); } @@ -158,6 +173,11 @@ static void x2goclient_network_set_property (GObject *object, guint prop_id, con priv->socket_spec = g_value_dup_boxed (value); priv->socket = x2goclient_network_parse_sockspec (self, priv->socket_spec); break; + case (X2GO_NET_PROP_SESSION_PATH): + g_free (priv->session_path); + priv->session_path = NULL; + priv->session_path = g_value_dup_string (value); + break; case (X2GO_NET_PROP_OPTIONS): g_clear_object (&(priv->options)); priv->options = g_value_dup_object (value); @@ -179,6 +199,9 @@ static void x2goclient_network_get_property (GObject *object, guint prop_id, GVa case (X2GO_NET_PROP_OPTIONS): g_value_set_object (value, priv->options); break; + case (X2GO_NET_PROP_SESSION_PATH): + g_value_set_string (value, priv->session_path); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, param_spec); break; -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit f742f66ca07bda999843aff041109b939274b027 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 11:58:47 2019 +0200 src/x2goclient-network-ssh.c: the parent structures in the instance structure are actually instances, not classes. --- src/x2goclient-network-ssh.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 9c255fb..756a7a3 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -61,7 +61,7 @@ enum { struct _X2GoClientNetworkOptionsSSH { - X2GoClientNetworkOptions parent_class; + X2GoClientNetworkOptions parent_instance; /* * Eventually, this class should encapsulate/handle every ssh_config option, @@ -92,7 +92,7 @@ typedef struct sockaddr_ho { struct _X2GoClientNetworkSSH { - X2GoClientNetwork parent_class; + X2GoClientNetwork parent_instance; }; G_DEFINE_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT_TYPE_NETWORK); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 34419f5534a47427608c1a091f957e0f71de1aff Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 11:43:18 2019 +0200 src/x2goclient-network-ssh.c: move initialization and destruction code up. --- src/x2goclient-network-ssh.c | 52 ++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 1d3f3dc..9c255fb 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -97,6 +97,35 @@ struct _X2GoClientNetworkSSH { G_DEFINE_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT_TYPE_NETWORK); + +static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork *parent, const GString *sockspec); +static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent); + + +static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass) { + X2GoClientNetworkClass *parent_class = X2GOCLIENT_NETWORK_CLASS (klass); + + parent_class->connect = &x2goclient_network_ssh_parent_connect; + + parent_class->parse_sockspec = &x2goclient_network_ssh_parse_sockspec; +} + +static void x2goclient_network_ssh_init (X2GoClientNetworkSSH *self) { +} + +X2GoClientNetworkSSH* x2goclient_network_ssh_new (void) { + return (g_object_new (X2GOCLIENT_TYPE_NETWORK_SSH, NULL)); +} + +static void x2goclient_network_ssh_dispose (GObject *object) { + (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->dispose (object); +} + +static void x2goclient_network_ssh_finalize (GObject *object) { + (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->finalize (object); +} + + static GSocketAddress* x2goclient_network_ssh_parse_sockspec_unix_socket (const GString *sockspec) { GSocketAddress *ret = NULL; @@ -526,26 +555,3 @@ static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent return (ret); } - -static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass) { - X2GoClientNetworkClass *parent_class = X2GOCLIENT_NETWORK_CLASS (klass); - - parent_class->connect = &x2goclient_network_ssh_parent_connect; - - parent_class->parse_sockspec = &x2goclient_network_ssh_parse_sockspec; -} - -static void x2goclient_network_ssh_init (X2GoClientNetworkSSH *self) { -} - -X2GoClientNetworkSSH* x2goclient_network_ssh_new (void) { - return (g_object_new (X2GOCLIENT_TYPE_NETWORK_SSH, NULL)); -} - -static void x2goclient_network_ssh_dispose (GObject *object) { - (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->dispose (object); -} - -static void x2goclient_network_ssh_finalize (GObject *object) { - (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->finalize (object); -} -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit db0cc9a7d25d4d3fabfa02336e262a84bbc059a2 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 12:02:20 2019 +0200 src/x2goclient-network.c: use a slightly different notation for function pointers, no actual behavioral change. --- src/x2goclient-network.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index 2506365..6278f55 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -83,8 +83,8 @@ static GSocketAddress* x2goclient_network_parse_sockspec (X2GoClientNetwork *sel static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - object_class->set_property = x2goclient_network_set_property; - object_class->get_property = x2goclient_network_get_property; + object_class->set_property = &x2goclient_network_set_property; + object_class->get_property = &x2goclient_network_get_property; net_obj_properties[X2GO_NET_PROP_SOCKET_SPEC] = g_param_spec_boxed ("socket-spec", _("Low-level socket string specification"), _("String specification for the low-level socket network " -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit f347bb824c00c44f68ab99344869e21cd63c8012 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 11:52:11 2019 +0200 src/x2goclient-network.c: move initialization/destruction functions up. --- src/x2goclient-network.c | 103 +++++++++++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 48 deletions(-) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index 14e48b5..2506365 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -74,6 +74,61 @@ enum { static GParamSpec *net_obj_properties[X2GO_NET_N_PROPERTIES] = { NULL, }; + +static void x2goclient_network_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *param_spec); +static void x2goclient_network_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *param_spec); +static GSocketAddress* x2goclient_network_parse_sockspec (X2GoClientNetwork *self, const GString *sockspec); + + +static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->set_property = x2goclient_network_set_property; + object_class->get_property = x2goclient_network_get_property; + + net_obj_properties[X2GO_NET_PROP_SOCKET_SPEC] = g_param_spec_boxed ("socket-spec", _("Low-level socket string specification"), + _("String specification for the low-level socket network " + "connection. Updates the \"socket\" property."), + G_TYPE_GSTRING, + G_PARAM_WRITABLE); + + net_obj_properties[X2GO_NET_PROP_SOCKET] = g_param_spec_object ("socket", _("Low-level socket"), + _("Low-level socket for the network connection, the local " + "part will be used for local binding if specified."), + G_TYPE_SOCKET_ADDRESS, + G_PARAM_READABLE); + + net_obj_properties[X2GO_NET_PROP_OPTIONS] = g_param_spec_object ("options", _("Socket options"), + _("Specific socket options."), + X2GOCLIENT_TYPE_NETWORK_OPTIONS, + G_PARAM_READWRITE); + + g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties); +} + +static void x2goclient_network_init (X2GoClientNetwork *self) { + X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (self); +} + +static void x2goclient_network_dispose (GObject *object) { + X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (X2GOCLIENT_NETWORK (object)); + + g_clear_object (&priv->socket); + g_clear_object (&priv->options); + + (G_OBJECT_CLASS (x2goclient_network_parent_class))->dispose (object); +} + +static void x2goclient_network_finalize (GObject *object) { + X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (X2GOCLIENT_NETWORK (object)); + + g_string_free (priv->socket_spec, TRUE); + priv->socket_spec = NULL; + + (G_OBJECT_CLASS (x2goclient_network_parent_class))->finalize (object); +} + + static GSocketAddress* x2goclient_network_parse_sockspec (X2GoClientNetwork *self, const GString *sockspec) { X2GoClientNetworkClass *class = X2GOCLIENT_NETWORK_GET_CLASS (self); @@ -129,51 +184,3 @@ static void x2goclient_network_get_property (GObject *object, guint prop_id, GVa break; } } - -static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->set_property = x2goclient_network_set_property; - object_class->get_property = x2goclient_network_get_property; - - net_obj_properties[X2GO_NET_PROP_SOCKET_SPEC] = g_param_spec_boxed ("socket-spec", _("Low-level socket string specification"), - _("String specification for the low-level socket network " - "connection. Updates the \"socket\" property."), - G_TYPE_GSTRING, - G_PARAM_WRITABLE); - - net_obj_properties[X2GO_NET_PROP_SOCKET] = g_param_spec_object ("socket", _("Low-level socket"), - _("Low-level socket for the network connection, the local " - "part will be used for local binding if specified."), - G_TYPE_SOCKET_ADDRESS, - G_PARAM_READABLE); - - net_obj_properties[X2GO_NET_PROP_OPTIONS] = g_param_spec_object ("options", _("Socket options"), - _("Specific socket options."), - X2GOCLIENT_TYPE_NETWORK_OPTIONS, - G_PARAM_READWRITE); - - g_object_class_install_properties (object_class, X2GO_NET_N_PROPERTIES, net_obj_properties); -} - -static void x2goclient_network_init (X2GoClientNetwork *self) { - X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (self); -} - -static void x2goclient_network_dispose (GObject *object) { - X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (X2GOCLIENT_NETWORK (object)); - - g_clear_object (&priv->socket); - g_clear_object (&priv->options); - - (G_OBJECT_CLASS (x2goclient_network_parent_class))->dispose (object); -} - -static void x2goclient_network_finalize (GObject *object) { - X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (X2GOCLIENT_NETWORK (object)); - - g_string_free (priv->socket_spec, TRUE); - priv->socket_spec = NULL; - - (G_OBJECT_CLASS (x2goclient_network_parent_class))->finalize (object); -} -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 9b0dce27b9b945b37888de58dd9fc2949a2eedc0 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 14:16:04 2019 +0200 src/test/sshtest.c: use new session-path property and provoke an error to test the functionality. --- src/test/sshtest.c | 15 ++++++++++++++- src/x2goclient-network-ssh.c | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/test/sshtest.c b/src/test/sshtest.c index 10173fd..41297a4 100644 --- a/src/test/sshtest.c +++ b/src/test/sshtest.c @@ -58,12 +58,25 @@ int main (int argc, char **argv) { ssh_uri = g_string_new (argv[1]); } - X2GoClientNetworkSSH *net_ssh = x2goclient_network_ssh_new (); + X2GoClientNetworkSSH *net_ssh = x2goclient_network_ssh_new (NULL); + gchar *session_path = NULL; + g_object_get (G_OBJECT (net_ssh), "session-path", &session_path, NULL); + g_printf ("session-path: %s\n", session_path); g_object_set (G_OBJECT (net_ssh), "socket-spec", ssh_uri, NULL); GSocketAddress *sock_addr = NULL; g_object_get (G_OBJECT (net_ssh), "socket", &sock_addr, NULL); g_printf ("sock_addr: %p\n", sock_addr); + /* + * Provoke error. + * + * This should not work/change the initial state. + */ + g_object_set (G_OBJECT (net_ssh), "session-path", "/i/don't/exist", NULL); + session_path = NULL; + g_object_get (G_OBJECT (net_ssh), "session-path", &session_path, NULL); + g_printf ("new session-path: %s\n", session_path); + g_printf ("Trying to connect...\n"); gboolean conn_ret = x2goclient_network_ssh_connect (net_ssh); g_printf ("Connection status: %s.\n", (conn_ret) ? "true" : "false"); diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 16ae82d..4090bb7 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -130,7 +130,7 @@ X2GoClientNetworkSSH* x2goclient_network_ssh_new (const char *session_path) { ret = (X2GoClientNetworkSSH*)(g_object_new_with_properties (X2GOCLIENT_TYPE_NETWORK_SSH, prop_names->len, - (const gchar **)(prop_names->data), + (const gchar**)(prop_names->data), (const GValue*)(prop_values->data))); g_array_free (prop_names, TRUE); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 6bb23578ad7123e28d895cf703a9ed25ac07ea26 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:13:17 2019 +0200 src/test/sshtest.c: pass gerr parameter to connect wrapper. --- src/test/sshtest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/sshtest.c b/src/test/sshtest.c index 723292b..1c9e6dd 100644 --- a/src/test/sshtest.c +++ b/src/test/sshtest.c @@ -82,7 +82,7 @@ int main (int argc, char **argv) { session_path = NULL; g_printf ("Trying to connect...\n"); - gboolean conn_ret = x2goclient_network_ssh_connect (net_ssh); + gboolean conn_ret = x2goclient_network_ssh_connect (net_ssh, NULL); g_printf ("Connection status: %s.\n", (conn_ret) ? "true" : "false"); g_clear_object (&net_ssh); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit e1f8b53cf2d7e554baa0d25e1266a944eb95c581 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:10:47 2019 +0200 src/x2goclient-network-ssh.c: rename err arguments to gerr. --- src/x2goclient-network-ssh.c | 54 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 4090bb7..8353ccb 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -193,10 +193,10 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_unix_socket (const return (ret); } -static guint16 x2goclient_network_ssh_parse_sockspec_port (const GString *portspec, GError **err) { +static guint16 x2goclient_network_ssh_parse_sockspec_port (const GString *portspec, GError **gerr) { guint16 ret = 0; - g_return_val_if_fail (err == NULL || *err == NULL, ret); + g_return_val_if_fail (gerr == NULL || *gerr == NULL, ret); if (':' == portspec->str[0]) { /* @@ -223,7 +223,7 @@ static guint16 x2goclient_network_ssh_parse_sockspec_port (const GString *portsp } if (err_msg) { - g_set_error_literal (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_PORT_CONV, err_msg); + g_set_error_literal (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_PORT_CONV, err_msg); err_msg = NULL; } } @@ -247,10 +247,10 @@ static GString* x2goclient_network_ssh_sanitize_sockspec (const GString *sockspe return (ret); } -static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *sockspec, const gboolean want_v6, GError **err) { +static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString *sockspec, const gboolean want_v6, GError **gerr) { GSocketAddress *ret = NULL; - g_return_val_if_fail (err == NULL || *err == NULL, ret); + g_return_val_if_fail (gerr == NULL || *gerr == NULL, ret); /* We're free to sanitize the string now. */ GString *work_sockspec = x2goclient_network_ssh_sanitize_sockspec (sockspec); @@ -294,7 +294,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString * address = g_string_new_len (tmp_start, tmp_end - tmp_start); } else { - g_set_error_literal (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, "Found starting bracket, but no matching ending bracket."); + g_set_error_literal (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, "Found starting bracket, but no matching ending bracket."); int_err = TRUE; } } @@ -386,11 +386,11 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString * if (tmp_err) { if (want_v6) { - g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, "Unable to parse IPv6 address: %s", tmp_err->message); + g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, "Unable to parse IPv6 address: %s", tmp_err->message); int_err = TRUE; } else { - g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV4_CONV, "Unable to parse IPv4 address: %s", tmp_err->message); + g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_IPV4_CONV, "Unable to parse IPv4 address: %s", tmp_err->message); int_err = TRUE; } g_clear_error (&tmp_err); @@ -416,10 +416,10 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_ip (const GString * return (ret); } -static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GString *sockspec, GError **err) { +static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GString *sockspec, GError **gerr) { GSocketAddress *ret = NULL; - g_return_val_if_fail (err == NULL || *err == NULL, ret); + g_return_val_if_fail (gerr == NULL || *gerr == NULL, ret); /* We're free to sanitize the string now. */ GString *work_sockspec = x2goclient_network_ssh_sanitize_sockspec (sockspec); @@ -453,7 +453,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin */ const gsize max_len = (sizeof (((struct sockaddr_ho*)(NULL))->sho_addr) - 1); if (max_len < address->len) { - g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, "Unable to parse FQDN or alias pseudo-address: name too long, expected at most %" G_GSIZE_FORMAT " bytes, got %" G_GSIZE_FORMAT " bytes.", max_len, address->len); + g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, "Unable to parse FQDN or alias pseudo-address: name too long, expected at most %" G_GSIZE_FORMAT " bytes, got %" G_GSIZE_FORMAT " bytes.", max_len, address->len); int_err = TRUE; } @@ -471,7 +471,7 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec_alias (const GStrin portspec = NULL; if (tmp_err) { - g_set_error (err, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, "Unable to parse FQDN or alias pseudo-address: %s", tmp_err->message); + g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, "Unable to parse FQDN or alias pseudo-address: %s", tmp_err->message); g_clear_error (&tmp_err); int_err = TRUE; } @@ -509,15 +509,15 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork g_log (NULL, G_LOG_LEVEL_INFO, "Failed to parse socket specification as UNIX socket.\n" "Continuing with IPv6 parsing."); - GError *tmp_err = NULL; - ret = x2goclient_network_ssh_parse_sockspec_ip (sockspec, TRUE, &tmp_err); + GError *tmp_gerr = NULL; + ret = x2goclient_network_ssh_parse_sockspec_ip (sockspec, TRUE, &tmp_gerr); - if (tmp_err) { + if (tmp_gerr) { g_assert (!ret); - g_log (NULL, G_LOG_LEVEL_WARNING, "Socket specification looked like an IPv6 socket, but parsing as such failed: %s", tmp_err->message); + g_log (NULL, G_LOG_LEVEL_WARNING, "Socket specification looked like an IPv6 socket, but parsing as such failed: %s", tmp_gerr->message); - g_clear_error (&tmp_err); + g_clear_error (&tmp_gerr); } } @@ -525,15 +525,15 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork g_log (NULL, G_LOG_LEVEL_INFO, "Failed to parse socket specification as IPv6 socket.\n" "Continuing with IPv4 parsing."); - GError *tmp_err = NULL; - ret = x2goclient_network_ssh_parse_sockspec_ip (sockspec, FALSE, &tmp_err); + GError *tmp_gerr = NULL; + ret = x2goclient_network_ssh_parse_sockspec_ip (sockspec, FALSE, &tmp_gerr); - if (tmp_err) { + if (tmp_gerr) { g_assert (!ret); - g_log (NULL, G_LOG_LEVEL_WARNING, "Socket specification looked like an IPv4 socket, but parsing as such failed: %s", tmp_err->message); + g_log (NULL, G_LOG_LEVEL_WARNING, "Socket specification looked like an IPv4 socket, but parsing as such failed: %s", tmp_gerr->message); - g_clear_error (&tmp_err); + g_clear_error (&tmp_gerr); } } @@ -541,15 +541,15 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork g_log (NULL, G_LOG_LEVEL_INFO, "Failed to parse socket specification as IPv4 socket.\n" "Continuing with FQDN/alias parsing."); - GError *tmp_err = NULL; - ret = x2goclient_network_ssh_parse_sockspec_alias (sockspec, &tmp_err); + GError *tmp_gerr = NULL; + ret = x2goclient_network_ssh_parse_sockspec_alias (sockspec, &tmp_gerr); - if (tmp_err) { + if (tmp_gerr) { g_assert (!ret); - g_log (NULL, G_LOG_LEVEL_WARNING, "Socket specification looked like a FQDN or alias socket, but parsing as such failed: %s", tmp_err->message); + g_log (NULL, G_LOG_LEVEL_WARNING, "Socket specification looked like a FQDN or alias socket, but parsing as such failed: %s", tmp_gerr->message); - g_clear_error (&tmp_err); + g_clear_error (&tmp_gerr); } } } -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit d5eaf76c6f0bdf7a75ff62e60382ae87d42fa943 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:11:25 2019 +0200 src/x2goclient-network-ssh.{c,h}: port connect () vfunc gerr change. --- src/x2goclient-network-ssh.c | 8 ++++---- src/x2goclient-network-ssh.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 8353ccb..edf50ba 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -99,7 +99,7 @@ G_DEFINE_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT_TYPE_NET static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork *parent, const GString *sockspec); -static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent); +static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent, GError **gerr); static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass) { @@ -557,19 +557,19 @@ static GSocketAddress* x2goclient_network_ssh_parse_sockspec (X2GoClientNetwork return ret; } -gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self) { +gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self, GError **gerr) { gboolean ret = FALSE; g_return_val_if_fail (X2GOCLIENT_IS_NETWORK_SSH (self), ret); X2GoClientNetwork *parent = X2GOCLIENT_NETWORK (self); X2GoClientNetworkClass *parent_class = X2GOCLIENT_NETWORK_GET_CLASS (parent); - ret = parent_class->connect (parent); + ret = parent_class->connect (parent, gerr); return (ret); } -static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent) { +static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent, GError **gerr) { gboolean ret = FALSE; g_return_val_if_fail (X2GOCLIENT_IS_NETWORK_SSH (parent), ret); diff --git a/src/x2goclient-network-ssh.h b/src/x2goclient-network-ssh.h index 05be387..343238f 100644 --- a/src/x2goclient-network-ssh.h +++ b/src/x2goclient-network-ssh.h @@ -41,7 +41,7 @@ G_DECLARE_FINAL_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT, X2GoClientNetworkSSH* x2goclient_network_ssh_new (const gchar *session_path); -gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self); +gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self, GError **gerr); G_END_DECLS -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit b4779420f10e78300f6115cbbd7c163bdca1ebea Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:42:00 2019 +0200 src/x2goclient-network-ssh.c: register control socket path. --- src/x2goclient-network-ssh.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index ca9a673..29d1984 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -80,6 +80,8 @@ typedef struct sockaddr_ho { struct _X2GoClientNetworkSSH { X2GoClientNetwork parent_instance; + + char *control_path; }; G_DEFINE_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT_TYPE_NETWORK); @@ -98,6 +100,7 @@ static void x2goclient_network_ssh_class_init (X2GoClientNetworkSSHClass *klass) } static void x2goclient_network_ssh_init (X2GoClientNetworkSSH *self) { + self->control_path = NULL; } X2GoClientNetworkSSH* x2goclient_network_ssh_new (const char *session_path) { @@ -133,6 +136,11 @@ static void x2goclient_network_ssh_dispose (GObject *object) { } static void x2goclient_network_ssh_finalize (GObject *object) { + X2GoClientNetworkSSH *self = X2GOCLIENT_NETWORK_SSH (object); + + g_free (self->control_path); + self->control_path = NULL; + (G_OBJECT_CLASS (x2goclient_network_ssh_parent_class))->finalize (object); } -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 2079b54ba212842db2c94bd1c1a0fb9e77508d33 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:38:04 2019 +0200 src/x2goclient-network-ssh.{c,h}: move error helpers to header file to make it public. --- src/x2goclient-network-ssh.c | 13 ------------- src/x2goclient-network-ssh.h | 13 +++++++++++++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index edf50ba..ca9a673 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -47,19 +47,6 @@ #include "x2goclient-network-ssh.h" -/* - * Error handling helpers. - */ -#define X2GOCLIENT_NETWORK_SSH_ERROR g_quark_from_static_string ("x2goclient-network-ssh") - -enum { - X2GOCLIENT_NETWORK_SSH_ERROR_PORT_CONV = 0, - X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, - X2GOCLIENT_NETWORK_SSH_ERROR_IPV4_CONV, - X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV -}; - - struct _X2GoClientNetworkOptionsSSH { X2GoClientNetworkOptions parent_instance; diff --git a/src/x2goclient-network-ssh.h b/src/x2goclient-network-ssh.h index 343238f..3eea2a4 100644 --- a/src/x2goclient-network-ssh.h +++ b/src/x2goclient-network-ssh.h @@ -41,6 +41,19 @@ G_DECLARE_FINAL_TYPE (X2GoClientNetworkSSH, x2goclient_network_ssh, X2GOCLIENT, X2GoClientNetworkSSH* x2goclient_network_ssh_new (const gchar *session_path); +/* + * Error handling helpers. + */ +#define X2GOCLIENT_NETWORK_SSH_ERROR g_quark_from_static_string ("x2goclient-network-ssh") + +enum { + X2GOCLIENT_NETWORK_SSH_ERROR_PORT_CONV = 0, + X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, + X2GOCLIENT_NETWORK_SSH_ERROR_IPV4_CONV, + X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV +}; + + gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self, GError **gerr); G_END_DECLS -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit f596c41e3e515b26d8f606d5bd40b5afc584b3ff Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:09:37 2019 +0200 src/x2goclient-network.{c,h}: let connect method take a GError parameter. --- src/x2goclient-network.c | 4 ++-- src/x2goclient-network.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index 7532b76..c97e3b4 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -153,13 +153,13 @@ static GSocketAddress* x2goclient_network_parse_sockspec (X2GoClientNetwork *sel return (class->parse_sockspec (self, sockspec)); } -gboolean x2goclient_network_connect (X2GoClientNetwork *self) { +gboolean x2goclient_network_connect (X2GoClientNetwork *self, GError **gerr) { X2GoClientNetworkClass *class = X2GOCLIENT_NETWORK_GET_CLASS (self); g_return_val_if_fail (X2GOCLIENT_IS_NETWORK (self), FALSE); g_return_val_if_fail (class->connect, FALSE); - return (class->connect (self)); + return (class->connect (self, gerr)); } static void x2goclient_network_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *param_spec) { diff --git a/src/x2goclient-network.h b/src/x2goclient-network.h index 9553fc4..9f2c0be 100644 --- a/src/x2goclient-network.h +++ b/src/x2goclient-network.h @@ -55,7 +55,7 @@ G_DECLARE_DERIVABLE_TYPE (X2GoClientNetwork, x2goclient_network, X2GOCLIENT, NET struct _X2GoClientNetworkClass { GObjectClass parent_class; - gboolean (*connect) (X2GoClientNetwork *self); + gboolean (*connect) (X2GoClientNetwork *self, GError **gerr); /*< private >*/ GSocketAddress* (*parse_sockspec) (X2GoClientNetwork *self, const GString *sockspec); @@ -64,7 +64,7 @@ struct _X2GoClientNetworkClass { gpointer padding[50]; }; -gboolean x2goclient_network_connect (X2GoClientNetwork *self); +gboolean x2goclient_network_connect (X2GoClientNetwork *self, GError **gerr); G_END_DECLS -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 5dbe21d4aaf37686fd6596dda9c8e8d86e5cfdae Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:42:51 2019 +0200 src/x2goclient-network-ssh.{c,h}: start implementing connect () vfunc, create parent directory to control socket. --- src/x2goclient-network-ssh.c | 23 ++++++++++++++++++++++- src/x2goclient-network-ssh.h | 3 ++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c index 29d1984..b39357a 100644 --- a/src/x2goclient-network-ssh.c +++ b/src/x2goclient-network-ssh.c @@ -565,12 +565,33 @@ gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH *self, GError **ge } static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent, GError **gerr) { - gboolean ret = FALSE; + gboolean ret = TRUE; g_return_val_if_fail (X2GOCLIENT_IS_NETWORK_SSH (parent), ret); X2GoClientNetworkSSH *self = X2GOCLIENT_NETWORK_SSH (parent); /* Actual implementation here. */ + /* "Calculate" socket path. */ + gchar *session_path = NULL; + g_object_get (G_OBJECT (self), "session-path", &session_path, NULL); + g_assert (session_path); + + GString *tmp_string = g_string_new (session_path); + g_string_append (tmp_string, "/ssh/control"); + self->control_path = g_string_free (tmp_string, FALSE); + + gchar *dirname = g_path_get_dirname (self->control_path); + errno = 0; + if (0 != g_mkdir_with_parents (dirname, 0700)) { + int saved_errno = errno; + g_set_error (gerr, X2GOCLIENT_NETWORK_SSH_ERROR, X2GOCLIENT_NETWORK_SSH_ERROR_CONNECT_DIR_CREATE, "Failed to create parent directory: %s", g_strerror (saved_errno)); + ret = FALSE; + } + + if (ret) { + ret = FALSE; + } + return (ret); } diff --git a/src/x2goclient-network-ssh.h b/src/x2goclient-network-ssh.h index 3eea2a4..6c88c0e 100644 --- a/src/x2goclient-network-ssh.h +++ b/src/x2goclient-network-ssh.h @@ -50,7 +50,8 @@ enum { X2GOCLIENT_NETWORK_SSH_ERROR_PORT_CONV = 0, X2GOCLIENT_NETWORK_SSH_ERROR_IPV6_CONV, X2GOCLIENT_NETWORK_SSH_ERROR_IPV4_CONV, - X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV + X2GOCLIENT_NETWORK_SSH_ERROR_ALIAS_CONV, + X2GOCLIENT_NETWORK_SSH_ERROR_CONNECT_DIR_CREATE }; -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 9abcdb1757caea6956a843e33da2c5acb560f4a7 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Aug 19 15:08:54 2019 +0200 src/test/sshtest.c: more data freeing. --- src/test/sshtest.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/sshtest.c b/src/test/sshtest.c index 41297a4..723292b 100644 --- a/src/test/sshtest.c +++ b/src/test/sshtest.c @@ -62,10 +62,13 @@ int main (int argc, char **argv) { gchar *session_path = NULL; g_object_get (G_OBJECT (net_ssh), "session-path", &session_path, NULL); g_printf ("session-path: %s\n", session_path); + g_free (session_path); + session_path = NULL; g_object_set (G_OBJECT (net_ssh), "socket-spec", ssh_uri, NULL); GSocketAddress *sock_addr = NULL; g_object_get (G_OBJECT (net_ssh), "socket", &sock_addr, NULL); g_printf ("sock_addr: %p\n", sock_addr); + g_clear_object (&sock_addr); /* * Provoke error. @@ -73,9 +76,10 @@ int main (int argc, char **argv) { * This should not work/change the initial state. */ g_object_set (G_OBJECT (net_ssh), "session-path", "/i/don't/exist", NULL); - session_path = NULL; g_object_get (G_OBJECT (net_ssh), "session-path", &session_path, NULL); g_printf ("new session-path: %s\n", session_path); + g_free (session_path); + session_path = NULL; g_printf ("Trying to connect...\n"); gboolean conn_ret = x2goclient_network_ssh_connect (net_ssh); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git