[gnome-settings-daemon] sharing: Fix build without NetworkManager
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] sharing: Fix build without NetworkManager
- Date: Wed, 25 Jun 2014 10:26:21 +0000 (UTC)
commit 5cfb8fd711bb5b5b93f519cf2c1248d251861f5a
Author: Bastien Nocera <hadess hadess net>
Date: Wed Jun 25 12:24:55 2014 +0200
sharing: Fix build without NetworkManager
https://bugzilla.gnome.org/show_bug.cgi?id=732204
plugins/sharing/gsd-sharing-manager.c | 59 ++++++++++++++++++++++++++++----
1 files changed, 51 insertions(+), 8 deletions(-)
---
diff --git a/plugins/sharing/gsd-sharing-manager.c b/plugins/sharing/gsd-sharing-manager.c
index dc08b3c..fae2601 100644
--- a/plugins/sharing/gsd-sharing-manager.c
+++ b/plugins/sharing/gsd-sharing-manager.c
@@ -21,12 +21,15 @@
#include <locale.h>
#include <glib.h>
+#include <gio/gio.h>
+#include <gio/gdesktopappinfo.h>
+#include <glib/gstdio.h>
+#ifdef HAVE_NETWORK_MANAGER
#include <nm-client.h>
#include <nm-device.h>
#include <nm-remote-settings.h>
-#include <gio/gdesktopappinfo.h>
-#include <glib/gstdio.h>
+#endif /* HAVE_NETWORK_MANAGER */
#include "gnome-settings-plugin.h"
#include "gnome-settings-profile.h"
@@ -49,8 +52,10 @@ struct GsdSharingManagerPrivate
GDBusConnection *connection;
GCancellable *cancellable;
+#ifdef HAVE_NETWORK_MANAGER
NMClient *client;
NMRemoteSettings *remote_settings;
+#endif /* HAVE_NETWORK_MANAGER */
GHashTable *services;
@@ -142,6 +147,7 @@ gsd_sharing_manager_start_service (GsdSharingManager *manager,
g_object_unref (app);
}
+#ifdef HAVE_NETWORK_MANAGER
static void
gsd_sharing_manager_start_services (GsdSharingManager *manager)
{
@@ -165,6 +171,7 @@ gsd_sharing_manager_start_services (GsdSharingManager *manager)
}
g_list_free (services);
}
+#endif /* HAVE_NETWORK_MANAGER */
static void
gsd_sharing_manager_stop_service (GsdSharingManager *manager,
@@ -196,6 +203,7 @@ gsd_sharing_manager_stop_services (GsdSharingManager *manager)
g_list_free (services);
}
+#ifdef HAVE_NETWORK_MANAGER
static void
properties_changed (GsdSharingManager *manager)
{
@@ -236,6 +244,15 @@ get_connections_for_service (GsdSharingManager *manager,
service = g_hash_table_lookup (manager->priv->services, service_name);
return g_settings_get_strv (service->settings, "enabled-connections");
}
+#else
+static char **
+get_connections_for_service (GsdSharingManager *manager,
+ const char *service_name)
+{
+ const char * const * connections [] = { NULL };
+ return g_strdupv ((char **) connections);
+}
+#endif /* HAVE_NETWORK_MANAGER */
static gboolean
check_service (GsdSharingManager *manager,
@@ -325,6 +342,7 @@ gsd_sharing_manager_disable_service (GsdSharingManager *manager,
return TRUE;
}
+#ifdef HAVE_NETWORK_MANAGER
static const char *
get_type_for_connection_id (GsdSharingManager *manager,
const char *id)
@@ -342,7 +360,16 @@ get_type_for_connection_id (GsdSharingManager *manager,
return type;
}
+#else
+static const char *
+get_type_for_connection_id (GsdSharingManager *manager,
+ const char *id)
+{
+ return NULL;
+}
+#endif /* HAVE_NETWORK_MANAGER */
+#ifdef HAVE_NETWORK_MANAGER
static gboolean
connection_is_low_security (GsdSharingManager *manager,
const char *id)
@@ -360,6 +387,7 @@ connection_is_low_security (GsdSharingManager *manager,
* XXX: Also do this for WEP networks? */
return (nm_connection_get_setting_wireless_security (NM_CONNECTION (conn)) == NULL);
}
+#endif /* HAVE_NETWORK_MANAGER */
static GVariant *
gsd_sharing_manager_list_networks (GsdSharingManager *manager,
@@ -373,10 +401,12 @@ gsd_sharing_manager_list_networks (GsdSharingManager *manager,
if (!check_service (manager, service_name, error))
return NULL;
+#ifdef HAVE_NETWORK_MANAGER
if (!manager->priv->remote_settings) {
g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Not ready yet");
return NULL;
}
+#endif /* HAVE_NETWORK_MANAGER */
connections = get_connections_for_service (manager, service_name);
@@ -412,10 +442,8 @@ handle_get_property (GDBusConnection *connection,
/* Check session pointer as a proxy for whether the manager is in the
start or stop state */
- if (manager->priv->connection == NULL ||
- manager->priv->client == NULL) {
+ if (manager->priv->connection == NULL)
return NULL;
- }
if (g_strcmp0 (property_name, "CurrentNetwork") == 0) {
return g_variant_new_string (manager->priv->current_network);
@@ -448,10 +476,8 @@ handle_method_call (GDBusConnection *connection,
/* Check session pointer as a proxy for whether the manager is in the
start or stop state */
- if (manager->priv->connection == NULL ||
- manager->priv->client == NULL) {
+ if (manager->priv->connection == NULL)
return;
- }
if (g_strcmp0 (method_name, "EnableService") == 0) {
const char *service;
@@ -527,6 +553,15 @@ on_bus_gotten (GObject *source_object,
}
static void
+set_properties (GsdSharingManager *manager)
+{
+ manager->priv->current_network = g_strdup ("");
+ manager->priv->carrier_type = g_strdup ("");
+ manager->priv->sharing_status = GSD_SHARING_STATUS_OFFLINE;
+}
+
+#ifdef HAVE_NETWORK_MANAGER
+static void
primary_connection_changed (GObject *gobject,
GParamSpec *pspec,
gpointer user_data)
@@ -615,6 +650,7 @@ remote_settings_ready_cb (GObject *source_object,
manager->priv->remote_settings = remote_settings;
}
+#endif /* HAVE_NETWORK_MANAGER */
#define RYGEL_BUS_NAME "org.gnome.Rygel1"
#define RYGEL_OBJECT_PATH "/org/gnome/Rygel1"
@@ -654,8 +690,12 @@ gsd_sharing_manager_start (GsdSharingManager *manager,
gsd_sharing_manager_disable_rygel ();
manager->priv->cancellable = g_cancellable_new ();
+#ifdef HAVE_NETWORK_MANAGER
nm_client_new_async (manager->priv->cancellable, nm_client_ready, manager);
nm_remote_settings_new_async (NULL, manager->priv->cancellable, remote_settings_ready_cb, manager);
+#else
+ set_properties (manager);
+#endif /* HAVE_NETWORK_MANAGER */
/* Start process of owning a D-Bus name */
g_bus_get (G_BUS_TYPE_SESSION,
@@ -678,8 +718,11 @@ gsd_sharing_manager_stop (GsdSharingManager *manager)
g_cancellable_cancel (manager->priv->cancellable);
g_clear_object (&manager->priv->cancellable);
}
+
+#ifdef HAVE_NETWORK_MANAGER
g_clear_object (&manager->priv->client);
g_clear_object (&manager->priv->remote_settings);
+#endif /* HAVE_NETWORK_MANAGER */
if (manager->priv->name_id != 0) {
g_bus_unown_name (manager->priv->name_id);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]