aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy/Makefile.am2
-rw-r--r--libempathy/empathy-connectivity.c435
-rw-r--r--libempathy/empathy-connectivity.h71
3 files changed, 0 insertions, 508 deletions
diff --git a/libempathy/Makefile.am b/libempathy/Makefile.am
index 3d7e5fca7..811e574de 100644
--- a/libempathy/Makefile.am
+++ b/libempathy/Makefile.am
@@ -34,7 +34,6 @@ libempathy_headers = \
empathy-chatroom.h \
empathy-client-factory.h \
empathy-connection-managers.h \
- empathy-connectivity.h \
empathy-connection-aggregator.h \
empathy-contact-groups.h \
empathy-contact-list.h \
@@ -76,7 +75,6 @@ libempathy_handwritten_source = \
empathy-chatroom.c \
empathy-client-factory.c \
empathy-connection-managers.c \
- empathy-connectivity.c \
empathy-connection-aggregator.c \
empathy-contact-groups.c \
empathy-contact-list.c \
diff --git a/libempathy/empathy-connectivity.c b/libempathy/empathy-connectivity.c
deleted file mode 100644
index f84505f9b..000000000
--- a/libempathy/empathy-connectivity.c
+++ /dev/null
@@ -1,435 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
-/*
- * Copyright (C) 2009 Collabora Ltd.
- *
- * 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
- *
- * Authors: Jonny Lamb <jonny.lamb@collabora.co.uk>
- */
-
-#include "config.h"
-#include "empathy-connectivity.h"
-
-#ifdef HAVE_NM
-#include <nm-client.h>
-#endif
-
-#ifdef HAVE_CONNMAN
-#include <dbus/dbus-glib.h>
-#endif
-
-#include <telepathy-glib/util.h>
-
-#include "empathy-utils.h"
-
-#define DEBUG_FLAG EMPATHY_DEBUG_CONNECTIVITY
-#include "empathy-debug.h"
-
-#define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyConnectivity)
-
-typedef struct {
-#ifdef HAVE_NM
- NMClient *nm_client;
- gulong state_change_signal_id;
-#endif
-
-#ifdef HAVE_CONNMAN
- DBusGProxy *proxy;
-#endif
-
- gboolean connected;
- gboolean use_conn;
-} EmpathyConnectivityPriv;
-
-enum {
- STATE_CHANGE,
- LAST_SIGNAL
-};
-
-enum {
- PROP_0,
- PROP_USE_CONN,
-};
-
-static guint signals[LAST_SIGNAL];
-static EmpathyConnectivity *connectivity_singleton = NULL;
-
-G_DEFINE_TYPE (EmpathyConnectivity, empathy_connectivity, G_TYPE_OBJECT);
-
-static void
-connectivity_change_state (EmpathyConnectivity *connectivity,
- gboolean new_state)
-{
- EmpathyConnectivityPriv *priv;
-
- priv = GET_PRIV (connectivity);
-
- if (priv->connected == new_state)
- return;
-
- priv->connected = new_state;
-
- g_signal_emit (connectivity, signals[STATE_CHANGE], 0,
- priv->connected);
-}
-
-#ifdef HAVE_NM
-
-#if !defined(NM_CHECK_VERSION)
-#define NM_CHECK_VERSION(x,y,z) 0
-#endif
-
-static void
-connectivity_nm_state_change_cb (NMClient *client,
- const GParamSpec *pspec,
- EmpathyConnectivity *connectivity)
-{
- EmpathyConnectivityPriv *priv;
- gboolean new_nm_connected;
- NMState state;
-
- priv = GET_PRIV (connectivity);
-
- if (!priv->use_conn)
- return;
-
- state = nm_client_get_state (priv->nm_client);
- new_nm_connected = !(state == NM_STATE_CONNECTING
-#if NM_CHECK_VERSION(0,8,992)
- || state == NM_STATE_DISCONNECTING
-#endif
- || state == NM_STATE_ASLEEP
- || state == NM_STATE_DISCONNECTED);
-
- DEBUG ("New NetworkManager network state %d (connected: %s)", state,
- new_nm_connected ? "true" : "false");
-
- connectivity_change_state (connectivity, new_nm_connected);
-}
-#endif
-
-#ifdef HAVE_CONNMAN
-static void
-connectivity_connman_state_changed_cb (DBusGProxy *proxy,
- const gchar *new_state,
- EmpathyConnectivity *connectivity)
-{
- EmpathyConnectivityPriv *priv;
- gboolean new_connected;
-
- priv = GET_PRIV (connectivity);
-
- if (!priv->use_conn)
- return;
-
- new_connected = !tp_strdiff (new_state, "online");
-
- DEBUG ("New ConnMan network state %s", new_state);
-
- connectivity_change_state (connectivity, new_connected);
-}
-
-static void
-connectivity_connman_check_state_cb (DBusGProxy *proxy,
- DBusGProxyCall *call_id,
- gpointer user_data)
-{
- EmpathyConnectivity *connectivity = (EmpathyConnectivity *) user_data;
- GError *error = NULL;
- gchar *state;
-
- if (dbus_g_proxy_end_call (proxy, call_id, &error,
- G_TYPE_STRING, &state, G_TYPE_INVALID))
- {
- connectivity_connman_state_changed_cb (proxy, state,
- connectivity);
- g_free (state);
- }
- else
- {
- DEBUG ("Failed to call GetState: %s", error->message);
- connectivity_connman_state_changed_cb (proxy, "offline",
- connectivity);
- }
-}
-
-static void
-connectivity_connman_check_state (EmpathyConnectivity *connectivity)
-{
- EmpathyConnectivityPriv *priv;
-
- priv = GET_PRIV (connectivity);
-
- dbus_g_proxy_begin_call (priv->proxy, "GetState",
- connectivity_connman_check_state_cb, connectivity, NULL,
- G_TYPE_INVALID);
-}
-#endif
-
-static void
-empathy_connectivity_init (EmpathyConnectivity *connectivity)
-{
- EmpathyConnectivityPriv *priv;
-#ifdef HAVE_CONNMAN
- DBusGConnection *connection;
- GError *error = NULL;
-#endif
-
- priv = G_TYPE_INSTANCE_GET_PRIVATE (connectivity,
- EMPATHY_TYPE_CONNECTIVITY, EmpathyConnectivityPriv);
-
- connectivity->priv = priv;
-
- priv->use_conn = TRUE;
-
-#ifdef HAVE_NM
- priv->nm_client = nm_client_new ();
- if (priv->nm_client != NULL)
- {
- priv->state_change_signal_id = g_signal_connect (priv->nm_client,
- "notify::" NM_CLIENT_STATE,
- G_CALLBACK (connectivity_nm_state_change_cb), connectivity);
-
- connectivity_nm_state_change_cb (priv->nm_client, NULL, connectivity);
- }
- else
- {
- DEBUG ("Failed to get NetworkManager proxy");
- }
-#endif
-
-#ifdef HAVE_CONNMAN
- connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
- if (connection != NULL)
- {
- priv->proxy = dbus_g_proxy_new_for_name (connection,
- "net.connman", "/",
- "net.connman.Manager");
-
- dbus_g_object_register_marshaller (
- g_cclosure_marshal_generic,
- G_TYPE_NONE, G_TYPE_STRING, G_TYPE_INVALID);
-
- dbus_g_proxy_add_signal (priv->proxy, "StateChanged",
- G_TYPE_STRING, G_TYPE_INVALID);
-
- dbus_g_proxy_connect_signal (priv->proxy, "StateChanged",
- G_CALLBACK (connectivity_connman_state_changed_cb),
- connectivity, NULL);
-
- connectivity_connman_check_state (connectivity);
- }
- else
- {
- DEBUG ("Failed to get system bus connection: %s", error->message);
- g_error_free (error);
- }
-#endif
-
-#if !defined(HAVE_NM) && !defined(HAVE_CONNMAN)
- priv->connected = TRUE;
-#endif
-}
-
-static void
-connectivity_finalize (GObject *object)
-{
-#ifdef HAVE_NM
- EmpathyConnectivity *connectivity = EMPATHY_CONNECTIVITY (object);
- EmpathyConnectivityPriv *priv = GET_PRIV (connectivity);
-
- if (priv->nm_client != NULL)
- {
- g_signal_handler_disconnect (priv->nm_client,
- priv->state_change_signal_id);
- priv->state_change_signal_id = 0;
- g_object_unref (priv->nm_client);
- priv->nm_client = NULL;
- }
-#endif
-
-#ifdef HAVE_CONNMAN
- EmpathyConnectivity *connectivity = EMPATHY_CONNECTIVITY (object);
- EmpathyConnectivityPriv *priv = GET_PRIV (connectivity);
-
- if (priv->proxy != NULL)
- {
- dbus_g_proxy_disconnect_signal (priv->proxy, "StateChanged",
- G_CALLBACK (connectivity_connman_state_changed_cb), connectivity);
-
- g_object_unref (priv->proxy);
- priv->proxy = NULL;
- }
-#endif
-
- G_OBJECT_CLASS (empathy_connectivity_parent_class)->finalize (object);
-}
-
-static void
-connectivity_dispose (GObject *object)
-{
- G_OBJECT_CLASS (empathy_connectivity_parent_class)->dispose (object);
-}
-
-static GObject *
-connectivity_constructor (GType type,
- guint n_construct_params,
- GObjectConstructParam *construct_params)
-{
- GObject *retval;
-
- if (!connectivity_singleton)
- {
- retval = G_OBJECT_CLASS (empathy_connectivity_parent_class)->constructor
- (type, n_construct_params, construct_params);
-
- connectivity_singleton = EMPATHY_CONNECTIVITY (retval);
- g_object_add_weak_pointer (retval, (gpointer) &connectivity_singleton);
- }
- else
- {
- retval = g_object_ref (connectivity_singleton);
- }
-
- return retval;
-}
-
-static void
-connectivity_get_property (GObject *object,
- guint param_id,
- GValue *value,
- GParamSpec *pspec)
-{
- EmpathyConnectivity *connectivity = EMPATHY_CONNECTIVITY (object);
-
- switch (param_id)
- {
- case PROP_USE_CONN:
- g_value_set_boolean (value, empathy_connectivity_get_use_conn (
- connectivity));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
- };
-}
-
-static void
-connectivity_set_property (GObject *object,
- guint param_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- EmpathyConnectivity *connectivity = EMPATHY_CONNECTIVITY (object);
-
- switch (param_id)
- {
- case PROP_USE_CONN:
- empathy_connectivity_set_use_conn (connectivity,
- g_value_get_boolean (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
- break;
- };
-}
-
-static void
-empathy_connectivity_class_init (EmpathyConnectivityClass *klass)
-{
- GObjectClass *oclass = G_OBJECT_CLASS (klass);
-
- oclass->finalize = connectivity_finalize;
- oclass->dispose = connectivity_dispose;
- oclass->constructor = connectivity_constructor;
- oclass->get_property = connectivity_get_property;
- oclass->set_property = connectivity_set_property;
-
- signals[STATE_CHANGE] =
- g_signal_new ("state-change",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- 0,
- NULL, NULL,
- g_cclosure_marshal_generic,
- G_TYPE_NONE,
- 1, G_TYPE_BOOLEAN, NULL);
-
- g_object_class_install_property (oclass,
- PROP_USE_CONN,
- g_param_spec_boolean ("use-conn",
- "Use connectivity managers",
- "Set presence according to connectivity managers",
- TRUE,
- G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
-
- g_type_class_add_private (oclass, sizeof (EmpathyConnectivityPriv));
-}
-
-/* public methods */
-
-EmpathyConnectivity *
-empathy_connectivity_dup_singleton (void)
-{
- return g_object_new (EMPATHY_TYPE_CONNECTIVITY, NULL);
-}
-
-gboolean
-empathy_connectivity_is_online (EmpathyConnectivity *connectivity)
-{
- EmpathyConnectivityPriv *priv = GET_PRIV (connectivity);
-
- return priv->connected;
-}
-
-gboolean
-empathy_connectivity_get_use_conn (EmpathyConnectivity *connectivity)
-{
- EmpathyConnectivityPriv *priv = GET_PRIV (connectivity);
-
- return priv->use_conn;
-}
-
-void
-empathy_connectivity_set_use_conn (EmpathyConnectivity *connectivity,
- gboolean use_conn)
-{
- EmpathyConnectivityPriv *priv = GET_PRIV (connectivity);
-
- if (use_conn == priv->use_conn)
- return;
-
- DEBUG ("use_conn GSetting key changed; new value = %s",
- use_conn ? "true" : "false");
-
- priv->use_conn = use_conn;
-
-#if defined(HAVE_NM) || defined(HAVE_CONNMAN)
- if (use_conn)
- {
-#if defined(HAVE_NM)
- connectivity_nm_state_change_cb (priv->nm_client, NULL, connectivity);
-#elif defined(HAVE_CONNMAN)
- connectivity_connman_check_state (connectivity);
-#endif
- }
- else
-#endif
- {
- connectivity_change_state (connectivity, TRUE);
- }
-
- g_object_notify (G_OBJECT (connectivity), "use-conn");
-}
diff --git a/libempathy/empathy-connectivity.h b/libempathy/empathy-connectivity.h
deleted file mode 100644
index ca507e910..000000000
--- a/libempathy/empathy-connectivity.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
-/*
- * Copyright (C) 2009 Collabora Ltd.
- *
- * 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
- *
- * Authors: Jonny Lamb <jonny.lamb@collabora.co.uk>
- */
-
-#ifndef __EMPATHY_CONNECTIVITY_H__
-#define __EMPATHY_CONNECTIVITY_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define EMPATHY_TYPE_CONNECTIVITY (empathy_connectivity_get_type ())
-#define EMPATHY_CONNECTIVITY(o) \
- (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_CONNECTIVITY, \
- EmpathyConnectivity))
-#define EMPATHY_CONNECTIVITY_CLASS(k) \
- (G_TYPE_CHECK_CLASS_CAST ((k), EMPATHY_TYPE_CONNECTIVITY, \
- EmpathyConnectivityClass))
-#define EMPATHY_IS_CONNECTIVITY(o) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((o), EMPATHY_TYPE_CONNECTIVITY))
-#define EMPATHY_IS_CONNECTIVITY_CLASS(k) \
- (G_TYPE_CHECK_CLASS_TYPE ((k), EMPATHY_TYPE_CONNECTIVITY))
-#define EMPATHY_CONNECTIVITY_GET_CLASS(o) \
- (G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_CONNECTIVITY, \
- EmpathyConnectivityClass))
-
-typedef struct _EmpathyConnectivity EmpathyConnectivity;
-typedef struct _EmpathyConnectivityClass EmpathyConnectivityClass;
-
-struct _EmpathyConnectivity {
- GObject parent;
- gpointer priv;
-};
-
-struct _EmpathyConnectivityClass {
- GObjectClass parent_class;
-};
-
-GType empathy_connectivity_get_type (void);
-
-/* public methods */
-
-EmpathyConnectivity * empathy_connectivity_dup_singleton (void);
-
-gboolean empathy_connectivity_is_online (EmpathyConnectivity *connectivity);
-
-gboolean empathy_connectivity_get_use_conn (EmpathyConnectivity *connectivity);
-void empathy_connectivity_set_use_conn (EmpathyConnectivity *connectivity,
- gboolean use_conn);
-
-G_END_DECLS
-
-#endif /* __EMPATHY_CONNECTIVITY_H__ */
-