[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