include: add nm-dbus-compat.h
authorDan Winship <danw@redhat.com>
Mon, 13 Apr 2015 14:28:17 +0000 (10:28 -0400)
committerDan Winship <danw@redhat.com>
Fri, 24 Jul 2015 17:25:47 +0000 (13:25 -0400)
Add a file containing the defines like DBUS_INTERFACE_DBUS from
dbus-shared.h, and use it from the gdbus-using files.

Also, convert a bunch of other places that were previously hardcoding
the string values to use the defines instead, and fix the ifcfg-rh
plugin to properly namespace its own D-Bus-related defines.

14 files changed:
include/Makefile.am
include/nm-dbus-compat.h [new file with mode: 0644]
libnm-glib/nm-active-connection.c
libnm-glib/nm-device.c
libnm-glib/nm-object.c
libnm-glib/nm-remote-settings.c
libnm-glib/nm-vpn-plugin.c
libnm/nm-dbus-helpers.h
libnm/tests/common.c
src/devices/team/nm-device-team.c
src/devices/wwan/nm-modem-manager.c
src/nm-dbus-manager.c
src/settings/plugins/ifcfg-rh/plugin.c
src/supplicant-manager/nm-supplicant-interface.c

index ff7eac8..2cd66c9 100644 (file)
@@ -1,5 +1,6 @@
 EXTRA_DIST = \
      gsystem-local-alloc.h \
+     nm-dbus-compat.h \
      nm-dbus-glib-types.h \
      nm-glib-compat.h \
      nm-gvaluearray-compat.h \
