This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository libx2goclient. commit 3ca13250c4f2dc6f7fa36f54e2b2759568a9dcd3 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Aug 15 17:32:16 2019 +0200 src/x2goclient-network.c: fix properties. We now have both a socket property, typed GSocketAddress, that is read-only and contains the actual "parsed" result, and a socket-spec property, typed GString, that is write-only and will be used for parsing the actual specification. --- src/x2goclient-network.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/x2goclient-network.c b/src/x2goclient-network.c index 3af4f12..2461bee 100644 --- a/src/x2goclient-network.c +++ b/src/x2goclient-network.c @@ -50,6 +50,7 @@ static void x2goclient_network_options_init (X2GoClientNetworkOptions *self) { typedef struct X2GoClientNetworkPrivate_ { + GString *socket_spec; GSocketAddress *socket; X2GoClientNetworkOptions *options; } X2GoClientNetworkPrivate; @@ -65,7 +66,8 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (X2GoClientNetwork, x2goclient_network, G_TY * is actually exported, we can go bonkers with abbreviations. */ enum { - X2GO_NET_PROP_SOCKET = 1, + X2GO_NET_PROP_SOCKET_SPEC = 1, + X2GO_NET_PROP_SOCKET, X2GO_NET_PROP_OPTIONS, X2GO_NET_N_PROPERTIES }; @@ -95,16 +97,14 @@ static void x2goclient_network_set_property (GObject *object, guint prop_id, con X2GoClientNetworkPrivate *priv = x2goclient_network_get_instance_private (self); switch (prop_id) { - case (X2GO_NET_PROP_SOCKET): - g_free (priv->socket); - /* - * We'll actually expect a GString here, not a GSocketAddress. - * How do we document that correctly, though? - */ - priv->socket = x2goclient_network_parse_sockspec (self, g_value_get_object (value)); - break; + case (X2GO_NET_PROP_SOCKET_SPEC): + g_free (priv->socket_spec); + g_clear_object (&(priv->socket)); + priv->socket_spec = g_value_dup_boxed (value); + priv->socket = x2goclient_network_parse_sockspec (self, priv->socket_spec); + break; case (X2GO_NET_PROP_OPTIONS): - g_free (priv->options); + g_clear_object (&(priv->options)); priv->options = g_value_dup_object (value); break; default: @@ -136,14 +136,20 @@ static void x2goclient_network_class_init (X2GoClientNetworkClass *klass) { object_class->set_property = x2goclient_network_set_property; object_class->get_property = x2goclient_network_get_property; - 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.", + 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_READWRITE); + G_PARAM_READABLE); - net_obj_properties[X2GO_NET_PROP_OPTIONS] = g_param_spec_object ("options", "Socket options", - "Specific socket options.", + net_obj_properties[X2GO_NET_PROP_OPTIONS] = g_param_spec_object ("options", _("Socket options"), + _("Specific socket options."), X2GOCLIENT_TYPE_NETWORK_OPTIONS, G_PARAM_READWRITE); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git