[Telepathy-commits] [telepathy-gabble/master] rename gabble-connection-manager.c to connection-manager.c
Dafydd Harries
dafydd.harries at collabora.co.uk
Tue Aug 19 10:53:15 PDT 2008
20080714115831-c9803-0d202f26e1a036bf7803eaa2bc8cbc9855f5c1ca.gz
---
data/Makefile.am | 2 +-
src/Makefile.am | 2 +-
src/connection-manager.c | 279 +++++++++++++++++++++++++++++++++++++++
src/gabble-connection-manager.c | 279 ---------------------------------------
4 files changed, 281 insertions(+), 281 deletions(-)
create mode 100644 src/connection-manager.c
delete mode 100644 src/gabble-connection-manager.c
diff --git a/data/Makefile.am b/data/Makefile.am
index 843dd99..3f74520 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -15,6 +15,6 @@ org.freedesktop.Telepathy.ConnectionManager.gabble.service: gabble.service.in \
CLEANFILES = $(service_DATA) $(manager_DATA)
-$(manager_DATA): ../src/gabble-connection-manager.c ../src/write-mgr-file.c
+$(manager_DATA): ../src/connection-manager.c ../src/write-mgr-file.c
$(MAKE) -C ../src write-mgr-file
../src/write-mgr-file > $@
diff --git a/src/Makefile.am b/src/Makefile.am
index e2460c2..a80b7ae 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -50,7 +50,7 @@ libgabble_convenience_la_our_sources = \
gabble-error.c \
error.h \
connection-manager.h \
- gabble-connection-manager.c \
+ connection-manager.c \
connection.h \
connection.c \
im-channel.h \
diff --git a/src/connection-manager.c b/src/connection-manager.c
new file mode 100644
index 0000000..39e5bfd
--- /dev/null
+++ b/src/connection-manager.c
@@ -0,0 +1,279 @@
+/*
+ * gabble-connection-manager.c - Source for GabbleConnectionManager
+ * Copyright (C) 2005-2007 Collabora Ltd.
+ * Copyright (C) 2005-2007 Nokia Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "connection-manager.h"
+
+#include <dbus/dbus-protocol.h>
+#include <dbus/dbus-glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "connection.h"
+#include <telepathy-glib/dbus.h>
+#include <telepathy-glib/errors.h>
+
+G_DEFINE_TYPE(GabbleConnectionManager,
+ gabble_connection_manager,
+ TP_TYPE_BASE_CONNECTION_MANAGER)
+
+/* type definition stuff */
+
+static void
+gabble_connection_manager_init (GabbleConnectionManager *self)
+{
+}
+
+static TpBaseConnection *_gabble_connection_manager_new_connection (
+ TpBaseConnectionManager *self, const gchar *proto,
+ TpIntSet *params_present, void *parsed_params, GError **error);
+
+static void
+gabble_connection_manager_class_init (GabbleConnectionManagerClass *klass)
+{
+ TpBaseConnectionManagerClass *base_class =
+ (TpBaseConnectionManagerClass *)klass;
+
+ base_class->new_connection = _gabble_connection_manager_new_connection;
+ base_class->cm_dbus_name = "gabble";
+ base_class->protocol_params = gabble_protocols;
+}
+
+/* private data */
+
+typedef struct _GabbleParams GabbleParams;
+
+struct _GabbleParams {
+ gchar *account;
+ gchar *password;
+ gchar *server;
+ gchar *resource;
+ gint priority;
+ guint port;
+ gboolean old_ssl;
+ gboolean require_encryption;
+ gboolean do_register;
+ gboolean low_bandwidth;
+ gchar *https_proxy_server;
+ guint https_proxy_port;
+ gchar *fallback_conference_server;
+ gchar *stun_server;
+ guint stun_port;
+ gboolean ignore_ssl_errors;
+ gchar *alias;
+};
+
+enum {
+ JABBER_PARAM_ACCOUNT = 0,
+ JABBER_PARAM_PASSWORD,
+ JABBER_PARAM_SERVER,
+ JABBER_PARAM_RESOURCE,
+ JABBER_PARAM_PRIORITY,
+ JABBER_PARAM_PORT,
+ JABBER_PARAM_OLD_SSL,
+ JABBER_PARAM_REQUIRE_ENCRYPTION,
+ JABBER_PARAM_REGISTER,
+ JABBER_PARAM_LOW_BANDWIDTH,
+ JABBER_PARAM_HTTPS_PROXY_SERVER,
+ JABBER_PARAM_HTTPS_PROXY_PORT,
+ JABBER_PARAM_FALLBACK_CONFERENCE_SERVER,
+ JABBER_PARAM_STUN_SERVER,
+ JABBER_PARAM_STUN_PORT,
+ JABBER_PARAM_IGNORE_SSL_ERRORS,
+ JABBER_PARAM_ALIAS,
+ LAST_JABBER_PARAM
+};
+
+static const TpCMParamSpec jabber_params[] = {
+ { "account", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
+ TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER, NULL,
+ G_STRUCT_OFFSET(GabbleParams, account),
+ /* FIXME: validate the JID according to the RFC */
+ tp_cm_param_filter_string_nonempty, NULL },
+ { "password", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
+ TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER, NULL,
+ G_STRUCT_OFFSET(GabbleParams, password), NULL, NULL },
+
+ { "server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
+ G_STRUCT_OFFSET(GabbleParams, server),
+ /* FIXME: validate the server properly */
+ tp_cm_param_filter_string_nonempty, NULL },
+
+ { "resource", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GABBLE_PARAMS_DEFAULT_RESOURCE,
+ G_STRUCT_OFFSET(GabbleParams, resource),
+ /* FIXME: validate the resource according to the RFC */
+ tp_cm_param_filter_string_nonempty, NULL },
+
+ { "priority", DBUS_TYPE_INT16_AS_STRING, G_TYPE_INT,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(0),
+ G_STRUCT_OFFSET(GabbleParams, priority), NULL, NULL },
+
+ { "port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT,
+ 0, GUINT_TO_POINTER(0),
+ G_STRUCT_OFFSET(GabbleParams, port),
+ tp_cm_param_filter_uint_nonzero, NULL },
+
+ { "old-ssl", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
+ G_STRUCT_OFFSET(GabbleParams, old_ssl), NULL, NULL },
+
+ { "require-encryption", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
+ G_STRUCT_OFFSET(GabbleParams, require_encryption), NULL, NULL },
+
+ { "register", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
+ G_STRUCT_OFFSET(GabbleParams, do_register), NULL, NULL },
+
+ { "low-bandwidth", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
+ G_STRUCT_OFFSET(GabbleParams, low_bandwidth), NULL, NULL },
+
+ { "https-proxy-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
+ G_STRUCT_OFFSET(GabbleParams, https_proxy_server),
+ /* FIXME: validate properly */
+ tp_cm_param_filter_string_nonempty, NULL },
+ { "https-proxy-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
+ GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_HTTPS_PROXY_PORT),
+ G_STRUCT_OFFSET(GabbleParams, https_proxy_port),
+ tp_cm_param_filter_uint_nonzero, NULL },
+
+ { "fallback-conference-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
+ 0, NULL, G_STRUCT_OFFSET(GabbleParams, fallback_conference_server),
+ /* FIXME: validate properly */
+ tp_cm_param_filter_string_nonempty, NULL },
+
+ { "stun-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
+ G_STRUCT_OFFSET(GabbleParams, stun_server),
+ /* FIXME: validate properly */
+ tp_cm_param_filter_string_nonempty, NULL },
+ { "stun-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
+ GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_STUN_PORT),
+ G_STRUCT_OFFSET(GabbleParams, stun_port),
+ tp_cm_param_filter_uint_nonzero, NULL },
+
+ { "ignore-ssl-errors", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
+ G_STRUCT_OFFSET(GabbleParams, ignore_ssl_errors), NULL, NULL },
+
+ { "alias", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
+ G_STRUCT_OFFSET(GabbleParams, alias),
+ /* setting a 0-length alias makes no sense */
+ tp_cm_param_filter_string_nonempty, NULL },
+
+ { NULL, NULL, 0, 0, NULL, 0 }
+};
+
+static void *
+alloc_params (void)
+{
+ return g_slice_new0 (GabbleParams);
+}
+
+static void
+free_params (void *p)
+{
+ GabbleParams *params = (GabbleParams *)p;
+
+ g_free (params->account);
+ g_free (params->password);
+ g_free (params->server);
+ g_free (params->resource);
+ g_free (params->https_proxy_server);
+ g_free (params->fallback_conference_server);
+ g_free (params->stun_server);
+ g_free (params->alias);
+
+ g_slice_free (GabbleParams, params);
+}
+
+const TpCMProtocolSpec gabble_protocols[] = {
+ { "jabber", jabber_params, alloc_params, free_params },
+ { NULL, NULL }
+};
+
+#define SET_PROPERTY_IF_PARAM_SET(prop, param, member) \
+ if (tp_intset_is_member (params_present, param)) \
+ { \
+ g_object_set (conn, prop, member, NULL); \
+ }
+
+static TpBaseConnection *
+_gabble_connection_manager_new_connection (TpBaseConnectionManager *self,
+ const gchar *proto,
+ TpIntSet *params_present,
+ void *parsed_params,
+ GError **error)
+{
+ GabbleConnection *conn;
+ GabbleParams *params = (GabbleParams *)parsed_params;
+
+ g_assert (GABBLE_IS_CONNECTION_MANAGER (self));
+
+ conn = g_object_new (GABBLE_TYPE_CONNECTION,
+ "protocol", proto,
+ "password", params->password,
+ NULL);
+
+ SET_PROPERTY_IF_PARAM_SET ("connect-server", JABBER_PARAM_SERVER,
+ params->server);
+ SET_PROPERTY_IF_PARAM_SET ("resource", JABBER_PARAM_RESOURCE,
+ params->resource);
+ SET_PROPERTY_IF_PARAM_SET ("priority", JABBER_PARAM_PRIORITY,
+ (gint8) CLAMP (params->priority, G_MININT8, G_MAXINT8));
+ SET_PROPERTY_IF_PARAM_SET ("port", JABBER_PARAM_PORT, params->port);
+ SET_PROPERTY_IF_PARAM_SET ("old-ssl", JABBER_PARAM_OLD_SSL, params->old_ssl);
+ SET_PROPERTY_IF_PARAM_SET ("require-encryption",
+ JABBER_PARAM_REQUIRE_ENCRYPTION,
+ params->require_encryption);
+ SET_PROPERTY_IF_PARAM_SET ("register", JABBER_PARAM_REGISTER,
+ params->do_register);
+ SET_PROPERTY_IF_PARAM_SET ("low-bandwidth", JABBER_PARAM_LOW_BANDWIDTH,
+ params->low_bandwidth);
+ SET_PROPERTY_IF_PARAM_SET ("https-proxy-server",
+ JABBER_PARAM_HTTPS_PROXY_SERVER,
+ params->https_proxy_server);
+ SET_PROPERTY_IF_PARAM_SET ("https-proxy-port", JABBER_PARAM_HTTPS_PROXY_PORT,
+ params->https_proxy_port);
+ SET_PROPERTY_IF_PARAM_SET ("fallback-conference-server",
+ JABBER_PARAM_FALLBACK_CONFERENCE_SERVER,
+ params->fallback_conference_server);
+ SET_PROPERTY_IF_PARAM_SET ("stun-server", JABBER_PARAM_STUN_SERVER,
+ params->stun_server);
+ SET_PROPERTY_IF_PARAM_SET ("stun-port", JABBER_PARAM_STUN_PORT,
+ params->stun_port);
+ SET_PROPERTY_IF_PARAM_SET ("ignore-ssl-errors",
+ JABBER_PARAM_IGNORE_SSL_ERRORS,
+ params->ignore_ssl_errors);
+ SET_PROPERTY_IF_PARAM_SET ("alias", JABBER_PARAM_ALIAS, params->alias);
+
+ /* split up account into username, stream-server and resource */
+ if (!_gabble_connection_set_properties_from_account (conn, params->account,
+ error))
+ {
+ g_object_unref (G_OBJECT (conn));
+ conn = NULL;
+ }
+
+ return (TpBaseConnection *)conn;
+}
diff --git a/src/gabble-connection-manager.c b/src/gabble-connection-manager.c
deleted file mode 100644
index 39e5bfd..0000000
--- a/src/gabble-connection-manager.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * gabble-connection-manager.c - Source for GabbleConnectionManager
- * Copyright (C) 2005-2007 Collabora Ltd.
- * Copyright (C) 2005-2007 Nokia Corporation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "connection-manager.h"
-
-#include <dbus/dbus-protocol.h>
-#include <dbus/dbus-glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "connection.h"
-#include <telepathy-glib/dbus.h>
-#include <telepathy-glib/errors.h>
-
-G_DEFINE_TYPE(GabbleConnectionManager,
- gabble_connection_manager,
- TP_TYPE_BASE_CONNECTION_MANAGER)
-
-/* type definition stuff */
-
-static void
-gabble_connection_manager_init (GabbleConnectionManager *self)
-{
-}
-
-static TpBaseConnection *_gabble_connection_manager_new_connection (
- TpBaseConnectionManager *self, const gchar *proto,
- TpIntSet *params_present, void *parsed_params, GError **error);
-
-static void
-gabble_connection_manager_class_init (GabbleConnectionManagerClass *klass)
-{
- TpBaseConnectionManagerClass *base_class =
- (TpBaseConnectionManagerClass *)klass;
-
- base_class->new_connection = _gabble_connection_manager_new_connection;
- base_class->cm_dbus_name = "gabble";
- base_class->protocol_params = gabble_protocols;
-}
-
-/* private data */
-
-typedef struct _GabbleParams GabbleParams;
-
-struct _GabbleParams {
- gchar *account;
- gchar *password;
- gchar *server;
- gchar *resource;
- gint priority;
- guint port;
- gboolean old_ssl;
- gboolean require_encryption;
- gboolean do_register;
- gboolean low_bandwidth;
- gchar *https_proxy_server;
- guint https_proxy_port;
- gchar *fallback_conference_server;
- gchar *stun_server;
- guint stun_port;
- gboolean ignore_ssl_errors;
- gchar *alias;
-};
-
-enum {
- JABBER_PARAM_ACCOUNT = 0,
- JABBER_PARAM_PASSWORD,
- JABBER_PARAM_SERVER,
- JABBER_PARAM_RESOURCE,
- JABBER_PARAM_PRIORITY,
- JABBER_PARAM_PORT,
- JABBER_PARAM_OLD_SSL,
- JABBER_PARAM_REQUIRE_ENCRYPTION,
- JABBER_PARAM_REGISTER,
- JABBER_PARAM_LOW_BANDWIDTH,
- JABBER_PARAM_HTTPS_PROXY_SERVER,
- JABBER_PARAM_HTTPS_PROXY_PORT,
- JABBER_PARAM_FALLBACK_CONFERENCE_SERVER,
- JABBER_PARAM_STUN_SERVER,
- JABBER_PARAM_STUN_PORT,
- JABBER_PARAM_IGNORE_SSL_ERRORS,
- JABBER_PARAM_ALIAS,
- LAST_JABBER_PARAM
-};
-
-static const TpCMParamSpec jabber_params[] = {
- { "account", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
- TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER, NULL,
- G_STRUCT_OFFSET(GabbleParams, account),
- /* FIXME: validate the JID according to the RFC */
- tp_cm_param_filter_string_nonempty, NULL },
- { "password", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
- TP_CONN_MGR_PARAM_FLAG_REQUIRED | TP_CONN_MGR_PARAM_FLAG_REGISTER, NULL,
- G_STRUCT_OFFSET(GabbleParams, password), NULL, NULL },
-
- { "server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
- G_STRUCT_OFFSET(GabbleParams, server),
- /* FIXME: validate the server properly */
- tp_cm_param_filter_string_nonempty, NULL },
-
- { "resource", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GABBLE_PARAMS_DEFAULT_RESOURCE,
- G_STRUCT_OFFSET(GabbleParams, resource),
- /* FIXME: validate the resource according to the RFC */
- tp_cm_param_filter_string_nonempty, NULL },
-
- { "priority", DBUS_TYPE_INT16_AS_STRING, G_TYPE_INT,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(0),
- G_STRUCT_OFFSET(GabbleParams, priority), NULL, NULL },
-
- { "port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT,
- 0, GUINT_TO_POINTER(0),
- G_STRUCT_OFFSET(GabbleParams, port),
- tp_cm_param_filter_uint_nonzero, NULL },
-
- { "old-ssl", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
- G_STRUCT_OFFSET(GabbleParams, old_ssl), NULL, NULL },
-
- { "require-encryption", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
- G_STRUCT_OFFSET(GabbleParams, require_encryption), NULL, NULL },
-
- { "register", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
- G_STRUCT_OFFSET(GabbleParams, do_register), NULL, NULL },
-
- { "low-bandwidth", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
- G_STRUCT_OFFSET(GabbleParams, low_bandwidth), NULL, NULL },
-
- { "https-proxy-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
- G_STRUCT_OFFSET(GabbleParams, https_proxy_server),
- /* FIXME: validate properly */
- tp_cm_param_filter_string_nonempty, NULL },
- { "https-proxy-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
- GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_HTTPS_PROXY_PORT),
- G_STRUCT_OFFSET(GabbleParams, https_proxy_port),
- tp_cm_param_filter_uint_nonzero, NULL },
-
- { "fallback-conference-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
- 0, NULL, G_STRUCT_OFFSET(GabbleParams, fallback_conference_server),
- /* FIXME: validate properly */
- tp_cm_param_filter_string_nonempty, NULL },
-
- { "stun-server", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
- G_STRUCT_OFFSET(GabbleParams, stun_server),
- /* FIXME: validate properly */
- tp_cm_param_filter_string_nonempty, NULL },
- { "stun-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT,
- GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_STUN_PORT),
- G_STRUCT_OFFSET(GabbleParams, stun_port),
- tp_cm_param_filter_uint_nonzero, NULL },
-
- { "ignore-ssl-errors", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
- TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE),
- G_STRUCT_OFFSET(GabbleParams, ignore_ssl_errors), NULL, NULL },
-
- { "alias", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL,
- G_STRUCT_OFFSET(GabbleParams, alias),
- /* setting a 0-length alias makes no sense */
- tp_cm_param_filter_string_nonempty, NULL },
-
- { NULL, NULL, 0, 0, NULL, 0 }
-};
-
-static void *
-alloc_params (void)
-{
- return g_slice_new0 (GabbleParams);
-}
-
-static void
-free_params (void *p)
-{
- GabbleParams *params = (GabbleParams *)p;
-
- g_free (params->account);
- g_free (params->password);
- g_free (params->server);
- g_free (params->resource);
- g_free (params->https_proxy_server);
- g_free (params->fallback_conference_server);
- g_free (params->stun_server);
- g_free (params->alias);
-
- g_slice_free (GabbleParams, params);
-}
-
-const TpCMProtocolSpec gabble_protocols[] = {
- { "jabber", jabber_params, alloc_params, free_params },
- { NULL, NULL }
-};
-
-#define SET_PROPERTY_IF_PARAM_SET(prop, param, member) \
- if (tp_intset_is_member (params_present, param)) \
- { \
- g_object_set (conn, prop, member, NULL); \
- }
-
-static TpBaseConnection *
-_gabble_connection_manager_new_connection (TpBaseConnectionManager *self,
- const gchar *proto,
- TpIntSet *params_present,
- void *parsed_params,
- GError **error)
-{
- GabbleConnection *conn;
- GabbleParams *params = (GabbleParams *)parsed_params;
-
- g_assert (GABBLE_IS_CONNECTION_MANAGER (self));
-
- conn = g_object_new (GABBLE_TYPE_CONNECTION,
- "protocol", proto,
- "password", params->password,
- NULL);
-
- SET_PROPERTY_IF_PARAM_SET ("connect-server", JABBER_PARAM_SERVER,
- params->server);
- SET_PROPERTY_IF_PARAM_SET ("resource", JABBER_PARAM_RESOURCE,
- params->resource);
- SET_PROPERTY_IF_PARAM_SET ("priority", JABBER_PARAM_PRIORITY,
- (gint8) CLAMP (params->priority, G_MININT8, G_MAXINT8));
- SET_PROPERTY_IF_PARAM_SET ("port", JABBER_PARAM_PORT, params->port);
- SET_PROPERTY_IF_PARAM_SET ("old-ssl", JABBER_PARAM_OLD_SSL, params->old_ssl);
- SET_PROPERTY_IF_PARAM_SET ("require-encryption",
- JABBER_PARAM_REQUIRE_ENCRYPTION,
- params->require_encryption);
- SET_PROPERTY_IF_PARAM_SET ("register", JABBER_PARAM_REGISTER,
- params->do_register);
- SET_PROPERTY_IF_PARAM_SET ("low-bandwidth", JABBER_PARAM_LOW_BANDWIDTH,
- params->low_bandwidth);
- SET_PROPERTY_IF_PARAM_SET ("https-proxy-server",
- JABBER_PARAM_HTTPS_PROXY_SERVER,
- params->https_proxy_server);
- SET_PROPERTY_IF_PARAM_SET ("https-proxy-port", JABBER_PARAM_HTTPS_PROXY_PORT,
- params->https_proxy_port);
- SET_PROPERTY_IF_PARAM_SET ("fallback-conference-server",
- JABBER_PARAM_FALLBACK_CONFERENCE_SERVER,
- params->fallback_conference_server);
- SET_PROPERTY_IF_PARAM_SET ("stun-server", JABBER_PARAM_STUN_SERVER,
- params->stun_server);
- SET_PROPERTY_IF_PARAM_SET ("stun-port", JABBER_PARAM_STUN_PORT,
- params->stun_port);
- SET_PROPERTY_IF_PARAM_SET ("ignore-ssl-errors",
- JABBER_PARAM_IGNORE_SSL_ERRORS,
- params->ignore_ssl_errors);
- SET_PROPERTY_IF_PARAM_SET ("alias", JABBER_PARAM_ALIAS, params->alias);
-
- /* split up account into username, stream-server and resource */
- if (!_gabble_connection_set_properties_from_account (conn, params->account,
- error))
- {
- g_object_unref (G_OBJECT (conn));
- conn = NULL;
- }
-
- return (TpBaseConnection *)conn;
-}
--
1.5.6.3
More information about the Telepathy-commits
mailing list