diff --git a/include/nm-dbus-compat.h b/include/nm-dbus-compat.h
new file mode 100644 (file)
index 0000000..dd97b5f
--- /dev/null
@@ -0,0 +1,74 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2015 Red Hat, Inc.
+ */
+
+#ifndef __NM_DBUS_COMPAT_H__
+#define __NM_DBUS_COMPAT_H__
+
+/* Copied from <dbus/dbus-shared.h> */
+
+/* Bus names */
+
+/** The bus name used to talk to the bus itself. */
+#define DBUS_SERVICE_DBUS      "org.freedesktop.DBus"
+
+/* Paths */
+/** The object path used to talk to the bus itself. */
+#define DBUS_PATH_DBUS  "/org/freedesktop/DBus"
+/** The object path used in local/in-process-generated messages. */
+#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"
+
+/* Interfaces, these #define don't do much other than
+ * catch typos at compile time
+ */
+/** The interface exported by the object with #DBUS_SERVICE_DBUS and #DBUS_PATH_DBUS */
+#define DBUS_INTERFACE_DBUS           "org.freedesktop.DBus"
+/** The interface supported by introspectable objects */
+#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
+/** The interface supported by objects with properties */
+#define DBUS_INTERFACE_PROPERTIES     "org.freedesktop.DBus.Properties"
+/** The interface supported by most dbus peers */
+#define DBUS_INTERFACE_PEER           "org.freedesktop.DBus.Peer"
+
+/** This is a special interface whose methods can only be invoked
+ * by the local implementation (messages from remote apps aren't
+ * allowed to specify this interface).
+ */
+#define DBUS_INTERFACE_LOCAL "org.freedesktop.DBus.Local"
+
+/* Owner flags */
+#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */
+#define DBUS_NAME_FLAG_REPLACE_EXISTING  0x2 /**< Request to replace the current primary owner */
+#define DBUS_NAME_FLAG_DO_NOT_QUEUE      0x4 /**< If we can not become the primary owner do not place us in the queue */
+
+/* Replies to request for a name */
+#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER  1 /**< Service has become the primary owner of the requested name */
+#define DBUS_REQUEST_NAME_REPLY_IN_QUEUE       2 /**< Service could not become the primary owner and has been placed in the queue */
+#define DBUS_REQUEST_NAME_REPLY_EXISTS         3 /**< Service is already in the queue */
+#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER  4 /**< Service is already the primary owner */
+
+/* Replies to releasing a name */
+#define DBUS_RELEASE_NAME_REPLY_RELEASED        1 /**< Service was released from the given name */
+#define DBUS_RELEASE_NAME_REPLY_NON_EXISTENT    2 /**< The given name does not exist on the bus */
+#define DBUS_RELEASE_NAME_REPLY_NOT_OWNER       3 /**< Service is not an owner of the given name */
+
+/* Replies to service starts */
+#define DBUS_START_REPLY_SUCCESS         1 /**< Service was auto started */
+#define DBUS_START_REPLY_ALREADY_RUNNING 2 /**< Service was already running */
+
+#endif  /* __NM_DBUS_COMPAT_H__ */
index 7067a11..e5f474f 100644 (file)
@@ -120,7 +120,7 @@ _nm_active_connection_type_for_path (DBusGConnection *connection,
        GValue value = G_VALUE_INIT;
        GType type;
 
-       proxy = _nm_dbus_new_proxy_for_connection (connection, path, "org.freedesktop.DBus.Properties");
+       proxy = _nm_dbus_new_proxy_for_connection (connection, path, DBUS_INTERFACE_PROPERTIES);
        if (!proxy) {
                g_warning ("%s: couldn't create D-Bus object proxy.", __func__);
                return G_TYPE_INVALID;
@@ -197,7 +197,7 @@ _nm_active_connection_type_for_path_async (DBusGConnection *connection,
        async_data->callback = callback;
        async_data->user_data = user_data;
 
-       proxy = _nm_dbus_new_proxy_for_connection (connection, path, "org.freedesktop.DBus.Properties");
+       proxy = _nm_dbus_new_proxy_for_connection (connection, path, DBUS_INTERFACE_PROPERTIES);
        dbus_g_proxy_begin_call (proxy, "Get",
                                 async_got_type, async_data, NULL,
                                 G_TYPE_STRING, NM_DBUS_INTERFACE_ACTIVE_CONNECTION,
index bd5d163..731edb6 100644 (file)
@@ -887,7 +887,7 @@ _nm_device_type_for_path (DBusGConnection *connection,
        GValue value = G_VALUE_INIT;
        NMDeviceType nm_dtype;
 
-       proxy = _nm_dbus_new_proxy_for_connection (connection, path, "org.freedesktop.DBus.Properties");
+       proxy = _nm_dbus_new_proxy_for_connection (connection, path, DBUS_INTERFACE_PROPERTIES);
        if (!proxy) {
                g_warning ("%s: couldn't create D-Bus object proxy.", __func__);
                return G_TYPE_INVALID;
@@ -987,7 +987,7 @@ _nm_device_type_for_path_async (DBusGConnection *connection,
        async_data->callback = callback;
        async_data->user_data = user_data;
 
-       proxy = _nm_dbus_new_proxy_for_connection (connection, path, "org.freedesktop.DBus.Properties");
+       proxy = _nm_dbus_new_proxy_for_connection (connection, path, DBUS_INTERFACE_PROPERTIES);
        dbus_g_proxy_begin_call (proxy, "Get",
                                 async_got_type, async_data, NULL,
                                 G_TYPE_STRING, NM_DBUS_INTERFACE_DEVICE,
index fb25c1a..2cf7119 100644 (file)
@@ -173,7 +173,7 @@ constructed (GObject *object)
        if (G_OBJECT_CLASS (nm_object_parent_class)->constructed)
                G_OBJECT_CLASS (nm_object_parent_class)->constructed (object);
 
-       priv->properties_proxy = _nm_object_new_proxy (self, NULL, "org.freedesktop.DBus.Properties");
+       priv->properties_proxy = _nm_object_new_proxy (self, NULL, DBUS_INTERFACE_PROPERTIES);
 
        if (_nm_object_is_connection_private (self))
                priv->nm_running = TRUE;
index 80a274f..20b4638 100644 (file)
@@ -1215,7 +1215,7 @@ constructed (GObject *object)
        /* D-Bus properties proxy */
        priv->props_proxy = _nm_dbus_new_proxy_for_connection (priv->bus,
                                                               NM_DBUS_PATH_SETTINGS,
-                                                              "org.freedesktop.DBus.Properties");
+                                                              DBUS_INTERFACE_PROPERTIES);
        g_assert (priv->props_proxy);
 
        /* Monitor properties */
index f40ea80..3acf26e 100644 (file)
@@ -768,9 +768,9 @@ constructor (GType type,
                goto err;
 
        proxy = dbus_g_proxy_new_for_name (connection,
-                                          "org.freedesktop.DBus",
-                                          "/org/freedesktop/DBus",
-                                          "org.freedesktop.DBus");
+                                          DBUS_SERVICE_DBUS,
+                                          DBUS_PATH_DBUS,
+                                          DBUS_INTERFACE_DBUS);
 
        if (!dbus_g_proxy_call (proxy, "RequestName", &err,
                                G_TYPE_STRING, priv->dbus_service_name,
index ca779d3..1b2f28e 100644 (file)
 
 #include <gio/gio.h>
 
-/* Copied from dbus/dbus-shared.h */
-#define DBUS_SERVICE_DBUS      "org.freedesktop.DBus"
-#define DBUS_PATH_DBUS  "/org/freedesktop/DBus"
-#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"
-
-#define DBUS_INTERFACE_DBUS           "org.freedesktop.DBus"
-#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
-#define DBUS_INTERFACE_PROPERTIES     "org.freedesktop.DBus.Properties"
-#define DBUS_INTERFACE_PEER           "org.freedesktop.DBus.Peer"
-
+#include "nm-dbus-compat.h"
 
 GBusType _nm_dbus_bus_type (void);
 
index a28e511..a90266c 100644 (file)
@@ -24,6 +24,7 @@
 #include <string.h>
 
 #include "NetworkManager.h"
+#include "nm-dbus-compat.h"
 
 #include "common.h"
 
@@ -34,9 +35,9 @@ name_exists (GDBusConnection *c, const char *name)
        gboolean exists = FALSE;
 
        reply = g_dbus_connection_call_sync (c,
-                                            "org.freedesktop.DBus",
-                                            "/org/freedesktop/DBus",
-                                            "org.freedesktop.DBus",
+                                            DBUS_SERVICE_DBUS,
+                                            DBUS_PATH_DBUS,
+                                            DBUS_INTERFACE_DBUS,
                                             "GetNameOwner",
                                             g_variant_new ("(s)", name),
                                             NULL,
index 23750f3..ccfab0f 100644 (file)
@@ -332,9 +332,9 @@ teamd_dbus_appeared (GDBusConnection *connection,
                guint32 pid;
 
                ret = g_dbus_connection_call_sync (connection,
-                                                  "org.freedesktop.DBus",
-                                                  "/org/freedesktop/DBus",
-                                                  "org.freedesktop.DBus",
+                                                  DBUS_SERVICE_DBUS,
+                                                  DBUS_PATH_DBUS,
+                                                  DBUS_INTERFACE_DBUS,
                                                   "GetConnectionUnixProcessID",
                                                   g_variant_new ("(s)", name_owner),
                                                   NULL,
index f0e5692..92ac0a1 100644 (file)
@@ -265,7 +265,7 @@ modem_manager_poke (NMModemManager *self)
        g_dbus_connection_call (self->priv->dbus_connection,
                                "org.freedesktop.ModemManager1",
                                "/org/freedesktop/ModemManager1",
-                               "org.freedesktop.DBus.Peer",
+                               DBUS_INTERFACE_PEER,
                                "Ping",
                                NULL, /* inputs */
                                NULL, /* outputs */
index b8b5325..4f3ea07 100644 (file)
@@ -769,9 +769,9 @@ nm_dbus_manager_init_bus (NMDBusManager *self)
        dbus_connection_set_exit_on_disconnect (priv->connection, FALSE);
 
        priv->proxy = dbus_g_proxy_new_for_name (priv->g_connection,
-                                                "org.freedesktop.DBus",
-                                                "/org/freedesktop/DBus",
-                                                "org.freedesktop.DBus");
+                                                DBUS_SERVICE_DBUS,
+                                                DBUS_PATH_DBUS,
+                                                DBUS_INTERFACE_DBUS);
 
        priv->proxy_destroy_id = g_signal_connect (priv->proxy, "destroy",
                                                   G_CALLBACK (destroy_cb), self);
index 8febfe6..d33b41c 100644 (file)
@@ -59,9 +59,8 @@
 #include "utils.h"
 #include "gsystem-local-alloc.h"
 
-#define DBUS_SERVICE_NAME "com.redhat.ifcfgrh1"
-#define DBUS_OBJECT_PATH "/com/redhat/ifcfgrh1"
-
+#define IFCFGRH1_DBUS_SERVICE_NAME "com.redhat.ifcfgrh1"
+#define IFCFGRH1_DBUS_OBJECT_PATH "/com/redhat/ifcfgrh1"
 
 #define _LOG_DEFAULT_DOMAIN  LOGD_SETTINGS
 
@@ -792,12 +791,12 @@ sc_plugin_ifcfg_init (SCPluginIfcfg *plugin)
                dbus_connection_set_exit_on_disconnect (tmp, FALSE);
 
                proxy = dbus_g_proxy_new_for_name (priv->bus,
-                                                  "org.freedesktop.DBus",
-                                                  "/org/freedesktop/DBus",
-                                                  "org.freedesktop.DBus");
+                                                  DBUS_SERVICE_DBUS,
+                                                  DBUS_PATH_DBUS,
+                                                  DBUS_INTERFACE_DBUS);
 
                if (!dbus_g_proxy_call (proxy, "RequestName", &error,
-                                       G_TYPE_STRING, DBUS_SERVICE_NAME,
+                                       G_TYPE_STRING, IFCFGRH1_DBUS_SERVICE_NAME,
                                        G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE,
                                        G_TYPE_INVALID,
                                        G_TYPE_UINT, &result,
@@ -927,9 +926,9 @@ nm_system_config_factory (void)
                priv = SC_PLUGIN_IFCFG_GET_PRIVATE (singleton);
                if (priv->bus)
                        dbus_g_connection_register_g_object (priv->bus,
-                                                            DBUS_OBJECT_PATH,
+                                                            IFCFGRH1_DBUS_OBJECT_PATH,
                                                             G_OBJECT (singleton));
-               _LOGD ("Acquired D-Bus service %s", DBUS_SERVICE_NAME);
+               _LOGD ("Acquired D-Bus service %s", IFCFGRH1_DBUS_SERVICE_NAME);
        } else
                g_object_ref (singleton);
 
index 19795bf..d2361f5 100644 (file)
@@ -32,6 +32,7 @@
 #include "nm-glib-compat.h"
 #include "gsystem-local-alloc.h"
 #include "nm-core-internal.h"
+#include "nm-dbus-compat.h"
 
 #define WPAS_DBUS_IFACE_INTERFACE   WPAS_DBUS_INTERFACE ".Interface"
 #define WPAS_DBUS_IFACE_BSS         WPAS_DBUS_INTERFACE ".BSS"
@@ -691,7 +692,7 @@ on_iface_proxy_acquired (GDBusProxy *proxy, GAsyncResult *result, gpointer user_
                 */
                priv->ready_count++;
                g_dbus_proxy_call (priv->iface_proxy,
-                                  "org.freedesktop.DBus.Introspectable.Introspect",
+                                  DBUS_INTERFACE_INTROSPECTABLE ".Introspect",
                                   NULL,
                                   G_DBUS_CALL_FLAGS_NONE,
                                   -1,
@@ -1133,7 +1134,7 @@ nm_supplicant_interface_set_config (NMSupplicantInterface *self,
        if (cfg) {
                priv->cfg = g_object_ref (cfg);
                g_dbus_proxy_call (priv->iface_proxy,
-                                  "org.freedesktop.DBus.Properties.Set",
+                                  DBUS_INTERFACE_PROPERTIES ".Set",
                                   g_variant_new ("(ssv)",
                                                  WPAS_DBUS_IFACE_INTERFACE,
                                                  "ApScan",