[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