[X2Go-Commits] [libx2goclient] 27/44: src/x2goclient-network-ssh.c: use connect-function property to fetch parent connect function.

git-admin at x2go.org git-admin at x2go.org
Fri Sep 18 01:55:39 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 c8853faa12e582e0584eed330d2054993bc4e972
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Wed Aug 5 15:37:03 2020 +0200

    src/x2goclient-network-ssh.c: use connect-function property to fetch parent connect function.
    
    This includes a rather odd typedef for the parent connect function
    (proto)type, which is explained in a comment.
---
 src/x2goclient-network-ssh.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c
index af5682e..56e1cd3 100644
--- a/src/x2goclient-network-ssh.c
+++ b/src/x2goclient-network-ssh.c
@@ -63,6 +63,17 @@ struct _X2GoClientNetworkOptionsSSH {
 
 G_DEFINE_TYPE (X2GoClientNetworkOptionsSSH, x2goclient_network_options_ssh, X2GOCLIENT_TYPE_NETWORK_OPTIONS);
 
+
+/*
+ * This is a bit unsafe and odd, but we need a function pointer (proto)type
+ * for later use.
+ *
+ * It probably makes sense to keep it as generic as possible, though, to
+ * improve maintainability.
+ */
+typedef gboolean (*parent_connect_type) (void * const self, void * const gerr);
+
+
 static void x2goclient_network_options_ssh_class_init (X2GoClientNetworkOptionsSSHClass * const klass) {
 }
 
@@ -757,7 +768,14 @@ gboolean x2goclient_network_ssh_connect (X2GoClientNetworkSSH * const self, GErr
   X2GoClientNetwork *parent = X2GOCLIENT_NETWORK (self);
   X2GoClientNetworkClass *parent_class = X2GOCLIENT_NETWORK_GET_CLASS (parent);
 
-  ret = parent_class->parent_connect (parent, gerr);
+  /* Fetch parent's connect function. */
+  parent_connect_type parent_connect = NULL;
+  g_object_get (G_OBJECT (self), "connect-function", &parent_connect, NULL);
+  g_assert (parent_connect);
+
+  if (parent_connect) {
+    ret = parent_connect (parent, gerr);
+  }
 
   return (ret);
 }

--
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