[telepathy-gabble/master] add fallback-socks5-proxy connection parameter
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Fri Apr 3 08:41:36 PDT 2009
---
src/connection-manager.c | 13 +++++++++++++
src/connection.c | 17 +++++++++++++++++
2 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/src/connection-manager.c b/src/connection-manager.c
index 0721f85..a48ebf2 100644
--- a/src/connection-manager.c
+++ b/src/connection-manager.c
@@ -80,6 +80,7 @@ struct _GabbleParams {
guint fallback_stun_port;
gboolean ignore_ssl_errors;
gchar *alias;
+ gchar *fallback_socks5_proxy;
};
enum {
@@ -102,6 +103,7 @@ enum {
JABBER_PARAM_FALLBACK_STUN_PORT,
JABBER_PARAM_IGNORE_SSL_ERRORS,
JABBER_PARAM_ALIAS,
+ JABBER_PARAM_FALLBACK_SOCKS5_PROXY,
LAST_JABBER_PARAM
};
@@ -197,6 +199,14 @@ static const TpCMParamSpec jabber_params[] = {
/* setting a 0-length alias makes no sense */
tp_cm_param_filter_string_nonempty, NULL },
+ /* FIXME: we should have "fallback-socks5-proxies" but we currently can't
+ * define a boxed G_TYPE_STRV parameter */
+ { "fallback-socks5-proxy", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
+ 0, NULL,
+ G_STRUCT_OFFSET(GabbleParams, fallback_socks5_proxy),
+ /* setting a 0-length proxy makes no sense */
+ tp_cm_param_filter_string_nonempty, NULL },
+
{ NULL, NULL, 0, 0, NULL, 0 }
};
@@ -219,6 +229,7 @@ free_params (void *p)
g_free (params->fallback_conference_server);
g_free (params->stun_server);
g_free (params->alias);
+ g_free (params->fallback_socks5_proxy);
g_slice_free (GabbleParams, params);
}
@@ -286,6 +297,8 @@ _gabble_connection_manager_new_connection (TpBaseConnectionManager *self,
JABBER_PARAM_IGNORE_SSL_ERRORS,
params->ignore_ssl_errors);
SET_PROPERTY_IF_PARAM_SET ("alias", JABBER_PARAM_ALIAS, params->alias);
+ SET_PROPERTY_IF_PARAM_SET ("fallback-socks5-proxy",
+ JABBER_PARAM_FALLBACK_SOCKS5_PROXY, params->fallback_socks5_proxy);
/* split up account into username, stream-server and resource */
if (!_gabble_connection_set_properties_from_account (conn, params->account,
diff --git a/src/connection.c b/src/connection.c
index fa30de5..73c7143 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -138,6 +138,7 @@ enum
PROP_FALLBACK_STUN_PORT,
PROP_IGNORE_SSL_ERRORS,
PROP_ALIAS,
+ PROP_FALLBACK_SOCKS5_PROXY,
LAST_PROPERTY
};
@@ -177,6 +178,8 @@ struct _GabbleConnectionPrivate
gchar *fallback_conference_server;
+ gchar *fallback_socks5_proxy;
+
/* authentication properties */
gchar *stream_server;
gchar *username;
@@ -382,6 +385,9 @@ gabble_connection_get_property (GObject *object,
case PROP_FALLBACK_STUN_PORT:
g_value_set_uint (value, priv->fallback_stun_port);
break;
+ case PROP_FALLBACK_SOCKS5_PROXY:
+ g_value_set_string (value, priv->fallback_socks5_proxy);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -468,6 +474,9 @@ gabble_connection_set_property (GObject *object,
case PROP_FALLBACK_STUN_PORT:
priv->fallback_stun_port = g_value_get_uint (value);
break;
+ case PROP_FALLBACK_SOCKS5_PROXY:
+ priv->fallback_socks5_proxy = g_value_dup_string (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -743,6 +752,13 @@ gabble_connection_class_init (GabbleConnectionClass *gabble_connection_class)
NULL,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class, PROP_FALLBACK_SOCKS5_PROXY,
+ g_param_spec_string (
+ "fallback-socks5-proxy", "fallback SOCKS5 proxy",
+ "Fallback SOCKS5 proxy.",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
gabble_connection_class->properties_class.interfaces = prop_interfaces;
tp_dbus_properties_mixin_class_init (object_class,
G_STRUCT_OFFSET (GabbleConnectionClass, properties_class));
@@ -850,6 +866,7 @@ gabble_connection_finalize (GObject *object)
g_free (priv->https_proxy_server);
g_free (priv->stun_server);
g_free (priv->fallback_conference_server);
+ g_free (priv->fallback_socks5_proxy);
g_free (priv->alias);
--
1.5.6.5
More information about the telepathy-commits
mailing list