summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-09-29 13:49:01 +0200
committerThomas Haller <thaller@redhat.com>2016-10-04 09:50:56 +0200
commit4d37f7a1e94f469fb1e3eacde4d2424ebf6ccf0b (patch)
tree304dd68a6f6bab8fb3ba9cb63d76faf69a530650
parent92e9822e1be23b0a1964b8b16a1cd2c0c51ee59b (diff)
core: refactor private data in "src"
- use _NM_GET_PRIVATE() and _NM_GET_PRIVATE_PTR() everywhere. - reorder statements, to have GObject related functions (init, dispose, constructed) at the bottom of each file and in a consistent order w.r.t. each other. - unify whitespaces in signal and properties declarations. - use NM_GOBJECT_PROPERTIES_DEFINE() and _notify() - drop unused signal slots in class structures - drop unused header files for device factories
-rw-r--r--src/devices/adsl/nm-atm-manager.c72
-rw-r--r--src/devices/adsl/nm-atm-manager.h37
-rw-r--r--src/devices/adsl/nm-device-adsl.c143
-rw-r--r--src/devices/adsl/nm-device-adsl.h10
-rw-r--r--src/devices/bluetooth/Makefile.am1
-rw-r--r--src/devices/bluetooth/nm-bluez-common.h3
-rw-r--r--src/devices/bluetooth/nm-bluez-device.c276
-rw-r--r--src/devices/bluetooth/nm-bluez-device.h14
-rw-r--r--src/devices/bluetooth/nm-bluez-manager.c107
-rw-r--r--src/devices/bluetooth/nm-bluez-manager.h39
-rw-r--r--src/devices/bluetooth/nm-bluez4-adapter.c190
-rw-r--r--src/devices/bluetooth/nm-bluez4-adapter.h17
-rw-r--r--src/devices/bluetooth/nm-bluez4-manager.c68
-rw-r--r--src/devices/bluetooth/nm-bluez4-manager.h17
-rw-r--r--src/devices/bluetooth/nm-bluez5-manager.c69
-rw-r--r--src/devices/bluetooth/nm-bluez5-manager.h17
-rw-r--r--src/devices/bluetooth/nm-device-bt.c265
-rw-r--r--src/devices/bluetooth/nm-device-bt.h24
-rw-r--r--src/devices/nm-arping-manager.c82
-rw-r--r--src/devices/nm-arping-manager.h8
-rw-r--r--src/devices/nm-device-bond.c23
-rw-r--r--src/devices/nm-device-bond.h4
-rw-r--r--src/devices/nm-device-bridge.c23
-rw-r--r--src/devices/nm-device-bridge.h4
-rw-r--r--src/devices/nm-device-ethernet.c3
-rw-r--r--src/devices/nm-device-ethernet.h2
-rw-r--r--src/devices/nm-device-generic.c129
-rw-r--r--src/devices/nm-device-generic.h10
-rw-r--r--src/devices/nm-device-infiniband.c76
-rw-r--r--src/devices/nm-device-infiniband.h16
-rw-r--r--src/devices/nm-device-ip-tunnel.c279
-rw-r--r--src/devices/nm-device-ip-tunnel.h9
-rw-r--r--src/devices/nm-device-macvlan.c124
-rw-r--r--src/devices/nm-device-macvlan.h4
-rw-r--r--src/devices/nm-device-tun.c141
-rw-r--r--src/devices/nm-device-tun.h4
-rw-r--r--src/devices/nm-device-veth.c2
-rw-r--r--src/devices/nm-device-vlan.c102
-rw-r--r--src/devices/nm-device-vlan.h4
-rw-r--r--src/devices/nm-device-vxlan.c310
-rw-r--r--src/devices/nm-device-vxlan.h4
-rw-r--r--src/devices/nm-device.c3
-rw-r--r--src/devices/team/Makefile.am5
-rw-r--r--src/devices/team/nm-device-team.c66
-rw-r--r--src/devices/team/nm-device-team.h4
-rw-r--r--src/devices/team/nm-team-factory.c45
-rw-r--r--src/devices/team/nm-team-factory.h35
-rw-r--r--src/devices/wifi/nm-device-olpc-mesh.c132
-rw-r--r--src/devices/wifi/nm-device-olpc-mesh.h17
-rw-r--r--src/devices/wifi/nm-wifi-factory.c54
-rw-r--r--src/devices/wwan/Makefile.am1
-rw-r--r--src/devices/wwan/nm-device-modem.c241
-rw-r--r--src/devices/wwan/nm-device-modem.h10
-rw-r--r--src/devices/wwan/nm-modem-broadband.c349
-rw-r--r--src/devices/wwan/nm-modem-broadband.h14
-rw-r--r--src/devices/wwan/nm-modem-manager.c150
-rw-r--r--src/devices/wwan/nm-modem-manager.h22
-rw-r--r--src/devices/wwan/nm-modem-ofono.c89
-rw-r--r--src/devices/wwan/nm-modem-ofono.h9
-rw-r--r--src/devices/wwan/nm-modem.c426
-rw-r--r--src/devices/wwan/nm-modem.h24
-rw-r--r--src/devices/wwan/nm-wwan-factory.c66
-rw-r--r--src/devices/wwan/nm-wwan-factory.h35
-rw-r--r--src/dhcp-manager/nm-dhcp-listener.c2
-rw-r--r--src/dns-manager/nm-dns-dnsmasq.c37
-rw-r--r--src/dns-manager/nm-dns-dnsmasq.h10
-rw-r--r--src/dns-manager/nm-dns-plugin.c38
-rw-r--r--src/dns-manager/nm-dns-plugin.h11
-rw-r--r--src/dns-manager/nm-dns-systemd-resolved.c39
-rw-r--r--src/dns-manager/nm-dns-systemd-resolved.h10
-rw-r--r--src/dns-manager/nm-dns-unbound.c21
-rw-r--r--src/dns-manager/nm-dns-unbound.h9
-rw-r--r--src/dnsmasq-manager/nm-dnsmasq-manager.c66
-rw-r--r--src/dnsmasq-manager/nm-dnsmasq-manager.h10
-rw-r--r--src/nm-active-connection.c1
-rw-r--r--src/nm-audit-manager.c67
-rw-r--r--src/nm-audit-manager.h8
-rw-r--r--src/nm-auth-manager.c109
-rw-r--r--src/nm-auth-manager.h11
-rw-r--r--src/nm-bus-manager.c218
-rw-r--r--src/nm-bus-manager.h18
-rw-r--r--src/nm-checkpoint-manager.c1
-rw-r--r--src/nm-checkpoint-manager.h2
-rw-r--r--src/nm-checkpoint.c123
-rw-r--r--src/nm-checkpoint.h5
-rw-r--r--src/nm-config-data.c229
-rw-r--r--src/nm-config-data.h9
-rw-r--r--src/nm-config.c155
-rw-r--r--src/nm-config.h13
-rw-r--r--src/nm-connectivity.c155
-rw-r--r--src/nm-connectivity.h9
-rw-r--r--src/nm-default-route-manager.c32
-rw-r--r--src/nm-default-route-manager.h9
-rw-r--r--src/nm-dhcp4-config.c97
-rw-r--r--src/nm-dhcp4-config.h13
-rw-r--r--src/nm-dhcp6-config.c95
-rw-r--r--src/nm-dhcp6-config.h13
-rw-r--r--src/nm-exported-object.c6
-rw-r--r--src/nm-firewall-manager.c84
-rw-r--r--src/nm-firewall-manager.h25
-rw-r--r--src/nm-manager.c3
-rw-r--r--src/nm-policy.c110
-rw-r--r--src/nm-policy.h12
-rw-r--r--src/nm-rfkill-manager.c60
-rw-r--r--src/nm-rfkill-manager.h21
-rw-r--r--src/nm-route-manager.c35
-rw-r--r--src/nm-route-manager.h14
-rw-r--r--src/nm-session-monitor.c55
-rw-r--r--src/nm-session-monitor.h17
-rw-r--r--src/nm-sleep-monitor.c27
-rw-r--r--src/nm-sleep-monitor.h7
-rw-r--r--src/platform/nm-fake-platform.c114
-rw-r--r--src/platform/nm-fake-platform.h13
-rw-r--r--src/platform/nm-linux-platform.c33
-rw-r--r--src/platform/nm-linux-platform.h17
-rw-r--r--src/ppp-manager/nm-ppp-manager.c361
-rw-r--r--src/ppp-manager/nm-ppp-manager.h29
-rw-r--r--src/rdisc/nm-fake-rdisc.c47
-rw-r--r--src/rdisc/nm-fake-rdisc.h11
-rw-r--r--src/settings/nm-agent-manager.c130
-rw-r--r--src/settings/nm-agent-manager.h12
-rw-r--r--src/settings/nm-inotify-helper.c56
-rw-r--r--src/settings/nm-inotify-helper.h20
-rw-r--r--src/settings/nm-settings.c225
-rw-r--r--src/settings/nm-settings.h8
-rw-r--r--src/settings/plugins/ibft/nm-ibft-connection.c28
-rw-r--r--src/settings/plugins/ibft/nm-ibft-connection.h9
-rw-r--r--src/settings/plugins/ibft/plugin.c89
-rw-r--r--src/settings/plugins/ibft/plugin.h10
-rw-r--r--src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c238
-rw-r--r--src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h9
-rw-r--r--src/settings/plugins/ifcfg-rh/plugin.c139
-rw-r--r--src/settings/plugins/ifcfg-rh/plugin.h9
-rw-r--r--src/settings/plugins/ifnet/nm-ifnet-connection.c135
-rw-r--r--src/settings/plugins/ifnet/nm-ifnet-connection.h9
-rw-r--r--src/settings/plugins/ifnet/plugin.c158
-rw-r--r--src/settings/plugins/ifnet/plugin.h9
-rw-r--r--src/settings/plugins/ifupdown/nm-ifupdown-connection.c43
-rw-r--r--src/settings/plugins/ifupdown/nm-ifupdown-connection.h9
-rw-r--r--src/settings/plugins/ifupdown/plugin.c298
-rw-r--r--src/settings/plugins/ifupdown/plugin.h10
-rw-r--r--src/settings/plugins/keyfile/plugin.c87
-rw-r--r--src/settings/plugins/keyfile/plugin.h15
-rw-r--r--src/tests/config/nm-test-device.c41
-rw-r--r--src/tests/config/nm-test-device.h10
145 files changed, 4506 insertions, 4575 deletions
diff --git a/src/devices/adsl/nm-atm-manager.c b/src/devices/adsl/nm-atm-manager.c
index ab0f870218..5decea5200 100644
--- a/src/devices/adsl/nm-atm-manager.c
+++ b/src/devices/adsl/nm-atm-manager.c
@@ -24,26 +24,48 @@
#include <gudev/gudev.h>
#include <gmodule.h>
-#include "nm-atm-manager.h"
#include "nm-setting-adsl.h"
#include "nm-device-adsl.h"
#include "nm-device-factory.h"
#include "nm-platform.h"
+/*****************************************************************************/
+
+#define NM_TYPE_ATM_MANAGER (nm_atm_manager_get_type ())
+#define NM_ATM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ATM_MANAGER, NMAtmManager))
+#define NM_ATM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_ATM_MANAGER, NMAtmManagerClass))
+#define NM_IS_ATM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_ATM_MANAGER))
+#define NM_IS_ATM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_ATM_MANAGER))
+#define NM_ATM_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_ATM_MANAGER, NMAtmManagerClass))
+
+typedef struct _NMAtmManager NMAtmManager;
+typedef struct _NMAtmManagerClass NMAtmManagerClass;
+
+static GType nm_atm_manager_get_type (void);
+
+/*****************************************************************************/
+
typedef struct {
GUdevClient *client;
GSList *devices;
} NMAtmManagerPrivate;
-#define NM_ATM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ATM_MANAGER, NMAtmManagerPrivate))
+struct _NMAtmManager {
+ GObject parent;
+ NMAtmManagerPrivate _priv;
+};
-static GType nm_atm_manager_get_type (void);
+struct _NMAtmManagerClass {
+ GObjectClass parent;
+};
static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface);
G_DEFINE_TYPE_EXTENDED (NMAtmManager, nm_atm_manager, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init))
+#define NM_ATM_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAtmManager, NM_IS_ATM_MANAGER)
+
/*****************************************************************************/
G_MODULE_EXPORT NMDeviceFactory *
@@ -226,32 +248,16 @@ NM_DEVICE_FACTORY_DECLARE_TYPES (
/*****************************************************************************/
static void
-nm_atm_manager_init (NMAtmManager *self)
-{
- NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self);
- const char *subsys[] = { "atm", NULL };
-
- priv->client = g_udev_client_new (subsys);
- g_signal_connect (priv->client, "uevent", G_CALLBACK (handle_uevent), self);
-}
-
-static void
-device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
-{
- factory_iface->get_supported_types = get_supported_types;
- factory_iface->start = start;
-}
-
-static void
dispose (GObject *object)
{
NMAtmManager *self = NM_ATM_MANAGER (object);
NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self);
GSList *iter;
- if (priv->client)
+ if (priv->client) {
g_signal_handlers_disconnect_by_func (priv->client, handle_uevent, self);
- g_clear_object (&priv->client);
+ g_clear_object (&priv->client);
+ }
for (iter = priv->devices; iter; iter = iter->next)
g_object_weak_unref (G_OBJECT (iter->data), device_destroyed, self);
@@ -265,8 +271,24 @@ nm_atm_manager_class_init (NMAtmManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMAtmManagerPrivate));
-
- /* virtual methods */
object_class->dispose = dispose;
}
+
+/*****************************************************************************/
+
+static void
+nm_atm_manager_init (NMAtmManager *self)
+{
+ NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self);
+ const char *subsys[] = { "atm", NULL };
+
+ priv->client = g_udev_client_new (subsys);
+ g_signal_connect (priv->client, "uevent", G_CALLBACK (handle_uevent), self);
+}
+
+static void
+device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
+{
+ factory_iface->get_supported_types = get_supported_types;
+ factory_iface->start = start;
+}
diff --git a/src/devices/adsl/nm-atm-manager.h b/src/devices/adsl/nm-atm-manager.h
deleted file mode 100644
index bcbc6c77bc..0000000000
--- a/src/devices/adsl/nm-atm-manager.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* NetworkManager -- Network link manager
- *
- * 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 (C) 2007 - 2008 Novell, Inc.
- * Copyright (C) 2007 - 2014 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_ATM_MANAGER_H__
-#define __NETWORKMANAGER_ATM_MANAGER_H__
-
-#define NM_TYPE_ATM_MANAGER (nm_atm_manager_get_type ())
-#define NM_ATM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ATM_MANAGER, NMAtmManager))
-
-typedef struct {
- GObject parent;
-} NMAtmManager;
-
-typedef struct {
- GObjectClass parent;
-} NMAtmManagerClass;
-
-#endif /* __NETWORKMANAGER_ATM_MANAGER_H__ */
-
diff --git a/src/devices/adsl/nm-device-adsl.c b/src/devices/adsl/nm-device-adsl.c
index b69528d097..a5b6641abf 100644
--- a/src/devices/adsl/nm-device-adsl.c
+++ b/src/devices/adsl/nm-device-adsl.c
@@ -20,24 +20,23 @@
#include "nm-default.h"
+#include "nm-device-adsl.h"
+
#include <sys/socket.h>
#include <linux/atmdev.h>
#include <linux/atmbr2684.h>
-
#include <errno.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <unistd.h>
-
#include <stdlib.h>
#include <string.h>
-#include "nm-device-adsl.h"
#include "nm-device-private.h"
#include "nm-enum-types.h"
#include "nm-platform.h"
-
#include "ppp-manager/nm-ppp-manager.h"
+#include "ppp-manager/nm-ppp-status.h"
#include "nm-setting-adsl.h"
#include "nm-utils.h"
@@ -46,18 +45,11 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF (NMDeviceAdsl);
-G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE)
-
-#define NM_DEVICE_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ADSL, NMDeviceAdslPrivate))
+/*****************************************************************************/
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_ATM_INDEX,
-
- LAST_PROP
-};
-
-/*****************************************************************************/
+);
typedef struct {
guint carrier_poll_id;
@@ -74,6 +66,19 @@ typedef struct {
guint nas_update_count;
} NMDeviceAdslPrivate;
+struct _NMDeviceAdsl {
+ NMDevice parent;
+ NMDeviceAdslPrivate _priv;
+};
+
+struct _NMDeviceAdslClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_ADSL_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceAdsl, NM_IS_DEVICE_ADSL)
+
/*****************************************************************************/
static NMDeviceCapabilities
@@ -547,57 +552,13 @@ carrier_update_cb (gpointer user_data)
/*****************************************************************************/
-NMDevice *
-nm_device_adsl_new (const char *udi,
- const char *iface,
- const char *driver,
- int atm_index)
-{
- g_return_val_if_fail (udi != NULL, NULL);
- g_return_val_if_fail (atm_index >= 0, NULL);
-
- return (NMDevice *) g_object_new (NM_TYPE_DEVICE_ADSL,
- NM_DEVICE_UDI, udi,
- NM_DEVICE_IFACE, iface,
- NM_DEVICE_DRIVER, driver,
- NM_DEVICE_ADSL_ATM_INDEX, atm_index,
- NM_DEVICE_TYPE_DESC, "ADSL",
- NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_ADSL,
- NULL);
-}
-
-static void
-constructed (GObject *object)
-{
- NMDeviceAdsl *self = NM_DEVICE_ADSL (object);
- NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self);
-
- G_OBJECT_CLASS (nm_device_adsl_parent_class)->constructed (object);
-
- priv->carrier_poll_id = g_timeout_add_seconds (5, carrier_update_cb, self);
-
- _LOGD (LOGD_ADSL, "ATM device index %d", priv->atm_index);
-
- g_return_if_fail (priv->atm_index >= 0);
-}
-
-static void
-dispose (GObject *object)
-{
- adsl_cleanup (NM_DEVICE_ADSL (object));
-
- nm_clear_g_source (&NM_DEVICE_ADSL_GET_PRIVATE (object)->carrier_poll_id);
-
- G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object);
-}
-
static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
switch (prop_id) {
case PROP_ATM_INDEX:
- g_value_set_int (value, NM_DEVICE_ADSL_GET_PRIVATE (object)->atm_index);
+ g_value_set_int (value, NM_DEVICE_ADSL_GET_PRIVATE ((NMDeviceAdsl *) object)->atm_index);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -612,7 +573,7 @@ set_property (GObject *object, guint prop_id,
switch (prop_id) {
case PROP_ATM_INDEX:
/* construct only */
- NM_DEVICE_ADSL_GET_PRIVATE (object)->atm_index = g_value_get_int (value);
+ NM_DEVICE_ADSL_GET_PRIVATE ((NMDeviceAdsl *) object)->atm_index = g_value_get_int (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -620,19 +581,63 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
static void
nm_device_adsl_init (NMDeviceAdsl *self)
{
}
static void
+constructed (GObject *object)
+{
+ NMDeviceAdsl *self = NM_DEVICE_ADSL (object);
+ NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self);
+
+ G_OBJECT_CLASS (nm_device_adsl_parent_class)->constructed (object);
+
+ priv->carrier_poll_id = g_timeout_add_seconds (5, carrier_update_cb, self);
+
+ _LOGD (LOGD_ADSL, "ATM device index %d", priv->atm_index);
+
+ g_return_if_fail (priv->atm_index >= 0);
+}
+
+NMDevice *
+nm_device_adsl_new (const char *udi,
+ const char *iface,
+ const char *driver,
+ int atm_index)
+{
+ g_return_val_if_fail (udi != NULL, NULL);
+ g_return_val_if_fail (atm_index >= 0, NULL);
+
+ return (NMDevice *) g_object_new (NM_TYPE_DEVICE_ADSL,
+ NM_DEVICE_UDI, udi,
+ NM_DEVICE_IFACE, iface,
+ NM_DEVICE_DRIVER, driver,
+ NM_DEVICE_ADSL_ATM_INDEX, atm_index,
+ NM_DEVICE_TYPE_DESC, "ADSL",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_ADSL,
+ NULL);
+}
+
+static void
+dispose (GObject *object)
+{
+ adsl_cleanup (NM_DEVICE_ADSL (object));
+
+ nm_clear_g_source (&NM_DEVICE_ADSL_GET_PRIVATE ((NMDeviceAdsl *) object)->carrier_poll_id);
+
+ G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object);
+}
+
+static void
nm_device_adsl_class_init (NMDeviceAdslClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceAdslPrivate));
-
object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->get_property = get_property;
@@ -647,13 +652,13 @@ nm_device_adsl_class_init (NMDeviceAdslClass *klass)
parent_class->act_stage3_ip4_config_start = act_stage3_ip4_config_start;
parent_class->deactivate = deactivate;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_ATM_INDEX,
- g_param_spec_int (NM_DEVICE_ADSL_ATM_INDEX, "", "",
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ATM_INDEX] =
+ g_param_spec_int (NM_DEVICE_ADSL_ATM_INDEX, "", "",
+ -1, G_MAXINT, -1,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_ADSL_SKELETON,
diff --git a/src/devices/adsl/nm-device-adsl.h b/src/devices/adsl/nm-device-adsl.h
index cfde2b3529..ff8d1f999d 100644
--- a/src/devices/adsl/nm-device-adsl.h
+++ b/src/devices/adsl/nm-device-adsl.h
@@ -22,7 +22,6 @@
#ifndef __NETWORKMANAGER_DEVICE_ADSL_H__
#define __NETWORKMANAGER_DEVICE_ADSL_H__
-// Parent class
#include "nm-device.h"
#define NM_TYPE_DEVICE_ADSL (nm_device_adsl_get_type ())
@@ -34,13 +33,8 @@
#define NM_DEVICE_ADSL_ATM_INDEX "atm-index"
-typedef struct {
- NMDevice parent;
-} NMDeviceAdsl;
-
-typedef struct {
- NMDeviceClass parent;
-} NMDeviceAdslClass;
+typedef struct _NMDeviceAdsl NMDeviceAdsl;
+typedef struct _NMDeviceAdslClass NMDeviceAdslClass;
GType nm_device_adsl_get_type (void);
diff --git a/src/devices/bluetooth/Makefile.am b/src/devices/bluetooth/Makefile.am
index 8997bf7861..7ac7bff0ec 100644
--- a/src/devices/bluetooth/Makefile.am
+++ b/src/devices/bluetooth/Makefile.am
@@ -33,7 +33,6 @@ SYMBOL_VIS_FILE=$(srcdir)/exports.ver
libnm_device_plugin_bluetooth_la_SOURCES = \
nm-bluez-manager.c \
- nm-bluez-manager.h \
nm-bluez-common.h \
nm-bluez-device.c \
nm-bluez-device.h \
diff --git a/src/devices/bluetooth/nm-bluez-common.h b/src/devices/bluetooth/nm-bluez-common.h
index 67810b94ce..6e97c3f512 100644
--- a/src/devices/bluetooth/nm-bluez-common.h
+++ b/src/devices/bluetooth/nm-bluez-common.h
@@ -39,5 +39,6 @@
#define BLUEZ4_SERIAL_INTERFACE "org.bluez.Serial"
#define BLUEZ4_NETWORK_INTERFACE "org.bluez.Network"
-#endif /* NM_BLUEZ_COMMON_H */
+#define NM_BLUEZ_MANAGER_BDADDR_ADDED "bdaddr-added"
+#endif /* NM_BLUEZ_COMMON_H */
diff --git a/src/devices/bluetooth/nm-bluez-device.c b/src/devices/bluetooth/nm-bluez-device.c
index 0e406bcc38..6e705f93da 100644
--- a/src/devices/bluetooth/nm-bluez-device.c
+++ b/src/devices/bluetooth/nm-bluez-device.c
@@ -21,13 +21,13 @@
#include "nm-default.h"
+#include "nm-bluez-device.h"
+
#include <string.h>
#include "nm-core-internal.h"
-
#include "nm-bt-error.h"
#include "nm-bluez-common.h"
-#include "nm-bluez-device.h"
#include "nm-settings.h"
#include "nm-settings-connection.h"
#include "NetworkManagerUtils.h"
@@ -36,9 +36,31 @@
#include "nm-bluez5-dun.h"
#endif
-G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT)
+/*****************************************************************************/
+
+#define VARIANT_IS_OF_TYPE_BOOLEAN(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_BOOLEAN) ))
+#define VARIANT_IS_OF_TYPE_STRING(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING) ))
+#define VARIANT_IS_OF_TYPE_OBJECT_PATH(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_OBJECT_PATH) ))
+#define VARIANT_IS_OF_TYPE_STRING_ARRAY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING_ARRAY) ))
+
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE (NMBluezDevice,
+ PROP_PATH,
+ PROP_ADDRESS,
+ PROP_NAME,
+ PROP_CAPABILITIES,
+ PROP_USABLE,
+ PROP_CONNECTED,
+);
+
+enum {
+ INITIALIZED,
+ REMOVED,
+ LAST_SIGNAL
+};
-#define NM_BLUEZ_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ_DEVICE, NMBluezDevicePrivate))
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
char *path;
@@ -75,38 +97,25 @@ typedef struct {
gboolean pan_connection_no_autocreate;
} NMBluezDevicePrivate;
-
-enum {
- PROP_0,
- PROP_PATH,
- PROP_ADDRESS,
- PROP_NAME,
- PROP_CAPABILITIES,
- PROP_USABLE,
- PROP_CONNECTED,
-
- LAST_PROP
+struct _NMBluezDevice {
+ GObject parent;
+ NMBluezDevicePrivate _priv;
};
-/* Signals */
-enum {
- INITIALIZED,
- REMOVED,
- LAST_SIGNAL
+struct _NMBluezDeviceClass {
+ GObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT)
+
+#define NM_BLUEZ_DEVICE_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluezDevice, NM_IS_BLUEZ_DEVICE)
+
+/*****************************************************************************/
static void cp_connection_added (NMSettings *settings,
NMConnection *connection, NMBluezDevice *self);
static gboolean connection_compatible (NMBluezDevice *self, NMConnection *connection);
-
-#define VARIANT_IS_OF_TYPE_BOOLEAN(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_BOOLEAN) ))
-#define VARIANT_IS_OF_TYPE_STRING(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING) ))
-#define VARIANT_IS_OF_TYPE_OBJECT_PATH(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_OBJECT_PATH) ))
-#define VARIANT_IS_OF_TYPE_STRING_ARRAY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING_ARRAY) ))
-
/*****************************************************************************/
const char *
@@ -292,7 +301,7 @@ check_emit_usable (NMBluezDevice *self)
END:
if (new_usable != priv->usable) {
priv->usable = new_usable;
- g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE);
+ _notify (self, PROP_USABLE);
}
return G_SOURCE_REMOVE;
@@ -424,7 +433,7 @@ bluez_disconnect_cb (GDBusConnection *dbus_connection,
GAsyncResult *res,
gpointer user_data)
{
- NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (user_data);
+ NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) user_data);
GError *error = NULL;
GVariant *variant;
@@ -628,7 +637,7 @@ nm_bluez_device_connect_finish (NMBluezDevice *self,
device = (const char *) g_simple_async_result_get_op_res_gpointer (simple);
if (device && priv->bluez_version == 5) {
priv->connected = TRUE;
- g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED);
+ _notify (self, PROP_CONNECTED);
}
return device;
@@ -695,7 +704,7 @@ _set_property_capabilities (NMBluezDevice *self, const char **uuids)
((uint_val & NM_BT_CAPABILITY_DUN) && (uint_val &NM_BT_CAPABILITY_NAP)) ? " | " : "",
uint_val & NM_BT_CAPABILITY_DUN ? "DUN" : "");
priv->capabilities = uint_val;
- g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CAPABILITIES);
+ _notify (self, PROP_CAPABILITIES);
}
}
@@ -727,7 +736,7 @@ _set_property_address (NMBluezDevice *self, const char *addr)
}
priv->address = g_strdup (addr);
- g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_ADDRESS);
+ _notify (self, PROP_ADDRESS);
}
static void
@@ -749,7 +758,7 @@ _take_variant_property_name (NMBluezDevice *self, GVariant *v)
if (g_strcmp0 (priv->name, str)) {
g_free (priv->name);
priv->name = g_strdup (str);
- g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_NAME);
+ _notify (self, PROP_NAME);
}
}
if (v)
@@ -779,7 +788,7 @@ _take_variant_property_connected (NMBluezDevice *self, GVariant *v)
if (priv->connected != connected) {
priv->connected = connected;
- g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED);
+ _notify (self, PROP_CONNECTED);
}
}
if (v)
@@ -1029,6 +1038,61 @@ on_bus_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
/*****************************************************************************/
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) object);
+
+ switch (prop_id) {
+ case PROP_PATH:
+ g_value_set_string (value, priv->path);
+ break;
+ case PROP_ADDRESS:
+ g_value_set_string (value, priv->address);
+ break;
+ case PROP_NAME:
+ g_value_set_string (value, priv->name);
+ break;
+ case PROP_CAPABILITIES:
+ g_value_set_uint (value, priv->capabilities);
+ break;
+ case PROP_USABLE:
+ g_value_set_boolean (value, priv->usable);
+ break;
+ case PROP_CONNECTED:
+ g_value_set_boolean (value, priv->connected);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) object);
+
+ switch (prop_id) {
+ case PROP_PATH:
+ /* construct only */
+ priv->path = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
+nm_bluez_device_init (NMBluezDevice *self)
+{
+}
+
NMBluezDevice *
nm_bluez_device_new (const char *path,
const char *adapter_address,
@@ -1090,11 +1154,6 @@ nm_bluez_device_new (const char *path,
}
static void
-nm_bluez_device_init (NMBluezDevice *self)
-{
-}
-
-static void
dispose (GObject *object)
{
NMBluezDevice *self = NM_BLUEZ_DEVICE (object);
@@ -1146,7 +1205,7 @@ dispose (GObject *object)
static void
finalize (GObject *object)
{
- NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object);
+ NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) object);
nm_log_dbg (LOGD_BT, "bluez[%s]: finalize NMBluezDevice", priv->path);
@@ -1164,121 +1223,64 @@ finalize (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_PATH:
- g_value_set_string (value, priv->path);
- break;
- case PROP_ADDRESS:
- g_value_set_string (value, priv->address);
- break;
- case PROP_NAME:
- g_value_set_string (value, priv->name);
- break;
- case PROP_CAPABILITIES:
- g_value_set_uint (value, priv->capabilities);
- break;
- case PROP_USABLE:
- g_value_set_boolean (value, priv->usable);
- break;
- case PROP_CONNECTED:
- g_value_set_boolean (value, priv->connected);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_PATH:
- /* construct only */
- priv->path = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_bluez_device_class_init (NMBluezDeviceClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMBluezDevicePrivate));
-
- /* virtual methods */
object_class->get_property = get_property;
object_class->set_property = set_property;
object_class->dispose = dispose;
object_class->finalize = finalize;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_PATH,
- g_param_spec_string (NM_BLUEZ_DEVICE_PATH, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_ADDRESS,
- g_param_spec_string (NM_BLUEZ_DEVICE_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_NAME,
- g_param_spec_string (NM_BLUEZ_DEVICE_NAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CAPABILITIES,
- g_param_spec_uint (NM_BLUEZ_DEVICE_CAPABILITIES, "", "",
- 0, G_MAXUINT, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_USABLE,
- g_param_spec_boolean (NM_BLUEZ_DEVICE_USABLE, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CONNECTED,
- g_param_spec_boolean (NM_BLUEZ_DEVICE_CONNECTED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /* Signals */
+ obj_properties[PROP_PATH] =
+ g_param_spec_string (NM_BLUEZ_DEVICE_PATH, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_ADDRESS] =
+ g_param_spec_string (NM_BLUEZ_DEVICE_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_NAME] =
+ g_param_spec_string (NM_BLUEZ_DEVICE_NAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CAPABILITIES] =
+ g_param_spec_uint (NM_BLUEZ_DEVICE_CAPABILITIES, "", "",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_USABLE] =
+ g_param_spec_boolean (NM_BLUEZ_DEVICE_USABLE, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CONNECTED] =
+ g_param_spec_boolean (NM_BLUEZ_DEVICE_CONNECTED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
signals[INITIALIZED] = g_signal_new ("initialized",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMBluezDeviceClass, initialized),
+ 0,
NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
signals[REMOVED] = g_signal_new (NM_BLUEZ_DEVICE_REMOVED,
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMBluezDeviceClass, removed),
+ 0,
NULL, NULL, NULL,
G_TYPE_NONE, 0);
}
diff --git a/src/devices/bluetooth/nm-bluez-device.h b/src/devices/bluetooth/nm-bluez-device.h
index 66a349e0db..e56d5d2429 100644
--- a/src/devices/bluetooth/nm-bluez-device.h
+++ b/src/devices/bluetooth/nm-bluez-device.h
@@ -41,18 +41,8 @@
/* Signals */
#define NM_BLUEZ_DEVICE_REMOVED "removed"
-typedef struct {
- GObject parent;
-} NMBluezDevice;
-
-typedef struct {
- GObjectClass parent;
-
- /* virtual functions */
- void (*initialized) (NMBluezDevice *self, gboolean success);
-
- void (*removed) (NMBluezDevice *self);
-} NMBluezDeviceClass;
+typedef struct _NMBluezDevice NMBluezDevice;
+typedef struct _NMBluezDeviceClass NMBluezDeviceClass;
GType nm_bluez_device_get_type (void);
diff --git a/src/devices/bluetooth/nm-bluez-manager.c b/src/devices/bluetooth/nm-bluez-manager.c
index 78d907157c..bc262eebdd 100644
--- a/src/devices/bluetooth/nm-bluez-manager.c
+++ b/src/devices/bluetooth/nm-bluez-manager.c
@@ -20,8 +20,6 @@
#include "nm-default.h"
-#include "nm-bluez-manager.h"
-
#include <signal.h>
#include <string.h>
#include <stdlib.h>
@@ -39,15 +37,21 @@
#include "nm-platform.h"
#include "nm-dbus-compat.h"
-#define _NMLOG_DOMAIN LOGD_BT
-#define _NMLOG_PREFIX_NAME "bluez"
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), _NMLOG_DOMAIN, \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
+/*****************************************************************************/
+
+#define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ())
+#define NM_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManager))
+#define NM_BLUEZ_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerClass))
+#define NM_IS_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_BLUEZ_MANAGER))
+#define NM_IS_BLUEZ_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_BLUEZ_MANAGER))
+#define NM_BLUEZ_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerClass))
+
+typedef struct _NMBluezManager NMBluezManager;
+typedef struct _NMBluezManagerClass NMBluezManagerClass;
+
+static GType nm_bluez_manager_get_type (void);
+
+/*****************************************************************************/
typedef struct {
int bluez_version;
@@ -62,24 +66,37 @@ typedef struct {
GCancellable *async_cancellable;
} NMBluezManagerPrivate;
-#define NM_BLUEZ_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerPrivate))
+struct _NMBluezManager {
+ GObject parent;
+ NMBluezManagerPrivate _priv;
+};
-static GType nm_bluez_manager_get_type (void);
+struct _NMBluezManagerClass {
+ GObjectClass parent;
+};
static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface);
G_DEFINE_TYPE_EXTENDED (NMBluezManager, nm_bluez_manager, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init))
-static void check_bluez_and_try_setup (NMBluezManager *self);
+#define NM_BLUEZ_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluezManager, NM_IS_BLUEZ_MANAGER)
/*****************************************************************************/
-G_MODULE_EXPORT NMDeviceFactory *
-nm_device_factory_create (GError **error)
-{
- return (NMDeviceFactory *) g_object_new (NM_TYPE_BLUEZ_MANAGER, NULL);
-}
+#define _NMLOG_DOMAIN LOGD_BT
+#define _NMLOG_PREFIX_NAME "bluez"
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), _NMLOG_DOMAIN, \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
+
+static void check_bluez_and_try_setup (NMBluezManager *self);
/*****************************************************************************/
@@ -382,6 +399,18 @@ start (NMDeviceFactory *factory)
check_bluez_and_try_setup (NM_BLUEZ_MANAGER (factory));
}
+static NMDevice *
+create_device (NMDeviceFactory *factory,
+ const char *iface,
+ const NMPlatformLink *plink,
+ NMConnection *connection,
+ gboolean *out_ignore)
+{
+ g_warn_if_fail (plink->type == NM_LINK_TYPE_BNEP);
+ *out_ignore = TRUE;
+ return NULL;
+}
+
NM_DEVICE_FACTORY_DECLARE_TYPES (
NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_BNEP)
NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_BLUETOOTH_SETTING_NAME)
@@ -390,6 +419,14 @@ NM_DEVICE_FACTORY_DECLARE_TYPES (
/*****************************************************************************/
static void
+nm_bluez_manager_init (NMBluezManager *self)
+{
+ NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self);
+
+ priv->settings = g_object_ref (NM_SETTINGS_GET);
+}
+
+static void
dispose (GObject *object)
{
NMBluezManager *self = NM_BLUEZ_MANAGER (object);
@@ -414,23 +451,11 @@ dispose (GObject *object)
}
static void
-nm_bluez_manager_init (NMBluezManager *self)
+nm_bluez_manager_class_init (NMBluezManagerClass *klass)
{
- NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self);
-
- priv->settings = g_object_ref (NM_SETTINGS_GET);
-}
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
-static NMDevice *
-create_device (NMDeviceFactory *factory,
- const char *iface,
- const NMPlatformLink *plink,
- NMConnection *connection,
- gboolean *out_ignore)
-{
- g_warn_if_fail (plink->type == NM_LINK_TYPE_BNEP);
- *out_ignore = TRUE;
- return NULL;
+ object_class->dispose = dispose;
}
static void
@@ -441,14 +466,10 @@ device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
factory_iface->start = start;
}
-static void
-nm_bluez_manager_class_init (NMBluezManagerClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (NMBluezManagerPrivate));
+/*****************************************************************************/
- /* virtual methods */
- object_class->dispose = dispose;
+G_MODULE_EXPORT NMDeviceFactory *
+nm_device_factory_create (GError **error)
+{
+ return (NMDeviceFactory *) g_object_new (NM_TYPE_BLUEZ_MANAGER, NULL);
}
-
diff --git a/src/devices/bluetooth/nm-bluez-manager.h b/src/devices/bluetooth/nm-bluez-manager.h
deleted file mode 100644
index d23b33a7d8..0000000000
--- a/src/devices/bluetooth/nm-bluez-manager.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* NetworkManager -- Network link manager
- *
- * 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 (C) 2007 - 2008 Novell, Inc.
- * Copyright (C) 2007 - 2014 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_BLUEZ_MANAGER_H__
-#define __NETWORKMANAGER_BLUEZ_MANAGER_H__
-
-#define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ())
-#define NM_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManager))
-
-#define NM_BLUEZ_MANAGER_BDADDR_ADDED "bdaddr-added"
-
-typedef struct {
- GObject parent;
-} NMBluezManager;
-
-typedef struct {
- GObjectClass parent;
-} NMBluezManagerClass;
-
-#endif /* __NETWORKMANAGER_BLUEZ_MANAGER_H__ */
-
diff --git a/src/devices/bluetooth/nm-bluez4-adapter.c b/src/devices/bluetooth/nm-bluez4-adapter.c
index 17feae1b1c..dd684f29c2 100644
--- a/src/devices/bluetooth/nm-bluez4-adapter.c
+++ b/src/devices/bluetooth/nm-bluez4-adapter.c
@@ -30,9 +30,21 @@
#include "nm-core-internal.h"
#include "nm-settings.h"
-G_DEFINE_TYPE (NMBluez4Adapter, nm_bluez4_adapter, G_TYPE_OBJECT)
+/*****************************************************************************/
-#define NM_BLUEZ4_ADAPTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ4_ADAPTER, NMBluez4AdapterPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_PATH,
+ PROP_ADDRESS,
+);
+
+enum {
+ INITIALIZED,
+ DEVICE_ADDED,
+ DEVICE_REMOVED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
char *path;
@@ -46,26 +58,25 @@ typedef struct {
NMSettings *settings;
} NMBluez4AdapterPrivate;
-
-enum {
- PROP_0,
- PROP_PATH,
- PROP_ADDRESS,
-
- LAST_PROP
+struct _NMBluez4Adapter {
+ GObject parent;
+ NMBluez4AdapterPrivate _priv;
};
-/* Signals */
-enum {
- INITIALIZED,
- DEVICE_ADDED,
- DEVICE_REMOVED,
- LAST_SIGNAL
+struct _NMBluez4AdapterClass {
+ GObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE (NMBluez4Adapter, nm_bluez4_adapter, G_TYPE_OBJECT)
+
+#define NM_BLUEZ4_ADAPTER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluez4Adapter, NM_IS_BLUEZ4_ADAPTER)
+
+/*****************************************************************************/
static void device_do_remove (NMBluez4Adapter *self, NMBluezDevice *device);
+/*****************************************************************************/
+
const char *
nm_bluez4_adapter_get_path (NMBluez4Adapter *self)
{
@@ -235,6 +246,61 @@ query_properties (NMBluez4Adapter *self)
/*****************************************************************************/
+static gboolean
+_find_all (gpointer key, gpointer value, gpointer user_data)
+{
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE ((NMBluez4Adapter *) object);
+
+ switch (prop_id) {
+ case PROP_PATH:
+ g_value_set_string (value, priv->path);
+ break;
+ case PROP_ADDRESS:
+ g_value_set_string (value, priv->address);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE ((NMBluez4Adapter *) object);
+
+ switch (prop_id) {
+ case PROP_PATH:
+ /* construct only */
+ priv->path = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
+nm_bluez4_adapter_init (NMBluez4Adapter *self)
+{
+ NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self);
+
+ priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal,
+ NULL, NULL);
+}
+
NMBluez4Adapter *
nm_bluez4_adapter_new (const char *path, NMSettings *settings)
{
@@ -267,21 +333,6 @@ nm_bluez4_adapter_new (const char *path, NMSettings *settings)
}
static void
-nm_bluez4_adapter_init (NMBluez4Adapter *self)
-{
- NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self);
-
- priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal,
- NULL, NULL);
-}
-
-static gboolean
-_find_all (gpointer key, gpointer value, gpointer user_data)
-{
- return TRUE;
-}
-
-static void
dispose (GObject *object)
{
NMBluez4Adapter *self = NM_BLUEZ4_ADAPTER (object);
@@ -297,7 +348,7 @@ dispose (GObject *object)
static void
finalize (GObject *object)
{
- NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (object);
+ NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE ((NMBluez4Adapter *) object);
g_hash_table_destroy (priv->devices);
g_free (priv->address);
@@ -310,74 +361,33 @@ finalize (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_PATH:
- g_value_set_string (value, priv->path);
- break;
- case PROP_ADDRESS:
- g_value_set_string (value, priv->address);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_PATH:
- /* construct only */
- priv->path = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_bluez4_adapter_class_init (NMBluez4AdapterClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMBluez4AdapterPrivate));
-
- /* virtual methods */
object_class->get_property = get_property;
object_class->set_property = set_property;
object_class->dispose = dispose;
object_class->finalize = finalize;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_PATH,
- g_param_spec_string (NM_BLUEZ4_ADAPTER_PATH, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_ADDRESS,
- g_param_spec_string (NM_BLUEZ4_ADAPTER_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /* Signals */
+ obj_properties[PROP_PATH] =
+ g_param_spec_string (NM_BLUEZ4_ADAPTER_PATH, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_ADDRESS] =
+ g_param_spec_string (NM_BLUEZ4_ADAPTER_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
signals[INITIALIZED] = g_signal_new ("initialized",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMBluez4AdapterClass, initialized),
+ 0,
NULL, NULL,
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
@@ -385,7 +395,7 @@ nm_bluez4_adapter_class_init (NMBluez4AdapterClass *config_class)
signals[DEVICE_ADDED] = g_signal_new ("device-added",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMBluez4AdapterClass, device_added),
+ 0,
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, G_TYPE_OBJECT);
@@ -393,7 +403,7 @@ nm_bluez4_adapter_class_init (NMBluez4AdapterClass *config_class)
signals[DEVICE_REMOVED] = g_signal_new ("device-removed",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMBluez4AdapterClass, device_removed),
+ 0,
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, G_TYPE_OBJECT);
diff --git a/src/devices/bluetooth/nm-bluez4-adapter.h b/src/devices/bluetooth/nm-bluez4-adapter.h
index ee61112f2e..e240ec2ccb 100644
--- a/src/devices/bluetooth/nm-bluez4-adapter.h
+++ b/src/devices/bluetooth/nm-bluez4-adapter.h
@@ -33,20 +33,8 @@
#define NM_BLUEZ4_ADAPTER_PATH "path"
#define NM_BLUEZ4_ADAPTER_ADDRESS "address"
-typedef struct {
- GObject parent;
-} NMBluez4Adapter;
-
-typedef struct {
- GObjectClass parent;
-
- /* virtual functions */
- void (*initialized) (NMBluez4Adapter *self, gboolean success);
-
- void (*device_added) (NMBluez4Adapter *self, NMBluezDevice *device);
-
- void (*device_removed) (NMBluez4Adapter *self, NMBluezDevice *device);
-} NMBluez4AdapterClass;
+typedef struct _NMBluez4Adapter NMBluez4Adapter;
+typedef struct _NMBluez4AdapterClass NMBluez4AdapterClass;
GType nm_bluez4_adapter_get_type (void);
@@ -62,4 +50,3 @@ gboolean nm_bluez4_adapter_get_initialized (NMBluez4Adapter *self);
GSList *nm_bluez4_adapter_get_devices (NMBluez4Adapter *self);
#endif /* __NETWORKMANAGER_BLUEZ4_ADAPTER_H__ */
-
diff --git a/src/devices/bluetooth/nm-bluez4-manager.c b/src/devices/bluetooth/nm-bluez4-manager.c
index 1dc123d7d7..78e892e40a 100644
--- a/src/devices/bluetooth/nm-bluez4-manager.c
+++ b/src/devices/bluetooth/nm-bluez4-manager.c
@@ -28,11 +28,19 @@
#include <stdlib.h>
#include "nm-bluez4-adapter.h"
-#include "nm-bluez-manager.h"
#include "nm-bluez-common.h"
#include "nm-core-internal.h"
#include "nm-settings.h"
+/*****************************************************************************/
+
+enum {
+ BDADDR_ADDED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
typedef struct {
gulong name_owner_changed_id;
@@ -43,19 +51,22 @@ typedef struct {
NMBluez4Adapter *adapter;
} NMBluez4ManagerPrivate;
-#define NM_BLUEZ4_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ4_MANAGER, NMBluez4ManagerPrivate))
+struct _NMBluez4Manager {
+ GObject parent;
+ NMBluez4ManagerPrivate _priv;
+};
+
+struct _NMBluez4ManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMBluez4Manager, nm_bluez4_manager, G_TYPE_OBJECT)
-enum {
- BDADDR_ADDED,
- LAST_SIGNAL
-};
+#define NM_BLUEZ4_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluez4Manager, NM_IS_BLUEZ4_MANAGER)
-static guint signals[LAST_SIGNAL] = { 0 };
+/*****************************************************************************/
static void
-
emit_bdaddr_added (NMBluez4Manager *self, NMBluezDevice *device)
{
g_signal_emit (self, signals[BDADDR_ADDED], 0,
@@ -224,18 +235,6 @@ name_owner_changed_cb (GObject *object,
/*****************************************************************************/
-NMBluez4Manager *
-nm_bluez4_manager_new (NMSettings *settings)
-{
- NMBluez4Manager *instance;
-
- g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL);
-
- instance = g_object_new (NM_TYPE_BLUEZ4_MANAGER, NULL);
- NM_BLUEZ4_MANAGER_GET_PRIVATE (instance)->settings = g_object_ref (settings);
- return instance;
-}
-
static void
nm_bluez4_manager_init (NMBluez4Manager *self)
{
@@ -258,6 +257,18 @@ nm_bluez4_manager_init (NMBluez4Manager *self)
query_default_adapter (self);
}
+NMBluez4Manager *
+nm_bluez4_manager_new (NMSettings *settings)
+{
+ NMBluez4Manager *instance;
+
+ g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL);
+
+ instance = g_object_new (NM_TYPE_BLUEZ4_MANAGER, NULL);
+ NM_BLUEZ4_MANAGER_GET_PRIVATE (instance)->settings = g_object_ref (settings);
+ return instance;
+}
+
static void
dispose (GObject *object)
{
@@ -277,19 +288,14 @@ nm_bluez4_manager_class_init (NMBluez4ManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMBluez4ManagerPrivate));
-
- /* virtual methods */
object_class->dispose = dispose;
- /* Signals */
signals[BDADDR_ADDED] =
- g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMBluez4ManagerClass, bdaddr_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
+ g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
}
diff --git a/src/devices/bluetooth/nm-bluez4-manager.h b/src/devices/bluetooth/nm-bluez4-manager.h
index 8afe6924c7..f46379ffab 100644
--- a/src/devices/bluetooth/nm-bluez4-manager.h
+++ b/src/devices/bluetooth/nm-bluez4-manager.h
@@ -28,20 +28,8 @@
#define NM_IS_BLUEZ4_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_BLUEZ4_MANAGER))
#define NM_BLUEZ4_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ4_MANAGER, NMBluez4ManagerClass))
-typedef struct {
- GObject parent;
-} NMBluez4Manager;
-
-typedef struct {
- GObjectClass parent;
-
- /* Signals */
- void (*bdaddr_added) (NMBluez4Manager *manager,
- const char *bdaddr,
- const char *name,
- const char *object_path,
- guint uuids);
-} NMBluez4ManagerClass;
+typedef struct _NMBluez4Manager NMBluez4Manager;
+typedef struct _NMBluez4ManagerClass NMBluez4ManagerClass;
GType nm_bluez4_manager_get_type (void);
@@ -50,4 +38,3 @@ NMBluez4Manager *nm_bluez4_manager_new (NMSettings *settings);
void nm_bluez4_manager_query_devices (NMBluez4Manager *manager);
#endif /* __NETWORKMANAGER_BLUEZ4_MANAGER_H__ */
-
diff --git a/src/devices/bluetooth/nm-bluez5-manager.c b/src/devices/bluetooth/nm-bluez5-manager.c
index 63a814b057..9859f74bad 100644
--- a/src/devices/bluetooth/nm-bluez5-manager.c
+++ b/src/devices/bluetooth/nm-bluez5-manager.c
@@ -30,11 +30,19 @@
#include "nm-core-internal.h"
-#include "nm-bluez-manager.h"
#include "nm-bluez-device.h"
#include "nm-bluez-common.h"
#include "nm-settings.h"
+/*****************************************************************************/
+
+enum {
+ BDADDR_ADDED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
typedef struct {
NMSettings *settings;
@@ -43,20 +51,26 @@ typedef struct {
GHashTable *devices;
} NMBluez5ManagerPrivate;
-#define NM_BLUEZ5_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ5_MANAGER, NMBluez5ManagerPrivate))
+struct _NMBluez5Manager {
+ GObject parent;
+ NMBluez5ManagerPrivate _priv;
+};
+
+struct _NMBluez5ManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMBluez5Manager, nm_bluez5_manager, G_TYPE_OBJECT)
-enum {
- BDADDR_ADDED,
- LAST_SIGNAL
-};
+#define NM_BLUEZ5_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluez5Manager, NM_IS_BLUEZ5_MANAGER)
-static guint signals[LAST_SIGNAL] = { 0 };
+/*****************************************************************************/
static void device_initialized (NMBluezDevice *device, gboolean success, NMBluez5Manager *self);
static void device_usable (NMBluezDevice *device, GParamSpec *pspec, NMBluez5Manager *self);
+/*****************************************************************************/
+
static void
emit_bdaddr_added (NMBluez5Manager *self, NMBluezDevice *device)
{
@@ -310,6 +324,17 @@ bluez_cleanup (NMBluez5Manager *self, gboolean do_signal)
/*****************************************************************************/
+static void
+nm_bluez5_manager_init (NMBluez5Manager *self)
+{
+ NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (self);
+
+ bluez_connect (self);
+
+ priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal,
+ NULL, g_object_unref);
+}
+
NMBluez5Manager *
nm_bluez5_manager_new (NMSettings *settings)
{
@@ -323,17 +348,6 @@ nm_bluez5_manager_new (NMSettings *settings)
}
static void
-nm_bluez5_manager_init (NMBluez5Manager *self)
-{
- NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (self);
-
- bluez_connect (self);
-
- priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal,
- NULL, g_object_unref);
-}
-
-static void
dispose (GObject *object)
{
NMBluez5Manager *self = NM_BLUEZ5_MANAGER (object);
@@ -346,7 +360,7 @@ dispose (GObject *object)
static void
finalize (GObject *object)
{
- NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (object);
+ NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE ((NMBluez5Manager *) object);
g_hash_table_destroy (priv->devices);
@@ -360,19 +374,14 @@ nm_bluez5_manager_class_init (NMBluez5ManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMBluez5ManagerPrivate));
-
- /* virtual methods */
object_class->dispose = dispose;
object_class->finalize = finalize;
- /* Signals */
signals[BDADDR_ADDED] =
- g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMBluez5ManagerClass, bdaddr_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
+ g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
}
diff --git a/src/devices/bluetooth/nm-bluez5-manager.h b/src/devices/bluetooth/nm-bluez5-manager.h
index 0e309d33a3..436944359b 100644
--- a/src/devices/bluetooth/nm-bluez5-manager.h
+++ b/src/devices/bluetooth/nm-bluez5-manager.h
@@ -29,20 +29,8 @@
#define NM_IS_BLUEZ5_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_BLUEZ5_MANAGER))
#define NM_BLUEZ5_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ5_MANAGER, NMBluez5ManagerClass))
-typedef struct {
- GObject parent;
-} NMBluez5Manager;
-
-typedef struct {
- GObjectClass parent;
-
- /* Signals */
- void (*bdaddr_added) (NMBluez5Manager *manager,
- const char *bdaddr,
- const char *name,
- const char *object_path,
- guint uuids);
-} NMBluez5ManagerClass;
+typedef struct _NMBluez5Manager NMBluez5Manager;
+typedef struct _NMBluez5ManagerClass NMBluez5ManagerClass;
GType nm_bluez5_manager_get_type (void);
@@ -51,4 +39,3 @@ NMBluez5Manager *nm_bluez5_manager_new (NMSettings *settings);
void nm_bluez5_manager_query_devices (NMBluez5Manager *manager);
#endif /* __NETWORKMANAGER_BLUEZ5_MANAGER_H__ */
-
diff --git a/src/devices/bluetooth/nm-device-bt.c b/src/devices/bluetooth/nm-device-bt.c
index 77b4c667b9..a36681c4a3 100644
--- a/src/devices/bluetooth/nm-device-bt.c
+++ b/src/devices/bluetooth/nm-device-bt.c
@@ -44,18 +44,27 @@
#include "nmdbus-device-bt.h"
+#include "nm-device-logging.h"
+_LOG_DECLARE_SELF(NMDeviceBt);
+
#define MM_DBUS_SERVICE "org.freedesktop.ModemManager1"
#define MM_DBUS_PATH "/org/freedesktop/ModemManager1"
#define MM_DBUS_INTERFACE "org.freedesktop.ModemManager1"
-#include "nm-device-logging.h"
-_LOG_DECLARE_SELF(NMDeviceBt);
+/*****************************************************************************/
-G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE)
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_BT_NAME,
+ PROP_BT_CAPABILITIES,
+ PROP_BT_DEVICE,
+);
-#define NM_DEVICE_BT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BT, NMDeviceBtPrivate))
+enum {
+ PPP_STATS,
+ LAST_SIGNAL,
+};
-static gboolean modem_stage1 (NMDeviceBt *self, NMModem *modem, NMDeviceStateReason *reason);
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
GDBusProxy *mm_proxy;
@@ -77,22 +86,24 @@ typedef struct {
guint32 bt_type; /* BT type of the current connection */
} NMDeviceBtPrivate;
-enum {
- PROP_0,
- PROP_BT_NAME,
- PROP_BT_CAPABILITIES,
- PROP_BT_DEVICE,
+struct _NMDeviceBt {
+ NMDevice parent;
+ NMDeviceBtPrivate _priv;
+};
- LAST_PROP
+struct _NMDeviceBtClass {
+ NMDeviceClass parent;
};
-enum {
- PPP_STATS,
+G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE)
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
+#define NM_DEVICE_BT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceBt, NM_IS_DEVICE_BT)
+/*****************************************************************************/
+
+static gboolean modem_stage1 (NMDeviceBt *self, NMModem *modem, NMDeviceStateReason *reason);
+
+/*****************************************************************************/
guint32 nm_device_bt_get_capabilities (NMDeviceBt *self)
{
@@ -133,7 +144,7 @@ can_auto_connect (NMDevice *device,
NMConnection *connection,
char **specific_object)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
guint32 bt_type;
nm_assert (!specific_object || !*specific_object);
@@ -152,7 +163,7 @@ can_auto_connect (NMDevice *device,
static gboolean
check_connection_compatible (NMDevice *device, NMConnection *connection)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
NMSettingConnection *s_con;
NMSettingBluetooth *s_bt;
const char *bdaddr;
@@ -190,7 +201,7 @@ check_connection_available (NMDevice *device,
NMDeviceCheckConAvailableFlags flags,
const char *specific_object)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
guint32 bt_type;
bt_type = get_connection_bt_type (connection);
@@ -211,7 +222,7 @@ complete_connection (NMDevice *device,
const GSList *existing_connections,
GError **error)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
NMSettingBluetooth *s_bt;
const char *setting_bdaddr;
const char *ctype;
@@ -420,7 +431,7 @@ static void
modem_auth_result (NMModem *modem, GError *error, gpointer user_data)
{
NMDevice *device = NM_DEVICE (user_data);
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
NMDeviceStateReason reason = NM_DEVICE_STATE_REASON_NONE;
if (error) {
@@ -488,7 +499,7 @@ device_state_changed (NMDevice *device,
NMDeviceState old_state,
NMDeviceStateReason reason)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
if (priv->modem)
nm_modem_device_state_changed (priv->modem, new_state, old_state, reason);
@@ -828,7 +839,7 @@ static NMActStageReturn
act_stage2_config (NMDevice *device, NMDeviceStateReason *reason)
{
NMDeviceBt *self = NM_DEVICE_BT (device);
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (self);
NMConnection *connection;
connection = nm_device_get_applied_connection (device);
@@ -863,11 +874,11 @@ act_stage3_ip4_config_start (NMDevice *device,
NMIP4Config **out_config,
NMDeviceStateReason *reason)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
NMActStageReturn ret;
if (priv->bt_type == NM_BT_CAPABILITY_DUN) {
- ret = nm_modem_stage3_ip4_config_start (NM_DEVICE_BT_GET_PRIVATE (device)->modem,
+ ret = nm_modem_stage3_ip4_config_start (priv->modem,
device,
NM_DEVICE_CLASS (nm_device_bt_parent_class),
reason);
@@ -882,11 +893,11 @@ act_stage3_ip6_config_start (NMDevice *device,
NMIP6Config **out_config,
NMDeviceStateReason *reason)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
NMActStageReturn ret;
if (priv->bt_type == NM_BT_CAPABILITY_DUN) {
- ret = nm_modem_stage3_ip6_config_start (NM_DEVICE_BT_GET_PRIVATE (device)->modem,
+ ret = nm_modem_stage3_ip6_config_start (priv->modem,
nm_device_get_act_request (device),
reason);
} else
@@ -898,7 +909,7 @@ act_stage3_ip6_config_start (NMDevice *device,
static void
deactivate (NMDevice *device)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device);
priv->have_iface = FALSE;
priv->connected = FALSE;
@@ -987,32 +998,56 @@ mm_name_owner_changed (GObject *object,
/*****************************************************************************/
-NMDevice *
-nm_device_bt_new (NMBluezDevice *bt_device,
- const char *udi,
- const char *bdaddr,
- const char *name,
- guint32 capabilities)
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
{
- g_return_val_if_fail (udi != NULL, NULL);
- g_return_val_if_fail (bdaddr != NULL, NULL);
- g_return_val_if_fail (name != NULL, NULL);
- g_return_val_if_fail (capabilities != NM_BT_CAPABILITY_NONE, NULL);
- g_return_val_if_fail (NM_IS_BLUEZ_DEVICE (bt_device), NULL);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object);
- return (NMDevice *) g_object_new (NM_TYPE_DEVICE_BT,
- NM_DEVICE_UDI, udi,
- NM_DEVICE_IFACE, bdaddr,
- NM_DEVICE_DRIVER, "bluez",
- NM_DEVICE_PERM_HW_ADDRESS, bdaddr,
- NM_DEVICE_BT_DEVICE, bt_device,
- NM_DEVICE_BT_NAME, name,
- NM_DEVICE_BT_CAPABILITIES, capabilities,
- NM_DEVICE_TYPE_DESC, "Bluetooth",
- NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_BT,
- NULL);
+ switch (prop_id) {
+ case PROP_BT_NAME:
+ g_value_set_string (value, priv->name);
+ break;
+ case PROP_BT_CAPABILITIES:
+ g_value_set_uint (value, priv->capabilities);
+ break;
+ case PROP_BT_DEVICE:
+ g_value_set_object (value, priv->bt_device);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object);
+
+ switch (prop_id) {
+ case PROP_BT_NAME:
+ /* Construct only */
+ priv->name = g_value_dup_string (value);
+ break;
+ case PROP_BT_CAPABILITIES:
+ /* Construct only */
+ priv->capabilities = g_value_get_uint (value);
+ break;
+ case PROP_BT_DEVICE:
+ /* Construct only */
+ priv->bt_device = g_value_dup_object (value);
+ g_signal_connect (priv->bt_device, "removed", G_CALLBACK (bluez_device_removed), object);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
+/*****************************************************************************/
+
static void
nm_device_bt_init (NMDeviceBt *self)
{
@@ -1043,7 +1078,7 @@ nm_device_bt_init (NMDeviceBt *self)
static void
constructed (GObject *object)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object);
const char *my_hwaddr;
G_OBJECT_CLASS (nm_device_bt_parent_class)->constructed (object);
@@ -1058,58 +1093,36 @@ constructed (GObject *object)
object);
}
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_BT_NAME:
- /* Construct only */
- priv->name = g_value_dup_string (value);
- break;
- case PROP_BT_CAPABILITIES:
- /* Construct only */
- priv->capabilities = g_value_get_uint (value);
- break;
- case PROP_BT_DEVICE:
- /* Construct only */
- priv->bt_device = g_value_dup_object (value);
- g_signal_connect (priv->bt_device, "removed", G_CALLBACK (bluez_device_removed), object);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+NMDevice *
+nm_device_bt_new (NMBluezDevice *bt_device,
+ const char *udi,
+ const char *bdaddr,
+ const char *name,
+ guint32 capabilities)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
+ g_return_val_if_fail (udi != NULL, NULL);
+ g_return_val_if_fail (bdaddr != NULL, NULL);
+ g_return_val_if_fail (name != NULL, NULL);
+ g_return_val_if_fail (capabilities != NM_BT_CAPABILITY_NONE, NULL);
+ g_return_val_if_fail (NM_IS_BLUEZ_DEVICE (bt_device), NULL);
- switch (prop_id) {
- case PROP_BT_NAME:
- g_value_set_string (value, priv->name);
- break;
- case PROP_BT_CAPABILITIES:
- g_value_set_uint (value, priv->capabilities);
- break;
- case PROP_BT_DEVICE:
- g_value_set_object (value, priv->bt_device);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ return (NMDevice *) g_object_new (NM_TYPE_DEVICE_BT,
+ NM_DEVICE_UDI, udi,
+ NM_DEVICE_IFACE, bdaddr,
+ NM_DEVICE_DRIVER, "bluez",
+ NM_DEVICE_PERM_HW_ADDRESS, bdaddr,
+ NM_DEVICE_BT_DEVICE, bt_device,
+ NM_DEVICE_BT_NAME, name,
+ NM_DEVICE_BT_CAPABILITIES, capabilities,
+ NM_DEVICE_TYPE_DESC, "Bluetooth",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_BT,
+ NULL);
}
static void
dispose (GObject *object)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object);
nm_clear_g_source (&priv->timeout_id);
@@ -1129,7 +1142,7 @@ dispose (GObject *object)
static void
finalize (GObject *object)
{
- NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
+ NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object);
g_free (priv->rfcomm_iface);
g_free (priv->name);
@@ -1144,8 +1157,6 @@ nm_device_bt_class_init (NMDeviceBtClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *device_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceBtPrivate));
-
object_class->constructed = constructed;
object_class->get_property = get_property;
object_class->set_property = set_property;
@@ -1166,37 +1177,33 @@ nm_device_bt_class_init (NMDeviceBtClass *klass)
device_class->state_changed = device_state_changed;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_BT_NAME,
- g_param_spec_string (NM_DEVICE_BT_NAME, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_BT_CAPABILITIES,
- g_param_spec_uint (NM_DEVICE_BT_CAPABILITIES, "", "",
- NM_BT_CAPABILITY_NONE, G_MAXUINT, NM_BT_CAPABILITY_NONE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_BT_DEVICE,
- g_param_spec_object (NM_DEVICE_BT_DEVICE, "", "",
- NM_TYPE_BLUEZ_DEVICE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- /* Signals */
+ obj_properties[PROP_BT_NAME] =
+ g_param_spec_string (NM_DEVICE_BT_NAME, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_BT_CAPABILITIES] =
+ g_param_spec_uint (NM_DEVICE_BT_CAPABILITIES, "", "",
+ NM_BT_CAPABILITY_NONE, G_MAXUINT, NM_BT_CAPABILITY_NONE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_BT_DEVICE] =
+ g_param_spec_object (NM_DEVICE_BT_DEVICE, "", "",
+ NM_TYPE_BLUEZ_DEVICE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
signals[PPP_STATS] =
- g_signal_new ("ppp-stats",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceBtClass, ppp_stats),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2,
- G_TYPE_UINT, G_TYPE_UINT);
+ g_signal_new ("ppp-stats",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT, G_TYPE_UINT);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_BLUETOOTH_SKELETON,
diff --git a/src/devices/bluetooth/nm-device-bt.h b/src/devices/bluetooth/nm-device-bt.h
index c97cca0137..2308f0e8a3 100644
--- a/src/devices/bluetooth/nm-device-bt.h
+++ b/src/devices/bluetooth/nm-device-bt.h
@@ -25,27 +25,19 @@
#include "nm-bluez-device.h"
#include "nm-modem.h"
-#define NM_TYPE_DEVICE_BT (nm_device_bt_get_type ())
-#define NM_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_BT, NMDeviceBt))
-#define NM_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_BT, NMDeviceBtClass))
-#define NM_IS_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_BT))
-#define NM_IS_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BT))
-#define NM_DEVICE_BT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BT, NMDeviceBtClass))
+#define NM_TYPE_DEVICE_BT (nm_device_bt_get_type ())
+#define NM_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_BT, NMDeviceBt))
+#define NM_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_BT, NMDeviceBtClass))
+#define NM_IS_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_BT))
+#define NM_IS_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BT))
+#define NM_DEVICE_BT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BT, NMDeviceBtClass))
#define NM_DEVICE_BT_NAME "name"
#define NM_DEVICE_BT_CAPABILITIES "bt-capabilities"
#define NM_DEVICE_BT_DEVICE "bt-device"
-typedef struct {
- NMDevice parent;
-} NMDeviceBt;
-
-typedef struct {
- NMDeviceClass parent;
-
- /* Signals */
- void (*ppp_stats) (NMDeviceBt *device, guint32 in_bytes, guint32 out_bytes);
-} NMDeviceBtClass;
+typedef struct _NMDeviceBt NMDeviceBt;
+typedef struct _NMDeviceBtClass NMDeviceBtClass;
GType nm_device_bt_get_type (void);
diff --git a/src/devices/nm-arping-manager.c b/src/devices/nm-arping-manager.c
index dfb20b4b51..0d3a3ea692 100644
--- a/src/devices/nm-arping-manager.c
+++ b/src/devices/nm-arping-manager.c
@@ -16,15 +16,18 @@
#include "nm-default.h"
+#include "nm-arping-manager.h"
+
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/wait.h>
-#include "nm-arping-manager.h"
#include "nm-platform.h"
#include "nm-utils.h"
#include "NetworkManagerUtils.h"
+/*****************************************************************************/
+
typedef enum {
STATE_INIT,
STATE_PROBING,
@@ -33,15 +36,6 @@ typedef enum {
} State;
typedef struct {
- int ifindex;
- State state;
- GHashTable *addresses;
- guint completed;
- guint timer;
- guint round2_id;
-} NMArpingManagerPrivate;
-
-typedef struct {
in_addr_t address;
GPid pid;
guint watch;
@@ -49,15 +43,38 @@ typedef struct {
NMArpingManager *manager;
} AddressInfo;
+/*****************************************************************************/
+
enum {
PROBE_TERMINATED,
LAST_SIGNAL,
};
+
static guint signals[LAST_SIGNAL] = { 0 };
+typedef struct {
+ int ifindex;
+ State state;
+ GHashTable *addresses;
+ guint completed;
+ guint timer;
+ guint round2_id;
+} NMArpingManagerPrivate;
+
+struct _NMArpingManager {
+ GObject parent;
+ NMArpingManagerPrivate _priv;
+};
+
+struct _NMArpingManagerClass {
+ GObjectClass parent;
+};
+
G_DEFINE_TYPE (NMArpingManager, nm_arping_manager, G_TYPE_OBJECT)
-#define NM_ARPING_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ARPING_MANAGER, NMArpingManagerPrivate))
+#define NM_ARPING_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMArpingManager, NM_IS_ARPING_MANAGER)
+
+/*****************************************************************************/
#define _NMLOG_DOMAIN LOGD_IP4
#define _NMLOG_PREFIX_NAME "arping"
@@ -74,6 +91,8 @@ G_DEFINE_TYPE (NMArpingManager, nm_arping_manager, G_TYPE_OBJECT)
_NM_UTILS_MACRO_REST (__VA_ARGS__)); \
} G_STMT_END
+/*****************************************************************************/
+
/**
* nm_arping_manager_add_address:
* @self: a #NMArpingManager
@@ -350,7 +369,7 @@ send_announcements (NMArpingManager *self, const char *mode_arg)
static gboolean
arp_announce_round2 (gpointer self)
{
- NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self);
+ NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE ((NMArpingManager *) self);
priv->round2_id = 0;
send_announcements (self, "-U");
@@ -395,18 +414,7 @@ destroy_address_info (gpointer data)
g_slice_free (AddressInfo, info);
}
-static void
-dispose (GObject *object)
-{
- NMArpingManager *self = NM_ARPING_MANAGER (object);
- NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self);
-
- nm_clear_g_source (&priv->timer);
- nm_clear_g_source (&priv->round2_id);
- g_clear_pointer (&priv->addresses, g_hash_table_destroy);
-
- G_OBJECT_CLASS (nm_arping_manager_parent_class)->dispose (object);
-}
+/*****************************************************************************/
static void
nm_arping_manager_init (NMArpingManager *self)
@@ -427,23 +435,33 @@ nm_arping_manager_new (int ifindex)
self = g_object_new (NM_TYPE_ARPING_MANAGER, NULL);
priv = NM_ARPING_MANAGER_GET_PRIVATE (self);
priv->ifindex = ifindex;
-
return self;
}
static void
+dispose (GObject *object)
+{
+ NMArpingManager *self = NM_ARPING_MANAGER (object);
+ NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self);
+
+ nm_clear_g_source (&priv->timer);
+ nm_clear_g_source (&priv->round2_id);
+ g_clear_pointer (&priv->addresses, g_hash_table_destroy);
+
+ G_OBJECT_CLASS (nm_arping_manager_parent_class)->dispose (object);
+}
+
+static void
nm_arping_manager_class_init (NMArpingManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMArpingManagerPrivate));
-
object_class->dispose = dispose;
signals[PROBE_TERMINATED] =
- g_signal_new (NM_ARPING_MANAGER_PROBE_TERMINATED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0, NULL, NULL, NULL,
- G_TYPE_NONE, 0);
+ g_signal_new (NM_ARPING_MANAGER_PROBE_TERMINATED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
}
diff --git a/src/devices/nm-arping-manager.h b/src/devices/nm-arping-manager.h
index 78965a0df2..c8a86af030 100644
--- a/src/devices/nm-arping-manager.h
+++ b/src/devices/nm-arping-manager.h
@@ -28,13 +28,7 @@
#define NM_ARPING_MANAGER_PROBE_TERMINATED "probe-terminated"
-struct _NMArpingManager {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMArpingManagerClass;
+typedef struct _NMArpingManagerClass NMArpingManagerClass;
GType nm_arping_manager_get_type (void);
diff --git a/src/devices/nm-device-bond.c b/src/devices/nm-device-bond.c
index b76aa5f6b8..6d3a2facad 100644
--- a/src/devices/nm-device-bond.c
+++ b/src/devices/nm-device-bond.c
@@ -20,10 +20,11 @@
#include "nm-default.h"
+#include "nm-device-bond.h"
+
#include <errno.h>
#include <stdlib.h>
-#include "nm-device-bond.h"
#include "NetworkManagerUtils.h"
#include "nm-device-private.h"
#include "nm-platform.h"
@@ -37,13 +38,17 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceBond);
-G_DEFINE_TYPE (NMDeviceBond, nm_device_bond, NM_TYPE_DEVICE)
+/*****************************************************************************/
-#define NM_DEVICE_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BOND, NMDeviceBondPrivate))
+struct _NMDeviceBond {
+ NMDevice parent;
+};
-typedef struct {
- int dummy;
-} NMDeviceBondPrivate;
+struct _NMDeviceBondClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDeviceBond, nm_device_bond, NM_TYPE_DEVICE)
/*****************************************************************************/
@@ -492,11 +497,8 @@ nm_device_bond_init (NMDeviceBond * self)
static void
nm_device_bond_class_init (NMDeviceBondClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceBondPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_BOND_SETTING_NAME, NM_LINK_TYPE_BOND)
parent_class->get_generic_capabilities = get_generic_capabilities;
@@ -545,5 +547,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (BOND, Bond, bond,
NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_BOND)
NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_BOND_SETTING_NAME),
factory_iface->create_device = create_device;
- )
-
+);
diff --git a/src/devices/nm-device-bond.h b/src/devices/nm-device-bond.h
index 02b6c8e540..b4e9b0e883 100644
--- a/src/devices/nm-device-bond.h
+++ b/src/devices/nm-device-bond.h
@@ -30,8 +30,8 @@
#define NM_IS_DEVICE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BOND))
#define NM_DEVICE_BOND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BOND, NMDeviceBondClass))
-typedef NMDevice NMDeviceBond;
-typedef NMDeviceClass NMDeviceBondClass;
+typedef struct _NMDeviceBond NMDeviceBond;
+typedef struct _NMDeviceBondClass NMDeviceBondClass;
GType nm_device_bond_get_type (void);
diff --git a/src/devices/nm-device-bridge.c b/src/devices/nm-device-bridge.c
index a58fb65b26..f5c236bd80 100644
--- a/src/devices/nm-device-bridge.c
+++ b/src/devices/nm-device-bridge.c
@@ -20,9 +20,10 @@
#include "nm-default.h"
+#include "nm-device-bridge.h"
+
#include <stdlib.h>
-#include "nm-device-bridge.h"
#include "NetworkManagerUtils.h"
#include "nm-device-private.h"
#include "nm-enum-types.h"
@@ -35,13 +36,17 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceBridge);
-G_DEFINE_TYPE (NMDeviceBridge, nm_device_bridge, NM_TYPE_DEVICE)
+/*****************************************************************************/
+
+struct _NMDeviceBridge {
+ NMDevice parent;
+};
-#define NM_DEVICE_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BRIDGE, NMDeviceBridgePrivate))
+struct _NMDeviceBridgeClass {
+ NMDeviceClass parent;
+};
-typedef struct {
- int dummy;
-} NMDeviceBridgePrivate;
+G_DEFINE_TYPE (NMDeviceBridge, nm_device_bridge, NM_TYPE_DEVICE)
/*****************************************************************************/
@@ -421,11 +426,8 @@ nm_device_bridge_init (NMDeviceBridge * self)
static void
nm_device_bridge_class_init (NMDeviceBridgeClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceBridgePrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_BRIDGE_SETTING_NAME, NM_LINK_TYPE_BRIDGE)
parent_class->get_generic_capabilities = get_generic_capabilities;
@@ -473,5 +475,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (BRIDGE, Bridge, bridge,
NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_BRIDGE)
NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_BRIDGE_SETTING_NAME),
factory_iface->create_device = create_device;
- )
-
+);
diff --git a/src/devices/nm-device-bridge.h b/src/devices/nm-device-bridge.h
index 05da9ed751..f0fa1f4b64 100644
--- a/src/devices/nm-device-bridge.h
+++ b/src/devices/nm-device-bridge.h
@@ -30,8 +30,8 @@
#define NM_IS_DEVICE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BRIDGE))
#define NM_DEVICE_BRIDGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BRIDGE, NMDeviceBridgeClass))
-typedef NMDevice NMDeviceBridge;
-typedef NMDeviceClass NMDeviceBridgeClass;
+typedef struct _NMDeviceBridge NMDeviceBridge;
+typedef struct _NMDeviceBridgeClass NMDeviceBridgeClass;
GType nm_device_bridge_get_type (void);
diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c
index 43d029e55a..fd80a607a2 100644
--- a/src/devices/nm-device-ethernet.c
+++ b/src/devices/nm-device-ethernet.c
@@ -33,11 +33,13 @@
#include "nm-device-private.h"
#include "nm-act-request.h"
+#include "nm-ip4-config.h"
#include "NetworkManagerUtils.h"
#include "nm-supplicant-manager.h"
#include "nm-supplicant-interface.h"
#include "nm-supplicant-config.h"
#include "ppp-manager/nm-ppp-manager.h"
+#include "ppp-manager/nm-ppp-status.h"
#include "nm-enum-types.h"
#include "nm-platform.h"
#include "nm-platform-utils.h"
@@ -1633,7 +1635,6 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *klass)
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_WIRED_SETTING_NAME, NM_LINK_TYPE_ETHERNET)
- /* virtual methods */
object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->finalize = finalize;
diff --git a/src/devices/nm-device-ethernet.h b/src/devices/nm-device-ethernet.h
index 3ce6f0ca4b..a50a7d851b 100644
--- a/src/devices/nm-device-ethernet.h
+++ b/src/devices/nm-device-ethernet.h
@@ -42,7 +42,7 @@ typedef struct {
} NMDeviceEthernet;
typedef struct {
- NMDeviceClass parent_class;
+ NMDeviceClass parent;
} NMDeviceEthernetClass;
GType nm_device_ethernet_get_type (void);
diff --git a/src/devices/nm-device-generic.c b/src/devices/nm-device-generic.c
index 2d86799bb9..dc8828a96d 100644
--- a/src/devices/nm-device-generic.c
+++ b/src/devices/nm-device-generic.c
@@ -21,6 +21,7 @@
#include "nm-default.h"
#include "nm-device-generic.h"
+
#include "nm-device-private.h"
#include "nm-enum-types.h"
#include "nm-platform.h"
@@ -28,21 +29,31 @@
#include "nmdbus-device-generic.h"
-G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE)
+/*****************************************************************************/
-#define NM_DEVICE_GENERIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_GENERIC, NMDeviceGenericPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_TYPE_DESCRIPTION,
+);
typedef struct {
char *type_description;
} NMDeviceGenericPrivate;
-enum {
- PROP_0,
- PROP_TYPE_DESCRIPTION,
+struct _NMDeviceGeneric {
+ NMDevice parent;
+ NMDeviceGenericPrivate _priv;
+};
- LAST_PROP
+struct _NMDeviceGenericClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_GENERIC_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceGeneric, NM_IS_DEVICE_GENERIC)
+
+/*****************************************************************************/
+
static NMDeviceCapabilities
get_generic_capabilities (NMDevice *dev)
{
@@ -55,8 +66,8 @@ get_generic_capabilities (NMDevice *dev)
static const char *
get_type_description (NMDevice *device)
{
- if (NM_DEVICE_GENERIC_GET_PRIVATE (device)->type_description)
- return NM_DEVICE_GENERIC_GET_PRIVATE (device)->type_description;
+ if (NM_DEVICE_GENERIC_GET_PRIVATE ((NMDeviceGeneric *) device)->type_description)
+ return NM_DEVICE_GENERIC_GET_PRIVATE ((NMDeviceGeneric *) device)->type_description;
return NM_DEVICE_CLASS (nm_device_generic_parent_class)->get_type_description (device);
}
@@ -110,20 +121,43 @@ update_connection (NMDevice *device, NMConnection *connection)
/*****************************************************************************/
-NMDevice *
-nm_device_generic_new (const NMPlatformLink *plink, gboolean nm_plugin_missing)
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
{
- g_return_val_if_fail (plink != NULL, NULL);
+ NMDeviceGeneric *self = NM_DEVICE_GENERIC (object);
+ NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self);
- return (NMDevice *) g_object_new (NM_TYPE_DEVICE_GENERIC,
- NM_DEVICE_IFACE, plink->name,
- NM_DEVICE_TYPE_DESC, "Generic",
- NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_GENERIC,
- NM_DEVICE_NM_PLUGIN_MISSING, nm_plugin_missing,
- NULL);
+ switch (prop_id) {
+ case PROP_TYPE_DESCRIPTION:
+ g_value_set_string (value, priv->type_description);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMDeviceGeneric *self = NM_DEVICE_GENERIC (object);
+ NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self);
+
+ switch (prop_id) {
+ case PROP_TYPE_DESCRIPTION:
+ priv->type_description = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
nm_device_generic_init (NMDeviceGeneric *self)
{
}
@@ -144,49 +178,28 @@ constructor (GType type,
return object;
}
-static void
-dispose (GObject *object)
+NMDevice *
+nm_device_generic_new (const NMPlatformLink *plink, gboolean nm_plugin_missing)
{
- NMDeviceGeneric *self = NM_DEVICE_GENERIC (object);
- NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self);
-
- g_clear_pointer (&priv->type_description, g_free);
+ g_return_val_if_fail (plink != NULL, NULL);
- G_OBJECT_CLASS (nm_device_generic_parent_class)->dispose (object);
+ return (NMDevice *) g_object_new (NM_TYPE_DEVICE_GENERIC,
+ NM_DEVICE_IFACE, plink->name,
+ NM_DEVICE_TYPE_DESC, "Generic",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_GENERIC,
+ NM_DEVICE_NM_PLUGIN_MISSING, nm_plugin_missing,
+ NULL);
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+dispose (GObject *object)
{
NMDeviceGeneric *self = NM_DEVICE_GENERIC (object);
NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self);
- switch (prop_id) {
- case PROP_TYPE_DESCRIPTION:
- g_value_set_string (value, priv->type_description);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMDeviceGeneric *self = NM_DEVICE_GENERIC (object);
- NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self);
+ g_clear_pointer (&priv->type_description, g_free);
- switch (prop_id) {
- case PROP_TYPE_DESCRIPTION:
- priv->type_description = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ G_OBJECT_CLASS (nm_device_generic_parent_class)->dispose (object);
}
static void
@@ -195,8 +208,6 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMDeviceGenericPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_GENERIC_SETTING_NAME, NM_LINK_TYPE_ANY)
object_class->constructor = constructor;
@@ -210,13 +221,13 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass)
parent_class->check_connection_compatible = check_connection_compatible;
parent_class->update_connection = update_connection;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_TYPE_DESCRIPTION,
- g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_TYPE_DESCRIPTION] =
+ g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_GENERIC_SKELETON,
diff --git a/src/devices/nm-device-generic.h b/src/devices/nm-device-generic.h
index d988a5e2a1..424421806f 100644
--- a/src/devices/nm-device-generic.h
+++ b/src/devices/nm-device-generic.h
@@ -32,14 +32,8 @@
#define NM_DEVICE_GENERIC_TYPE_DESCRIPTION "type-description"
-typedef struct {
- NMDevice parent;
-} NMDeviceGeneric;
-
-typedef struct {
- NMDeviceClass parent;
-
-} NMDeviceGenericClass;
+typedef struct _NMDeviceGeneric NMDeviceGeneric;
+typedef struct _NMDeviceGenericClass NMDeviceGenericClass;
GType nm_device_generic_get_type (void);
diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c
index f34af24acd..56bdcb6de0 100644
--- a/src/devices/nm-device-infiniband.c
+++ b/src/devices/nm-device-infiniband.c
@@ -20,9 +20,10 @@
#include "nm-default.h"
+#include "nm-device-infiniband.h"
+
#include <linux/if_infiniband.h>
-#include "nm-device-infiniband.h"
#include "NetworkManagerUtils.h"
#include "nm-device-private.h"
#include "nm-enum-types.h"
@@ -34,32 +35,41 @@
#include "nmdbus-device-infiniband.h"
-G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE)
+#define NM_DEVICE_INFINIBAND_IS_PARTITION "is-partition"
-#define NM_DEVICE_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandPrivate))
+/*****************************************************************************/
-#define NM_DEVICE_INFINIBAND_IS_PARTITION "is-partition"
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_IS_PARTITION,
+);
typedef struct {
gboolean is_partition;
- int parent_ifindex, p_key;
+ int parent_ifindex;
+ int p_key;
} NMDeviceInfinibandPrivate;
-enum {
- PROP_0,
- PROP_IS_PARTITION,
+struct _NMDeviceInfiniband {
+ NMDevice parent;
+ NMDeviceInfinibandPrivate _priv;
+};
- LAST_PROP
+struct _NMDeviceInfinibandClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_INFINIBAND_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceInfiniband, NM_IS_DEVICE_INFINIBAND)
+
/*****************************************************************************/
static NMDeviceCapabilities
-get_generic_capabilities (NMDevice *dev)
+get_generic_capabilities (NMDevice *device)
{
guint32 caps = NM_DEVICE_CAP_CARRIER_DETECT;
- if (NM_DEVICE_INFINIBAND_GET_PRIVATE (dev)->is_partition)
+ if (NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) device)->is_partition)
caps |= NM_DEVICE_CAP_IS_SOFTWARE;
return caps;
@@ -241,7 +251,7 @@ create_and_realize (NMDevice *device,
const NMPlatformLink **out_plink,
GError **error)
{
- NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
+ NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) device);
NMSettingInfiniband *s_infiniband;
NMPlatformError plerr;
@@ -294,11 +304,13 @@ create_and_realize (NMDevice *device,
static gboolean
unrealize (NMDevice *device, GError **error)
{
- NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
+ NMDeviceInfinibandPrivate *priv;
NMPlatformError plerr;
g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), FALSE);
+ priv = NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) device);
+
if (priv->p_key < 0) {
g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED,
"Only InfiniBand partitions can be removed");
@@ -320,17 +332,12 @@ unrealize (NMDevice *device, GError **error)
/*****************************************************************************/
static void
-nm_device_infiniband_init (NMDeviceInfiniband * self)
-{
-}
-
-static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
switch (prop_id) {
case PROP_IS_PARTITION:
- g_value_set_boolean (value, NM_DEVICE_INFINIBAND_GET_PRIVATE (object)->is_partition);
+ g_value_set_boolean (value, NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) object)->is_partition);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -340,11 +347,11 @@ get_property (GObject *object, guint prop_id,
static void
set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+ const GValue *value, GParamSpec *pspec)
{
switch (prop_id) {
case PROP_IS_PARTITION:
- NM_DEVICE_INFINIBAND_GET_PRIVATE (object)->is_partition = g_value_get_boolean (value);
+ NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) object)->is_partition = g_value_get_boolean (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -352,17 +359,21 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_device_infiniband_init (NMDeviceInfiniband * self)
+{
+}
+
static void
nm_device_infiniband_class_init (NMDeviceInfinibandClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceInfinibandPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_INFINIBAND_SETTING_NAME, NM_LINK_TYPE_INFINIBAND)
- /* virtual methods */
object_class->get_property = get_property;
object_class->set_property = set_property;
@@ -376,13 +387,13 @@ nm_device_infiniband_class_init (NMDeviceInfinibandClass *klass)
parent_class->act_stage1_prepare = act_stage1_prepare;
parent_class->ip4_config_pre_commit = ip4_config_pre_commit;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_IS_PARTITION,
- g_param_spec_boolean (NM_DEVICE_INFINIBAND_IS_PARTITION, "", "",
- FALSE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IS_PARTITION] =
+ g_param_spec_boolean (NM_DEVICE_INFINIBAND_IS_PARTITION, "", "",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_INFINIBAND_SKELETON,
@@ -464,5 +475,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (INFINIBAND, Infiniband, infiniband,
factory_iface->create_device = create_device;
factory_iface->get_connection_parent = get_connection_parent;
factory_iface->get_connection_iface = get_connection_iface;
- )
-
+)
diff --git a/src/devices/nm-device-infiniband.h b/src/devices/nm-device-infiniband.h
index a74d07a51f..719c9cc9fd 100644
--- a/src/devices/nm-device-infiniband.h
+++ b/src/devices/nm-device-infiniband.h
@@ -23,15 +23,15 @@
#include "nm-device.h"
-#define NM_TYPE_DEVICE_INFINIBAND (nm_device_infiniband_get_type ())
-#define NM_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfiniband))
-#define NM_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass))
-#define NM_IS_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_INFINIBAND))
-#define NM_IS_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_INFINIBAND))
-#define NM_DEVICE_INFINIBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass))
+#define NM_TYPE_DEVICE_INFINIBAND (nm_device_infiniband_get_type ())
+#define NM_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfiniband))
+#define NM_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass))
+#define NM_IS_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_INFINIBAND))
+#define NM_IS_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_INFINIBAND))
+#define NM_DEVICE_INFINIBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass))
-typedef NMDevice NMDeviceInfiniband;
-typedef NMDeviceClass NMDeviceInfinibandClass;
+typedef struct _NMDeviceInfiniband NMDeviceInfiniband;
+typedef struct _NMDeviceInfinibandClass NMDeviceInfinibandClass;
GType nm_device_infiniband_get_type (void);
diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c
index 6103438244..1bb9f2f069 100644
--- a/src/devices/nm-device-ip-tunnel.c
+++ b/src/devices/nm-device-ip-tunnel.c
@@ -42,9 +42,21 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceIPTunnel);
-G_DEFINE_TYPE (NMDeviceIPTunnel, nm_device_ip_tunnel, NM_TYPE_DEVICE)
+/*****************************************************************************/
-#define NM_DEVICE_IP_TUNNEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_IP_TUNNEL, NMDeviceIPTunnelPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceIPTunnel,
+ PROP_MODE,
+ PROP_PARENT,
+ PROP_LOCAL,
+ PROP_REMOTE,
+ PROP_TTL,
+ PROP_TOS,
+ PROP_PATH_MTU_DISCOVERY,
+ PROP_INPUT_KEY,
+ PROP_OUTPUT_KEY,
+ PROP_ENCAPSULATION_LIMIT,
+ PROP_FLOW_LABEL,
+);
typedef struct {
NMIPTunnelMode mode;
@@ -62,23 +74,19 @@ typedef struct {
guint32 flow_label;
} NMDeviceIPTunnelPrivate;
-enum {
- PROP_0,
- PROP_MODE,
- PROP_PARENT,
- PROP_LOCAL,
- PROP_REMOTE,
- PROP_TTL,
- PROP_TOS,
- PROP_PATH_MTU_DISCOVERY,
- PROP_INPUT_KEY,
- PROP_OUTPUT_KEY,
- PROP_ENCAPSULATION_LIMIT,
- PROP_FLOW_LABEL,
+struct _NMDeviceIPTunnel {
+ NMDevice parent;
+ NMDeviceIPTunnelPrivate _priv;
+};
- LAST_PROP
+struct _NMDeviceIPTunnelClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceIPTunnel, nm_device_ip_tunnel, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_IP_TUNNEL_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceIPTunnel, NM_IS_DEVICE_IP_TUNNEL)
+
/*****************************************************************************/
static gboolean
@@ -118,7 +126,6 @@ update_properties_from_ifindex (NMDevice *device, int ifindex)
{
NMDeviceIPTunnel *self = NM_DEVICE_IP_TUNNEL (device);
NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (self);
- GObject *object = G_OBJECT (device);
NMDevice *parent;
int parent_ifindex;
in_addr_t local4, remote4;
@@ -133,23 +140,23 @@ clear:
if (priv->parent || priv->parent_ifindex) {
g_clear_object (&priv->parent);
priv->parent_ifindex = 0;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_PARENT);
+ _notify (self, PROP_PARENT);
}
if (priv->local) {
g_clear_pointer (&priv->local, g_free);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_LOCAL);
+ _notify (self, PROP_LOCAL);
}
if (priv->remote) {
g_clear_pointer (&priv->remote, g_free);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_REMOTE);
+ _notify (self, PROP_REMOTE);
}
if (priv->input_key) {
g_clear_pointer (&priv->input_key, g_free);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_INPUT_KEY);
+ _notify (self, PROP_INPUT_KEY);
}
if (priv->output_key) {
g_clear_pointer (&priv->output_key, g_free);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_OUTPUT_KEY);
+ _notify (self, PROP_OUTPUT_KEY);
}
goto out;
@@ -176,13 +183,13 @@ clear:
if (g_strcmp0 (priv->input_key, key)) {
g_free (priv->input_key);
priv->input_key = key;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_INPUT_KEY);
+ _notify (self, PROP_INPUT_KEY);
} else
g_free (key);
} else {
if (priv->input_key) {
g_clear_pointer (&priv->input_key, g_free);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_INPUT_KEY);
+ _notify (self, PROP_INPUT_KEY);
}
}
@@ -191,13 +198,13 @@ clear:
if (g_strcmp0 (priv->output_key, key)) {
g_free (priv->output_key);
priv->output_key = key;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_OUTPUT_KEY);
+ _notify (self, PROP_OUTPUT_KEY);
} else
g_free (key);
} else {
if (priv->output_key) {
g_clear_pointer (&priv->output_key, g_free);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_OUTPUT_KEY);
+ _notify (self, PROP_OUTPUT_KEY);
}
}
} else if (priv->mode == NM_IP_TUNNEL_MODE_SIT) {
@@ -256,7 +263,7 @@ clear:
parent = nm_manager_get_device_by_ifindex (nm_manager_get (), parent_ifindex);
if (parent)
priv->parent = g_object_ref (parent);
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_PARENT);
+ _notify (self, PROP_PARENT);
}
if (priv->addr_family == AF_INET) {
@@ -264,28 +271,28 @@ clear:
g_clear_pointer (&priv->local, g_free);
if (local4)
priv->local = g_strdup (nm_utils_inet4_ntop (local4, NULL));
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_LOCAL);
+ _notify (self, PROP_LOCAL);
}
if (!address_equal_pn (AF_INET, priv->remote, &remote4)) {
g_clear_pointer (&priv->remote, g_free);
if (remote4)
priv->remote = g_strdup (nm_utils_inet4_ntop (remote4, NULL));
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_REMOTE);
+ _notify (self, PROP_REMOTE);
}
} else {
if (!address_equal_pn (AF_INET6, priv->local, &local6)) {
g_clear_pointer (&priv->local, g_free);
if (memcmp (&local6, &in6addr_any, sizeof (in6addr_any)))
priv->local = g_strdup (nm_utils_inet6_ntop (&local6, NULL));
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_LOCAL);
+ _notify (self, PROP_LOCAL);
}
if (!address_equal_pn (AF_INET6, priv->remote, &remote6)) {
g_clear_pointer (&priv->remote, g_free);
if (memcmp (&remote6, &in6addr_any, sizeof (in6addr_any)))
priv->remote = g_strdup (nm_utils_inet6_ntop (&remote6, NULL));
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_REMOTE);
+ _notify (self, PROP_REMOTE);
}
}
@@ -293,27 +300,27 @@ out:
if (priv->ttl != ttl) {
priv->ttl = ttl;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_TTL);
+ _notify (self, PROP_TTL);
}
if (priv->tos != tos) {
priv->tos = tos;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_TOS);
+ _notify (self, PROP_TOS);
}
if (priv->path_mtu_discovery != pmtud) {
priv->path_mtu_discovery = pmtud;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY);
+ _notify (self, PROP_PATH_MTU_DISCOVERY);
}
if (priv->encap_limit != encap_limit) {
priv->encap_limit = encap_limit;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT);
+ _notify (self, PROP_ENCAPSULATION_LIMIT);
}
if (priv->flow_label != flow_label) {
priv->flow_label = flow_label;
- g_object_notify (object, NM_DEVICE_IP_TUNNEL_FLOW_LABEL);
+ _notify (self, PROP_FLOW_LABEL);
}
}
@@ -585,25 +592,6 @@ tunnel_mode_to_link_type (NMIPTunnelMode tunnel_mode)
/*****************************************************************************/
-static void
-nm_device_ip_tunnel_init (NMDeviceIPTunnel *self)
-{
-}
-
-static void
-constructed (GObject *object)
-{
- NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object);
-
- if ( priv->mode == NM_IP_TUNNEL_MODE_IPIP6
- || priv->mode == NM_IP_TUNNEL_MODE_IP6IP6)
- priv->addr_family = AF_INET6;
- else
- priv->addr_family = AF_INET;
-
- G_OBJECT_CLASS (nm_device_ip_tunnel_parent_class)->constructed (object);
-}
-
static gboolean
create_and_realize (NMDevice *device,
NMConnection *connection,
@@ -804,11 +792,13 @@ unrealize_notify (NMDevice *device)
update_properties_from_ifindex (device, 0);
}
+/*****************************************************************************/
+
static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object);
+ NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE ((NMDeviceIPTunnel *) object);
NMDevice *parent;
switch (prop_id) {
@@ -854,9 +844,9 @@ get_property (GObject *object, guint prop_id,
static void
set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+ const GValue *value, GParamSpec *pspec)
{
- NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object);
+ NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE ((NMDeviceIPTunnel *) object);
switch (prop_id) {
case PROP_MODE:
@@ -867,14 +857,33 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_device_ip_tunnel_init (NMDeviceIPTunnel *self)
+{
+}
+
+static void
+constructed (GObject *object)
+{
+ NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE ((NMDeviceIPTunnel *) object);
+
+ if ( priv->mode == NM_IP_TUNNEL_MODE_IPIP6
+ || priv->mode == NM_IP_TUNNEL_MODE_IP6IP6)
+ priv->addr_family = AF_INET6;
+ else
+ priv->addr_family = AF_INET;
+
+ G_OBJECT_CLASS (nm_device_ip_tunnel_parent_class)->constructed (object);
+}
+
static void
nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *device_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMDeviceIPTunnelPrivate));
-
object_class->constructed = constructed;
object_class->get_property = get_property;
object_class->set_property = set_property;
@@ -896,90 +905,80 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *klass)
NM_LINK_TYPE_IPIP,
NM_LINK_TYPE_SIT);
- /* properties */
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "",
- 0, G_MAXUINT, 0,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- /* properties */
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_string (NM_DEVICE_IP_TUNNEL_PARENT, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_LOCAL,
- g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_REMOTE,
- g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_TTL,
- g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "",
- 0, 255, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_TOS,
- g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "",
- 0, 255, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_PATH_MTU_DISCOVERY,
- g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_INPUT_KEY,
- g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_OUTPUT_KEY,
- g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_ENCAPSULATION_LIMIT,
- g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "",
- 0, 255, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_FLOW_LABEL,
- g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "",
- 0, (1 << 20) - 1, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODE] =
+ g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_PARENT] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_PARENT, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_LOCAL] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_REMOTE] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_TTL] =
+ g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_TOS] =
+ g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_PATH_MTU_DISCOVERY] =
+ g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_INPUT_KEY] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_OUTPUT_KEY] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_ENCAPSULATION_LIMIT] =
+ g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_FLOW_LABEL] =
+ g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "",
+ 0, (1 << 20) - 1, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_IPTUNNEL_SKELETON,
NULL);
}
+
/*****************************************************************************/
#define NM_TYPE_IP_TUNNEL_FACTORY (nm_ip_tunnel_factory_get_type ())
@@ -1057,4 +1056,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (IP_TUNNEL, IPTunnel, ip_tunnel,
factory_iface->create_device = create_device;
factory_iface->get_connection_parent = get_connection_parent;
factory_iface->get_connection_iface = get_connection_iface;
-)
+);
diff --git a/src/devices/nm-device-ip-tunnel.h b/src/devices/nm-device-ip-tunnel.h
index 94cc737526..5027a27b07 100644
--- a/src/devices/nm-device-ip-tunnel.h
+++ b/src/devices/nm-device-ip-tunnel.h
@@ -43,13 +43,8 @@
#define NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT "encapsulation-limit"
#define NM_DEVICE_IP_TUNNEL_FLOW_LABEL "flow-label"
-typedef struct {
- NMDevice parent;
-} NMDeviceIPTunnel;
-
-typedef struct {
- NMDeviceClass parent;
-} NMDeviceIPTunnelClass;
+typedef struct _NMDeviceIPTunnel NMDeviceIPTunnel;
+typedef struct _NMDeviceIPTunnelClass NMDeviceIPTunnelClass;
GType nm_device_ip_tunnel_get_type (void);
diff --git a/src/devices/nm-device-macvlan.c b/src/devices/nm-device-macvlan.c
index c6956abd5e..6c01a9b6a6 100644
--- a/src/devices/nm-device-macvlan.c
+++ b/src/devices/nm-device-macvlan.c
@@ -41,9 +41,14 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceMacvlan);
-G_DEFINE_TYPE (NMDeviceMacvlan, nm_device_macvlan, NM_TYPE_DEVICE)
+/*****************************************************************************/
-#define NM_DEVICE_MACVLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MACVLAN, NMDeviceMacvlanPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceMacvlan,
+ PROP_PARENT,
+ PROP_MODE,
+ PROP_NO_PROMISC,
+ PROP_TAP,
+);
typedef struct {
int parent_ifindex;
@@ -52,16 +57,21 @@ typedef struct {
NMPlatformLnkMacvlan props;
} NMDeviceMacvlanPrivate;
-enum {
- PROP_0,
- PROP_PARENT,
- PROP_MODE,
- PROP_NO_PROMISC,
- PROP_TAP,
+struct _NMDeviceMacvlan {
+ NMDevice parent;
+ NMDeviceMacvlanPrivate _priv;
+};
- LAST_PROP
+struct _NMDeviceMacvlanClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceMacvlan, nm_device_macvlan, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_MACVLAN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceMacvlan, NM_IS_DEVICE_MACVLAN)
+
+/*****************************************************************************/
+
static int modes[][2] = {
{ NM_SETTING_MACVLAN_MODE_VEPA, MACVLAN_MODE_VEPA },
{ NM_SETTING_MACVLAN_MODE_BRIDGE, MACVLAN_MODE_BRIDGE },
@@ -158,17 +168,17 @@ nm_device_macvlan_set_parent (NMDeviceMacvlan *self, NMDevice *parent)
}
/* Recheck availability now that the parent has changed */
- nm_device_queue_recheck_available (self,
+ nm_device_queue_recheck_available (device,
NM_DEVICE_STATE_REASON_PARENT_CHANGED,
NM_DEVICE_STATE_REASON_PARENT_CHANGED);
- g_object_notify (G_OBJECT (device), NM_DEVICE_MACVLAN_PARENT);
+ _notify (self, PROP_PARENT);
}
static void
update_properties (NMDevice *device)
{
NMDeviceMacvlan *self = NM_DEVICE_MACVLAN (device);
- NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device);
+ NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (self);
GObject *object = G_OBJECT (device);
const NMPlatformLnkMacvlan *props;
const NMPlatformLink *plink;
@@ -191,9 +201,9 @@ update_properties (NMDevice *device)
nm_device_macvlan_set_parent (self, parent);
}
if (priv->props.mode != props->mode)
- g_object_notify (object, NM_DEVICE_MACVLAN_MODE);
+ _notify (self, PROP_MODE);
if (priv->props.no_promisc != props->no_promisc)
- g_object_notify (object, NM_DEVICE_MACVLAN_NO_PROMISC);
+ _notify (self, PROP_NO_PROMISC);
priv->parent_ifindex = plink->parent;
priv->props = *props;
@@ -272,7 +282,7 @@ get_generic_capabilities (NMDevice *dev)
static gboolean
is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags)
{
- if (!NM_DEVICE_MACVLAN_GET_PRIVATE (device)->parent)
+ if (!NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device)->parent)
return FALSE;
return NM_DEVICE_CLASS (nm_device_macvlan_parent_class)->is_available (device, flags);
@@ -343,7 +353,7 @@ match_parent (NMDeviceMacvlan *self, const char *parent)
static gboolean
match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hwaddr)
{
- NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device);
+ NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device);
NMSettingWired *s_wired;
const char *setting_mac;
const char *parent_mac;
@@ -366,7 +376,7 @@ match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hw
static gboolean
check_connection_compatible (NMDevice *device, NMConnection *connection)
{
- NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device);
+ NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device);
NMSettingMacvlan *s_macvlan;
const char *parent = NULL;
@@ -445,7 +455,7 @@ complete_connection (NMDevice *device,
static void
update_connection (NMDevice *device, NMConnection *connection)
{
- NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device);
+ NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device);
NMSettingMacvlan *s_macvlan = nm_connection_get_setting_macvlan (connection);
const char *setting_parent, *new_parent;
int new_mode;
@@ -530,15 +540,10 @@ realize_start_notify (NMDevice *device, const NMPlatformLink *plink)
/*****************************************************************************/
static void
-nm_device_macvlan_init (NMDeviceMacvlan *self)
-{
-}
-
-static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object);
+ NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) object);
NMDevice *parent;
switch (prop_id) {
@@ -566,9 +571,9 @@ get_property (GObject *object, guint prop_id,
static void
set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+ const GValue *value, GParamSpec *pspec)
{
- NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object);
+ NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) object);
switch (prop_id) {
case PROP_TAP:
@@ -579,6 +584,13 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_device_macvlan_init (NMDeviceMacvlan *self)
+{
+}
+
static void
dispose (GObject *object)
{
@@ -593,8 +605,6 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *device_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMDeviceMacvlanPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_MACVLAN, NM_LINK_TYPE_MACVTAP)
object_class->dispose = dispose;
@@ -614,35 +624,32 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass)
device_class->realize_start_notify = realize_start_notify;
device_class->update_connection = update_connection;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_string (NM_DEVICE_MACVLAN_PARENT, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_NO_PROMISC,
- g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_TAP,
- g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_string (NM_DEVICE_MACVLAN_PARENT, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_MODE] =
+ g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_NO_PROMISC] =
+ g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_TAP] =
+ g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_MACVLAN_SKELETON,
@@ -735,5 +742,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (MACVLAN, Macvlan, macvlan,
factory_iface->create_device = create_device;
factory_iface->get_connection_parent = get_connection_parent;
factory_iface->get_connection_iface = get_connection_iface;
- )
-
+);
diff --git a/src/devices/nm-device-macvlan.h b/src/devices/nm-device-macvlan.h
index 5756f696fd..13dac7d792 100644
--- a/src/devices/nm-device-macvlan.h
+++ b/src/devices/nm-device-macvlan.h
@@ -35,8 +35,8 @@
#define NM_DEVICE_MACVLAN_NO_PROMISC "no-promisc"
#define NM_DEVICE_MACVLAN_TAP "tap"
-typedef NMDevice NMDeviceMacvlan;
-typedef NMDeviceClass NMDeviceMacvlanClass;
+typedef struct _NMDeviceMacvlan NMDeviceMacvlan;
+typedef struct _NMDeviceMacvlanClass NMDeviceMacvlanClass;
GType nm_device_macvlan_get_type (void);
diff --git a/src/devices/nm-device-tun.c b/src/devices/nm-device-tun.c
index 3bc5f2f95e..1870b5fdf4 100644
--- a/src/devices/nm-device-tun.c
+++ b/src/devices/nm-device-tun.c
@@ -20,12 +20,13 @@
#include "nm-default.h"
+#include "nm-device-tun.h"
+
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "nm-act-request.h"
-#include "nm-device-tun.h"
#include "nm-device-private.h"
#include "nm-ip4-config.h"
#include "nm-platform.h"
@@ -38,27 +39,37 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceTun);
-G_DEFINE_TYPE (NMDeviceTun, nm_device_tun, NM_TYPE_DEVICE)
-
-#define NM_DEVICE_TUN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TUN, NMDeviceTunPrivate))
-
-typedef struct {
- NMPlatformTunProperties props;
- const char *mode;
-} NMDeviceTunPrivate;
+/*****************************************************************************/
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceTun,
PROP_OWNER,
PROP_GROUP,
PROP_MODE,
PROP_NO_PI,
PROP_VNET_HDR,
PROP_MULTI_QUEUE,
+);
- LAST_PROP
+typedef struct {
+ NMPlatformTunProperties props;
+ const char *mode;
+} NMDeviceTunPrivate;
+
+struct _NMDeviceTun {
+ NMDevice parent;
+ NMDeviceTunPrivate _priv;
};
+struct _NMDeviceTunClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDeviceTun, nm_device_tun, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_TUN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceTun, NM_IS_DEVICE_TUN)
+
+/*****************************************************************************/
+
static void
reload_tun_properties (NMDeviceTun *self)
{
@@ -89,15 +100,15 @@ reload_tun_properties (NMDeviceTun *self)
g_object_freeze_notify (object);
if (priv->props.owner != props.owner)
- g_object_notify (object, NM_DEVICE_TUN_OWNER);
+ _notify (self, PROP_OWNER);
if (priv->props.group != props.group)
- g_object_notify (object, NM_DEVICE_TUN_GROUP);
+ _notify (self, PROP_GROUP);
if (priv->props.no_pi != props.no_pi)
- g_object_notify (object, NM_DEVICE_TUN_NO_PI);
+ _notify (self, PROP_NO_PI);
if (priv->props.vnet_hdr != props.vnet_hdr)
- g_object_notify (object, NM_DEVICE_TUN_VNET_HDR);
+ _notify (self, PROP_VNET_HDR);
if (priv->props.multi_queue != props.multi_queue)
- g_object_notify (object, NM_DEVICE_TUN_MULTI_QUEUE);
+ _notify (self, PROP_MULTI_QUEUE);
memcpy (&priv->props, &props, sizeof (NMPlatformTunProperties));
@@ -244,7 +255,7 @@ static void
realize_start_notify (NMDevice *device, const NMPlatformLink *plink)
{
NM_DEVICE_CLASS (nm_device_tun_parent_class)->realize_start_notify (device, plink);
- reload_tun_properties (device);
+ reload_tun_properties ((NMDeviceTun *) device);
}
static gboolean
@@ -332,27 +343,19 @@ unrealize_notify (NMDevice *device)
{
NMDeviceTun *self = NM_DEVICE_TUN (device);
NMDeviceTunPrivate *priv = NM_DEVICE_TUN_GET_PRIVATE (self);
- GParamSpec **properties;
- guint n_properties, i;
+ guint i;
NM_DEVICE_CLASS (nm_device_tun_parent_class)->unrealize_notify (device);
memset (&priv->props, 0, sizeof (NMPlatformTunProperties));
- properties = g_object_class_list_properties (G_OBJECT_GET_CLASS (self), &n_properties);
- for (i = 0; i < n_properties; i++)
- g_object_notify_by_pspec (G_OBJECT (self), properties[i]);
- g_free (properties);
+ for (i = 1; i < _PROPERTY_ENUMS_LAST; i++)
+ g_object_notify_by_pspec ((GObject *) self, obj_properties[i]);
}
/*****************************************************************************/
static void
-nm_device_tun_init (NMDeviceTun *self)
-{
-}
-
-static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
@@ -411,21 +414,25 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_device_tun_init (NMDeviceTun *self)
+{
+}
+
static void
nm_device_tun_class_init (NMDeviceTunClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *device_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMDeviceTunPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_TUN, NM_LINK_TYPE_TAP)
object_class->get_property = get_property;
object_class->set_property = set_property;
device_class->connection_type = NM_SETTING_TUN_SETTING_NAME;
-
device_class->link_changed = link_changed;
device_class->complete_connection = complete_connection;
device_class->check_connection_compatible = check_connection_compatible;
@@ -437,42 +444,38 @@ nm_device_tun_class_init (NMDeviceTunClass *klass)
device_class->act_stage1_prepare = act_stage1_prepare;
device_class->ip4_config_pre_commit = ip4_config_pre_commit;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_OWNER,
- g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "",
- -1, G_MAXUINT32, -1,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_GROUP,
- g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "",
- -1, G_MAXUINT32, -1,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_string (NM_DEVICE_TUN_MODE, "", "",
- "tun",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_NO_PI,
- g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "",
- FALSE,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_VNET_HDR,
- g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "",
- FALSE,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_MULTI_QUEUE,
- g_param_spec_boolean (NM_DEVICE_TUN_MULTI_QUEUE, "", "",
- FALSE,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_OWNER] =
+ g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "",
+ -1, G_MAXUINT32, -1,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_GROUP] =
+ g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "",
+ -1, G_MAXUINT32, -1,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_MODE] =
+ g_param_spec_string (NM_DEVICE_TUN_MODE, "", "",
+ "tun",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_NO_PI] =
+ g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_VNET_HDR] =
+ g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_MULTI_QUEUE] =
+ g_param_spec_boolean (NM_DEVICE_TUN_MULTI_QUEUE, "", "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_TUN_SKELETON,
@@ -530,5 +533,5 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (TUN, Tun, tun,
NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_TUN, NM_LINK_TYPE_TAP)
NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_TUN_SETTING_NAME),
factory_iface->create_device = create_device;
- )
+);
diff --git a/src/devices/nm-device-tun.h b/src/devices/nm-device-tun.h
index d62b0c373e..b0d309bb06 100644
--- a/src/devices/nm-device-tun.h
+++ b/src/devices/nm-device-tun.h
@@ -37,8 +37,8 @@
#define NM_DEVICE_TUN_VNET_HDR "vnet-hdr"
#define NM_DEVICE_TUN_MULTI_QUEUE "multi-queue"
-typedef NMDevice NMDeviceTun;
-typedef NMDeviceClass NMDeviceTunClass;
+typedef struct _NMDeviceTun NMDeviceTun;
+typedef struct _NMDeviceTunClass NMDeviceTunClass;
GType nm_device_tun_get_type (void);
diff --git a/src/devices/nm-device-veth.c b/src/devices/nm-device-veth.c
index 7f28bfbc8f..33078d786c 100644
--- a/src/devices/nm-device-veth.c
+++ b/src/devices/nm-device-veth.c
@@ -51,7 +51,7 @@ struct _NMDeviceVeth {
};
struct _NMDeviceVethClass {
- NMDeviceEthernetClass parent_class;
+ NMDeviceEthernetClass parent;
};
NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceVeth,
diff --git a/src/devices/nm-device-vlan.c b/src/devices/nm-device-vlan.c
index 5ceedba2fa..1c2f6dd70a 100644
--- a/src/devices/nm-device-vlan.c
+++ b/src/devices/nm-device-vlan.c
@@ -43,9 +43,12 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceVlan);
-G_DEFINE_TYPE (NMDeviceVlan, nm_device_vlan, NM_TYPE_DEVICE)
+/*****************************************************************************/
-#define NM_DEVICE_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_VLAN, NMDeviceVlanPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceVlan,
+ PROP_PARENT,
+ PROP_VLAN_ID,
+);
typedef struct {
NMDevice *parent;
@@ -54,14 +57,19 @@ typedef struct {
guint vlan_id;
} NMDeviceVlanPrivate;
-enum {
- PROP_0,
- PROP_PARENT,
- PROP_VLAN_ID,
+struct _NMDeviceVlan {
+ NMDevice parent;
+ NMDeviceVlanPrivate _priv;
+};
- LAST_PROP
+struct _NMDeviceVlanClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceVlan, nm_device_vlan, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_VLAN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceVlan, NM_IS_DEVICE_VLAN)
+
/*****************************************************************************/
static void
@@ -91,18 +99,18 @@ parent_hwaddr_maybe_changed (NMDevice *parent,
NMSettingIPConfig *s_ip6;
/* Never touch assumed devices */
- if (nm_device_uses_assumed_connection (self))
+ if (nm_device_uses_assumed_connection ((NMDevice *) self))
return;
- connection = nm_device_get_applied_connection (self);
+ connection = nm_device_get_applied_connection ((NMDevice *) self);
if (!connection)
return;
/* Update the VLAN MAC only if configuration does not specify one */
- if (nm_device_hw_addr_is_explict (self))
+ if (nm_device_hw_addr_is_explict ((NMDevice *) self))
return;
- old_mac = nm_device_get_hw_address (self);
+ old_mac = nm_device_get_hw_address ((NMDevice *) self);
new_mac = nm_device_get_hw_address (parent);
if (nm_streq0 (old_mac, new_mac))
return;
@@ -110,7 +118,7 @@ parent_hwaddr_maybe_changed (NMDevice *parent,
_LOGD (LOGD_VLAN, "parent hardware address changed to %s%s%s",
NM_PRINT_FMT_QUOTE_STRING (new_mac));
if (new_mac) {
- nm_device_hw_addr_set (self, new_mac, "vlan-parent");
+ nm_device_hw_addr_set ((NMDevice *) self, new_mac, "vlan-parent");
/* When changing the hw address the interface is taken down,
* removing the IPv6 configuration; reapply it.
*/
@@ -152,10 +160,10 @@ nm_device_vlan_set_parent (NMDeviceVlan *self, NMDevice *parent)
}
/* Recheck availability now that the parent has changed */
- nm_device_queue_recheck_available (self,
+ nm_device_queue_recheck_available (device,
NM_DEVICE_STATE_REASON_PARENT_CHANGED,
NM_DEVICE_STATE_REASON_PARENT_CHANGED);
- g_object_notify (G_OBJECT (device), NM_DEVICE_VLAN_PARENT);
+ _notify (self, PROP_PARENT);
}
static void
@@ -170,7 +178,7 @@ update_properties (NMDevice *device)
g_return_if_fail (NM_IS_DEVICE_VLAN (device));
- priv = NM_DEVICE_VLAN_GET_PRIVATE (device);
+ priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device);
ifindex = nm_device_get_ifindex (device);
@@ -188,7 +196,7 @@ update_properties (NMDevice *device)
vlan_id = plnk ? plnk->id : 0;
if (vlan_id != priv->vlan_id) {
priv->vlan_id = vlan_id;
- g_object_notify ((GObject *) device, NM_DEVICE_VLAN_ID);
+ _notify ((NMDeviceVlan *) device, PROP_VLAN_ID);
}
g_object_thaw_notify ((GObject *) device);
@@ -209,7 +217,7 @@ create_and_realize (NMDevice *device,
const NMPlatformLink **out_plink,
GError **error)
{
- NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (device);
+ NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device);
const char *iface = nm_device_get_iface (device);
NMSettingVlan *s_vlan;
int parent_ifindex;
@@ -257,7 +265,7 @@ create_and_realize (NMDevice *device,
nm_device_vlan_set_parent (NM_DEVICE_VLAN (device), parent);
if (vlan_id != priv->vlan_id) {
priv->vlan_id = vlan_id;
- g_object_notify ((GObject *) device, NM_DEVICE_VLAN_ID);
+ _notify ((NMDeviceVlan *) device, PROP_VLAN_ID);
}
return TRUE;
@@ -268,8 +276,8 @@ unrealize_notify (NMDevice *device)
{
NM_DEVICE_CLASS (nm_device_vlan_parent_class)->unrealize_notify (device);
- NM_DEVICE_VLAN_GET_PRIVATE (device)->vlan_id = 0;
- g_object_notify (G_OBJECT (device), NM_DEVICE_VLAN_ID);
+ NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device)->vlan_id = 0;
+ _notify ((NMDeviceVlan *) device, PROP_VLAN_ID);
nm_device_vlan_set_parent (NM_DEVICE_VLAN (device), NULL);
}
@@ -287,7 +295,7 @@ get_generic_capabilities (NMDevice *dev)
static gboolean
is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags)
{
- if (!NM_DEVICE_VLAN_GET_PRIVATE (device)->parent)
+ if (!NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device)->parent)
return FALSE;
return NM_DEVICE_CLASS (nm_device_vlan_parent_class)->is_available (device, flags);
@@ -373,7 +381,7 @@ match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hw
if (!setting_mac)
return !fail_if_no_hwaddr;
- priv = NM_DEVICE_VLAN_GET_PRIVATE (device);
+ priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device);
if (!priv->parent)
return !fail_if_no_hwaddr;
@@ -384,7 +392,7 @@ match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hw
static gboolean
check_connection_compatible (NMDevice *device, NMConnection *connection)
{
- NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (device);
+ NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device);
NMSettingVlan *s_vlan;
const char *parent = NULL;
@@ -468,7 +476,7 @@ complete_connection (NMDevice *device,
static void
update_connection (NMDevice *device, NMConnection *connection)
{
- NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (device);
+ NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device);
NMSettingVlan *s_vlan = nm_connection_get_setting_vlan (connection);
int ifindex = nm_device_get_ifindex (device);
const char *setting_parent, *new_parent;
@@ -534,7 +542,7 @@ update_connection (NMDevice *device, NMConnection *connection)
static NMActStageReturn
act_stage1_prepare (NMDevice *dev, NMDeviceStateReason *reason)
{
- NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (dev);
+ NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) dev);
NMSettingVlan *s_vlan;
NMActStageReturn ret;
@@ -602,15 +610,10 @@ ip4_config_pre_commit (NMDevice *device, NMIP4Config *config)
/*****************************************************************************/
static void
-nm_device_vlan_init (NMDeviceVlan * self)
-{
-}
-
-static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (object);
+ NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) object);
switch (prop_id) {
case PROP_PARENT:
@@ -625,11 +628,11 @@ get_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+nm_device_vlan_init (NMDeviceVlan * self)
{
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
static void
@@ -648,11 +651,7 @@ nm_device_vlan_class_init (NMDeviceVlanClass *klass)
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_VLAN_SETTING_NAME, NM_LINK_TYPE_VLAN)
- g_type_class_add_private (object_class, sizeof (NMDeviceVlanPrivate));
-
- /* virtual methods */
object_class->get_property = get_property;
- object_class->set_property = set_property;
object_class->dispose = dispose;
parent_class->create_and_realize = create_and_realize;
@@ -669,18 +668,18 @@ nm_device_vlan_class_init (NMDeviceVlanClass *klass)
parent_class->complete_connection = complete_connection;
parent_class->update_connection = update_connection;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_string (NM_DEVICE_VLAN_PARENT, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_VLAN_ID,
- g_param_spec_uint (NM_DEVICE_VLAN_ID, "", "",
- 0, 4095, 0,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_string (NM_DEVICE_VLAN_PARENT, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_VLAN_ID] =
+ g_param_spec_uint (NM_DEVICE_VLAN_ID, "", "",
+ 0, 4095, 0,
+ G_PARAM_READABLE
+ | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_VLAN_SKELETON,
@@ -765,5 +764,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (VLAN, Vlan, vlan,
factory_iface->create_device = create_device;
factory_iface->get_connection_parent = get_connection_parent;
factory_iface->get_connection_iface = get_connection_iface;
- )
-
+);
diff --git a/src/devices/nm-device-vlan.h b/src/devices/nm-device-vlan.h
index 71ca80307a..f587f4f60b 100644
--- a/src/devices/nm-device-vlan.h
+++ b/src/devices/nm-device-vlan.h
@@ -40,8 +40,8 @@ typedef enum {
#define NM_DEVICE_VLAN_PARENT "parent"
#define NM_DEVICE_VLAN_ID "vlan-id"
-typedef NMDevice NMDeviceVlan;
-typedef NMDeviceClass NMDeviceVlanClass;
+typedef struct _NMDeviceVlan NMDeviceVlan;
+typedef struct _NMDeviceVlanClass NMDeviceVlanClass;
GType nm_device_vlan_get_type (void);
diff --git a/src/devices/nm-device-vxlan.c b/src/devices/nm-device-vxlan.c
index aa7fc98b32..583cb6677b 100644
--- a/src/devices/nm-device-vxlan.c
+++ b/src/devices/nm-device-vxlan.c
@@ -40,17 +40,9 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceVxlan);
-G_DEFINE_TYPE (NMDeviceVxlan, nm_device_vxlan, NM_TYPE_DEVICE)
-
-#define NM_DEVICE_VXLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_VXLAN, NMDeviceVxlanPrivate))
-
-typedef struct {
- NMDevice *parent;
- NMPlatformLnkVxlan props;
-} NMDeviceVxlanPrivate;
+/*****************************************************************************/
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceVxlan,
PROP_PARENT,
PROP_ID,
PROP_LOCAL,
@@ -67,17 +59,33 @@ enum {
PROP_RSC,
PROP_L2MISS,
PROP_L3MISS,
+);
- LAST_PROP
+typedef struct {
+ NMDevice *parent;
+ NMPlatformLnkVxlan props;
+} NMDeviceVxlanPrivate;
+
+struct _NMDeviceVxlan {
+ NMDevice parent;
+ NMDeviceVxlanPrivate _priv;
+};
+
+struct _NMDeviceVxlanClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceVxlan, nm_device_vxlan, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_VXLAN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceVxlan, NM_IS_DEVICE_VXLAN)
+
/*****************************************************************************/
static void
update_properties (NMDevice *device)
{
NMDeviceVxlan *self = NM_DEVICE_VXLAN (device);
- NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (device);
+ NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (self);
GObject *object = G_OBJECT (device);
const NMPlatformLnkVxlan *props;
NMDevice *parent;
@@ -95,42 +103,42 @@ update_properties (NMDevice *device)
parent = nm_manager_get_device_by_ifindex (nm_manager_get (), props->parent_ifindex);
if (parent)
priv->parent = g_object_ref (parent);
- g_object_notify (object, NM_DEVICE_VXLAN_PARENT);
+ _notify (self, PROP_PARENT);
}
if (priv->props.id != props->id)
- g_object_notify (object, NM_DEVICE_VXLAN_ID);
+ _notify (self, PROP_ID);
if (priv->props.local != props->local)
- g_object_notify (object, NM_DEVICE_VXLAN_LOCAL);
+ _notify (self, PROP_LOCAL);
if (memcmp (&priv->props.local6, &props->local6, sizeof (props->local6)) != 0)
- g_object_notify (object, NM_DEVICE_VXLAN_LOCAL);
+ _notify (self, PROP_LOCAL);
if (priv->props.group != props->group)
- g_object_notify (object, NM_DEVICE_VXLAN_GROUP);
+ _notify (self, PROP_GROUP);
if (memcmp (&priv->props.group6, &props->group6, sizeof (props->group6)) != 0)
- g_object_notify (object, NM_DEVICE_VXLAN_GROUP);
+ _notify (self, PROP_GROUP);
if (priv->props.tos != props->tos)
- g_object_notify (object, NM_DEVICE_VXLAN_TOS);
+ _notify (self, PROP_TOS);
if (priv->props.ttl != props->ttl)
- g_object_notify (object, NM_DEVICE_VXLAN_TTL);
+ _notify (self, PROP_TTL);
if (priv->props.learning != props->learning)
- g_object_notify (object, NM_DEVICE_VXLAN_LEARNING);
+ _notify (self, PROP_LEARNING);
if (priv->props.ageing != props->ageing)
- g_object_notify (object, NM_DEVICE_VXLAN_AGEING);
+ _notify (self, PROP_AGEING);
if (priv->props.limit != props->limit)
- g_object_notify (object, NM_DEVICE_VXLAN_LIMIT);
+ _notify (self, PROP_LIMIT);
if (priv->props.src_port_min != props->src_port_min)
- g_object_notify (object, NM_DEVICE_VXLAN_SRC_PORT_MIN);
+ _notify (self, PROP_SRC_PORT_MIN);
if (priv->props.src_port_max != props->src_port_max)
- g_object_notify (object, NM_DEVICE_VXLAN_SRC_PORT_MAX);
+ _notify (self, PROP_SRC_PORT_MAX);
if (priv->props.dst_port != props->dst_port)
- g_object_notify (object, NM_DEVICE_VXLAN_DST_PORT);
+ _notify (self, PROP_DST_PORT);
if (priv->props.proxy != props->proxy)
- g_object_notify (object, NM_DEVICE_VXLAN_PROXY);
+ _notify (self, PROP_PROXY);
if (priv->props.rsc != props->rsc)
- g_object_notify (object, NM_DEVICE_VXLAN_RSC);
+ _notify (self, PROP_RSC);
if (priv->props.l2miss != props->l2miss)
- g_object_notify (object, NM_DEVICE_VXLAN_L2MISS);
+ _notify (self, PROP_L2MISS);
if (priv->props.l3miss != props->l3miss)
- g_object_notify (object, NM_DEVICE_VXLAN_L3MISS);
+ _notify (self, PROP_L3MISS);
priv->props = *props;
@@ -165,17 +173,14 @@ unrealize_notify (NMDevice *device)
{
NMDeviceVxlan *self = NM_DEVICE_VXLAN (device);
NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (self);
- GParamSpec **properties;
- guint n_properties, i;
+ guint i;
NM_DEVICE_CLASS (nm_device_vxlan_parent_class)->unrealize_notify (device);
memset (&priv->props, 0, sizeof (NMPlatformLnkVxlan));
- properties = g_object_class_list_properties (G_OBJECT_GET_CLASS (self), &n_properties);
- for (i = 0; i < n_properties; i++)
- g_object_notify_by_pspec (G_OBJECT (self), properties[i]);
- g_free (properties);
+ for (i = 1; i < _PROPERTY_ENUMS_LAST; i++)
+ g_object_notify_by_pspec (G_OBJECT (self), obj_properties[i]);
}
static gboolean
@@ -300,7 +305,7 @@ address_matches (const char *str, in_addr_t addr4, struct in6_addr *addr6)
static gboolean
check_connection_compatible (NMDevice *device, NMConnection *connection)
{
- NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (device);
+ NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) device);
NMSettingVxlan *s_vxlan;
const char *parent;
@@ -394,7 +399,7 @@ complete_connection (NMDevice *device,
static void
update_connection (NMDevice *device, NMConnection *connection)
{
- NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (device);
+ NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) device);
NMSettingVxlan *s_vxlan = nm_connection_get_setting_vxlan (connection);
NMDevice *parent = NULL;
const char *setting_parent, *new_parent;
@@ -546,15 +551,10 @@ ip4_config_pre_commit (NMDevice *device, NMIP4Config *config)
/*****************************************************************************/
static void
-nm_device_vxlan_init (NMDeviceVxlan *self)
-{
-}
-
-static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object);
+ NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) object);
NMDevice *parent;
switch (prop_id) {
@@ -619,10 +619,17 @@ get_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_device_vxlan_init (NMDeviceVxlan *self)
+{
+}
+
static void
dispose (GObject *object)
{
- NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object);
+ NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) object);
g_clear_object (&priv->parent);
G_OBJECT_CLASS (nm_device_vxlan_parent_class)->dispose (object);
@@ -634,8 +641,6 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *device_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMDeviceVxlanPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_VXLAN)
object_class->get_property = get_property;
@@ -653,118 +658,103 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *klass)
device_class->act_stage1_prepare = act_stage1_prepare;
device_class->ip4_config_pre_commit = ip4_config_pre_commit;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_string (NM_DEVICE_VXLAN_PARENT, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_ID,
- g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_LOCAL,
- g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_GROUP,
- g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_TOS,
- g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "",
- 0, 255, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_TTL,
- g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "",
- 0, 255, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_LEARNING,
- g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_AGEING,
- g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_LIMIT,
- g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_SRC_PORT_MIN,
- g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "",
- 0, 65535, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_SRC_PORT_MAX,
- g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "",
- 0, 65535, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_DST_PORT,
- g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "",
- 0, 65535, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_PROXY,
- g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_RSC,
- g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_L2MISS,
- g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_L3MISS,
- g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_string (NM_DEVICE_VXLAN_PARENT, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_ID] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_LOCAL] =
+ g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_GROUP] =
+ g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_TOS] =
+ g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_TTL] =
+ g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_LEARNING] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_AGEING] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_LIMIT] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_SRC_PORT_MIN] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "",
+ 0, 65535, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_SRC_PORT_MAX] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "",
+ 0, 65535, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_DST_PORT] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "",
+ 0, 65535, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_PROXY] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_RSC] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_L2MISS] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_L3MISS] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_VXLAN_SKELETON,
@@ -830,5 +820,5 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (VXLAN, Vxlan, vxlan,
factory_iface->create_device = create_device;
factory_iface->get_connection_parent = get_connection_parent;
factory_iface->get_connection_iface = get_connection_iface;
- )
+);
diff --git a/src/devices/nm-device-vxlan.h b/src/devices/nm-device-vxlan.h
index 71204d3beb..82e5c604e9 100644
--- a/src/devices/nm-device-vxlan.h
+++ b/src/devices/nm-device-vxlan.h
@@ -47,8 +47,8 @@
#define NM_DEVICE_VXLAN_L2MISS "l2miss"
#define NM_DEVICE_VXLAN_L3MISS "l3miss"
-typedef NMDevice NMDeviceVxlan;
-typedef NMDeviceClass NMDeviceVxlanClass;
+typedef struct _NMDeviceVxlan NMDeviceVxlan;
+typedef struct _NMDeviceVxlanClass NMDeviceVxlanClass;
GType nm_device_vxlan_get_type (void);
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 8786f3a31f..e2cd28f911 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -12643,7 +12643,6 @@ nm_device_class_init (NMDeviceClass *klass)
exported_object_class->export_path = NM_DBUS_PATH "/Devices/%u";
- /* Virtual methods */
object_class->dispose = dispose;
object_class->finalize = finalize;
object_class->set_property = set_property;
@@ -12675,7 +12674,6 @@ nm_device_class_init (NMDeviceClass *klass)
klass->unmanaged_on_quit = unmanaged_on_quit;
klass->deactivate_reset_hw_addr = deactivate_reset_hw_addr;
- /* Properties */
obj_properties[PROP_UDI] =
g_param_spec_string (NM_DEVICE_UDI, "", "",
NULL,
@@ -12893,7 +12891,6 @@ nm_device_class_init (NMDeviceClass *klass)
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
- /* Signals */
signals[STATE_CHANGED] =
g_signal_new (NM_DEVICE_STATE_CHANGED,
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/src/devices/team/Makefile.am b/src/devices/team/Makefile.am
index f0ed8201be..f2ad28d1cd 100644
--- a/src/devices/team/Makefile.am
+++ b/src/devices/team/Makefile.am
@@ -28,10 +28,9 @@ pkglib_LTLIBRARIES = libnm-device-plugin-team.la
SYMBOL_VIS_FILE=$(srcdir)/exports.ver
libnm_device_plugin_team_la_SOURCES = \
- nm-device-team.c \
- nm-device-team.h \
nm-team-factory.c \
- nm-team-factory.h
+ nm-device-team.c \
+ nm-device-team.h
libnm_device_plugin_team_la_LDFLAGS = \
-module -avoid-version \
diff --git a/src/devices/team/nm-device-team.c b/src/devices/team/nm-device-team.c
index b0504b5754..0ed80f84c8 100644
--- a/src/devices/team/nm-device-team.c
+++ b/src/devices/team/nm-device-team.c
@@ -20,6 +20,8 @@
#include "nm-default.h"
+#include "nm-device-team.h"
+
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
@@ -27,7 +29,6 @@
#include <teamdctl.h>
#include <stdlib.h>
-#include "nm-device-team.h"
#include "NetworkManagerUtils.h"
#include "nm-device-private.h"
#include "nm-platform.h"
@@ -41,9 +42,7 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceTeam);
-G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE)
-
-#define NM_DEVICE_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TEAM, NMDeviceTeamPrivate))
+/*****************************************************************************/
NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceTeam,
PROP_CONFIG,
@@ -59,6 +58,21 @@ typedef struct {
char *config;
} NMDeviceTeamPrivate;
+struct _NMDeviceTeam {
+ NMDevice parent;
+ NMDeviceTeamPrivate _priv;
+};
+
+struct _NMDeviceTeamClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_TEAM_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceTeam, NM_IS_DEVICE_TEAM)
+
+/*****************************************************************************/
+
static gboolean teamd_start (NMDevice *device, NMSettingTeam *s_team);
/*****************************************************************************/
@@ -179,7 +193,7 @@ teamd_read_config (NMDevice *device)
static gboolean
teamd_read_timeout_cb (gpointer user_data)
{
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (user_data);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) user_data);
teamd_read_config ((NMDevice *) user_data);
priv->teamd_read_timeout = 0;
@@ -286,7 +300,7 @@ master_update_slave_connection (NMDevice *self,
static void
teamd_cleanup (NMDevice *device, gboolean free_tdc)
{
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) device);
nm_clear_g_source (&priv->teamd_process_watch);
nm_clear_g_source (&priv->teamd_timeout);
@@ -309,7 +323,7 @@ teamd_timeout_cb (gpointer user_data)
{
NMDeviceTeam *self = NM_DEVICE_TEAM (user_data);
NMDevice *device = NM_DEVICE (self);
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self);
g_return_val_if_fail (priv->teamd_timeout, FALSE);
priv->teamd_timeout = 0;
@@ -637,7 +651,7 @@ enslave_slave (NMDevice *device,
gboolean configure)
{
NMDeviceTeam *self = NM_DEVICE_TEAM (device);
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self);
gboolean success = TRUE, no_firmware = FALSE;
const char *slave_iface = nm_device_get_ip_iface (slave);
NMSettingTeamPort *s_team_port;
@@ -696,7 +710,7 @@ release_slave (NMDevice *device,
gboolean configure)
{
NMDeviceTeam *self = NM_DEVICE_TEAM (device);
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self);
gboolean success, no_firmware = FALSE;
if (configure) {
@@ -750,19 +764,6 @@ create_and_realize (NMDevice *device,
/*****************************************************************************/
-NMDevice *
-nm_device_team_new (const char *iface)
-{
- return (NMDevice *) g_object_new (NM_TYPE_DEVICE_TEAM,
- NM_DEVICE_IFACE, iface,
- NM_DEVICE_DRIVER, "team",
- NM_DEVICE_TYPE_DESC, "Team",
- NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_TEAM,
- NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_TEAM,
- NM_DEVICE_IS_MASTER, TRUE,
- NULL);
-}
-
static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
@@ -780,6 +781,8 @@ get_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
static void
nm_device_team_init (NMDeviceTeam * self)
{
@@ -789,7 +792,7 @@ static void
constructed (GObject *object)
{
NMDevice *device = NM_DEVICE (object);
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (object);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) device);
char *tmp_str = NULL;
G_OBJECT_CLASS (nm_device_team_parent_class)->constructed (object);
@@ -806,11 +809,24 @@ constructed (GObject *object)
g_free (tmp_str);
}
+NMDevice *
+nm_device_team_new (const char *iface)
+{
+ return (NMDevice *) g_object_new (NM_TYPE_DEVICE_TEAM,
+ NM_DEVICE_IFACE, iface,
+ NM_DEVICE_DRIVER, "team",
+ NM_DEVICE_TYPE_DESC, "Team",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_TEAM,
+ NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_TEAM,
+ NM_DEVICE_IS_MASTER, TRUE,
+ NULL);
+}
+
static void
dispose (GObject *object)
{
NMDevice *device = NM_DEVICE (object);
- NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (object);
+ NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) device);
if (priv->teamd_dbus_watch) {
g_bus_unwatch_name (priv->teamd_dbus_watch);
@@ -829,8 +845,6 @@ nm_device_team_class_init (NMDeviceTeamClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceTeamPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_TEAM_SETTING_NAME, NM_LINK_TYPE_TEAM)
object_class->constructed = constructed;
diff --git a/src/devices/team/nm-device-team.h b/src/devices/team/nm-device-team.h
index 43e8aab408..90af2e87c5 100644
--- a/src/devices/team/nm-device-team.h
+++ b/src/devices/team/nm-device-team.h
@@ -33,8 +33,8 @@
/* Properties */
#define NM_DEVICE_TEAM_CONFIG "config"
-typedef NMDevice NMDeviceTeam;
-typedef NMDeviceClass NMDeviceTeamClass;
+typedef struct _NMDeviceTeam NMDeviceTeam;
+typedef struct _NMDeviceTeamClass NMDeviceTeamClass;
GType nm_device_team_get_type (void);
diff --git a/src/devices/team/nm-team-factory.c b/src/devices/team/nm-team-factory.c
index 08cb15d268..97275f7ef7 100644
--- a/src/devices/team/nm-team-factory.c
+++ b/src/devices/team/nm-team-factory.c
@@ -25,13 +25,34 @@
#include "nm-manager.h"
#include "nm-device-factory.h"
-#include "nm-team-factory.h"
#include "nm-device-team.h"
#include "nm-platform.h"
#include "nm-core-internal.h"
+/*****************************************************************************/
+
+#define NM_TYPE_TEAM_FACTORY (nm_team_factory_get_type ())
+#define NM_TEAM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_TEAM_FACTORY, NMTeamFactory))
+#define NM_TEAM_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_TEAM_FACTORY, NMTeamFactoryClass))
+#define NM_IS_TEAM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_TEAM_FACTORY))
+#define NM_IS_TEAM_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_TEAM_FACTORY))
+#define NM_TEAM_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_TEAM_FACTORY, NMTeamFactoryClass))
+
+typedef struct _NMTeamFactory NMTeamFactory;
+typedef struct _NMTeamFactoryClass NMTeamFactoryClass;
+
static GType nm_team_factory_get_type (void);
+/*****************************************************************************/
+
+struct _NMTeamFactory {
+ GObject parent;
+};
+
+struct _NMTeamFactoryClass {
+ GObjectClass parent;
+};
+
static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface);
G_DEFINE_TYPE_EXTENDED (NMTeamFactory, nm_team_factory, G_TYPE_OBJECT, 0,
@@ -39,15 +60,6 @@ G_DEFINE_TYPE_EXTENDED (NMTeamFactory, nm_team_factory, G_TYPE_OBJECT, 0,
/*****************************************************************************/
-G_MODULE_EXPORT NMDeviceFactory *
-nm_device_factory_create (GError **error)
-{
- nm_manager_set_capability (nm_manager_get (), NM_CAPABILITY_TEAM);
- return (NMDeviceFactory *) g_object_new (NM_TYPE_TEAM_FACTORY, NULL);
-}
-
-/*****************************************************************************/
-
static NMDevice *
create_device (NMDeviceFactory *factory,
const char *iface,
@@ -71,13 +83,22 @@ nm_team_factory_init (NMTeamFactory *self)
}
static void
+nm_team_factory_class_init (NMTeamFactoryClass *klass)
+{
+}
+
+static void
device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
{
factory_iface->create_device = create_device;
factory_iface->get_supported_types = get_supported_types;
}
-static void
-nm_team_factory_class_init (NMTeamFactoryClass *klass)
+/*****************************************************************************/
+
+G_MODULE_EXPORT NMDeviceFactory *
+nm_device_factory_create (GError **error)
{
+ nm_manager_set_capability (nm_manager_get (), NM_CAPABILITY_TEAM);
+ return (NMDeviceFactory *) g_object_new (NM_TYPE_TEAM_FACTORY, NULL);
}
diff --git a/src/devices/team/nm-team-factory.h b/src/devices/team/nm-team-factory.h
deleted file mode 100644
index 4155870c2a..0000000000
--- a/src/devices/team/nm-team-factory.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* NetworkManager -- Network link manager
- *
- * 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 (C) 2014 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_TEAM_FACTORY_H__
-#define __NETWORKMANAGER_TEAM_FACTORY_H__
-
-#define NM_TYPE_TEAM_FACTORY (nm_team_factory_get_type ())
-#define NM_TEAM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_TEAM_FACTORY, NMTeamFactory))
-
-typedef struct {
- GObject parent;
-} NMTeamFactory;
-
-typedef struct {
- GObjectClass parent;
-} NMTeamFactoryClass;
-
-#endif /* __NETWORKMANAGER_TEAM_FACTORY_H__ */
diff --git a/src/devices/wifi/nm-device-olpc-mesh.c b/src/devices/wifi/nm-device-olpc-mesh.c
index cfac85881a..cac8b068cd 100644
--- a/src/devices/wifi/nm-device-olpc-mesh.c
+++ b/src/devices/wifi/nm-device-olpc-mesh.c
@@ -26,6 +26,8 @@
#include "nm-default.h"
+#include "nm-device-olpc-mesh.h"
+
#include <netinet/in.h>
#include <string.h>
#include <sys/stat.h>
@@ -37,7 +39,6 @@
#include "nm-device.h"
#include "nm-device-wifi.h"
-#include "nm-device-olpc-mesh.h"
#include "nm-device-private.h"
#include "nm-utils.h"
#include "NetworkManagerUtils.h"
@@ -56,24 +57,32 @@
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceOlpcMesh);
-G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE)
-
-#define NM_DEVICE_OLPC_MESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_OLPC_MESH, NMDeviceOlpcMeshPrivate))
+/*****************************************************************************/
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceOlpcMesh,
PROP_COMPANION,
PROP_ACTIVE_CHANNEL,
+);
- LAST_PROP
-};
-
-struct _NMDeviceOlpcMeshPrivate {
+typedef struct {
NMDevice *companion;
NMManager *manager;
gboolean stage1_waiting;
+} NMDeviceOlpcMeshPrivate;
+
+struct _NMDeviceOlpcMesh {
+ NMDevice parent;
+ NMDeviceOlpcMeshPrivate _priv;
+};
+
+struct _NMDeviceOlpcMeshClass {
+ NMDeviceClass parent;
};
+G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_OLPC_MESH_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceOlpcMesh, NM_IS_DEVICE_OLPC_MESH)
+
/*****************************************************************************/
static gboolean
@@ -158,7 +167,7 @@ static NMActStageReturn
act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason)
{
NMDeviceOlpcMesh *self = NM_DEVICE_OLPC_MESH (device);
- NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (device);
+ NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (self);
NMActStageReturn ret;
gboolean scanning;
@@ -196,7 +205,7 @@ _mesh_set_channel (NMDeviceOlpcMesh *self, guint32 channel)
if (nm_platform_mesh_get_channel (NM_PLATFORM_GET, ifindex) != channel) {
if (nm_platform_mesh_set_channel (NM_PLATFORM_GET, ifindex, channel))
- g_object_notify (G_OBJECT (self), NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL);
+ _notify (self, PROP_ACTIVE_CHANNEL);
}
}
@@ -256,7 +265,7 @@ companion_cleanup (NMDeviceOlpcMesh *self)
g_signal_handlers_disconnect_by_data (priv->companion, self);
g_clear_object (&priv->companion);
}
- g_object_notify (G_OBJECT (self), NM_DEVICE_OLPC_MESH_COMPANION);
+ _notify (self, PROP_COMPANION);
}
static void
@@ -354,7 +363,7 @@ check_companion (NMDeviceOlpcMesh *self, NMDevice *other)
g_signal_connect (G_OBJECT (other), NM_DEVICE_AUTOCONNECT_ALLOWED,
G_CALLBACK (companion_autoconnect_allowed_cb), self);
- g_object_notify (G_OBJECT (self), NM_DEVICE_OLPC_MESH_COMPANION);
+ _notify (self, PROP_COMPANION);
return TRUE;
}
@@ -417,17 +426,28 @@ state_changed (NMDevice *device,
/*****************************************************************************/
-NMDevice *
-nm_device_olpc_mesh_new (const char *iface)
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
{
- return (NMDevice *) g_object_new (NM_TYPE_DEVICE_OLPC_MESH,
- NM_DEVICE_IFACE, iface,
- NM_DEVICE_TYPE_DESC, "802.11 OLPC Mesh",
- NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_OLPC_MESH,
- NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_OLPC_MESH,
- NULL);
+ NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object);
+ NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (device);
+
+ switch (prop_id) {
+ case PROP_COMPANION:
+ nm_utils_g_value_set_object_path (value, priv->companion);
+ break;
+ case PROP_ACTIVE_CHANNEL:
+ g_value_set_uint (value, nm_platform_mesh_get_channel (NM_PLATFORM_GET, nm_device_get_ifindex (NM_DEVICE (device))));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
+/*****************************************************************************/
+
static void
nm_device_olpc_mesh_init (NMDeviceOlpcMesh * self)
{
@@ -450,35 +470,15 @@ constructed (GObject *object)
nm_device_set_dhcp_timeout (NM_DEVICE (self), 20);
}
-static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object);
- NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (device);
-
- switch (prop_id) {
- case PROP_COMPANION:
- nm_utils_g_value_set_object_path (value, priv->companion);
- break;
- case PROP_ACTIVE_CHANNEL:
- g_value_set_uint (value, nm_platform_mesh_get_channel (NM_PLATFORM_GET, nm_device_get_ifindex (NM_DEVICE (device))));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+NMDevice *
+nm_device_olpc_mesh_new (const char *iface)
{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ return (NMDevice *) g_object_new (NM_TYPE_DEVICE_OLPC_MESH,
+ NM_DEVICE_IFACE, iface,
+ NM_DEVICE_TYPE_DESC, "802.11 OLPC Mesh",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_OLPC_MESH,
+ NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_OLPC_MESH,
+ NULL);
}
static void
@@ -504,39 +504,33 @@ nm_device_olpc_mesh_class_init (NMDeviceOlpcMeshClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMDeviceOlpcMeshPrivate));
-
NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_OLPC_MESH_SETTING_NAME, NM_LINK_TYPE_OLPC_MESH)
object_class->constructed = constructed;
object_class->get_property = get_property;
- object_class->set_property = set_property;
object_class->dispose = dispose;
parent_class->check_connection_compatible = check_connection_compatible;
parent_class->can_auto_connect = can_auto_connect;
parent_class->complete_connection = complete_connection;
-
parent_class->is_available = is_available;
parent_class->act_stage1_prepare = act_stage1_prepare;
parent_class->act_stage2_config = act_stage2_config;
-
parent_class->state_changed = state_changed;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_COMPANION,
- g_param_spec_string (NM_DEVICE_OLPC_MESH_COMPANION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_ACTIVE_CHANNEL,
- g_param_spec_uint (NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_COMPANION] =
+ g_param_spec_string (NM_DEVICE_OLPC_MESH_COMPANION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_ACTIVE_CHANNEL] =
+ g_param_spec_uint (NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
NMDBUS_TYPE_DEVICE_OLPC_MESH_SKELETON,
diff --git a/src/devices/wifi/nm-device-olpc-mesh.h b/src/devices/wifi/nm-device-olpc-mesh.h
index 135226d5af..b58dfdf7be 100644
--- a/src/devices/wifi/nm-device-olpc-mesh.h
+++ b/src/devices/wifi/nm-device-olpc-mesh.h
@@ -41,25 +41,8 @@
#define NM_DEVICE_OLPC_MESH_BITRATE "bitrate"
#define NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL "active-channel"
-#ifndef NM_DEVICE_OLPC_MESH_DEFINED
-#define NM_DEVICE_OLPC_MESH_DEFINED
typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh;
-#endif
-
typedef struct _NMDeviceOlpcMeshClass NMDeviceOlpcMeshClass;
-typedef struct _NMDeviceOlpcMeshPrivate NMDeviceOlpcMeshPrivate;
-
-struct _NMDeviceOlpcMesh
-{
- NMDevice parent;
-};
-
-struct _NMDeviceOlpcMeshClass
-{
- NMDeviceClass parent;
-
-};
-
GType nm_device_olpc_mesh_get_type (void);
diff --git a/src/devices/wifi/nm-wifi-factory.c b/src/devices/wifi/nm-wifi-factory.c
index 2259daac60..1bd0756a48 100644
--- a/src/devices/wifi/nm-wifi-factory.c
+++ b/src/devices/wifi/nm-wifi-factory.c
@@ -30,19 +30,30 @@
#include "nm-settings-connection.h"
#include "nm-platform.h"
-#define NM_TYPE_WIFI_FACTORY (nm_wifi_factory_get_type ())
-#define NM_WIFI_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIFI_FACTORY, NMWifiFactory))
+/*****************************************************************************/
-typedef struct {
- GObject parent;
-} NMWifiFactory;
+#define NM_TYPE_WIFI_FACTORY (nm_wifi_factory_get_type ())
+#define NM_WIFI_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIFI_FACTORY, NMWifiFactory))
+#define NM_WIFI_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WIFI_FACTORY, NMWifiFactoryClass))
+#define NM_IS_WIFI_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WIFI_FACTORY))
+#define NM_IS_WIFI_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_WIFI_FACTORY))
+#define NM_WIFI_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WIFI_FACTORY, NMWifiFactoryClass))
-typedef struct {
- GObjectClass parent;
-} NMWifiFactoryClass;
+typedef struct _NMWifiFactory NMWifiFactory;
+typedef struct _NMWifiFactoryClass NMWifiFactoryClass;
static GType nm_wifi_factory_get_type (void);
+/*****************************************************************************/
+
+struct _NMWifiFactory {
+ GObject parent;
+};
+
+struct _NMWifiFactoryClass {
+ GObjectClass parent;
+};
+
static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface);
G_DEFINE_TYPE_EXTENDED (NMWifiFactory, nm_wifi_factory, G_TYPE_OBJECT, 0,
@@ -50,14 +61,6 @@ G_DEFINE_TYPE_EXTENDED (NMWifiFactory, nm_wifi_factory, G_TYPE_OBJECT, 0,
/*****************************************************************************/
-G_MODULE_EXPORT NMDeviceFactory *
-nm_device_factory_create (GError **error)
-{
- return (NMDeviceFactory *) g_object_new (NM_TYPE_WIFI_FACTORY, NULL);
-}
-
-/*****************************************************************************/
-
static NMDevice *
create_device (NMDeviceFactory *factory,
const char *iface,
@@ -101,20 +104,29 @@ NM_DEVICE_FACTORY_DECLARE_TYPES (
NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_OLPC_MESH_SETTING_NAME)
)
+/*****************************************************************************/
+
static void
-device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
+nm_wifi_factory_init (NMWifiFactory *self)
{
- factory_iface->create_device = create_device;
- factory_iface->get_supported_types = get_supported_types;
}
static void
-nm_wifi_factory_init (NMWifiFactory *self)
+nm_wifi_factory_class_init (NMWifiFactoryClass *wf_class)
{
}
static void
-nm_wifi_factory_class_init (NMWifiFactoryClass *wf_class)
+device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
{
+ factory_iface->create_device = create_device;
+ factory_iface->get_supported_types = get_supported_types;
}
+/*****************************************************************************/
+
+G_MODULE_EXPORT NMDeviceFactory *
+nm_device_factory_create (GError **error)
+{
+ return (NMDeviceFactory *) g_object_new (NM_TYPE_WIFI_FACTORY, NULL);
+}
diff --git a/src/devices/wwan/Makefile.am b/src/devices/wwan/Makefile.am
index 1b117d4f3d..845951d14c 100644
--- a/src/devices/wwan/Makefile.am
+++ b/src/devices/wwan/Makefile.am
@@ -68,7 +68,6 @@ SYMBOL_VIS_FILE=$(srcdir)/exports.ver
libnm_device_plugin_wwan_la_SOURCES = \
nm-wwan-factory.c \
- nm-wwan-factory.h \
nm-device-modem.c \
nm-device-modem.h
diff --git a/src/devices/wwan/nm-device-modem.c b/src/devices/wwan/nm-device-modem.c
index 100f2d71f8..90fe4d6882 100644
--- a/src/devices/wwan/nm-device-modem.c
+++ b/src/devices/wwan/nm-device-modem.c
@@ -20,9 +20,10 @@
#include "nm-default.h"
+#include "nm-device-modem.h"
+
#include <string.h>
-#include "nm-device-modem.h"
#include "nm-modem.h"
#include "nm-device-private.h"
#include "nm-rfkill-manager.h"
@@ -31,14 +32,18 @@
#include "NetworkManagerUtils.h"
#include "nm-core-internal.h"
+#include "nmdbus-device-modem.h"
+
#include "nm-device-logging.h"
_LOG_DECLARE_SELF(NMDeviceModem);
-#include "nmdbus-device-modem.h"
-
-G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE)
+/*****************************************************************************/
-#define NM_DEVICE_MODEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MODEM, NMDeviceModemPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_MODEM,
+ PROP_CAPABILITIES,
+ PROP_CURRENT_CAPABILITIES,
+);
typedef struct {
NMModem *modem;
@@ -47,13 +52,19 @@ typedef struct {
gboolean rf_enabled;
} NMDeviceModemPrivate;
-enum {
- PROP_0,
- PROP_MODEM,
- PROP_CAPABILITIES,
- PROP_CURRENT_CAPABILITIES,
+struct _NMDeviceModem {
+ NMDevice parent;
+ NMDeviceModemPrivate _priv;
};
+struct _NMDeviceModemClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_MODEM_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceModem, NM_IS_DEVICE_MODEM)
+
/*****************************************************************************/
static void
@@ -281,7 +292,7 @@ modem_state_cb (NMModem *modem,
gpointer user_data)
{
NMDevice *device = NM_DEVICE (user_data);
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device);
NMDeviceState dev_state = nm_device_get_state (device);
if (new_state <= NM_MODEM_STATE_DISABLING &&
@@ -335,9 +346,10 @@ modem_removed_cb (NMModem *modem, gpointer user_data)
static gboolean
owns_iface (NMDevice *device, const char *iface)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device);
+
+ g_return_val_if_fail (priv->modem, FALSE);
- g_assert (priv->modem);
return nm_modem_owns_port (priv->modem, iface);
}
@@ -350,7 +362,7 @@ device_state_changed (NMDevice *device,
NMDeviceStateReason reason)
{
NMDeviceModem *self = NM_DEVICE_MODEM (device);
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (self);
NMConnection *connection = nm_device_get_applied_connection (device);
g_assert (priv->modem);
@@ -394,7 +406,7 @@ get_generic_capabilities (NMDevice *device)
static const char *
get_type_description (NMDevice *device)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device);
if (NM_FLAGS_HAS (priv->current_caps, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS))
return "gsm";
@@ -409,7 +421,7 @@ check_connection_compatible (NMDevice *device, NMConnection *connection)
if (!NM_DEVICE_CLASS (nm_device_modem_parent_class)->check_connection_compatible (device, connection))
return FALSE;
- return nm_modem_check_connection_compatible (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, connection);
+ return nm_modem_check_connection_compatible (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, connection);
}
static gboolean
@@ -444,7 +456,7 @@ complete_connection (NMDevice *device,
const GSList *existing_connections,
GError **error)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device);
return nm_modem_complete_connection (priv->modem, connection, existing_connections, error);
}
@@ -452,7 +464,7 @@ complete_connection (NMDevice *device,
static void
deactivate (NMDevice *device)
{
- nm_modem_deactivate (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, device);
+ nm_modem_deactivate (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, device);
}
/*****************************************************************************/
@@ -490,7 +502,7 @@ deactivate_async (NMDevice *self,
callback,
user_data,
deactivate_async);
- nm_modem_deactivate_async (NM_DEVICE_MODEM_GET_PRIVATE (self)->modem,
+ nm_modem_deactivate_async (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) self)->modem,
self,
cancellable,
(GAsyncReadyCallback) modem_deactivate_async_ready,
@@ -512,7 +524,7 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason)
req = nm_device_get_act_request (device);
g_assert (req);
- return nm_modem_act_stage1_prepare (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, req, reason);
+ return nm_modem_act_stage1_prepare (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, req, reason);
}
static NMActStageReturn
@@ -523,7 +535,7 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *reason)
req = nm_device_get_act_request (device);
g_assert (req);
- return nm_modem_act_stage2_config (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, req, reason);
+ return nm_modem_act_stage2_config (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, req, reason);
}
static NMActStageReturn
@@ -531,7 +543,7 @@ act_stage3_ip4_config_start (NMDevice *device,
NMIP4Config **out_config,
NMDeviceStateReason *reason)
{
- return nm_modem_stage3_ip4_config_start (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem,
+ return nm_modem_stage3_ip4_config_start (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem,
device,
NM_DEVICE_CLASS (nm_device_modem_parent_class),
reason);
@@ -540,7 +552,7 @@ act_stage3_ip4_config_start (NMDevice *device,
static void
ip4_config_pre_commit (NMDevice *device, NMIP4Config *config)
{
- nm_modem_ip4_pre_commit (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, device, config);
+ nm_modem_ip4_pre_commit (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, device, config);
}
static NMActStageReturn
@@ -548,7 +560,7 @@ act_stage3_ip6_config_start (NMDevice *device,
NMIP6Config **out_config,
NMDeviceStateReason *reason)
{
- return nm_modem_stage3_ip6_config_start (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem,
+ return nm_modem_stage3_ip6_config_start (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem,
nm_device_get_act_request (device),
reason);
}
@@ -572,7 +584,7 @@ get_ip_iface_identifier (NMDevice *device, NMUtilsIPv6IfaceId *out_iid)
static gboolean
get_enabled (NMDevice *device)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device);
NMModemState modem_state = nm_modem_get_state (priv->modem);
return priv->rf_enabled && (modem_state >= NM_MODEM_STATE_LOCKED);
@@ -621,58 +633,6 @@ is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags)
/*****************************************************************************/
-NMDevice *
-nm_device_modem_new (NMModem *modem)
-{
- NMDeviceModemCapabilities caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
- NMDeviceModemCapabilities current_caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
- NMDevice *device;
- const char *data_port;
-
- g_return_val_if_fail (NM_IS_MODEM (modem), NULL);
-
- /* Load capabilities */
- nm_modem_get_capabilities (modem, &caps, &current_caps);
-
- device = (NMDevice *) g_object_new (NM_TYPE_DEVICE_MODEM,
- NM_DEVICE_UDI, nm_modem_get_path (modem),
- NM_DEVICE_IFACE, nm_modem_get_uid (modem),
- NM_DEVICE_DRIVER, nm_modem_get_driver (modem),
- NM_DEVICE_TYPE_DESC, "Broadband",
- NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_MODEM,
- NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WWAN,
- NM_DEVICE_MODEM_MODEM, modem,
- NM_DEVICE_MODEM_CAPABILITIES, caps,
- NM_DEVICE_MODEM_CURRENT_CAPABILITIES, current_caps,
- NULL);
-
- /* If the data port is known, set it as the IP interface immediately */
- data_port = nm_modem_get_data_port (modem);
- if (data_port) {
- nm_device_set_ip_iface (device, data_port);
- nm_device_ipv6_sysctl_set (device, "disable_ipv6", "1");
- }
-
- return device;
-}
-
-static void
-nm_device_modem_init (NMDeviceModem *self)
-{
-}
-
-static void
-constructed (GObject *object)
-{
- G_OBJECT_CLASS (nm_device_modem_parent_class)->constructed (object);
-
- /* DHCP is always done by the modem firmware, not by the network, and
- * by the time we get around to DHCP the firmware should already know
- * the IP addressing details. So the DHCP timeout can be much shorter.
- */
- nm_device_set_dhcp_timeout (NM_DEVICE (object), 15);
-}
-
static void
set_modem (NMDeviceModem *self, NMModem *modem)
{
@@ -701,22 +661,23 @@ set_modem (NMDeviceModem *self, NMModem *modem)
g_signal_connect (modem, "notify::" NM_MODEM_SIM_OPERATOR_ID, G_CALLBACK (ids_changed_cb), self);
}
+/*****************************************************************************/
+
static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) object);
switch (prop_id) {
case PROP_MODEM:
- /* construct-only */
- set_modem (NM_DEVICE_MODEM (object), g_value_get_object (value));
+ g_value_set_object (value, priv->modem);
break;
case PROP_CAPABILITIES:
- priv->caps = g_value_get_uint (value);
+ g_value_set_uint (value, priv->caps);
break;
case PROP_CURRENT_CAPABILITIES:
- priv->current_caps = g_value_get_uint (value);
+ g_value_set_uint (value, priv->current_caps);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -725,20 +686,21 @@ set_property (GObject *object, guint prop_id,
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) object);
switch (prop_id) {
case PROP_MODEM:
- g_value_set_object (value, priv->modem);
+ /* construct-only */
+ set_modem (NM_DEVICE_MODEM (object), g_value_get_object (value));
break;
case PROP_CAPABILITIES:
- g_value_set_uint (value, priv->caps);
+ priv->caps = g_value_get_uint (value);
break;
case PROP_CURRENT_CAPABILITIES:
- g_value_set_uint (value, priv->current_caps);
+ priv->current_caps = g_value_get_uint (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -746,10 +708,64 @@ get_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_device_modem_init (NMDeviceModem *self)
+{
+}
+
+static void
+constructed (GObject *object)
+{
+ G_OBJECT_CLASS (nm_device_modem_parent_class)->constructed (object);
+
+ /* DHCP is always done by the modem firmware, not by the network, and
+ * by the time we get around to DHCP the firmware should already know
+ * the IP addressing details. So the DHCP timeout can be much shorter.
+ */
+ nm_device_set_dhcp_timeout (NM_DEVICE (object), 15);
+}
+
+NMDevice *
+nm_device_modem_new (NMModem *modem)
+{
+ NMDeviceModemCapabilities caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
+ NMDeviceModemCapabilities current_caps = NM_DEVICE_MODEM_CAPABILITY_NONE;
+ NMDevice *device;
+ const char *data_port;
+
+ g_return_val_if_fail (NM_IS_MODEM (modem), NULL);
+
+ /* Load capabilities */
+ nm_modem_get_capabilities (modem, &caps, &current_caps);
+
+ device = (NMDevice *) g_object_new (NM_TYPE_DEVICE_MODEM,
+ NM_DEVICE_UDI, nm_modem_get_path (modem),
+ NM_DEVICE_IFACE, nm_modem_get_uid (modem),
+ NM_DEVICE_DRIVER, nm_modem_get_driver (modem),
+ NM_DEVICE_TYPE_DESC, "Broadband",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_MODEM,
+ NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WWAN,
+ NM_DEVICE_MODEM_MODEM, modem,
+ NM_DEVICE_MODEM_CAPABILITIES, caps,
+ NM_DEVICE_MODEM_CURRENT_CAPABILITIES, current_caps,
+ NULL);
+
+ /* If the data port is known, set it as the IP interface immediately */
+ data_port = nm_modem_get_data_port (modem);
+ if (data_port) {
+ nm_device_set_ip_iface (device, data_port);
+ nm_device_ipv6_sysctl_set (device, "disable_ipv6", "1");
+ }
+
+ return device;
+}
+
static void
dispose (GObject *object)
{
- NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object);
+ NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) object);
if (priv->modem)
g_signal_handlers_disconnect_by_data (priv->modem, NM_DEVICE_MODEM (object));
@@ -764,9 +780,6 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass)
GObjectClass *object_class = G_OBJECT_CLASS (mclass);
NMDeviceClass *device_class = NM_DEVICE_CLASS (mclass);
- g_type_class_add_private (object_class, sizeof (NMDeviceModemPrivate));
-
- /* Virtual methods */
object_class->dispose = dispose;
object_class->get_property = get_property;
object_class->set_property = set_property;
@@ -793,27 +806,25 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass)
device_class->state_changed = device_state_changed;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_MODEM,
- g_param_spec_object (NM_DEVICE_MODEM_MODEM, "", "",
- NM_TYPE_MODEM,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CAPABILITIES,
- g_param_spec_uint (NM_DEVICE_MODEM_CAPABILITIES, "", "",
- 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CURRENT_CAPABILITIES,
- g_param_spec_uint (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "",
- 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODEM] =
+ g_param_spec_object (NM_DEVICE_MODEM_MODEM, "", "",
+ NM_TYPE_MODEM,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CAPABILITIES] =
+ g_param_spec_uint (NM_DEVICE_MODEM_CAPABILITIES, "", "",
+ 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CURRENT_CAPABILITIES] =
+ g_param_spec_uint (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "",
+ 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (mclass),
NMDBUS_TYPE_DEVICE_MODEM_SKELETON,
diff --git a/src/devices/wwan/nm-device-modem.h b/src/devices/wwan/nm-device-modem.h
index 1cf399e12c..fe53de62c4 100644
--- a/src/devices/wwan/nm-device-modem.h
+++ b/src/devices/wwan/nm-device-modem.h
@@ -35,14 +35,8 @@
#define NM_DEVICE_MODEM_CAPABILITIES "modem-capabilities"
#define NM_DEVICE_MODEM_CURRENT_CAPABILITIES "current-capabilities"
-typedef struct {
- NMDevice parent;
-} NMDeviceModem;
-
-typedef struct {
- NMDeviceClass parent;
-
-} NMDeviceModemClass;
+typedef struct _NMDeviceModem NMDeviceModem;
+typedef struct _NMDeviceModemClass NMDeviceModemClass;
GType nm_device_modem_get_type (void);
diff --git a/src/devices/wwan/nm-modem-broadband.c b/src/devices/wwan/nm-modem-broadband.c
index e3681c01ff..f5f12a03df 100644
--- a/src/devices/wwan/nm-modem-broadband.c
+++ b/src/devices/wwan/nm-modem-broadband.c
@@ -20,27 +20,39 @@
#include "nm-default.h"
+#include "nm-modem-broadband.h"
+
#include <string.h>
#include <arpa/inet.h>
#include <libmm-glib.h>
-#include "nm-modem-broadband.h"
#include "nm-core-internal.h"
#include "NetworkManagerUtils.h"
#include "nm-device-private.h"
#include "nm-platform.h"
+#include "nm-ip4-config.h"
+#include "nm-ip6-config.h"
#define NM_MODEM_BROADBAND_MODEM "modem"
-G_DEFINE_TYPE (NMModemBroadband, nm_modem_broadband, NM_TYPE_MODEM)
+#define MODEM_CAPS_3GPP(caps) (caps & (MM_MODEM_CAPABILITY_GSM_UMTS | \
+ MM_MODEM_CAPABILITY_LTE | \
+ MM_MODEM_CAPABILITY_LTE_ADVANCED))
+
+#define MODEM_CAPS_3GPP2(caps) (caps & (MM_MODEM_CAPABILITY_CDMA_EVDO))
+
+/* Maximum time to keep the DBus call waiting for a connection result */
+#define MODEM_CONNECT_TIMEOUT_SECS 120
+
+/*****************************************************************************/
typedef enum {
- CONNECT_STEP_FIRST,
- CONNECT_STEP_WAIT_FOR_SIM,
- CONNECT_STEP_UNLOCK,
- CONNECT_STEP_WAIT_FOR_READY,
- CONNECT_STEP_CONNECT,
- CONNECT_STEP_LAST
+ CONNECT_STEP_FIRST,
+ CONNECT_STEP_WAIT_FOR_SIM,
+ CONNECT_STEP_UNLOCK,
+ CONNECT_STEP_WAIT_FOR_READY,
+ CONNECT_STEP_CONNECT,
+ CONNECT_STEP_LAST,
} ConnectStep;
typedef struct {
@@ -57,7 +69,13 @@ typedef struct {
GError *first_error;
} ConnectContext;
-struct _NMModemBroadbandPrivate {
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_MODEM,
+);
+
+typedef struct {
/* The modem object from dbus */
MMObject *modem_object;
/* Per-interface objects */
@@ -73,21 +91,20 @@ struct _NMModemBroadbandPrivate {
MMBearerIpConfig *ipv6_config;
guint32 pin_tries;
-};
+} NMModemBroadbandPrivate;
-enum {
- PROP_0,
- PROP_MODEM,
+struct _NMModemBroadband {
+ NMModem parent;
+ NMModemBroadbandPrivate _priv;
};
-#define MODEM_CAPS_3GPP(caps) (caps & (MM_MODEM_CAPABILITY_GSM_UMTS | \
- MM_MODEM_CAPABILITY_LTE | \
- MM_MODEM_CAPABILITY_LTE_ADVANCED))
+struct _NMModemBroadbandClass {
+ NMModemClass parent;
+};
-#define MODEM_CAPS_3GPP2(caps) (caps & (MM_MODEM_CAPABILITY_CDMA_EVDO))
+G_DEFINE_TYPE (NMModemBroadband, nm_modem_broadband, NM_TYPE_MODEM)
-/* Maximum time to keep the DBus call waiting for a connection result */
-#define MODEM_CONNECT_TIMEOUT_SECS 120
+#define NM_MODEM_BROADBAND_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMModemBroadband, NM_IS_MODEM_BROADBAND)
/*****************************************************************************/
@@ -172,7 +189,7 @@ get_capabilities (NMModem *_self,
/* For now, we don't care about the capability combinations, just merge all
* combinations in a single mask */
- if (mm_modem_get_supported_capabilities (self->priv->modem_iface, &supported, &n_supported)) {
+ if (mm_modem_get_supported_capabilities (self->_priv.modem_iface, &supported, &n_supported)) {
guint i;
for (i = 0; i < n_supported; i++)
@@ -182,7 +199,7 @@ get_capabilities (NMModem *_self,
}
*modem_caps = (NMDeviceModemCapabilities) all_supported;
- *current_caps = (NMDeviceModemCapabilities) mm_modem_get_current_capabilities (self->priv->modem_iface);
+ *current_caps = (NMDeviceModemCapabilities) mm_modem_get_current_capabilities (self->_priv.modem_iface);
}
static gboolean
@@ -193,7 +210,7 @@ owns_port (NMModem *_self, const char *iface)
guint n_ports = 0, i;
gboolean owns = FALSE;
- mm_modem_peek_ports (self->priv->modem_iface, &ports, &n_ports);
+ mm_modem_peek_ports (self->_priv.modem_iface, &ports, &n_ports);
for (i = 0; i < n_ports && !owns; i++)
owns = (g_strcmp0 (iface, ports[i].name) == 0);
return owns;
@@ -206,7 +223,7 @@ ask_for_pin (NMModemBroadband *self)
{
guint32 tries;
- tries = self->priv->pin_tries++;
+ tries = self->_priv.pin_tries++;
nm_modem_get_secrets (NM_MODEM (self),
NM_SETTING_GSM_SETTING_NAME,
tries ? TRUE : FALSE,
@@ -312,8 +329,8 @@ create_gsm_connect_properties (NMConnection *connection)
static void
connect_context_clear (NMModemBroadband *self)
{
- if (self->priv->ctx) {
- ConnectContext *ctx = self->priv->ctx;
+ if (self->_priv.ctx) {
+ ConnectContext *ctx = self->_priv.ctx;
g_clear_error (&ctx->first_error);
g_clear_pointer (&ctx->ip_types, (GDestroyNotify) g_array_unref);
@@ -322,7 +339,7 @@ connect_context_clear (NMModemBroadband *self)
g_clear_object (&ctx->connect_properties);
g_clear_object (&ctx->self);
g_slice_free (ConnectContext, ctx);
- self->priv->ctx = NULL;
+ self->_priv.ctx = NULL;
}
}
@@ -333,20 +350,20 @@ connect_ready (MMModemSimple *simple_iface,
GAsyncResult *res,
NMModemBroadband *self)
{
- ConnectContext *ctx = self->priv->ctx;
+ ConnectContext *ctx = self->_priv.ctx;
GError *error = NULL;
NMModemIPMethod ip4_method = NM_MODEM_IP_METHOD_UNKNOWN;
NMModemIPMethod ip6_method = NM_MODEM_IP_METHOD_UNKNOWN;
- self->priv->bearer = mm_modem_simple_connect_finish (simple_iface, res, &error);
+ self->_priv.bearer = mm_modem_simple_connect_finish (simple_iface, res, &error);
if (!ctx)
return;
- if (!self->priv->bearer) {
+ if (!self->_priv.bearer) {
if (g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN) ||
(g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNAUTHORIZED) &&
- mm_modem_get_unlock_required (self->priv->modem_iface) == MM_MODEM_LOCK_SIM_PIN)) {
+ mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN)) {
g_error_free (error);
/* Request PIN */
@@ -379,13 +396,13 @@ connect_ready (MMModemSimple *simple_iface,
}
/* Grab IP configurations */
- self->priv->ipv4_config = mm_bearer_get_ipv4_config (self->priv->bearer);
- if (self->priv->ipv4_config)
- ip4_method = get_bearer_ip_method (self->priv->ipv4_config);
+ self->_priv.ipv4_config = mm_bearer_get_ipv4_config (self->_priv.bearer);
+ if (self->_priv.ipv4_config)
+ ip4_method = get_bearer_ip_method (self->_priv.ipv4_config);
- self->priv->ipv6_config = mm_bearer_get_ipv6_config (self->priv->bearer);
- if (self->priv->ipv6_config)
- ip6_method = get_bearer_ip_method (self->priv->ipv6_config);
+ self->_priv.ipv6_config = mm_bearer_get_ipv6_config (self->_priv.bearer);
+ if (self->_priv.ipv6_config)
+ ip6_method = get_bearer_ip_method (self->_priv.ipv6_config);
if (ip4_method == NM_MODEM_IP_METHOD_UNKNOWN &&
ip6_method == NM_MODEM_IP_METHOD_UNKNOWN) {
@@ -396,10 +413,10 @@ connect_ready (MMModemSimple *simple_iface,
}
g_object_set (self,
- NM_MODEM_DATA_PORT, mm_bearer_get_interface (self->priv->bearer),
+ NM_MODEM_DATA_PORT, mm_bearer_get_interface (self->_priv.bearer),
NM_MODEM_IP4_METHOD, ip4_method,
NM_MODEM_IP6_METHOD, ip6_method,
- NM_MODEM_IP_TIMEOUT, mm_bearer_get_ip_timeout (self->priv->bearer),
+ NM_MODEM_IP_TIMEOUT, mm_bearer_get_ip_timeout (self->_priv.bearer),
NULL);
ctx->step++;
@@ -416,13 +433,13 @@ send_pin_ready (MMSim *sim, GAsyncResult *result, NMModemBroadband *self)
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
return;
- if (!self->priv->ctx || self->priv->ctx->step != CONNECT_STEP_UNLOCK)
+ if (!self->_priv.ctx || self->_priv.ctx->step != CONNECT_STEP_UNLOCK)
g_return_if_reached ();
if (error) {
if (g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN) ||
(g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNAUTHORIZED) &&
- mm_modem_get_unlock_required (self->priv->modem_iface) == MM_MODEM_LOCK_SIM_PIN)) {
+ mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN)) {
ask_for_pin (self);
} else {
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, translate_mm_error (self, error));
@@ -430,14 +447,14 @@ send_pin_ready (MMSim *sim, GAsyncResult *result, NMModemBroadband *self)
return;
}
- self->priv->ctx->step++;
+ self->_priv.ctx->step++;
connect_context_step (self);
}
static void
connect_context_step (NMModemBroadband *self)
{
- ConnectContext *ctx = self->priv->ctx;
+ ConnectContext *ctx = self->_priv.ctx;
switch (ctx->step) {
case CONNECT_STEP_FIRST:
@@ -445,7 +462,7 @@ connect_context_step (NMModemBroadband *self)
/* fall through */
case CONNECT_STEP_WAIT_FOR_SIM:
- if (MODEM_CAPS_3GPP (ctx->caps) && !self->priv->sim_iface) {
+ if (MODEM_CAPS_3GPP (ctx->caps) && !self->_priv.sim_iface) {
/* Have to wait for the SIM to show up */
break;
}
@@ -454,13 +471,13 @@ connect_context_step (NMModemBroadband *self)
case CONNECT_STEP_UNLOCK:
if ( MODEM_CAPS_3GPP (ctx->caps)
- && mm_modem_get_unlock_required (self->priv->modem_iface) == MM_MODEM_LOCK_SIM_PIN) {
+ && mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN) {
NMSettingGsm *s_gsm = nm_connection_get_setting_gsm (ctx->connection);
const char *pin = nm_setting_gsm_get_pin (s_gsm);
/* If we have a PIN already, send it. If we don't, get it. */
if (pin) {
- mm_sim_send_pin (self->priv->sim_iface,
+ mm_sim_send_pin (self->_priv.sim_iface,
pin,
ctx->cancellable,
(GAsyncReadyCallback) send_pin_ready,
@@ -476,7 +493,7 @@ connect_context_step (NMModemBroadband *self)
case CONNECT_STEP_WAIT_FOR_READY: {
GError *error = NULL;
- if (mm_modem_get_state (self->priv->modem_iface) <= MM_MODEM_STATE_LOCKED)
+ if (mm_modem_get_state (self->_priv.modem_iface) <= MM_MODEM_STATE_LOCKED)
break;
/* Create core connect properties based on the modem capabilities */
@@ -532,7 +549,7 @@ connect_context_step (NMModemBroadband *self)
nm_modem_ip_type_to_string (current),
ctx->ip_type_tries + 1);
- mm_modem_simple_connect (self->priv->simple_iface,
+ mm_modem_simple_connect (self->_priv.simple_iface,
ctx->connect_properties,
NULL,
(GAsyncReadyCallback) connect_ready,
@@ -544,7 +561,7 @@ connect_context_step (NMModemBroadband *self)
/* fall through */
case CONNECT_STEP_LAST:
- if (self->priv->ipv4_config || self->priv->ipv6_config) {
+ if (self->_priv.ipv4_config || self->_priv.ipv6_config) {
g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, TRUE, NM_DEVICE_STATE_REASON_NONE);
} else {
/* If we have a saved error from a previous attempt, use it */
@@ -571,9 +588,9 @@ act_stage1_prepare (NMModem *_self,
NMModemBroadband *self = NM_MODEM_BROADBAND (_self);
/* Make sure we can get the Simple interface from the modem */
- if (!self->priv->simple_iface) {
- self->priv->simple_iface = mm_object_get_modem_simple (self->priv->modem_object);
- if (!self->priv->simple_iface) {
+ if (!self->_priv.simple_iface) {
+ self->_priv.simple_iface = mm_object_get_modem_simple (self->_priv.modem_object);
+ if (!self->_priv.simple_iface) {
_LOGW ("cannot access the Simple mobile broadband modem interface");
*reason = NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED;
return NM_ACT_STAGE_RETURN_FAILURE;
@@ -583,12 +600,12 @@ act_stage1_prepare (NMModem *_self,
connect_context_clear (self);
/* Allocate new context for this connect stage attempt */
- self->priv->ctx = g_slice_new0 (ConnectContext);
- self->priv->ctx->caps = mm_modem_get_current_capabilities (self->priv->modem_iface);
- self->priv->ctx->cancellable = g_cancellable_new ();
- self->priv->ctx->connection = g_object_ref (connection);
+ self->_priv.ctx = g_slice_new0 (ConnectContext);
+ self->_priv.ctx->caps = mm_modem_get_current_capabilities (self->_priv.modem_iface);
+ self->_priv.ctx->cancellable = g_cancellable_new ();
+ self->_priv.ctx->connection = g_object_ref (connection);
- g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self->priv->simple_iface), MODEM_CONNECT_TIMEOUT_SECS * 1000);
+ g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self->_priv.simple_iface), MODEM_CONNECT_TIMEOUT_SECS * 1000);
connect_context_step (self);
return NM_ACT_STAGE_RETURN_POSTPONE;
@@ -603,7 +620,7 @@ check_connection_compatible (NMModem *_self, NMConnection *connection)
MMModemCapability modem_caps;
NMSettingConnection *s_con;
- modem_caps = mm_modem_get_current_capabilities (self->priv->modem_iface);
+ modem_caps = mm_modem_get_current_capabilities (self->_priv.modem_iface);
s_con = nm_connection_get_setting_connection (connection);
g_assert (s_con);
@@ -650,7 +667,7 @@ complete_connection (NMModem *_self,
MMModemCapability modem_caps;
NMSettingPpp *s_ppp;
- modem_caps = mm_modem_get_current_capabilities (self->priv->modem_iface);
+ modem_caps = mm_modem_get_current_capabilities (self->_priv.modem_iface);
/* PPP settings common to 3GPP and 3GPP2 */
s_ppp = nm_connection_get_setting_ppp (connection);
@@ -827,12 +844,12 @@ set_mm_enabled (NMModem *_self,
NMModemBroadband *self = NM_MODEM_BROADBAND (_self);
if (enabled) {
- mm_modem_enable (self->priv->modem_iface,
+ mm_modem_enable (self->_priv.modem_iface,
NULL, /* cancellable */
(GAsyncReadyCallback)modem_enable_ready,
g_object_ref (self));
} else {
- mm_modem_disable (self->priv->modem_iface,
+ mm_modem_disable (self->_priv.modem_iface,
NULL, /* cancellable */
(GAsyncReadyCallback)modem_disable_ready,
g_object_ref (self));
@@ -871,13 +888,13 @@ static_stage3_ip4_done (NMModemBroadband *self)
const gchar **dns;
guint i;
- g_assert (self->priv->ipv4_config);
- g_assert (self->priv->bearer);
+ g_assert (self->_priv.ipv4_config);
+ g_assert (self->_priv.bearer);
_LOGI ("IPv4 static configuration:");
/* Fully fail if invalid IP address retrieved */
- address_string = mm_bearer_ip_config_get_address (self->priv->ipv4_config);
+ address_string = mm_bearer_ip_config_get_address (self->_priv.ipv4_config);
if (!ip4_string_to_num (address_string, &address_network)) {
error = g_error_new (NM_DEVICE_ERROR,
NM_DEVICE_ERROR_INVALID_CONNECTION,
@@ -888,17 +905,17 @@ static_stage3_ip4_done (NMModemBroadband *self)
}
/* Missing gateway not a hard failure */
- gw_string = mm_bearer_ip_config_get_gateway (self->priv->ipv4_config);
+ gw_string = mm_bearer_ip_config_get_gateway (self->_priv.ipv4_config);
ip4_string_to_num (gw_string, &gw);
- data_port = mm_bearer_get_interface (self->priv->bearer);
+ data_port = mm_bearer_get_interface (self->_priv.bearer);
g_assert (data_port);
config = nm_ip4_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, data_port));
memset (&address, 0, sizeof (address));
address.address = address_network;
address.peer_address = address_network;
- address.plen = mm_bearer_ip_config_get_prefix (self->priv->ipv4_config);
+ address.plen = mm_bearer_ip_config_get_prefix (self->_priv.ipv4_config);
address.addr_source = NM_IP_CONFIG_SOURCE_WWAN;
if (address.plen <= 32)
nm_ip4_config_add_address (config, &address);
@@ -911,7 +928,7 @@ static_stage3_ip4_done (NMModemBroadband *self)
}
/* DNS servers */
- dns = mm_bearer_ip_config_get_dns (self->priv->ipv4_config);
+ dns = mm_bearer_ip_config_get_dns (self->_priv.ipv4_config);
for (i = 0; dns && dns[i]; i++) {
if ( ip4_string_to_num (dns[i], &address_network)
&& address_network > 0) {
@@ -955,13 +972,13 @@ stage3_ip6_done (NMModemBroadband *self)
const gchar **dns;
guint i;
- g_assert (self->priv->ipv6_config);
+ g_assert (self->_priv.ipv6_config);
memset (&address, 0, sizeof (address));
- ip_method = get_bearer_ip_method (self->priv->ipv6_config);
+ ip_method = get_bearer_ip_method (self->_priv.ipv6_config);
- address_string = mm_bearer_ip_config_get_address (self->priv->ipv6_config);
+ address_string = mm_bearer_ip_config_get_address (self->_priv.ipv6_config);
if (!address_string) {
/* DHCP/SLAAC is allowed to skip addresses; other methods require it */
if (ip_method != NM_MODEM_IP_METHOD_AUTO) {
@@ -985,17 +1002,17 @@ stage3_ip6_done (NMModemBroadband *self)
_LOGI ("IPv6 base configuration:");
- data_port = mm_bearer_get_interface (self->priv->bearer);
+ data_port = mm_bearer_get_interface (self->_priv.bearer);
g_assert (data_port);
config = nm_ip6_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, data_port));
- address.plen = mm_bearer_ip_config_get_prefix (self->priv->ipv6_config);
+ address.plen = mm_bearer_ip_config_get_prefix (self->_priv.ipv6_config);
if (address.plen <= 128)
nm_ip6_config_add_address (config, &address);
_LOGI (" address %s/%d", address_string, address.plen);
- address_string = mm_bearer_ip_config_get_gateway (self->priv->ipv6_config);
+ address_string = mm_bearer_ip_config_get_gateway (self->_priv.ipv6_config);
if (address_string) {
if (!inet_pton (AF_INET6, address_string, (void *) &(address.address))) {
error = g_error_new (NM_DEVICE_ERROR,
@@ -1017,7 +1034,7 @@ stage3_ip6_done (NMModemBroadband *self)
}
/* DNS servers */
- dns = mm_bearer_ip_config_get_dns (self->priv->ipv6_config);
+ dns = mm_bearer_ip_config_get_dns (self->_priv.ipv6_config);
for (i = 0; dns[i]; i++) {
struct in6_addr addr;
@@ -1125,14 +1142,14 @@ disconnect (NMModem *modem,
}
/* If no simple iface, we're done */
- if (!ctx->self->priv->simple_iface) {
+ if (!ctx->self->_priv.simple_iface) {
disconnect_context_complete (ctx);
return;
}
_LOGD ("notifying ModemManager about the modem disconnection");
ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
- mm_modem_simple_disconnect (ctx->self->priv->simple_iface,
+ mm_modem_simple_disconnect (ctx->self->_priv.simple_iface,
NULL, /* bearer path; if NULL given ALL get disconnected */
cancellable,
(GAsyncReadyCallback) simple_disconnect_ready,
@@ -1149,11 +1166,11 @@ deactivate_cleanup (NMModem *_self, NMDevice *device)
/* TODO: cancel SimpleConnect() if any */
/* Cleanup IPv4 addresses and routes */
- g_clear_object (&self->priv->ipv4_config);
- g_clear_object (&self->priv->ipv6_config);
- g_clear_object (&self->priv->bearer);
+ g_clear_object (&self->_priv.ipv4_config);
+ g_clear_object (&self->_priv.ipv6_config);
+ g_clear_object (&self->_priv.bearer);
- self->priv->pin_tries = 0;
+ self->_priv.pin_tries = 0;
/* Chain up parent's */
NM_MODEM_CLASS (nm_modem_broadband_parent_class)->deactivate_cleanup (_self, device);
@@ -1202,7 +1219,7 @@ modem_state_changed (MMModem *modem,
mm_state_to_nm (new_state),
mm_modem_state_change_reason_get_string (reason));
- if (self->priv->ctx && self->priv->ctx->step == CONNECT_STEP_WAIT_FOR_READY)
+ if (self->_priv.ctx && self->_priv.ctx->step == CONNECT_STEP_WAIT_FOR_READY)
connect_context_step (self);
}
@@ -1223,40 +1240,6 @@ mm_ip_family_to_nm (MMBearerIpFamily family)
return nm_type;
}
-NMModem *
-nm_modem_broadband_new (GObject *object, GError **error)
-{
- NMModem *modem;
- MMObject *modem_object;
- MMModem *modem_iface;
- gchar *drivers;
-
- g_return_val_if_fail (MM_IS_OBJECT (object), NULL);
- modem_object = MM_OBJECT (object);
-
- /* Ensure we have the 'Modem' interface and the primary port at least */
- modem_iface = mm_object_peek_modem (modem_object);
- g_return_val_if_fail (!!modem_iface, NULL);
- g_return_val_if_fail (!!mm_modem_get_primary_port (modem_iface), NULL);
-
- /* Build a single string with all drivers listed */
- drivers = g_strjoinv (", ", (gchar **)mm_modem_get_drivers (modem_iface));
-
- modem = g_object_new (NM_TYPE_MODEM_BROADBAND,
- NM_MODEM_PATH, mm_object_get_path (modem_object),
- NM_MODEM_UID, mm_modem_get_primary_port (modem_iface),
- NM_MODEM_CONTROL_PORT, mm_modem_get_primary_port (modem_iface),
- NM_MODEM_DATA_PORT, NULL, /* We don't know it until bearer created */
- NM_MODEM_IP_TYPES, mm_ip_family_to_nm (mm_modem_get_supported_ip_families (modem_iface)),
- NM_MODEM_STATE, mm_state_to_nm (mm_modem_get_state (modem_iface)),
- NM_MODEM_DEVICE_ID, mm_modem_get_device_identifier (modem_iface),
- NM_MODEM_BROADBAND_MODEM, modem_object,
- NM_MODEM_DRIVER, drivers,
- NULL);
- g_free (drivers);
- return modem;
-}
-
static void
get_sim_ready (MMModem *modem,
GAsyncResult *res,
@@ -1267,20 +1250,20 @@ get_sim_ready (MMModem *modem,
new_sim = mm_modem_get_sim_finish (modem, res, &error);
- if (new_sim != self->priv->sim_iface) {
- g_clear_object (&self->priv->sim_iface);
- self->priv->sim_iface = new_sim;
+ if (new_sim != self->_priv.sim_iface) {
+ g_clear_object (&self->_priv.sim_iface);
+ self->_priv.sim_iface = new_sim;
} else
g_clear_object (&new_sim);
- if (self->priv->sim_iface) {
+ if (self->_priv.sim_iface) {
g_object_set (G_OBJECT (self),
- NM_MODEM_SIM_ID, mm_sim_get_identifier (self->priv->sim_iface),
- NM_MODEM_SIM_OPERATOR_ID, mm_sim_get_operator_identifier (self->priv->sim_iface),
+ NM_MODEM_SIM_ID, mm_sim_get_identifier (self->_priv.sim_iface),
+ NM_MODEM_SIM_OPERATOR_ID, mm_sim_get_operator_identifier (self->_priv.sim_iface),
NULL);
/* If we're waiting for the SIM during a connect, proceed with the connect */
- if (self->priv->ctx && self->priv->ctx->step == CONNECT_STEP_WAIT_FOR_SIM)
+ if (self->_priv.ctx && self->_priv.ctx->step == CONNECT_STEP_WAIT_FOR_SIM)
connect_context_step (self);
} else {
_NMLOG (g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_NOT_FOUND)
@@ -1297,10 +1280,10 @@ sim_changed (MMModem *modem, GParamSpec *pspec, gpointer user_data)
{
NMModemBroadband *self = NM_MODEM_BROADBAND (user_data);
- g_return_if_fail (modem == self->priv->modem_iface);
+ g_return_if_fail (modem == self->_priv.modem_iface);
- if (mm_modem_get_sim_path (self->priv->modem_iface)) {
- mm_modem_get_sim (self->priv->modem_iface,
+ if (mm_modem_get_sim_path (self->_priv.modem_iface)) {
+ mm_modem_get_sim (self->_priv.modem_iface,
NULL, /* cancellable */
(GAsyncReadyCallback) get_sim_ready,
g_object_ref (self));
@@ -1316,7 +1299,7 @@ supported_ip_families_changed (MMModem *modem, GParamSpec *pspec, gpointer user_
{
NMModemBroadband *self = NM_MODEM_BROADBAND (user_data);
- g_return_if_fail (modem == self->priv->modem_iface);
+ g_return_if_fail (modem == self->_priv.modem_iface);
g_object_set (G_OBJECT (self),
NM_MODEM_IP_TYPES,
@@ -1324,12 +1307,24 @@ supported_ip_families_changed (MMModem *modem, GParamSpec *pspec, gpointer user_
NULL);
}
+/*****************************************************************************/
+
static void
-nm_modem_broadband_init (NMModemBroadband *self)
+get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
- self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
- NM_TYPE_MODEM_BROADBAND,
- NMModemBroadbandPrivate);
+ NMModemBroadband *self = NM_MODEM_BROADBAND (object);
+
+ switch (prop_id) {
+ case PROP_MODEM:
+ g_value_set_object (value, self->_priv.modem_object);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
@@ -1343,19 +1338,19 @@ set_property (GObject *object,
switch (prop_id) {
case PROP_MODEM:
/* construct-only */
- self->priv->modem_object = g_value_dup_object (value);
- self->priv->modem_iface = mm_object_get_modem (self->priv->modem_object);
- g_assert (self->priv->modem_iface != NULL);
- g_signal_connect (self->priv->modem_iface,
+ self->_priv.modem_object = g_value_dup_object (value);
+ self->_priv.modem_iface = mm_object_get_modem (self->_priv.modem_object);
+ g_assert (self->_priv.modem_iface != NULL);
+ g_signal_connect (self->_priv.modem_iface,
"state-changed",
G_CALLBACK (modem_state_changed),
self);
- g_signal_connect (self->priv->modem_iface,
+ g_signal_connect (self->_priv.modem_iface,
"notify::sim",
G_CALLBACK (sim_changed),
self);
- sim_changed (self->priv->modem_iface, NULL, self);
- g_signal_connect (self->priv->modem_iface,
+ sim_changed (self->_priv.modem_iface, NULL, self);
+ g_signal_connect (self->_priv.modem_iface,
"notify::supported-ip-families",
G_CALLBACK (supported_ip_families_changed),
self);
@@ -1369,22 +1364,45 @@ set_property (GObject *object,
}
}
+/*****************************************************************************/
+
static void
-get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
+nm_modem_broadband_init (NMModemBroadband *self)
{
- NMModemBroadband *self = NM_MODEM_BROADBAND (object);
+}
- switch (prop_id) {
- case PROP_MODEM:
- g_value_set_object (value, self->priv->modem_object);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+NMModem *
+nm_modem_broadband_new (GObject *object, GError **error)
+{
+ NMModem *modem;
+ MMObject *modem_object;
+ MMModem *modem_iface;
+ gchar *drivers;
+
+ g_return_val_if_fail (MM_IS_OBJECT (object), NULL);
+ modem_object = MM_OBJECT (object);
+
+ /* Ensure we have the 'Modem' interface and the primary port at least */
+ modem_iface = mm_object_peek_modem (modem_object);
+ g_return_val_if_fail (!!modem_iface, NULL);
+ g_return_val_if_fail (!!mm_modem_get_primary_port (modem_iface), NULL);
+
+ /* Build a single string with all drivers listed */
+ drivers = g_strjoinv (", ", (gchar **)mm_modem_get_drivers (modem_iface));
+
+ modem = g_object_new (NM_TYPE_MODEM_BROADBAND,
+ NM_MODEM_PATH, mm_object_get_path (modem_object),
+ NM_MODEM_UID, mm_modem_get_primary_port (modem_iface),
+ NM_MODEM_CONTROL_PORT, mm_modem_get_primary_port (modem_iface),
+ NM_MODEM_DATA_PORT, NULL, /* We don't know it until bearer created */
+ NM_MODEM_IP_TYPES, mm_ip_family_to_nm (mm_modem_get_supported_ip_families (modem_iface)),
+ NM_MODEM_STATE, mm_state_to_nm (mm_modem_get_state (modem_iface)),
+ NM_MODEM_DEVICE_ID, mm_modem_get_device_identifier (modem_iface),
+ NM_MODEM_BROADBAND_MODEM, modem_object,
+ NM_MODEM_DRIVER, drivers,
+ NULL);
+ g_free (drivers);
+ return modem;
}
static void
@@ -1393,13 +1411,13 @@ dispose (GObject *object)
NMModemBroadband *self = NM_MODEM_BROADBAND (object);
connect_context_clear (self);
- g_clear_object (&self->priv->ipv4_config);
- g_clear_object (&self->priv->ipv6_config);
- g_clear_object (&self->priv->bearer);
- g_clear_object (&self->priv->modem_iface);
- g_clear_object (&self->priv->simple_iface);
- g_clear_object (&self->priv->sim_iface);
- g_clear_object (&self->priv->modem_object);
+ g_clear_object (&self->_priv.ipv4_config);
+ g_clear_object (&self->_priv.ipv6_config);
+ g_clear_object (&self->_priv.bearer);
+ g_clear_object (&self->_priv.modem_iface);
+ g_clear_object (&self->_priv.simple_iface);
+ g_clear_object (&self->_priv.sim_iface);
+ g_clear_object (&self->_priv.modem_object);
G_OBJECT_CLASS (nm_modem_broadband_parent_class)->dispose (object);
}
@@ -1410,9 +1428,6 @@ nm_modem_broadband_class_init (NMModemBroadbandClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMModemClass *modem_class = NM_MODEM_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMModemBroadbandPrivate));
-
- /* Virtual methods */
object_class->dispose = dispose;
object_class->get_property = get_property;
object_class->set_property = set_property;
@@ -1430,11 +1445,11 @@ nm_modem_broadband_class_init (NMModemBroadbandClass *klass)
modem_class->act_stage1_prepare = act_stage1_prepare;
modem_class->owns_port = owns_port;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_MODEM,
- g_param_spec_object (NM_MODEM_BROADBAND_MODEM, "", "",
- MM_GDBUS_TYPE_OBJECT,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODEM] =
+ g_param_spec_object (NM_MODEM_BROADBAND_MODEM, "", "",
+ MM_GDBUS_TYPE_OBJECT,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/src/devices/wwan/nm-modem-broadband.h b/src/devices/wwan/nm-modem-broadband.h
index 6607f7f553..4948cb3b75 100644
--- a/src/devices/wwan/nm-modem-broadband.h
+++ b/src/devices/wwan/nm-modem-broadband.h
@@ -30,18 +30,8 @@
#define NM_IS_MODEM_BROADBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_MODEM_BROADBAND))
#define NM_MODEM_BROADBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_MODEM_BROADBAND, NMModemBroadbandClass))
-typedef struct _NMModemBroadband NMModemBroadband;
-typedef struct _NMModemBroadbandClass NMModemBroadbandClass;
-typedef struct _NMModemBroadbandPrivate NMModemBroadbandPrivate;
-
-struct _NMModemBroadband {
- NMModem parent;
- NMModemBroadbandPrivate *priv;
-};
-
-struct _NMModemBroadbandClass {
- NMModemClass parent;
-};
+typedef struct _NMModemBroadband NMModemBroadband;
+typedef struct _NMModemBroadbandClass NMModemBroadbandClass;
GType nm_modem_broadband_get_type (void);
diff --git a/src/devices/wwan/nm-modem-manager.c b/src/devices/wwan/nm-modem-manager.c
index d12856c9ff..b1f6d92e7f 100644
--- a/src/devices/wwan/nm-modem-manager.c
+++ b/src/devices/wwan/nm-modem-manager.c
@@ -43,9 +43,16 @@
#define MODEM_POKE_INTERVAL 120
-G_DEFINE_TYPE (NMModemManager, nm_modem_manager, G_TYPE_OBJECT)
+/*****************************************************************************/
+
+enum {
+ MODEM_ADDED,
+ LAST_SIGNAL,
+};
-struct _NMModemManagerPrivate {
+static guint signals[LAST_SIGNAL] = { 0 };
+
+typedef struct {
GDBusConnection *dbus_connection;
MMManager *modem_manager;
guint mm_launch_id;
@@ -57,15 +64,21 @@ struct _NMModemManagerPrivate {
GDBusProxy *ofono_proxy;
#endif
- /* Common */
GHashTable *modems;
+} NMModemManagerPrivate;
+
+struct _NMModemManager {
+ GObject parent;
+ NMModemManagerPrivate _priv;
};
-enum {
- MODEM_ADDED,
- LAST_SIGNAL,
+struct _NMModemManagerClass {
+ GObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE (NMModemManager, nm_modem_manager, G_TYPE_OBJECT)
+
+#define NM_MODEM_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMModemManager, NM_IS_MODEM_MANAGER)
/*****************************************************************************/
@@ -75,13 +88,13 @@ handle_new_modem (NMModemManager *self, NMModem *modem)
const char *path;
path = nm_modem_get_path (modem);
- if (g_hash_table_lookup (self->priv->modems, path)) {
+ if (g_hash_table_lookup (self->_priv.modems, path)) {
g_warn_if_reached ();
return;
}
/* Track the new modem */
- g_hash_table_insert (self->priv->modems, g_strdup (path), modem);
+ g_hash_table_insert (self->_priv.modems, g_strdup (path), modem);
g_signal_emit (self, signals[MODEM_ADDED], 0, modem);
}
@@ -95,12 +108,12 @@ remove_one_modem (gpointer key, gpointer value, gpointer user_data)
static void
clear_modem_manager (NMModemManager *self)
{
- if (!self->priv->modem_manager)
+ if (!self->_priv.modem_manager)
return;
- nm_clear_g_signal_handler (self->priv->modem_manager, &self->priv->mm_name_owner_changed_id);
- nm_clear_g_signal_handler (self->priv->modem_manager, &self->priv->mm_object_added_id);
- nm_clear_g_signal_handler (self->priv->modem_manager, &self->priv->mm_object_removed_id);
- g_clear_object (&self->priv->modem_manager);
+ nm_clear_g_signal_handler (self->_priv.modem_manager, &self->_priv.mm_name_owner_changed_id);
+ nm_clear_g_signal_handler (self->_priv.modem_manager, &self->_priv.mm_object_added_id);
+ nm_clear_g_signal_handler (self->_priv.modem_manager, &self->_priv.mm_object_removed_id);
+ g_clear_object (&self->_priv.modem_manager);
}
static void
@@ -115,7 +128,7 @@ modem_object_added (MMManager *modem_manager,
/* Ensure we don't have the same modem already */
path = mm_object_get_path (modem_object);
- if (g_hash_table_lookup (self->priv->modems, path)) {
+ if (g_hash_table_lookup (self->_priv.modems, path)) {
nm_log_warn (LOGD_MB, "modem with path %s already exists, ignoring", path);
return;
}
@@ -153,12 +166,12 @@ modem_object_removed (MMManager *manager,
const gchar *path;
path = mm_object_get_path (modem_object);
- modem = (NMModem *) g_hash_table_lookup (self->priv->modems, path);
+ modem = (NMModem *) g_hash_table_lookup (self->_priv.modems, path);
if (!modem)
return;
nm_modem_emit_removed (modem);
- g_hash_table_remove (self->priv->modems, path);
+ g_hash_table_remove (self->_priv.modems, path);
}
static void
@@ -169,9 +182,9 @@ modem_manager_available (NMModemManager *self)
nm_log_info (LOGD_MB, "ModemManager available in the bus");
/* Update initial modems list */
- modems = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (self->priv->modem_manager));
+ modems = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (self->_priv.modem_manager));
for (l = modems; l; l = g_list_next (l))
- modem_object_added (self->priv->modem_manager, MM_OBJECT (l->data), self);
+ modem_object_added (self->_priv.modem_manager, MM_OBJECT (l->data), self);
g_list_free_full (modems, (GDestroyNotify) g_object_unref);
}
@@ -187,7 +200,7 @@ modem_manager_name_owner_changed (MMManager *modem_manager,
gchar *name_owner;
/* Quit poking, if any */
- nm_clear_g_source (&self->priv->mm_launch_id);
+ nm_clear_g_source (&self->_priv.mm_launch_id);
name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (modem_manager));
if (!name_owner) {
@@ -226,7 +239,7 @@ ofono_create_modem (NMModemManager *self, const char *path)
* receive ModemAdded signals before GetModems() returns, so some of the
* modems returned from GetModems() may already have been created.
*/
- if (!g_hash_table_lookup (self->priv->modems, path)) {
+ if (!g_hash_table_lookup (self->_priv.modems, path)) {
modem = nm_modem_ofono_new (path);
if (modem)
handle_new_modem (self, modem);
@@ -256,10 +269,10 @@ ofono_signal_cb (GDBusProxy *proxy,
g_variant_get (parameters, "(o)", &object_path);
nm_log_info (LOGD_MB, "oFono modem removed: %s", object_path);
- modem = (NMModem *) g_hash_table_lookup (self->priv->modems, object_path);
+ modem = (NMModem *) g_hash_table_lookup (self->_priv.modems, object_path);
if (modem) {
nm_modem_emit_removed (modem);
- g_hash_table_remove (self->priv->modems, object_path);
+ g_hash_table_remove (self->_priv.modems, object_path);
} else {
nm_log_warn (LOGD_MB, "could not remove modem %s, not found in table",
object_path);
@@ -297,11 +310,11 @@ ofono_check_name_owner (NMModemManager *self)
{
gs_free char *name_owner = NULL;
- name_owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (self->priv->ofono_proxy));
+ name_owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (self->_priv.ofono_proxy));
if (name_owner) {
nm_log_info (LOGD_MB, "oFono is now available");
- g_dbus_proxy_call (self->priv->ofono_proxy,
+ g_dbus_proxy_call (self->_priv.ofono_proxy,
"GetModems",
NULL,
G_DBUS_CALL_FLAGS_NONE,
@@ -316,7 +329,7 @@ ofono_check_name_owner (NMModemManager *self)
nm_log_info (LOGD_MB, "oFono disappeared from bus");
/* Remove any oFono modems that might be left around */
- g_hash_table_iter_init (&iter, self->priv->modems);
+ g_hash_table_iter_init (&iter, self->_priv.modems);
while (g_hash_table_iter_next (&iter, NULL, (gpointer) &modem)) {
if (NM_IS_MODEM_OFONO (modem)) {
nm_modem_emit_removed (modem);
@@ -340,18 +353,18 @@ ofono_proxy_new_cb (GObject *source_object, GAsyncResult *res, gpointer user_dat
gs_unref_object NMModemManager *self = NM_MODEM_MANAGER (user_data);
gs_free_error GError *error = NULL;
- self->priv->ofono_proxy = g_dbus_proxy_new_finish (res, &error);
+ self->_priv.ofono_proxy = g_dbus_proxy_new_finish (res, &error);
if (error) {
nm_log_warn (LOGD_MB, "error getting oFono bus proxy: %s", error->message);
return;
}
- g_signal_connect (self->priv->ofono_proxy,
+ g_signal_connect (self->_priv.ofono_proxy,
"notify::g-name-owner",
G_CALLBACK (ofono_name_owner_changed),
self);
- g_signal_connect (self->priv->ofono_proxy,
+ g_signal_connect (self->_priv.ofono_proxy,
"g-signal",
G_CALLBACK (ofono_signal_cb),
self);
@@ -362,8 +375,8 @@ ofono_proxy_new_cb (GObject *source_object, GAsyncResult *res, gpointer user_dat
static void
ensure_ofono_client (NMModemManager *self)
{
- g_assert (self->priv->dbus_connection);
- g_dbus_proxy_new (self->priv->dbus_connection,
+ g_assert (self->_priv.dbus_connection);
+ g_dbus_proxy_new (self->_priv.dbus_connection,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
NULL,
OFONO_DBUS_SERVICE,
@@ -408,7 +421,7 @@ static void
modem_manager_poke (NMModemManager *self)
{
/* If there is no current owner right away, ensure we poke to get one */
- g_dbus_connection_call (self->priv->dbus_connection,
+ g_dbus_connection_call (self->_priv.dbus_connection,
"org.freedesktop.ModemManager1",
"/org/freedesktop/ModemManager1",
DBUS_INTERFACE_PEER,
@@ -427,7 +440,7 @@ modem_manager_check_name_owner (NMModemManager *self)
{
gs_free gchar *name_owner = NULL;
- name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (self->priv->modem_manager));
+ name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (self->_priv.modem_manager));
if (name_owner) {
/* Available! */
modem_manager_available (self);
@@ -448,10 +461,10 @@ manager_new_ready (GObject *source,
GError *error = NULL;
- g_return_if_fail (!self->priv->modem_manager);
+ g_return_if_fail (!self->_priv.modem_manager);
- self->priv->modem_manager = mm_manager_new_finish (res, &error);
- if (!self->priv->modem_manager) {
+ self->_priv.modem_manager = mm_manager_new_finish (res, &error);
+ if (!self->_priv.modem_manager) {
/* We're not really supposed to get any error here. If we do get one,
* though, just re-schedule the MMManager creation after some time.
* During this period, name-owner changes won't be followed. */
@@ -461,18 +474,18 @@ manager_new_ready (GObject *source,
schedule_modem_manager_relaunch (self, MODEM_POKE_INTERVAL);
} else {
/* Setup signals in the GDBusObjectManagerClient */
- self->priv->mm_name_owner_changed_id =
- g_signal_connect (self->priv->modem_manager,
+ self->_priv.mm_name_owner_changed_id =
+ g_signal_connect (self->_priv.modem_manager,
"notify::name-owner",
G_CALLBACK (modem_manager_name_owner_changed),
self);
- self->priv->mm_object_added_id =
- g_signal_connect (self->priv->modem_manager,
+ self->_priv.mm_object_added_id =
+ g_signal_connect (self->_priv.modem_manager,
"object-added",
G_CALLBACK (modem_object_added),
self);
- self->priv->mm_object_removed_id =
- g_signal_connect (self->priv->modem_manager,
+ self->_priv.mm_object_removed_id =
+ g_signal_connect (self->_priv.modem_manager,
"object-removed",
G_CALLBACK (modem_object_removed),
self);
@@ -487,13 +500,13 @@ manager_new_ready (GObject *source,
static void
ensure_modem_manager (NMModemManager *self)
{
- g_assert (self->priv->dbus_connection);
+ g_assert (self->_priv.dbus_connection);
/* Create the GDBusObjectManagerClient. We do not request to autostart, as
* we don't really want the MMManager creation to fail. We can always poke
* later on if we want to request the autostart */
- if (!self->priv->modem_manager) {
- mm_manager_new (self->priv->dbus_connection,
+ if (!self->_priv.modem_manager) {
+ mm_manager_new (self->_priv.dbus_connection,
G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START,
NULL,
(GAsyncReadyCallback)manager_new_ready,
@@ -508,7 +521,7 @@ ensure_modem_manager (NMModemManager *self)
static gboolean
mm_launch_cb (NMModemManager *self)
{
- self->priv->mm_launch_id = 0;
+ self->_priv.mm_launch_id = 0;
ensure_modem_manager (self);
return G_SOURCE_REMOVE;
}
@@ -520,9 +533,9 @@ schedule_modem_manager_relaunch (NMModemManager *self,
/* No need to pass an extra reference to self; timeout/idle will be
* cancelled if the object gets disposed. */
if (n_seconds)
- self->priv->mm_launch_id = g_timeout_add_seconds (n_seconds, (GSourceFunc)mm_launch_cb, self);
+ self->_priv.mm_launch_id = g_timeout_add_seconds (n_seconds, (GSourceFunc)mm_launch_cb, self);
else
- self->priv->mm_launch_id = g_idle_add ((GSourceFunc)mm_launch_cb, self);
+ self->_priv.mm_launch_id = g_idle_add ((GSourceFunc)mm_launch_cb, self);
}
static void
@@ -533,8 +546,8 @@ bus_get_ready (GObject *source,
gs_unref_object NMModemManager *self = NM_MODEM_MANAGER (user_data);
gs_free_error GError *error = NULL;
- self->priv->dbus_connection = g_bus_get_finish (res, &error);
- if (!self->priv->dbus_connection) {
+ self->_priv.dbus_connection = g_bus_get_finish (res, &error);
+ if (!self->_priv.dbus_connection) {
nm_log_warn (LOGD_MB, "error getting bus connection: %s", error->message);
return;
}
@@ -551,11 +564,8 @@ bus_get_ready (GObject *source,
static void
nm_modem_manager_init (NMModemManager *self)
{
- self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_MODEM_MANAGER, NMModemManagerPrivate);
+ self->_priv.modems = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
- self->priv->modems = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
-
- // FIXME: this doesn't handle bus-daemon restart
g_bus_get (G_BUS_TYPE_SYSTEM,
NULL,
(GAsyncReadyCallback)bus_get_ready,
@@ -567,26 +577,25 @@ dispose (GObject *object)
{
NMModemManager *self = NM_MODEM_MANAGER (object);
- nm_clear_g_source (&self->priv->mm_launch_id);
+ nm_clear_g_source (&self->_priv.mm_launch_id);
clear_modem_manager (self);
#if WITH_OFONO
- if (self->priv->ofono_proxy) {
- g_signal_handlers_disconnect_by_func (self->priv->ofono_proxy, ofono_name_owner_changed, self);
- g_signal_handlers_disconnect_by_func (self->priv->ofono_proxy, ofono_signal_cb, self);
- g_clear_object (&self->priv->ofono_proxy);
+ if (self->_priv.ofono_proxy) {
+ g_signal_handlers_disconnect_by_func (self->_priv.ofono_proxy, ofono_name_owner_changed, self);
+ g_signal_handlers_disconnect_by_func (self->_priv.ofono_proxy, ofono_signal_cb, self);
+ g_clear_object (&self->_priv.ofono_proxy);
}
#endif
- g_clear_object (&self->priv->dbus_connection);
+ g_clear_object (&self->_priv.dbus_connection);
- if (self->priv->modems) {
- g_hash_table_foreach_remove (self->priv->modems, remove_one_modem, object);
- g_hash_table_destroy (self->priv->modems);
+ if (self->_priv.modems) {
+ g_hash_table_foreach_remove (self->_priv.modems, remove_one_modem, object);
+ g_hash_table_destroy (self->_priv.modems);
}
- /* Chain up to the parent class */
G_OBJECT_CLASS (nm_modem_manager_parent_class)->dispose (object);
}
@@ -595,15 +604,12 @@ nm_modem_manager_class_init (NMModemManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMModemManagerPrivate));
-
object_class->dispose = dispose;
signals[MODEM_ADDED] =
- g_signal_new (NM_MODEM_MANAGER_MODEM_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemManagerClass, modem_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1, NM_TYPE_MODEM);
+ g_signal_new (NM_MODEM_MANAGER_MODEM_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1, NM_TYPE_MODEM);
}
diff --git a/src/devices/wwan/nm-modem-manager.h b/src/devices/wwan/nm-modem-manager.h
index b0014c6a89..65594dfa56 100644
--- a/src/devices/wwan/nm-modem-manager.h
+++ b/src/devices/wwan/nm-modem-manager.h
@@ -25,23 +25,17 @@
#include "nm-modem.h"
-#define NM_TYPE_MODEM_MANAGER (nm_modem_manager_get_type ())
-#define NM_MODEM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MODEM_MANAGER, NMModemManager))
+#define NM_TYPE_MODEM_MANAGER (nm_modem_manager_get_type ())
+#define NM_MODEM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MODEM_MANAGER, NMModemManager))
+#define NM_MODEM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_MODEM_MANAGER, NMModemManagerClass))
+#define NM_IS_MODEM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_MODEM_MANAGER))
+#define NM_IS_MODEM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_MODEM_MANAGER))
+#define NM_MODEM_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_MODEM_MANAGER, NMModemManagerClass))
#define NM_MODEM_MANAGER_MODEM_ADDED "modem-added"
-typedef struct _NMModemManagerPrivate NMModemManagerPrivate;
-
-typedef struct {
- GObject parent;
- NMModemManagerPrivate *priv;
-} NMModemManager;
-
-typedef struct {
- GObjectClass parent;
-
- void (*modem_added) (NMModemManager *self, NMModem *modem);
-} NMModemManagerClass;
+typedef struct _NMModemManager NMModemManager;
+typedef struct _NMModemManagerClass NMModemManagerClass;
GType nm_modem_manager_get_type (void);
diff --git a/src/devices/wwan/nm-modem-ofono.c b/src/devices/wwan/nm-modem-ofono.c
index 86492d3d98..69582f97c1 100644
--- a/src/devices/wwan/nm-modem-ofono.c
+++ b/src/devices/wwan/nm-modem-ofono.c
@@ -28,10 +28,7 @@
#include "nm-device-private.h"
#include "nm-modem.h"
#include "nm-platform.h"
-
-G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM)
-
-#define NM_MODEM_OFONO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_MODEM_OFONO, NMModemOfonoPrivate))
+#include "nm-ip4-config.h"
#define VARIANT_IS_OF_TYPE_BOOLEAN(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_BOOLEAN) ))
#define VARIANT_IS_OF_TYPE_STRING(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING) ))
@@ -39,6 +36,8 @@ G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM)
#define VARIANT_IS_OF_TYPE_STRING_ARRAY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING_ARRAY) ))
#define VARIANT_IS_OF_TYPE_DICTIONARY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_DICTIONARY) ))
+/*****************************************************************************/
+
typedef struct {
GHashTable *connect_properties;
@@ -58,6 +57,19 @@ typedef struct {
NMIP4Config *ip4_config;
} NMModemOfonoPrivate;
+struct _NMModemOfono {
+ NMModem parent;
+ NMModemOfonoPrivate _priv;
+};
+
+struct _NMModemOfonoClass {
+ NMModemClass parent;
+};
+
+G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM)
+
+#define NM_MODEM_OFONO_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMModemOfono, NM_IS_MODEM_OFONO)
+
/*****************************************************************************/
#define _NMLOG_DOMAIN LOGD_MB
@@ -239,7 +251,7 @@ disconnect (NMModem *modem,
user_data,
disconnect);
}
- /* Setup cancellable */
+
ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
if (disconnect_context_complete_if_cancelled (ctx))
return;
@@ -261,17 +273,16 @@ disconnect (NMModem *modem,
}
static void
-deactivate_cleanup (NMModem *_self, NMDevice *device)
+deactivate_cleanup (NMModem *modem, NMDevice *device)
{
- NMModemOfono *self = NM_MODEM_OFONO (_self);
+ NMModemOfono *self = NM_MODEM_OFONO (modem);
NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self);
/* TODO: cancel SimpleConnect() if any */
g_clear_object (&priv->ip4_config);
- /* Chain up parent's */
- NM_MODEM_CLASS (nm_modem_ofono_parent_class)->deactivate_cleanup (_self, device);
+ NM_MODEM_CLASS (nm_modem_ofono_parent_class)->deactivate_cleanup (modem, device);
}
@@ -700,30 +711,6 @@ modem_get_properties_done (GDBusProxy *proxy, GAsyncResult *result, gpointer use
g_variant_unref (v_properties);
}
-NMModem *
-nm_modem_ofono_new (const char *path)
-{
- gs_free char *basename = NULL;
-
- g_return_val_if_fail (path != NULL, NULL);
-
- nm_log_info (LOGD_MB, "ofono: creating new Ofono modem path %s", path);
-
- /* Use short modem name (not its object path) as the NM device name (which
- * comes from NM_MODEM_UID)and the device ID.
- */
- basename = g_path_get_basename (path);
-
- return (NMModem *) g_object_new (NM_TYPE_MODEM_OFONO,
- NM_MODEM_PATH, path,
- NM_MODEM_UID, basename,
- NM_MODEM_DEVICE_ID, basename,
- NM_MODEM_CONTROL_PORT, "ofono", /* mandatory */
- NM_MODEM_DRIVER, "ofono",
- NM_MODEM_STATE, NM_MODEM_STATE_INITIALIZING,
- NULL);
-}
-
static void
stage1_prepare_done (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data)
{
@@ -933,11 +920,11 @@ out:
}
static NMActStageReturn
-static_stage3_ip4_config_start (NMModem *_self,
+static_stage3_ip4_config_start (NMModem *modem,
NMActRequest *req,
NMDeviceStateReason *reason)
{
- NMModemOfono *self = NM_MODEM_OFONO (_self);
+ NMModemOfono *self = NM_MODEM_OFONO (modem);
NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self);
NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE;
GError *error = NULL;
@@ -1123,6 +1110,8 @@ modem_proxy_new_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data)
g_object_ref (self));
}
+/*****************************************************************************/
+
static void
nm_modem_ofono_init (NMModemOfono *self)
{
@@ -1144,6 +1133,30 @@ constructed (GObject *object)
g_object_ref (self));
}
+NMModem *
+nm_modem_ofono_new (const char *path)
+{
+ gs_free char *basename = NULL;
+
+ g_return_val_if_fail (path != NULL, NULL);
+
+ nm_log_info (LOGD_MB, "ofono: creating new Ofono modem path %s", path);
+
+ /* Use short modem name (not its object path) as the NM device name (which
+ * comes from NM_MODEM_UID)and the device ID.
+ */
+ basename = g_path_get_basename (path);
+
+ return (NMModem *) g_object_new (NM_TYPE_MODEM_OFONO,
+ NM_MODEM_PATH, path,
+ NM_MODEM_UID, basename,
+ NM_MODEM_DEVICE_ID, basename,
+ NM_MODEM_CONTROL_PORT, "ofono", /* mandatory */
+ NM_MODEM_DRIVER, "ofono",
+ NM_MODEM_STATE, NM_MODEM_STATE_INITIALIZING,
+ NULL);
+}
+
static void
dispose (GObject *object)
{
@@ -1182,9 +1195,6 @@ nm_modem_ofono_class_init (NMModemOfonoClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMModemClass *modem_class = NM_MODEM_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMModemOfonoPrivate));
-
- /* Virtual methods */
object_class->constructed = constructed;
object_class->dispose = dispose;
@@ -1194,9 +1204,6 @@ nm_modem_ofono_class_init (NMModemOfonoClass *klass)
modem_class->deactivate_cleanup = deactivate_cleanup;
modem_class->check_connection_compatible = check_connection_compatible;
- /* same as nm-modem-broadband */
modem_class->act_stage1_prepare = act_stage1_prepare;
-
- /* same as nm-modem-broadband */
modem_class->static_stage3_ip4_config_start = static_stage3_ip4_config_start;
}
diff --git a/src/devices/wwan/nm-modem-ofono.h b/src/devices/wwan/nm-modem-ofono.h
index 5965526d61..d9cb68ac94 100644
--- a/src/devices/wwan/nm-modem-ofono.h
+++ b/src/devices/wwan/nm-modem-ofono.h
@@ -38,13 +38,8 @@
#define OFONO_DBUS_INTERFACE_CONNECTION_CONTEXT "org.ofono.ConnectionContext"
#define OFONO_DBUS_INTERFACE_SIM_MANAGER "org.ofono.SimManager"
-typedef struct {
- NMModem parent;
-} NMModemOfono;
-
-typedef struct {
- NMModemClass parent;
-} NMModemOfonoClass;
+typedef struct _NMModemOfono NMModemOfono;
+typedef struct _NMModemOfonoClass NMModemOfonoClass;
GType nm_modem_ofono_get_type (void);
diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c
index 94430af47a..d5f12b1cc2 100644
--- a/src/devices/wwan/nm-modem.c
+++ b/src/devices/wwan/nm-modem.c
@@ -32,13 +32,14 @@
#include "nm-device-private.h"
#include "nm-modem-enum-types.h"
#include "nm-route-manager.h"
+#include "nm-act-request.h"
+#include "nm-ip4-config.h"
+#include "nm-ip6-config.h"
+#include "ppp-manager/nm-ppp-status.h"
-G_DEFINE_TYPE (NMModem, nm_modem, G_TYPE_OBJECT)
-
-#define NM_MODEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_MODEM, NMModemPrivate))
+/*****************************************************************************/
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMModem,
PROP_CONTROL_PORT,
PROP_DATA_PORT,
PROP_PATH,
@@ -52,11 +53,24 @@ enum {
PROP_SIM_ID,
PROP_IP_TYPES,
PROP_SIM_OPERATOR_ID,
+);
- LAST_PROP
+enum {
+ PPP_STATS,
+ PPP_FAILED,
+ PREPARE_RESULT,
+ IP4_CONFIG_RESULT,
+ IP6_CONFIG_RESULT,
+ AUTH_REQUESTED,
+ AUTH_RESULT,
+ REMOVED,
+ STATE_CHANGED,
+ LAST_SIGNAL,
};
-typedef struct {
+static guint signals[LAST_SIGNAL] = { 0 };
+
+typedef struct _NMModemPrivate {
char *uid;
char *path;
char *driver;
@@ -86,22 +100,9 @@ typedef struct {
guint32 out_bytes;
} NMModemPrivate;
-enum {
- PPP_STATS,
- PPP_FAILED,
- PREPARE_RESULT,
- IP4_CONFIG_RESULT,
- IP6_CONFIG_RESULT,
- AUTH_REQUESTED,
- AUTH_RESULT,
- REMOVED,
- STATE_CHANGED,
-
- LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE (NMModem, nm_modem, G_TYPE_OBJECT)
+#define NM_MODEM_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMModem, NM_IS_MODEM)
/*****************************************************************************/
/* State/enabled/connected */
@@ -154,7 +155,7 @@ nm_modem_set_state (NMModem *self,
reason ? reason : "none");
priv->state = new_state;
- g_object_notify (G_OBJECT (self), NM_MODEM_STATE);
+ _notify (self, PROP_STATE);
g_signal_emit (self, signals[STATE_CHANGED], 0, new_state, old_state, reason);
}
}
@@ -397,7 +398,7 @@ set_data_port (NMModem *self, const char *new_data_port)
if (g_strcmp0 (priv->data_port, new_data_port) != 0) {
g_free (priv->data_port);
priv->data_port = g_strdup (new_data_port);
- g_object_notify (G_OBJECT (self), NM_MODEM_DATA_PORT);
+ _notify (self, PROP_DATA_PORT);
}
}
@@ -1306,48 +1307,10 @@ nm_modem_get_capabilities (NMModem *self,
/*****************************************************************************/
static void
-nm_modem_init (NMModem *self)
-{
-}
-
-static GObject*
-constructor (GType type,
- guint n_construct_params,
- GObjectConstructParam *construct_params)
-{
- GObject *object;
- NMModemPrivate *priv;
-
- object = G_OBJECT_CLASS (nm_modem_parent_class)->constructor (type,
- n_construct_params,
- construct_params);
- if (!object)
- return NULL;
-
- priv = NM_MODEM_GET_PRIVATE (object);
-
- if (!priv->data_port && !priv->control_port) {
- nm_log_err (LOGD_HW, "neither modem command nor data interface provided");
- goto err;
- }
-
- if (!priv->path) {
- nm_log_err (LOGD_HW, "D-Bus path not provided");
- goto err;
- }
-
- return object;
-
-err:
- g_object_unref (object);
- return NULL;
-}
-
-static void
get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
- NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object);
+ NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object);
switch (prop_id) {
case PROP_PATH:
@@ -1399,7 +1362,7 @@ static void
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
- NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object);
+ NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object);
const char *s;
switch (prop_id) {
@@ -1458,10 +1421,53 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_modem_init (NMModem *self)
+{
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_MODEM, NMModemPrivate);
+}
+
+static GObject*
+constructor (GType type,
+ guint n_construct_params,
+ GObjectConstructParam *construct_params)
+{
+ GObject *object;
+ NMModemPrivate *priv;
+
+ object = G_OBJECT_CLASS (nm_modem_parent_class)->constructor (type,
+ n_construct_params,
+ construct_params);
+ if (!object)
+ return NULL;
+
+ priv = NM_MODEM_GET_PRIVATE ((NMModem *) object);
+
+ if (!priv->data_port && !priv->control_port) {
+ nm_log_err (LOGD_HW, "neither modem command nor data interface provided");
+ goto err;
+ }
+
+ if (!priv->path) {
+ nm_log_err (LOGD_HW, "D-Bus path not provided");
+ goto err;
+ }
+
+ return object;
+
+err:
+ g_object_unref (object);
+ return NULL;
+}
+
+/*****************************************************************************/
+
static void
dispose (GObject *object)
{
- NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object);
+ NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object);
if (priv->act_request) {
g_object_unref (priv->act_request);
@@ -1474,7 +1480,7 @@ dispose (GObject *object)
static void
finalize (GObject *object)
{
- NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object);
+ NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object);
g_free (priv->uid);
g_free (priv->path);
@@ -1495,7 +1501,6 @@ nm_modem_class_init (NMModemClass *klass)
g_type_class_add_private (object_class, sizeof (NMModemPrivate));
- /* Virtual methods */
object_class->constructor = constructor;
object_class->set_property = set_property;
object_class->get_property = get_property;
@@ -1506,131 +1511,114 @@ nm_modem_class_init (NMModemClass *klass)
klass->stage3_ip6_config_request = stage3_ip6_config_request;
klass->deactivate_cleanup = deactivate_cleanup;
- /* Properties */
-
- g_object_class_install_property
- (object_class, PROP_UID,
- g_param_spec_string (NM_MODEM_UID, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_PATH,
- g_param_spec_string (NM_MODEM_PATH, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_DRIVER,
- g_param_spec_string (NM_MODEM_DRIVER, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CONTROL_PORT,
- g_param_spec_string (NM_MODEM_CONTROL_PORT, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_DATA_PORT,
- g_param_spec_string (NM_MODEM_DATA_PORT, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_IP4_METHOD,
- g_param_spec_uint (NM_MODEM_IP4_METHOD, "", "",
- NM_MODEM_IP_METHOD_UNKNOWN,
- NM_MODEM_IP_METHOD_AUTO,
- NM_MODEM_IP_METHOD_UNKNOWN,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_IP6_METHOD,
- g_param_spec_uint (NM_MODEM_IP6_METHOD, "", "",
- NM_MODEM_IP_METHOD_UNKNOWN,
- NM_MODEM_IP_METHOD_AUTO,
- NM_MODEM_IP_METHOD_UNKNOWN,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_IP_TIMEOUT,
- g_param_spec_uint (NM_MODEM_IP_TIMEOUT, "", "",
- 0, 360, 20,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_MODEM_STATE, "", "",
- NM_TYPE_MODEM_STATE,
- NM_MODEM_STATE_UNKNOWN,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_DEVICE_ID,
- g_param_spec_string (NM_MODEM_DEVICE_ID, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_SIM_ID,
- g_param_spec_string (NM_MODEM_SIM_ID, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_IP_TYPES,
- g_param_spec_uint (NM_MODEM_IP_TYPES,
- "IP Types",
- "Supported IP types",
- 0, G_MAXUINT32, NM_MODEM_IP_TYPE_IPV4,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- g_object_class_install_property
- (object_class, PROP_SIM_OPERATOR_ID,
- g_param_spec_string (NM_MODEM_SIM_OPERATOR_ID, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
-
- /* Signals */
+ obj_properties[PROP_UID] =
+ g_param_spec_string (NM_MODEM_UID, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_PATH] =
+ g_param_spec_string (NM_MODEM_PATH, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_DRIVER] =
+ g_param_spec_string (NM_MODEM_DRIVER, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CONTROL_PORT] =
+ g_param_spec_string (NM_MODEM_CONTROL_PORT, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_DATA_PORT] =
+ g_param_spec_string (NM_MODEM_DATA_PORT, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_IP4_METHOD] =
+ g_param_spec_uint (NM_MODEM_IP4_METHOD, "", "",
+ NM_MODEM_IP_METHOD_UNKNOWN,
+ NM_MODEM_IP_METHOD_AUTO,
+ NM_MODEM_IP_METHOD_UNKNOWN,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_IP6_METHOD] =
+ g_param_spec_uint (NM_MODEM_IP6_METHOD, "", "",
+ NM_MODEM_IP_METHOD_UNKNOWN,
+ NM_MODEM_IP_METHOD_AUTO,
+ NM_MODEM_IP_METHOD_UNKNOWN,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_IP_TIMEOUT] =
+ g_param_spec_uint (NM_MODEM_IP_TIMEOUT, "", "",
+ 0, 360, 20,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_MODEM_STATE, "", "",
+ NM_TYPE_MODEM_STATE,
+ NM_MODEM_STATE_UNKNOWN,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_DEVICE_ID] =
+ g_param_spec_string (NM_MODEM_DEVICE_ID, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_SIM_ID] =
+ g_param_spec_string (NM_MODEM_SIM_ID, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_IP_TYPES] =
+ g_param_spec_uint (NM_MODEM_IP_TYPES,
+ "IP Types",
+ "Supported IP types",
+ 0, G_MAXUINT32, NM_MODEM_IP_TYPE_IPV4,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_SIM_OPERATOR_ID] =
+ g_param_spec_string (NM_MODEM_SIM_OPERATOR_ID, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[PPP_STATS] =
- g_signal_new ("ppp-stats",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, ppp_stats),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2,
- G_TYPE_UINT, G_TYPE_UINT);
+ g_signal_new ("ppp-stats",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT, G_TYPE_UINT);
signals[PPP_FAILED] =
- g_signal_new ("ppp-failed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, ppp_failed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1, G_TYPE_UINT);
+ g_signal_new ("ppp-failed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1, G_TYPE_UINT);
signals[IP4_CONFIG_RESULT] =
- g_signal_new (NM_MODEM_IP4_CONFIG_RESULT,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, ip4_config_result),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_POINTER);
+ g_signal_new (NM_MODEM_IP4_CONFIG_RESULT,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_POINTER);
/**
* NMModem::ip6-config-result:
@@ -1646,50 +1634,44 @@ nm_modem_class_init (NMModemClass *klass)
* should be started after applying @config to the data port.
*/
signals[IP6_CONFIG_RESULT] =
- g_signal_new (NM_MODEM_IP6_CONFIG_RESULT,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, ip6_config_result),
- NULL, NULL, NULL,
- G_TYPE_NONE, 3, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_POINTER);
+ g_signal_new (NM_MODEM_IP6_CONFIG_RESULT,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 3, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_POINTER);
signals[PREPARE_RESULT] =
- g_signal_new (NM_MODEM_PREPARE_RESULT,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, prepare_result),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_UINT);
+ g_signal_new (NM_MODEM_PREPARE_RESULT,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_UINT);
signals[AUTH_REQUESTED] =
- g_signal_new (NM_MODEM_AUTH_REQUESTED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, auth_requested),
- NULL, NULL, NULL,
- G_TYPE_NONE, 0);
+ g_signal_new (NM_MODEM_AUTH_REQUESTED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
signals[AUTH_RESULT] =
- g_signal_new (NM_MODEM_AUTH_RESULT,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, auth_result),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
+ g_signal_new (NM_MODEM_AUTH_RESULT,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
signals[REMOVED] =
- g_signal_new (NM_MODEM_REMOVED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 0);
+ g_signal_new (NM_MODEM_REMOVED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
signals[STATE_CHANGED] =
- g_signal_new (NM_MODEM_STATE_CHANGED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMModemClass, state_changed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2, NM_TYPE_MODEM_STATE, NM_TYPE_MODEM_STATE);
+ g_signal_new (NM_MODEM_STATE_CHANGED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2, NM_TYPE_MODEM_STATE, NM_TYPE_MODEM_STATE);
}
diff --git a/src/devices/wwan/nm-modem.h b/src/devices/wwan/nm-modem.h
index 8f797d4400..bc866ca465 100644
--- a/src/devices/wwan/nm-modem.h
+++ b/src/devices/wwan/nm-modem.h
@@ -76,7 +76,7 @@ typedef enum {
* combination of flags is possible. For example, (%NM_MODEM_IP_TYPE_IPV4 |
* %NM_MODEM_IP_TYPE_IPV6) indicates that the modem supports IPv4 and IPv6
* but not simultaneously on the same bearer.
- */
+ */
typedef enum {
NM_MODEM_IP_TYPE_UNKNOWN = 0x0,
NM_MODEM_IP_TYPE_IPV4 = 0x1,
@@ -100,9 +100,11 @@ typedef enum { /*< underscore_name=nm_modem_state >*/
NM_MODEM_STATE_CONNECTED = 12,
} NMModemState;
+struct _NMModemPrivate;
typedef struct {
GObject parent;
+ struct _NMModemPrivate *_priv;
} NMModem;
typedef struct {
@@ -153,26 +155,6 @@ typedef struct {
void (*deactivate_cleanup) (NMModem *self, NMDevice *device);
gboolean (*owns_port) (NMModem *self, const char *iface);
-
- /* Signals */
- void (*ppp_stats) (NMModem *self, guint32 in_bytes, guint32 out_bytes);
- void (*ppp_failed) (NMModem *self, NMDeviceStateReason reason);
-
- void (*prepare_result) (NMModem *self, gboolean success, NMDeviceStateReason reason);
- void (*ip4_config_result) (NMModem *self, NMIP4Config *config, GError *error);
- void (*ip6_config_result) (NMModem *self,
- NMIP6Config *config,
- gboolean do_slaac,
- GError *error);
-
- void (*auth_requested) (NMModem *self);
- void (*auth_result) (NMModem *self, GError *error);
-
- void (*state_changed) (NMModem *self,
- NMModemState new_state,
- NMModemState old_state);
-
- void (*removed) (NMModem *self);
} NMModemClass;
GType nm_modem_get_type (void);
diff --git a/src/devices/wwan/nm-wwan-factory.c b/src/devices/wwan/nm-wwan-factory.c
index 23c2c44b40..c9f6cc12fb 100644
--- a/src/devices/wwan/nm-wwan-factory.c
+++ b/src/devices/wwan/nm-wwan-factory.c
@@ -24,33 +24,47 @@
#include <gmodule.h>
#include "nm-device-factory.h"
-#include "nm-wwan-factory.h"
#include "nm-setting-gsm.h"
#include "nm-setting-cdma.h"
#include "nm-modem-manager.h"
#include "nm-device-modem.h"
#include "nm-platform.h"
-static GType nm_wwan_factory_get_type (void);
+/*****************************************************************************/
-static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface);
+#define NM_TYPE_WWAN_FACTORY (nm_wwan_factory_get_type ())
+#define NM_WWAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WWAN_FACTORY, NMWwanFactory))
+#define NM_WWAN_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WWAN_FACTORY, NMWwanFactoryClass))
+#define NM_IS_WWAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WWAN_FACTORY))
+#define NM_IS_WWAN_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_WWAN_FACTORY))
+#define NM_WWAN_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WWAN_FACTORY, NMWwanFactoryClass))
-G_DEFINE_TYPE_EXTENDED (NMWwanFactory, nm_wwan_factory, G_TYPE_OBJECT, 0,
- G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init))
+typedef struct _NMWwanFactory NMWwanFactory;
+typedef struct _NMWwanFactoryClass NMWwanFactoryClass;
+
+static GType nm_wwan_factory_get_type (void);
-#define NM_WWAN_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_WWAN_FACTORY, NMWwanFactoryPrivate))
+/*****************************************************************************/
typedef struct {
NMModemManager *mm;
} NMWwanFactoryPrivate;
-/*****************************************************************************/
+struct _NMWwanFactory {
+ GObject parent;
+ NMWwanFactoryPrivate _priv;
+};
-G_MODULE_EXPORT NMDeviceFactory *
-nm_device_factory_create (GError **error)
-{
- return (NMDeviceFactory *) g_object_new (NM_TYPE_WWAN_FACTORY, NULL);
-}
+struct _NMWwanFactoryClass {
+ GObjectClass parent;
+};
+
+static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface);
+
+G_DEFINE_TYPE_EXTENDED (NMWwanFactory, nm_wwan_factory, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init))
+
+#define NM_WWAN_FACTORY_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMWwanFactory, NM_IS_WWAN_FACTORY)
/*****************************************************************************/
@@ -121,17 +135,11 @@ start (NMDeviceFactory *factory)
self);
}
-static void
-nm_wwan_factory_init (NMWwanFactory *self)
-{
-}
+/*****************************************************************************/
static void
-device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
+nm_wwan_factory_init (NMWwanFactory *self)
{
- factory_iface->get_supported_types = get_supported_types;
- factory_iface->create_device = create_device;
- factory_iface->start = start;
}
static void
@@ -153,7 +161,21 @@ nm_wwan_factory_class_init (NMWwanFactoryClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMWwanFactoryPrivate));
-
object_class->dispose = dispose;
}
+
+static void
+device_factory_interface_init (NMDeviceFactoryInterface *factory_iface)
+{
+ factory_iface->get_supported_types = get_supported_types;
+ factory_iface->create_device = create_device;
+ factory_iface->start = start;
+}
+
+/*****************************************************************************/
+
+G_MODULE_EXPORT NMDeviceFactory *
+nm_device_factory_create (GError **error)
+{
+ return (NMDeviceFactory *) g_object_new (NM_TYPE_WWAN_FACTORY, NULL);
+}
diff --git a/src/devices/wwan/nm-wwan-factory.h b/src/devices/wwan/nm-wwan-factory.h
deleted file mode 100644
index 61bdcb1e4b..0000000000
--- a/src/devices/wwan/nm-wwan-factory.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* NetworkManager -- Network link manager
- *
- * 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 (C) 2014 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_WWAN_FACTORY_H__
-#define __NETWORKMANAGER_WWAN_FACTORY_H__
-
-#define NM_TYPE_WWAN_FACTORY (nm_wwan_factory_get_type ())
-#define NM_WWAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WWAN_FACTORY, NMWwanFactory))
-
-typedef struct {
- GObject parent;
-} NMWwanFactory;
-
-typedef struct {
- GObjectClass parent;
-} NMWwanFactoryClass;
-
-#endif /* __NETWORKMANAGER_WWAN_FACTORY_H__ */
diff --git a/src/dhcp-manager/nm-dhcp-listener.c b/src/dhcp-manager/nm-dhcp-listener.c
index d0e7b8c2ee..5b2e618b2d 100644
--- a/src/dhcp-manager/nm-dhcp-listener.c
+++ b/src/dhcp-manager/nm-dhcp-listener.c
@@ -52,7 +52,7 @@ struct _NMDhcpListener {
};
struct _NMDhcpListenerClass {
- GObjectClass parent_class;
+ GObjectClass parent;
};
enum {
diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
index c6c4928fee..6f2ab3eba6 100644
--- a/src/dns-manager/nm-dns-dnsmasq.c
+++ b/src/dns-manager/nm-dns-dnsmasq.c
@@ -20,6 +20,8 @@
#include "nm-default.h"
+#include "nm-dns-dnsmasq.h"
+
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
@@ -28,7 +30,6 @@
#include <sys/stat.h>
#include <linux/if.h>
-#include "nm-dns-dnsmasq.h"
#include "nm-core-internal.h"
#include "nm-platform.h"
#include "nm-utils.h"
@@ -37,16 +38,14 @@
#include "nm-bus-manager.h"
#include "NetworkManagerUtils.h"
-G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN)
-
-#define NM_DNS_DNSMASQ_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_DNSMASQ, NMDnsDnsmasqPrivate))
-
#define PIDFILE NMRUNDIR "/dnsmasq.pid"
#define CONFDIR NMCONFDIR "/dnsmasq.d"
#define DNSMASQ_DBUS_SERVICE "org.freedesktop.NetworkManager.dnsmasq"
#define DNSMASQ_DBUS_PATH "/uk/org/thekelleys/dnsmasq"
+/*****************************************************************************/
+
typedef struct {
GDBusProxy *dnsmasq;
GCancellable *dnsmasq_cancellable;
@@ -56,6 +55,19 @@ typedef struct {
GVariant *set_server_ex_args;
} NMDnsDnsmasqPrivate;
+struct _NMDnsDnsmasq {
+ NMDnsPlugin parent;
+ NMDnsDnsmasqPrivate _priv;
+};
+
+struct _NMDnsDnsmasqClass {
+ NMDnsPluginClass parent;
+};
+
+G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN)
+
+#define NM_DNS_DNSMASQ_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDnsDnsmasq, NM_IS_DNS_DNSMASQ)
+
/*****************************************************************************/
#define _NMLOG_DOMAIN LOGD_DNS
@@ -653,21 +665,21 @@ get_name (NMDnsPlugin *plugin)
/*****************************************************************************/
-NMDnsPlugin *
-nm_dns_dnsmasq_new (void)
+static void
+nm_dns_dnsmasq_init (NMDnsDnsmasq *self)
{
- return g_object_new (NM_TYPE_DNS_DNSMASQ, NULL);
}
-static void
-nm_dns_dnsmasq_init (NMDnsDnsmasq *self)
+NMDnsPlugin *
+nm_dns_dnsmasq_new (void)
{
+ return g_object_new (NM_TYPE_DNS_DNSMASQ, NULL);
}
static void
dispose (GObject *object)
{
- NMDnsDnsmasqPrivate *priv = NM_DNS_DNSMASQ_GET_PRIVATE (object);
+ NMDnsDnsmasqPrivate *priv = NM_DNS_DNSMASQ_GET_PRIVATE ((NMDnsDnsmasq *) object);
nm_clear_g_cancellable (&priv->dnsmasq_cancellable);
nm_clear_g_cancellable (&priv->update_cancellable);
@@ -685,8 +697,6 @@ nm_dns_dnsmasq_class_init (NMDnsDnsmasqClass *dns_class)
NMDnsPluginClass *plugin_class = NM_DNS_PLUGIN_CLASS (dns_class);
GObjectClass *object_class = G_OBJECT_CLASS (dns_class);
- g_type_class_add_private (dns_class, sizeof (NMDnsDnsmasqPrivate));
-
object_class->dispose = dispose;
plugin_class->child_quit = child_quit;
@@ -694,4 +704,3 @@ nm_dns_dnsmasq_class_init (NMDnsDnsmasqClass *dns_class)
plugin_class->update = update;
plugin_class->get_name = get_name;
}
-
diff --git a/src/dns-manager/nm-dns-dnsmasq.h b/src/dns-manager/nm-dns-dnsmasq.h
index f0393c1222..cbba434bf3 100644
--- a/src/dns-manager/nm-dns-dnsmasq.h
+++ b/src/dns-manager/nm-dns-dnsmasq.h
@@ -28,17 +28,11 @@
#define NM_IS_DNS_DNSMASQ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_DNSMASQ))
#define NM_DNS_DNSMASQ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_DNSMASQ, NMDnsDnsmasqClass))
-typedef struct {
- NMDnsPlugin parent;
-} NMDnsDnsmasq;
-
-typedef struct {
- NMDnsPluginClass parent;
-} NMDnsDnsmasqClass;
+typedef struct _NMDnsDnsmasq NMDnsDnsmasq;
+typedef struct _NMDnsDnsmasqClass NMDnsDnsmasqClass;
GType nm_dns_dnsmasq_get_type (void);
NMDnsPlugin *nm_dns_dnsmasq_new (void);
#endif /* __NETWORKMANAGER_DNS_DNSMASQ_H__ */
-
diff --git a/src/dns-manager/nm-dns-plugin.c b/src/dns-manager/nm-dns-plugin.c
index 53ca4d5ef6..3a3bc646f7 100644
--- a/src/dns-manager/nm-dns-plugin.c
+++ b/src/dns-manager/nm-dns-plugin.c
@@ -19,6 +19,8 @@
#include "nm-default.h"
+#include "nm-dns-plugin.h"
+
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
@@ -26,27 +28,28 @@
#include <sys/wait.h>
#include "nm-core-internal.h"
-
-#include "nm-dns-plugin.h"
#include "NetworkManagerUtils.h"
-typedef struct {
+/*****************************************************************************/
+
+enum {
+ FAILED,
+ CHILD_QUIT,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+typedef struct _NMDnsPluginPrivate {
GPid pid;
guint watch_id;
char *progname;
char *pidfile;
} NMDnsPluginPrivate;
-#define NM_DNS_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_PLUGIN, NMDnsPluginPrivate))
-
G_DEFINE_TYPE_EXTENDED (NMDnsPlugin, nm_dns_plugin, G_TYPE_OBJECT, G_TYPE_FLAG_ABSTRACT, {})
-enum {
- FAILED,
- CHILD_QUIT,
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
+#define NM_DNS_PLUGIN_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMDnsPlugin, NM_IS_DNS_PLUGIN)
/*****************************************************************************/
@@ -265,6 +268,7 @@ nm_dns_plugin_stop (NMDnsPlugin *self)
static void
nm_dns_plugin_init (NMDnsPlugin *self)
{
+ self->_priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_DNS_PLUGIN, NMDnsPluginPrivate);
}
static void
@@ -284,17 +288,20 @@ nm_dns_plugin_class_init (NMDnsPluginClass *plugin_class)
g_type_class_add_private (plugin_class, sizeof (NMDnsPluginPrivate));
- /* virtual methods */
object_class->dispose = dispose;
+
plugin_class->is_caching = is_caching;
- /* signals */
+ /* Emitted by the plugin and consumed by NMDnsManager when
+ * some error happens with the nameserver subprocess. Causes NM to fall
+ * back to writing out a non-local-caching resolv.conf until the next
+ * DNS update.
+ */
signals[FAILED] =
g_signal_new (NM_DNS_PLUGIN_FAILED,
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDnsPluginClass, failed),
- NULL, NULL,
+ 0, NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
@@ -307,4 +314,3 @@ nm_dns_plugin_class_init (NMDnsPluginClass *plugin_class)
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE, 1, G_TYPE_INT);
}
-
diff --git a/src/dns-manager/nm-dns-plugin.h b/src/dns-manager/nm-dns-plugin.h
index e24bc1732a..12109441f9 100644
--- a/src/dns-manager/nm-dns-plugin.h
+++ b/src/dns-manager/nm-dns-plugin.h
@@ -32,8 +32,11 @@
#define NM_DNS_PLUGIN_FAILED "failed"
#define NM_DNS_PLUGIN_CHILD_QUIT "child-quit"
+struct _NMDnsPluginPrivate;
+
typedef struct {
GObject parent;
+ struct _NMDnsPluginPrivate *_priv;
} NMDnsPlugin;
typedef struct {
@@ -62,13 +65,6 @@ typedef struct {
/* Signals */
- /* Emitted by the plugin and consumed by NMDnsManager when
- * some error happens with the nameserver subprocess. Causes NM to fall
- * back to writing out a non-local-caching resolv.conf until the next
- * DNS update.
- */
- void (*failed) (NMDnsPlugin *self);
-
/* Emitted by the plugin base class when the nameserver subprocess
* quits. This signal is consumed by the plugin subclasses and not
* by NMDnsManager. If the subclass decides the exit status (as returned
@@ -108,4 +104,3 @@ GPid nm_dns_plugin_child_pid (NMDnsPlugin *self);
gboolean nm_dns_plugin_child_kill (NMDnsPlugin *self);
#endif /* __NETWORKMANAGER_DNS_PLUGIN_H__ */
-
diff --git a/src/dns-manager/nm-dns-systemd-resolved.c b/src/dns-manager/nm-dns-systemd-resolved.c
index 3655449cfb..0432f83eb1 100644
--- a/src/dns-manager/nm-dns-systemd-resolved.c
+++ b/src/dns-manager/nm-dns-systemd-resolved.c
@@ -41,20 +41,18 @@
#include "nm-device.h"
#include "NetworkManagerUtils.h"
-G_DEFINE_TYPE (NMDnsSystemdResolved, nm_dns_systemd_resolved, NM_TYPE_DNS_PLUGIN)
-
-#define NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_SYSTEMD_RESOLVED, \
- NMDnsSystemdResolvedPrivate))
-
#define SYSTEMD_RESOLVED_DBUS_SERVICE "org.freedesktop.resolve1"
#define SYSTEMD_RESOLVED_DBUS_PATH "/org/freedesktop/resolve1"
+/*****************************************************************************/
+
typedef struct {
int ifindex;
GList *configs;
} InterfaceConfig;
+/*****************************************************************************/
+
typedef struct {
GDBusProxy *resolve;
GCancellable *init_cancellable;
@@ -63,6 +61,19 @@ typedef struct {
GQueue domain_updates;
} NMDnsSystemdResolvedPrivate;
+struct _NMDnsSystemdResolved {
+ NMDnsPlugin parent;
+ NMDnsSystemdResolvedPrivate _priv;
+};
+
+struct _NMDnsSystemdResolvedClass {
+ NMDnsPluginClass parent;
+};
+
+G_DEFINE_TYPE (NMDnsSystemdResolved, nm_dns_systemd_resolved, NM_TYPE_DNS_PLUGIN)
+
+#define NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDnsSystemdResolved, NM_IS_DNS_SYSTEMD_RESOLVED)
+
/*****************************************************************************/
#define _NMLOG_DOMAIN LOGD_DNS
@@ -319,12 +330,6 @@ get_name (NMDnsPlugin *plugin)
/*****************************************************************************/
-NMDnsPlugin *
-nm_dns_systemd_resolved_new (void)
-{
- return g_object_new (NM_TYPE_DNS_SYSTEMD_RESOLVED, NULL);
-}
-
static void
resolved_proxy_created (GObject *source, GAsyncResult *r, gpointer user_data)
{
@@ -350,6 +355,7 @@ resolved_proxy_created (GObject *source, GAsyncResult *r, gpointer user_data)
send_updates (self);
}
+/*****************************************************************************/
static void
nm_dns_systemd_resolved_init (NMDnsSystemdResolved *self)
@@ -380,6 +386,12 @@ nm_dns_systemd_resolved_init (NMDnsSystemdResolved *self)
self);
}
+NMDnsPlugin *
+nm_dns_systemd_resolved_new (void)
+{
+ return g_object_new (NM_TYPE_DNS_SYSTEMD_RESOLVED, NULL);
+}
+
static void
dispose (GObject *object)
{
@@ -400,12 +412,9 @@ nm_dns_systemd_resolved_class_init (NMDnsSystemdResolvedClass *dns_class)
NMDnsPluginClass *plugin_class = NM_DNS_PLUGIN_CLASS (dns_class);
GObjectClass *object_class = G_OBJECT_CLASS (dns_class);
- g_type_class_add_private (dns_class, sizeof (NMDnsSystemdResolvedPrivate));
-
object_class->dispose = dispose;
plugin_class->is_caching = is_caching;
plugin_class->update = update;
plugin_class->get_name = get_name;
}
-
diff --git a/src/dns-manager/nm-dns-systemd-resolved.h b/src/dns-manager/nm-dns-systemd-resolved.h
index 45c64b39ad..800a60c154 100644
--- a/src/dns-manager/nm-dns-systemd-resolved.h
+++ b/src/dns-manager/nm-dns-systemd-resolved.h
@@ -29,17 +29,11 @@
#define NM_IS_DNS_SYSTEMD_RESOLVED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_SYSTEMD_RESOLVED))
#define NM_DNS_SYSTEMD_RESOLVED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolvedClass))
-typedef struct {
- NMDnsPlugin parent;
-} NMDnsSystemdResolved;
-
-typedef struct {
- NMDnsPluginClass parent;
-} NMDnsSystemdResolvedClass;
+typedef struct _NMDnsSystemdResolved NMDnsSystemdResolved;
+typedef struct _NMDnsSystemdResolvedClass NMDnsSystemdResolvedClass;
GType nm_dns_systemd_resolved_get_type (void);
NMDnsPlugin *nm_dns_systemd_resolved_new (void);
#endif /* __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__ */
-
diff --git a/src/dns-manager/nm-dns-unbound.c b/src/dns-manager/nm-dns-unbound.c
index b9d5749d69..3659beacba 100644
--- a/src/dns-manager/nm-dns-unbound.c
+++ b/src/dns-manager/nm-dns-unbound.c
@@ -20,8 +20,19 @@
#include "nm-default.h"
#include "nm-dns-unbound.h"
+
#include "NetworkManagerUtils.h"
+/*****************************************************************************/
+
+struct _NMDnsUnbound {
+ NMDnsPlugin parent;
+};
+
+struct _NMDnsUnboundClass {
+ NMDnsPluginClass parent;
+};
+
G_DEFINE_TYPE (NMDnsUnbound, nm_dns_unbound, NM_TYPE_DNS_PLUGIN)
/*****************************************************************************/
@@ -58,15 +69,15 @@ get_name (NMDnsPlugin *plugin)
/*****************************************************************************/
-NMDnsPlugin *
-nm_dns_unbound_new (void)
+static void
+nm_dns_unbound_init (NMDnsUnbound *unbound)
{
- return g_object_new (NM_TYPE_DNS_UNBOUND, NULL);
}
-static void
-nm_dns_unbound_init (NMDnsUnbound *unbound)
+NMDnsPlugin *
+nm_dns_unbound_new (void)
{
+ return g_object_new (NM_TYPE_DNS_UNBOUND, NULL);
}
static void
diff --git a/src/dns-manager/nm-dns-unbound.h b/src/dns-manager/nm-dns-unbound.h
index abc056b926..100ff2c470 100644
--- a/src/dns-manager/nm-dns-unbound.h
+++ b/src/dns-manager/nm-dns-unbound.h
@@ -27,13 +27,8 @@
#define NM_IS_DNS_UNBOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_UNBOUND))
#define NM_DNS_UNBOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_UNBOUND, NMDnsUnboundClass))
-typedef struct {
- NMDnsPlugin parent;
-} NMDnsUnbound;
-
-typedef struct {
- NMDnsPluginClass parent;
-} NMDnsUnboundClass;
+typedef struct _NMDnsUnbound NMDnsUnbound;
+typedef struct _NMDnsUnboundClass NMDnsUnboundClass;
GType nm_dns_unbound_get_type (void);
diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.c b/src/dnsmasq-manager/nm-dnsmasq-manager.c
index 9ce8d833d1..b4547cb417 100644
--- a/src/dnsmasq-manager/nm-dnsmasq-manager.c
+++ b/src/dnsmasq-manager/nm-dnsmasq-manager.c
@@ -20,6 +20,8 @@
#include "nm-default.h"
+#include "nm-dnsmasq-manager.h"
+
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
@@ -28,21 +30,21 @@
#include <arpa/inet.h>
#include <stdlib.h>
-#include "nm-dnsmasq-manager.h"
#include "nm-dnsmasq-utils.h"
#include "nm-utils.h"
#include "NetworkManagerUtils.h"
#include "nm-core-internal.h"
-#define _NMLOG_DOMAIN LOGD_SHARING
-#define _NMLOG_PREFIX_NAME "dnsmasq-manager"
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), _NMLOG_DOMAIN, \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
+#define CONFDIR NMCONFDIR "/dnsmasq-shared.d"
+
+/*****************************************************************************/
+
+enum {
+ STATE_CHANGED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
char *iface;
@@ -51,19 +53,32 @@ typedef struct {
guint dm_watch_id;
} NMDnsMasqManagerPrivate;
-#define NM_DNSMASQ_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNSMASQ_MANAGER, NMDnsMasqManagerPrivate))
+struct _NMDnsMasqManager {
+ GObject parent;
+ NMDnsMasqManagerPrivate _priv;
+};
-#define CONFDIR NMCONFDIR "/dnsmasq-shared.d"
+struct _NMDnsMasqManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMDnsMasqManager, nm_dnsmasq_manager, G_TYPE_OBJECT)
-enum {
- STATE_CHANGED,
+#define NM_DNSMASQ_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDnsMasqManager, NM_IS_DNSMASQ_MANAGER)
- LAST_SIGNAL
-};
+/*****************************************************************************/
-static guint signals[LAST_SIGNAL] = { 0 };
+#define _NMLOG_DOMAIN LOGD_SHARING
+#define _NMLOG_PREFIX_NAME "dnsmasq-manager"
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), _NMLOG_DOMAIN, \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
typedef struct {
GPtrArray *array;
@@ -334,6 +349,13 @@ nm_dnsmasq_manager_stop (NMDnsMasqManager *manager)
unlink (priv->pidfile);
}
+/*****************************************************************************/
+
+static void
+nm_dnsmasq_manager_init (NMDnsMasqManager *manager)
+{
+}
+
NMDnsMasqManager *
nm_dnsmasq_manager_new (const char *iface)
{
@@ -350,14 +372,9 @@ nm_dnsmasq_manager_new (const char *iface)
}
static void
-nm_dnsmasq_manager_init (NMDnsMasqManager *manager)
-{
-}
-
-static void
finalize (GObject *object)
{
- NMDnsMasqManagerPrivate *priv = NM_DNSMASQ_MANAGER_GET_PRIVATE (object);
+ NMDnsMasqManagerPrivate *priv = NM_DNSMASQ_MANAGER_GET_PRIVATE ((NMDnsMasqManager *) object);
nm_dnsmasq_manager_stop (NM_DNSMASQ_MANAGER (object));
@@ -372,11 +389,8 @@ nm_dnsmasq_manager_class_init (NMDnsMasqManagerClass *manager_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (manager_class);
- g_type_class_add_private (manager_class, sizeof (NMDnsMasqManagerPrivate));
-
object_class->finalize = finalize;
- /* signals */
signals[STATE_CHANGED] =
g_signal_new (NM_DNS_MASQ_MANAGER_STATE_CHANGED,
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.h b/src/dnsmasq-manager/nm-dnsmasq-manager.h
index b610b4987b..a0ad295cd4 100644
--- a/src/dnsmasq-manager/nm-dnsmasq-manager.h
+++ b/src/dnsmasq-manager/nm-dnsmasq-manager.h
@@ -35,18 +35,12 @@
typedef enum {
NM_DNSMASQ_STATUS_UNKNOWN,
-
NM_DNSMASQ_STATUS_DEAD,
NM_DNSMASQ_STATUS_RUNNING,
} NMDnsMasqStatus;
-typedef struct {
- GObject parent;
-} NMDnsMasqManager;
-
-typedef struct {
- GObjectClass parent;
-} NMDnsMasqManagerClass;
+typedef struct _NMDnsMasqManager NMDnsMasqManager;
+typedef struct _NMDnsMasqManagerClass NMDnsMasqManagerClass;
GType nm_dnsmasq_manager_get_type (void);
diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c
index 1ecf2f9a91..1eba44959f 100644
--- a/src/nm-active-connection.c
+++ b/src/nm-active-connection.c
@@ -1170,7 +1170,6 @@ nm_active_connection_class_init (NMActiveConnectionClass *ac_class)
exported_object_class->export_path = NM_DBUS_PATH "/ActiveConnection/%u";
- /* virtual methods */
object_class->get_property = get_property;
object_class->set_property = set_property;
object_class->constructed = constructed;
diff --git a/src/nm-audit-manager.c b/src/nm-audit-manager.c
index 9e88409624..384a5c3fb5 100644
--- a/src/nm-audit-manager.c
+++ b/src/nm-audit-manager.c
@@ -32,44 +32,63 @@
#include "nm-config.h"
#include "nm-settings-connection.h"
-#define AUDIT_LOG_LEVEL LOGL_INFO
-
-#define _NMLOG_PREFIX_NAME "audit"
-#define _NMLOG(level, domain, ...) \
- G_STMT_START { \
- nm_log ((level), (domain), \
- "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
- } G_STMT_END
+/*****************************************************************************/
typedef enum {
- BACKEND_LOG = (1 << 0),
- BACKEND_AUDITD = (1 << 1),
- _BACKEND_LAST,
- BACKEND_ALL = ((_BACKEND_LAST - 1) << 1) - 1,
+ BACKEND_LOG = (1 << 0),
+ BACKEND_AUDITD = (1 << 1),
+ _BACKEND_LAST,
+ BACKEND_ALL = ((_BACKEND_LAST - 1) << 1) - 1,
} AuditBackend;
typedef struct {
- const char *name;
- GValue value;
- gboolean need_encoding;
- AuditBackend backends;
+ const char *name;
+ GValue value;
+ gboolean need_encoding;
+ AuditBackend backends;
} AuditField;
-#if HAVE_LIBAUDIT
+/*****************************************************************************/
+
typedef struct {
NMConfig *config;
int auditd_fd;
} NMAuditManagerPrivate;
-#define NM_AUDIT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_AUDIT_MANAGER, NMAuditManagerPrivate))
+struct _NMAuditManager {
+ GObject parent;
+#if HAVE_LIBAUDIT
+ NMAuditManagerPrivate _priv;
#endif
+};
+
+struct _NMAuditManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMAuditManager, nm_audit_manager, G_TYPE_OBJECT)
+#define NM_AUDIT_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAuditManager, NM_IS_AUDIT_MANAGER)
+
+/*****************************************************************************/
+
+#define AUDIT_LOG_LEVEL LOGL_INFO
+
+#define _NMLOG_PREFIX_NAME "audit"
+#define _NMLOG(level, domain, ...) \
+ G_STMT_START { \
+ nm_log ((level), (domain), \
+ "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
+
NM_DEFINE_SINGLETON_GETTER (NMAuditManager, nm_audit_manager_get, NM_TYPE_AUDIT_MANAGER);
+/*****************************************************************************/
+
static void
_audit_field_init_string (AuditField *field, const char *name, const char *str,
gboolean need_encoding, AuditBackend backends)
@@ -346,6 +365,8 @@ config_changed_cb (NMConfig *config,
}
#endif
+/*****************************************************************************/
+
static void
nm_audit_manager_init (NMAuditManager *self)
{
@@ -389,11 +410,5 @@ nm_audit_manager_class_init (NMAuditManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
-#if HAVE_LIBAUDIT
- g_type_class_add_private (klass, sizeof (NMAuditManagerPrivate));
-#endif
-
- /* virtual methods */
object_class->dispose = dispose;
}
-
diff --git a/src/nm-audit-manager.h b/src/nm-audit-manager.h
index af8a2037c7..d157ff122a 100644
--- a/src/nm-audit-manager.h
+++ b/src/nm-audit-manager.h
@@ -32,13 +32,7 @@
#define NM_IS_AUDIT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AUDIT_MANAGER))
#define NM_AUDIT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AUDIT_MANAGER, NMAuditManagerClass))
-struct _NMAuditManager {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMAuditManagerClass;
+typedef struct _NMAuditManagerClass NMAuditManagerClass;
#define NM_AUDIT_OP_CONN_ADD "connection-add"
#define NM_AUDIT_OP_CONN_DELETE "connection-delete"
diff --git a/src/nm-auth-manager.c b/src/nm-auth-manager.c
index 531e2c354b..73063b9b92 100644
--- a/src/nm-auth-manager.c
+++ b/src/nm-auth-manager.c
@@ -30,32 +30,14 @@
#define POLKIT_OBJECT_PATH "/org/freedesktop/PolicyKit1/Authority"
#define POLKIT_INTERFACE "org.freedesktop.PolicyKit1.Authority"
+/*****************************************************************************/
-#define _NMLOG_PREFIX_NAME "auth"
-#define _NMLOG_DOMAIN LOGD_CORE
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \
- char __prefix[30] = _NMLOG_PREFIX_NAME; \
- \
- if ((self) != singleton_instance) \
- g_snprintf (__prefix, sizeof (__prefix), ""_NMLOG_PREFIX_NAME"[%p]", (self)); \
- _nm_log ((level), (_NMLOG_DOMAIN), 0, \
- "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } \
- } G_STMT_END
-
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_POLKIT_ENABLED,
-
- LAST_PROP
-};
+);
enum {
CHANGED_SIGNAL,
-
LAST_SIGNAL,
};
@@ -71,11 +53,37 @@ typedef struct {
#endif
} NMAuthManagerPrivate;
-NM_DEFINE_SINGLETON_REGISTER (NMAuthManager);
+struct _NMAuthManager {
+ GObject parent;
+ NMAuthManagerPrivate _priv;
+};
+
+struct _NMAuthManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMAuthManager, nm_auth_manager, G_TYPE_OBJECT)
-#define NM_AUTH_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_AUTH_MANAGER, NMAuthManagerPrivate))
+#define NM_AUTH_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAuthManager, NM_IS_AUTH_MANAGER)
+
+NM_DEFINE_SINGLETON_REGISTER (NMAuthManager);
+
+/*****************************************************************************/
+
+#define _NMLOG_PREFIX_NAME "auth"
+#define _NMLOG_DOMAIN LOGD_CORE
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \
+ char __prefix[30] = _NMLOG_PREFIX_NAME; \
+ \
+ if ((self) != singleton_instance) \
+ g_snprintf (__prefix, sizeof (__prefix), ""_NMLOG_PREFIX_NAME"[%p]", (self)); \
+ _nm_log ((level), (_NMLOG_DOMAIN), 0, \
+ "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } \
+ } G_STMT_END
/*****************************************************************************/
@@ -477,32 +485,12 @@ nm_auth_manager_get ()
return singleton_instance;
}
-NMAuthManager *
-nm_auth_manager_setup (gboolean polkit_enabled)
-{
- NMAuthManager *self;
-
- g_return_val_if_fail (!singleton_instance, singleton_instance);
-
- self = g_object_new (NM_TYPE_AUTH_MANAGER,
- NM_AUTH_MANAGER_POLKIT_ENABLED, polkit_enabled,
- NULL);
- _LOGD ("set instance");
-
- singleton_instance = self;
- nm_singleton_instance_register ();
-
- nm_log_dbg (LOGD_CORE, "setup %s singleton (%p)", "NMAuthManager", singleton_instance);
-
- return self;
-}
-
/*****************************************************************************/
static void
get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
- NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE (object);
+ NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE ((NMAuthManager *) object);
switch (prop_id) {
case PROP_POLKIT_ENABLED:
@@ -517,7 +505,7 @@ get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
static void
set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
- NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE (object);
+ NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE ((NMAuthManager *) object);
switch (prop_id) {
case PROP_POLKIT_ENABLED:
@@ -530,6 +518,8 @@ set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *p
}
}
+/*****************************************************************************/
+
static void
nm_auth_manager_init (NMAuthManager *self)
{
@@ -571,6 +561,25 @@ constructed (GObject *object)
#endif
}
+NMAuthManager *
+nm_auth_manager_setup (gboolean polkit_enabled)
+{
+ NMAuthManager *self;
+
+ g_return_val_if_fail (!singleton_instance, singleton_instance);
+
+ self = g_object_new (NM_TYPE_AUTH_MANAGER,
+ NM_AUTH_MANAGER_POLKIT_ENABLED, polkit_enabled,
+ NULL);
+ _LOGD ("set instance");
+
+ singleton_instance = self;
+ nm_singleton_instance_register ();
+
+ nm_log_dbg (LOGD_CORE, "setup %s singleton (%p)", "NMAuthManager", singleton_instance);
+
+ return self;
+}
static void
dispose (GObject *object)
@@ -605,20 +614,19 @@ nm_auth_manager_class_init (NMAuthManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMAuthManagerPrivate));
-
object_class->get_property = get_property;
object_class->set_property = set_property;
object_class->constructed = constructed;
object_class->dispose = dispose;
- g_object_class_install_property
- (object_class, PROP_POLKIT_ENABLED,
+ obj_properties[PROP_POLKIT_ENABLED] =
g_param_spec_boolean (NM_AUTH_MANAGER_POLKIT_ENABLED, "", "",
FALSE,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[CHANGED_SIGNAL] = g_signal_new (NM_AUTH_MANAGER_SIGNAL_CHANGED,
NM_TYPE_AUTH_MANAGER,
@@ -629,6 +637,5 @@ nm_auth_manager_class_init (NMAuthManagerClass *klass)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE,
0);
-
}
diff --git a/src/nm-auth-manager.h b/src/nm-auth-manager.h
index 9251b3347c..e66ef78c1b 100644
--- a/src/nm-auth-manager.h
+++ b/src/nm-auth-manager.h
@@ -30,18 +30,12 @@
#define NM_IS_AUTH_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AUTH_MANAGER))
#define NM_AUTH_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AUTH_MANAGER, NMAuthManagerClass))
-
#define NM_AUTH_MANAGER_POLKIT_ENABLED "polkit-enabled"
#define NM_AUTH_MANAGER_SIGNAL_CHANGED "changed"
-typedef struct {
- GObject parent;
-} NMAuthManager;
-
-typedef struct {
- GObjectClass parent;
-} NMAuthManagerClass;
+typedef struct _NMAuthManager NMAuthManager;
+typedef struct _NMAuthManagerClass NMAuthManagerClass;
GType nm_auth_manager_get_type (void);
@@ -68,4 +62,3 @@ gboolean nm_auth_manager_polkit_authority_check_authorization_finish (NMAuthMana
#endif
#endif /* NM_AUTH_MANAGER_H */
-
diff --git a/src/nm-bus-manager.c b/src/nm-bus-manager.c
index 0c1ad69e3b..94f4a6fa59 100644
--- a/src/nm-bus-manager.c
+++ b/src/nm-bus-manager.c
@@ -21,6 +21,8 @@
#include "nm-default.h"
+#include "nm-bus-manager.h"
+
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -28,39 +30,29 @@
#include <string.h>
#include "nm-dbus-interface.h"
-#include "nm-bus-manager.h"
#include "nm-core-internal.h"
#include "nm-dbus-compat.h"
#include "nm-exported-object.h"
#include "NetworkManagerUtils.h"
-#define _NMLOG_DOMAIN LOGD_CORE
-#define _NMLOG_PREFIX_NAME "bus-manager"
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), _NMLOG_DOMAIN, \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
+/* The base path for our GDBusObjectManagerServers. They do not contain
+ * "NetworkManager" because GDBusObjectManagerServer requires that all
+ * exported objects be *below* the base path, and eg the Manager object
+ * is the base path already.
+ */
+#define OBJECT_MANAGER_SERVER_BASE_PATH "/org/freedesktop"
+
+/*****************************************************************************/
enum {
DBUS_CONNECTION_CHANGED = 0,
PRIVATE_CONNECTION_NEW,
PRIVATE_CONNECTION_DISCONNECTED,
- NUMBER_OF_SIGNALS
+ NUMBER_OF_SIGNALS,
};
static guint signals[NUMBER_OF_SIGNALS];
-G_DEFINE_TYPE(NMBusManager, nm_bus_manager, G_TYPE_OBJECT)
-
-#define NM_BUS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
- NM_TYPE_BUS_MANAGER, \
- NMBusManagerPrivate))
-
-typedef struct _PrivateServer PrivateServer;
-
typedef struct {
GDBusConnection *connection;
GDBusObjectManagerServer *obj_manager;
@@ -74,16 +66,38 @@ typedef struct {
guint reconnect_id;
} NMBusManagerPrivate;
+struct _NMBusManager {
+ GObject parent;
+ NMBusManagerPrivate _priv;
+};
+
+struct _NMBusManagerClass {
+ GObjectClass parent;
+};
+
+G_DEFINE_TYPE(NMBusManager, nm_bus_manager, G_TYPE_OBJECT)
+
+#define NM_BUS_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBusManager, NM_IS_BUS_MANAGER)
+
+/*****************************************************************************/
+
+#define _NMLOG_DOMAIN LOGD_CORE
+#define _NMLOG_PREFIX_NAME "bus-manager"
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), _NMLOG_DOMAIN, \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
+
static gboolean nm_bus_manager_init_bus (NMBusManager *self);
static void nm_bus_manager_cleanup (NMBusManager *self);
static void start_reconnection_timeout (NMBusManager *self);
-/* The base path for our GDBusObjectManagerServers. They do not contain
- * "NetworkManager" because GDBusObjectManagerServer requires that all
- * exported objects be *below* the base path, and eg the Manager object
- * is the base path already.
- */
-#define OBJECT_MANAGER_SERVER_BASE_PATH "/org/freedesktop"
+/*****************************************************************************/
NM_DEFINE_SINGLETON_REGISTER (NMBusManager);
@@ -115,7 +129,7 @@ nm_bus_manager_setup (NMBusManager *instance)
/*****************************************************************************/
-struct _PrivateServer {
+typedef struct {
const char *tag;
GQuark detail;
char *address;
@@ -133,7 +147,7 @@ struct _PrivateServer {
GHashTable *obj_managers;
NMBusManager *manager;
-};
+} PrivateServer;
typedef struct {
GDBusConnection *connection;
@@ -618,81 +632,6 @@ nm_bus_manager_get_unix_user (NMBusManager *self,
/*****************************************************************************/
-static void
-nm_bus_manager_init (NMBusManager *self)
-{
- NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self);
-
- priv->obj_manager = g_dbus_object_manager_server_new (OBJECT_MANAGER_SERVER_BASE_PATH);
-}
-
-static void
-nm_bus_manager_dispose (GObject *object)
-{
- NMBusManager *self = NM_BUS_MANAGER (object);
- NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self);
- GList *exported, *iter;
-
- g_slist_free_full (priv->private_servers, private_server_free);
- priv->private_servers = NULL;
-
- nm_bus_manager_cleanup (self);
-
- if (priv->obj_manager) {
- /* The ObjectManager owns the last reference to many exported
- * objects, and when that reference is dropped the objects unregister
- * themselves via nm_bus_manager_unregister_object(). By that time
- * priv->obj_manager is already NULL and that prints warnings. Unregister
- * them before clearing the ObjectManager instead.
- */
- exported = g_dbus_object_manager_get_objects ((GDBusObjectManager *) priv->obj_manager);
- for (iter = exported; iter; iter = iter->next) {
- nm_bus_manager_unregister_object (self, iter->data);
- g_object_unref (iter->data);
- }
- g_list_free (exported);
- g_clear_object (&priv->obj_manager);
- }
-
- nm_clear_g_source (&priv->reconnect_id);
-
- G_OBJECT_CLASS (nm_bus_manager_parent_class)->dispose (object);
-}
-
-static void
-nm_bus_manager_class_init (NMBusManagerClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (klass, sizeof (NMBusManagerPrivate));
-
- object_class->dispose = nm_bus_manager_dispose;
-
- signals[DBUS_CONNECTION_CHANGED] =
- g_signal_new (NM_BUS_MANAGER_DBUS_CONNECTION_CHANGED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMBusManagerClass, dbus_connection_changed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
-
- signals[PRIVATE_CONNECTION_NEW] =
- g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
- 0, NULL, NULL, NULL,
- G_TYPE_NONE, 2, G_TYPE_DBUS_CONNECTION, G_TYPE_DBUS_OBJECT_MANAGER_SERVER);
-
- signals[PRIVATE_CONNECTION_DISCONNECTED] =
- g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_DISCONNECTED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
- G_STRUCT_OFFSET (NMBusManagerClass, private_connection_disconnected),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
-}
-
-
/* Only cleanup a specific dbus connection, not all our private data */
static void
nm_bus_manager_cleanup (NMBusManager *self)
@@ -1005,3 +944,78 @@ nm_bus_manager_new_proxy (NMBusManager *self,
}
return proxy;
}
+
+/*****************************************************************************/
+
+static void
+nm_bus_manager_init (NMBusManager *self)
+{
+ NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self);
+
+ priv->obj_manager = g_dbus_object_manager_server_new (OBJECT_MANAGER_SERVER_BASE_PATH);
+}
+
+static void
+dispose (GObject *object)
+{
+ NMBusManager *self = NM_BUS_MANAGER (object);
+ NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self);
+ GList *exported, *iter;
+
+ g_slist_free_full (priv->private_servers, private_server_free);
+ priv->private_servers = NULL;
+
+ nm_bus_manager_cleanup (self);
+
+ if (priv->obj_manager) {
+ /* The ObjectManager owns the last reference to many exported
+ * objects, and when that reference is dropped the objects unregister
+ * themselves via nm_bus_manager_unregister_object(). By that time
+ * priv->obj_manager is already NULL and that prints warnings. Unregister
+ * them before clearing the ObjectManager instead.
+ */
+ exported = g_dbus_object_manager_get_objects ((GDBusObjectManager *) priv->obj_manager);
+ for (iter = exported; iter; iter = iter->next) {
+ nm_bus_manager_unregister_object (self, iter->data);
+ g_object_unref (iter->data);
+ }
+ g_list_free (exported);
+ g_clear_object (&priv->obj_manager);
+ }
+
+ nm_clear_g_source (&priv->reconnect_id);
+
+ G_OBJECT_CLASS (nm_bus_manager_parent_class)->dispose (object);
+}
+
+static void
+nm_bus_manager_class_init (NMBusManagerClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = dispose;
+
+ signals[DBUS_CONNECTION_CHANGED] =
+ g_signal_new (NM_BUS_MANAGER_DBUS_CONNECTION_CHANGED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+
+ signals[PRIVATE_CONNECTION_NEW] =
+ g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 2, G_TYPE_DBUS_CONNECTION, G_TYPE_DBUS_OBJECT_MANAGER_SERVER);
+
+ signals[PRIVATE_CONNECTION_DISCONNECTED] =
+ g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_DISCONNECTED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+}
+
+
+
diff --git a/src/nm-bus-manager.h b/src/nm-bus-manager.h
index bc23d2ce38..153f7cdce2 100644
--- a/src/nm-bus-manager.h
+++ b/src/nm-bus-manager.h
@@ -33,23 +33,7 @@
#define NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW "private-connection-new"
#define NM_BUS_MANAGER_PRIVATE_CONNECTION_DISCONNECTED "private-connection-disconnected"
-struct _NMBusManager {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-
- /* Signals */
- void (*dbus_connection_changed) (NMBusManager *mgr,
- GDBusConnection *connection);
-
- void (*private_connection_new) (NMBusManager *mgr,
- GDBusConnection *connection);
-
- void (*private_connection_disconnected) (NMBusManager *mgr,
- GDBusConnection *connection);
-} NMBusManagerClass;
+typedef struct _NMBusManagerClass NMBusManagerClass;
GType nm_bus_manager_get_type (void);
diff --git a/src/nm-checkpoint-manager.c b/src/nm-checkpoint-manager.c
index 49e8b89595..41b5670bd7 100644
--- a/src/nm-checkpoint-manager.c
+++ b/src/nm-checkpoint-manager.c
@@ -302,4 +302,3 @@ nm_checkpoint_manager_unref (NMCheckpointManager *self)
g_slice_free (NMCheckpointManager, self);
}
-
diff --git a/src/nm-checkpoint-manager.h b/src/nm-checkpoint-manager.h
index 022b1a80e7..30e490417e 100644
--- a/src/nm-checkpoint-manager.h
+++ b/src/nm-checkpoint-manager.h
@@ -22,6 +22,7 @@
#define __NM_CHECKPOINT_MANAGER_H__
#include "nm-dbus-interface.h"
+
#include "nm-checkpoint.h"
typedef struct _NMCheckpointManager NMCheckpointManager;
@@ -47,4 +48,3 @@ gboolean nm_checkpoint_manager_rollback (NMCheckpointManager *self,
GError **error);
#endif /* __NM_CHECKPOINT_MANAGER_H__ */
-
diff --git a/src/nm-checkpoint.c b/src/nm-checkpoint.c
index 8869204d72..1ee8026842 100644
--- a/src/nm-checkpoint.c
+++ b/src/nm-checkpoint.c
@@ -19,6 +19,7 @@
*/
#include "nm-default.h"
+
#include "nm-checkpoint.h"
#include <string.h>
@@ -34,23 +35,7 @@
#include "nm-utils.h"
#include "nmdbus-checkpoint.h"
-#define _NMLOG_PREFIX_NAME "checkpoint"
-#define _NMLOG_DOMAIN LOGD_CORE
-
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- if (nm_logging_enabled (level, _NMLOG_DOMAIN)) { \
- char __prefix[32]; \
- \
- if (self) \
- g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \
- else \
- g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \
- _nm_log ((level), (_NMLOG_DOMAIN), 0, \
- "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } \
- } G_STMT_END
+/*****************************************************************************/
typedef struct {
char *original_dev_path;
@@ -62,6 +47,12 @@ typedef struct {
bool unmanaged_explicit:1;
} DeviceCheckpoint;
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_DEVICES,
+ PROP_CREATED,
+ PROP_ROLLBACK_TIMEOUT,
+);
+
typedef struct {
/* properties */
GHashTable *devices;
@@ -77,19 +68,35 @@ struct _NMCheckpoint {
NMCheckpointPrivate _priv;
};
-typedef struct {
+struct _NMCheckpointClass {
NMExportedObjectClass parent;
-} NMCheckpointClass;
+};
G_DEFINE_TYPE (NMCheckpoint, nm_checkpoint, NM_TYPE_EXPORTED_OBJECT)
-#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMCheckpoint, NM_IS_CHECKPOINT)
+#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT)
-NM_GOBJECT_PROPERTIES_DEFINE_BASE (
- PROP_DEVICES,
- PROP_CREATED,
- PROP_ROLLBACK_TIMEOUT,
-);
+/*****************************************************************************/
+
+#define _NMLOG_PREFIX_NAME "checkpoint"
+#define _NMLOG_DOMAIN LOGD_CORE
+
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ if (nm_logging_enabled (level, _NMLOG_DOMAIN)) { \
+ char __prefix[32]; \
+ \
+ if (self) \
+ g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \
+ else \
+ g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \
+ _nm_log ((level), (_NMLOG_DOMAIN), 0, \
+ "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } \
+ } G_STMT_END
+
+/*****************************************************************************/
guint64
nm_checkpoint_get_rollback_ts (NMCheckpoint *self)
@@ -289,6 +296,39 @@ device_checkpoint_destroy (gpointer data)
g_slice_free (DeviceCheckpoint, dev_checkpoint);
}
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMCheckpoint *self = NM_CHECKPOINT (object);
+ NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (self);
+ gs_free_slist GSList *devices = NULL;
+ GHashTableIter iter;
+ NMDevice *device;
+
+ switch (prop_id) {
+ case PROP_DEVICES:
+ g_hash_table_iter_init (&iter, priv->devices);
+ while (g_hash_table_iter_next (&iter, (gpointer *) &device, NULL))
+ devices = g_slist_append (devices, device);
+ nm_utils_g_value_set_object_path_array (value, devices, NULL, NULL);
+ break;
+ case PROP_CREATED:
+ g_value_set_int64 (value, priv->created);
+ break;
+ case PROP_ROLLBACK_TIMEOUT:
+ g_value_set_uint (value, priv->rollback_timeout);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static void
nm_checkpoint_init (NMCheckpoint *self)
{
@@ -356,50 +396,17 @@ dispose (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMCheckpoint *self = NM_CHECKPOINT (object);
- NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (self);
- gs_free_slist GSList *devices = NULL;
- GHashTableIter iter;
- NMDevice *device;
-
- switch (prop_id) {
- case PROP_DEVICES:
- g_hash_table_iter_init (&iter, priv->devices);
- while (g_hash_table_iter_next (&iter, (gpointer *) &device, NULL))
- devices = g_slist_append (devices, device);
- nm_utils_g_value_set_object_path_array (value, devices, NULL, NULL);
- break;
- case PROP_CREATED:
- g_value_set_int64 (value, priv->created);
- break;
- case PROP_ROLLBACK_TIMEOUT:
- g_value_set_uint (value, priv->rollback_timeout);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (checkpoint_class);
NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (checkpoint_class);
- g_type_class_add_private (checkpoint_class, sizeof (NMCheckpointPrivate));
-
exported_object_class->export_path = NM_DBUS_PATH "/Checkpoint/%u";
exported_object_class->export_on_construction = FALSE;
- /* virtual methods */
object_class->dispose = dispose;
object_class->get_property = get_property;
- /* properties */
obj_properties[PROP_DEVICES] =
g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "",
G_TYPE_STRV,
diff --git a/src/nm-checkpoint.h b/src/nm-checkpoint.h
index c7d2d42f35..815ae7be10 100644
--- a/src/nm-checkpoint.h
+++ b/src/nm-checkpoint.h
@@ -31,12 +31,13 @@
#define NM_IS_CHECKPOINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CHECKPOINT))
#define NM_CHECKPOINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CHECKPOINT, NMCheckpointClass))
-typedef struct _NMCheckpoint NMCheckpoint;
-
#define NM_CHECKPOINT_DEVICES "devices"
#define NM_CHECKPOINT_CREATED "created"
#define NM_CHECKPOINT_ROLLBACK_TIMEOUT "rollback-timeout"
+typedef struct _NMCheckpoint NMCheckpoint;
+typedef struct _NMCheckpointClass NMCheckpointClass;
+
GType nm_checkpoint_get_type (void);
NMCheckpoint *nm_checkpoint_new (NMManager *manager, GPtrArray *devices, guint32 rollback_timeout,
diff --git a/src/nm-config-data.c b/src/nm-config-data.c
index 3b021feab5..6f83e66566 100644
--- a/src/nm-config-data.c
+++ b/src/nm-config-data.c
@@ -30,6 +30,8 @@
#include "nm-core-internal.h"
#include "nm-keyfile-internal.h"
+/*****************************************************************************/
+
typedef struct {
char *group_name;
gboolean stop_match;
@@ -42,6 +44,33 @@ typedef struct {
} match_device;
} MatchSectionInfo;
+struct _NMGlobalDnsDomain {
+ char *name;
+ char **servers;
+ char **options;
+};
+
+struct _NMGlobalDnsConfig {
+ char **searches;
+ char **options;
+ GHashTable *domains;
+ char **domain_list;
+ gboolean internal;
+};
+
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_CONFIG_MAIN_FILE,
+ PROP_CONFIG_DESCRIPTION,
+ PROP_KEYFILE_USER,
+ PROP_KEYFILE_INTERN,
+ PROP_CONNECTIVITY_URI,
+ PROP_CONNECTIVITY_INTERVAL,
+ PROP_CONNECTIVITY_RESPONSE,
+ PROP_NO_AUTO_DEFAULT,
+);
+
typedef struct {
char *config_main_file;
char *config_description;
@@ -82,38 +111,18 @@ typedef struct {
char *value_cached;
} NMConfigDataPrivate;
-struct _NMGlobalDnsDomain {
- char *name;
- char **servers;
- char **options;
-};
-
-struct _NMGlobalDnsConfig {
- char **searches;
- char **options;
- GHashTable *domains;
- char **domain_list;
- gboolean internal;
+struct _NMConfigData {
+ GObject parent;
+ NMConfigDataPrivate _priv;
};
-enum {
- PROP_0,
- PROP_CONFIG_MAIN_FILE,
- PROP_CONFIG_DESCRIPTION,
- PROP_KEYFILE_USER,
- PROP_KEYFILE_INTERN,
- PROP_CONNECTIVITY_URI,
- PROP_CONNECTIVITY_INTERVAL,
- PROP_CONNECTIVITY_RESPONSE,
- PROP_NO_AUTO_DEFAULT,
-
- LAST_PROP
+struct _NMConfigDataClass {
+ GObjectClass parent;
};
-
G_DEFINE_TYPE (NMConfigData, nm_config_data, G_TYPE_OBJECT)
-#define NM_CONFIG_DATA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CONFIG_DATA, NMConfigDataPrivate))
+#define NM_CONFIG_DATA_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMConfigData, NM_IS_CONFIG_DATA)
/*****************************************************************************/
@@ -162,7 +171,7 @@ nm_config_data_get_value (const NMConfigData *self, const char *group, const cha
const char *nm_config_data_get_value_cached (const NMConfigData *self, const char *group, const char *key, NMConfigGetValueFlags flags)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
g_return_val_if_fail (NM_IS_CONFIG_DATA (self), NULL);
g_return_val_if_fail (group && *group, NULL);
@@ -171,8 +180,8 @@ const char *nm_config_data_get_value_cached (const NMConfigData *self, const cha
priv = NM_CONFIG_DATA_GET_PRIVATE (self);
/* we modify @value_cached. In C++ jargon, the field is mutable. */
- g_free (priv->value_cached);
- priv->value_cached = nm_config_keyfile_get_value (priv->keyfile, group, key, flags);
+ g_free (((NMConfigDataPrivate *) priv)->value_cached);
+ ((NMConfigDataPrivate *) priv)->value_cached = nm_config_keyfile_get_value (priv->keyfile, group, key, flags);
return priv->value_cached;
}
@@ -243,7 +252,7 @@ nm_config_data_get_no_auto_default (const NMConfigData *self)
gboolean
nm_config_data_get_no_auto_default_for_device (const NMConfigData *self, NMDevice *device)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE);
g_return_val_if_fail (NM_IS_DEVICE (device), FALSE);
@@ -297,7 +306,7 @@ nm_config_data_get_assume_ipv6ll_only (const NMConfigData *self, NMDevice *devic
GKeyFile *
nm_config_data_clone_keyfile_intern (const NMConfigData *self)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
GKeyFile *keyfile;
g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE);
@@ -373,7 +382,7 @@ nm_config_data_get_keys (const NMConfigData *self, const char *group)
gboolean
nm_config_data_is_intern_atomic_group (const NMConfigData *self, const char *group)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE);
g_return_val_if_fail (group && *group, FALSE);
@@ -532,7 +541,7 @@ nm_config_data_log (const NMConfigData *self,
const char *key_prefix,
/* FILE* */ gpointer print_stream)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
gs_strfreev char **groups = NULL;
gsize ngroups;
guint g, k;
@@ -1127,7 +1136,7 @@ nm_config_data_get_device_config (const NMConfigData *self,
NMDevice *device,
gboolean *has_match)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
const MatchSectionInfo *connection_info;
char *value = NULL;
@@ -1166,7 +1175,7 @@ nm_config_data_get_connection_default (const NMConfigData *self,
const char *property,
NMDevice *device)
{
- NMConfigDataPrivate *priv;
+ const NMConfigDataPrivate *priv;
char *value = NULL;
g_return_val_if_fail (self, NULL);
@@ -1409,47 +1418,7 @@ set_property (GObject *object,
}
}
-static void
-dispose (GObject *object)
-{
-}
-
-static void
-finalize (GObject *gobject)
-{
- NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (gobject);
-
- g_free (priv->config_main_file);
- g_free (priv->config_description);
-
- g_free (priv->connectivity.uri);
- g_free (priv->connectivity.response);
-
- g_slist_free_full (priv->no_auto_default.specs, g_free);
- g_slist_free_full (priv->no_auto_default.specs_config, g_free);
- g_strfreev (priv->no_auto_default.arr);
-
- g_free (priv->dns_mode);
- g_free (priv->rc_manager);
-
- g_slist_free_full (priv->ignore_carrier, g_free);
- g_slist_free_full (priv->assume_ipv6ll_only, g_free);
-
- nm_global_dns_config_free (priv->global_dns);
-
- _match_section_infos_free (priv->connection_infos);
- _match_section_infos_free (priv->device_infos);
-
- g_key_file_unref (priv->keyfile);
- if (priv->keyfile_user)
- g_key_file_unref (priv->keyfile_user);
- if (priv->keyfile_intern)
- g_key_file_unref (priv->keyfile_intern);
-
- G_OBJECT_CLASS (nm_config_data_parent_class)->finalize (gobject);
-
- g_free (priv->value_cached);
-}
+/*****************************************************************************/
static void
nm_config_data_init (NMConfigData *self)
@@ -1513,7 +1482,7 @@ nm_config_data_new (const char *config_main_file,
NMConfigData *
nm_config_data_new_update_keyfile_intern (const NMConfigData *base, GKeyFile *keyfile_intern)
{
- NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base);
+ const NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base);
return g_object_new (NM_TYPE_CONFIG_DATA,
NM_CONFIG_DATA_CONFIG_MAIN_FILE, priv->config_main_file,
@@ -1528,7 +1497,7 @@ NMConfigData *
nm_config_data_new_update_no_auto_default (const NMConfigData *base,
const char *const*no_auto_default)
{
- NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base);
+ const NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base);
return g_object_new (NM_TYPE_CONFIG_DATA,
NM_CONFIG_DATA_CONFIG_MAIN_FILE, priv->config_main_file,
@@ -1540,78 +1509,104 @@ nm_config_data_new_update_no_auto_default (const NMConfigData *base,
}
static void
+finalize (GObject *gobject)
+{
+ NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE ((NMConfigData *) gobject);
+
+ g_free (priv->config_main_file);
+ g_free (priv->config_description);
+
+ g_free (priv->connectivity.uri);
+ g_free (priv->connectivity.response);
+
+ g_slist_free_full (priv->no_auto_default.specs, g_free);
+ g_slist_free_full (priv->no_auto_default.specs_config, g_free);
+ g_strfreev (priv->no_auto_default.arr);
+
+ g_free (priv->dns_mode);
+ g_free (priv->rc_manager);
+
+ g_slist_free_full (priv->ignore_carrier, g_free);
+ g_slist_free_full (priv->assume_ipv6ll_only, g_free);
+
+ nm_global_dns_config_free (priv->global_dns);
+
+ _match_section_infos_free (priv->connection_infos);
+ _match_section_infos_free (priv->device_infos);
+
+ g_key_file_unref (priv->keyfile);
+ if (priv->keyfile_user)
+ g_key_file_unref (priv->keyfile_user);
+ if (priv->keyfile_intern)
+ g_key_file_unref (priv->keyfile_intern);
+
+ G_OBJECT_CLASS (nm_config_data_parent_class)->finalize (gobject);
+
+ g_free (priv->value_cached);
+}
+
+static void
nm_config_data_class_init (NMConfigDataClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMConfigDataPrivate));
-
object_class->constructed = constructed;
- object_class->dispose = dispose;
object_class->finalize = finalize;
object_class->get_property = get_property;
object_class->set_property = set_property;
- g_object_class_install_property
- (object_class, PROP_CONFIG_MAIN_FILE,
+ obj_properties[PROP_CONFIG_MAIN_FILE] =
g_param_spec_string (NM_CONFIG_DATA_CONFIG_MAIN_FILE, "", "",
NULL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_CONFIG_DESCRIPTION,
+ obj_properties[PROP_CONFIG_DESCRIPTION] =
g_param_spec_string (NM_CONFIG_DATA_CONFIG_DESCRIPTION, "", "",
NULL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_KEYFILE_USER,
- g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_USER, "", "",
- G_TYPE_KEY_FILE,
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_KEYFILE_INTERN,
- g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_INTERN, "", "",
- G_TYPE_KEY_FILE,
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_URI,
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_KEYFILE_USER] =
+ g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_USER, "", "",
+ G_TYPE_KEY_FILE,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_KEYFILE_INTERN] =
+ g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_INTERN, "", "",
+ G_TYPE_KEY_FILE,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CONNECTIVITY_URI] =
g_param_spec_string (NM_CONFIG_DATA_CONNECTIVITY_URI, "", "",
NULL,
G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_INTERVAL,
+ obj_properties[PROP_CONNECTIVITY_INTERVAL] =
g_param_spec_uint (NM_CONFIG_DATA_CONNECTIVITY_INTERVAL, "", "",
0, G_MAXUINT, 0,
G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_RESPONSE,
+ obj_properties[PROP_CONNECTIVITY_RESPONSE] =
g_param_spec_string (NM_CONFIG_DATA_CONNECTIVITY_RESPONSE, "", "",
NULL,
G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_NO_AUTO_DEFAULT,
+ obj_properties[PROP_NO_AUTO_DEFAULT] =
g_param_spec_boxed (NM_CONFIG_DATA_NO_AUTO_DEFAULT, "", "",
G_TYPE_STRV,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
-
diff --git a/src/nm-config-data.h b/src/nm-config-data.h
index e63b45904e..712b32555d 100644
--- a/src/nm-config-data.h
+++ b/src/nm-config-data.h
@@ -28,7 +28,6 @@
#define NM_IS_CONFIG_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CONFIG_DATA))
#define NM_CONFIG_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CONFIG_DATA, NMConfigDataClass))
-
#define NM_CONFIG_DATA_CONFIG_MAIN_FILE "config-main-file"
#define NM_CONFIG_DATA_CONFIG_DESCRIPTION "config-description"
#define NM_CONFIG_DATA_KEYFILE_USER "keyfile-user"
@@ -128,13 +127,7 @@ typedef enum { /*< flags >*/
} NMConfigChangeFlags;
-struct _NMConfigData {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMConfigDataClass;
+typedef struct _NMConfigDataClass NMConfigDataClass;
typedef struct _NMGlobalDnsConfig NMGlobalDnsConfig;
typedef struct _NMGlobalDnsDomain NMGlobalDnsDomain;
diff --git a/src/nm-config.c b/src/nm-config.c
index e1066b9e0f..0ef7fc2090 100644
--- a/src/nm-config.c
+++ b/src/nm-config.c
@@ -43,17 +43,6 @@
/*****************************************************************************/
-#define _NMLOG_PREFIX_NAME "config"
-#define _NMLOG_DOMAIN LOGD_CORE
-
-#define _NMLOG(level, ...) \
- nm_log (level, _NMLOG_DOMAIN, \
- "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- _NMLOG_PREFIX_NAME \
- _NM_UTILS_MACRO_REST(__VA_ARGS__))
-
-/*****************************************************************************/
-
struct NMConfigCmdLineOptions {
char *config_main_file;
char *intern_config_file;
@@ -77,6 +66,20 @@ typedef struct {
NMConfigState p;
} State;
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_CMD_LINE_OPTIONS,
+ PROP_ATOMIC_SECTION_PREFIXES,
+);
+
+enum {
+ SIGNAL_CONFIG_CHANGED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
typedef struct {
NMConfigCmdLineOptions cli;
@@ -116,29 +119,33 @@ typedef struct {
State *state;
} NMConfigPrivate;
-enum {
- PROP_0,
- PROP_CMD_LINE_OPTIONS,
- PROP_ATOMIC_SECTION_PREFIXES,
- LAST_PROP,
+struct _NMConfig {
+ GObject parent;
+ NMConfigPrivate _priv;
};
-enum {
- SIGNAL_CONFIG_CHANGED,
-
- LAST_SIGNAL
+struct _NMConfigClass {
+ GObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
-
static void nm_config_initable_iface_init (GInitableIface *iface);
G_DEFINE_TYPE_WITH_CODE (NMConfig, nm_config, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_config_initable_iface_init);
)
+#define NM_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMConfig, NM_IS_CONFIG)
+
+/*****************************************************************************/
-#define NM_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CONFIG, NMConfigPrivate))
+#define _NMLOG_PREFIX_NAME "config"
+#define _NMLOG_DOMAIN LOGD_CORE
+
+#define _NMLOG(level, ...) \
+ nm_log (level, _NMLOG_DOMAIN, \
+ "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__))
/*****************************************************************************/
@@ -162,7 +169,7 @@ nm_config_parse_boolean (const char *str,
}
gint
-nm_config_keyfile_get_boolean (GKeyFile *keyfile,
+nm_config_keyfile_get_boolean (const GKeyFile *keyfile,
const char *section,
const char *key,
gint default_value)
@@ -173,12 +180,12 @@ nm_config_keyfile_get_boolean (GKeyFile *keyfile,
g_return_val_if_fail (section != NULL, default_value);
g_return_val_if_fail (key != NULL, default_value);
- str = g_key_file_get_value (keyfile, section, key, NULL);
+ str = g_key_file_get_value ((GKeyFile *) keyfile, section, key, NULL);
return nm_config_parse_boolean (str, default_value);
}
char *
-nm_config_keyfile_get_value (GKeyFile *keyfile,
+nm_config_keyfile_get_value (const GKeyFile *keyfile,
const char *section,
const char *key,
NMConfigGetValueFlags flags)
@@ -186,9 +193,9 @@ nm_config_keyfile_get_value (GKeyFile *keyfile,
char *value;
if (NM_FLAGS_HAS (flags, NM_CONFIG_GET_VALUE_RAW))
- value = g_key_file_get_value (keyfile, section, key, NULL);
+ value = g_key_file_get_value ((GKeyFile *) keyfile, section, key, NULL);
else
- value = g_key_file_get_string (keyfile, section, key, NULL);
+ value = g_key_file_get_string ((GKeyFile *) keyfile, section, key, NULL);
if (!value)
return NULL;
@@ -2208,6 +2215,37 @@ nm_config_setup (const NMConfigCmdLineOptions *cli, char **atomic_section_prefix
return singleton_instance;
}
+/*****************************************************************************/
+
+static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMConfig *self = NM_CONFIG (object);
+ NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (self);
+ NMConfigCmdLineOptions *cli;
+
+ switch (prop_id) {
+ case PROP_CMD_LINE_OPTIONS:
+ /* construct only */
+ cli = g_value_get_pointer (value);
+ if (!cli)
+ _nm_config_cmd_line_options_clear (&priv->cli);
+ else
+ _nm_config_cmd_line_options_copy (cli, &priv->cli);
+ break;
+ case PROP_ATOMIC_SECTION_PREFIXES:
+ /* construct only */
+ priv->atomic_section_prefixes = g_strdupv (g_value_get_boxed (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static gboolean
init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
{
@@ -2306,6 +2344,16 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
return TRUE;
}
+/*****************************************************************************/
+
+static void
+nm_config_init (NMConfig *config)
+{
+ NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (config);
+
+ priv->auth_polkit = NM_CONFIG_DEFAULT_AUTH_POLKIT;
+}
+
NMConfig *
nm_config_new (const NMConfigCmdLineOptions *cli, char **atomic_section_prefixes, GError **error)
{
@@ -2318,17 +2366,9 @@ nm_config_new (const NMConfigCmdLineOptions *cli, char **atomic_section_prefixes
}
static void
-nm_config_init (NMConfig *config)
-{
- NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (config);
-
- priv->auth_polkit = NM_CONFIG_DEFAULT_AUTH_POLKIT;
-}
-
-static void
finalize (GObject *gobject)
{
- NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (gobject);
+ NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE ((NMConfig *) gobject);
state_free (priv->state);
@@ -2352,55 +2392,27 @@ finalize (GObject *gobject)
}
static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMConfig *self = NM_CONFIG (object);
- NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (self);
- NMConfigCmdLineOptions *cli;
-
- switch (prop_id) {
- case PROP_CMD_LINE_OPTIONS:
- /* construct only */
- cli = g_value_get_pointer (value);
- if (!cli)
- _nm_config_cmd_line_options_clear (&priv->cli);
- else
- _nm_config_cmd_line_options_copy (cli, &priv->cli);
- break;
- case PROP_ATOMIC_SECTION_PREFIXES:
- /* construct only */
- priv->atomic_section_prefixes = g_strdupv (g_value_get_boxed (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_config_class_init (NMConfigClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMConfigPrivate));
object_class->finalize = finalize;
object_class->set_property = set_property;
- g_object_class_install_property
- (object_class, PROP_CMD_LINE_OPTIONS,
+ obj_properties[PROP_CMD_LINE_OPTIONS] =
g_param_spec_pointer (NM_CONFIG_CMD_LINE_OPTIONS, "", "",
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_ATOMIC_SECTION_PREFIXES,
+ obj_properties[PROP_ATOMIC_SECTION_PREFIXES] =
g_param_spec_boxed (NM_CONFIG_ATOMIC_SECTION_PREFIXES, "", "",
G_TYPE_STRV,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[SIGNAL_CONFIG_CHANGED] =
g_signal_new (NM_CONFIG_SIGNAL_CONFIG_CHANGED,
@@ -2426,4 +2438,3 @@ nm_config_initable_iface_init (GInitableIface *iface)
{
iface->init = init_sync;
}
-
diff --git a/src/nm-config.h b/src/nm-config.h
index 07deeadbf3..1b80e96da8 100644
--- a/src/nm-config.h
+++ b/src/nm-config.h
@@ -100,13 +100,7 @@ typedef struct {
bool dirty;
} NMConfigState;
-struct _NMConfig {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMConfigClass;
+typedef struct _NMConfigClass NMConfigClass;
GType nm_config_get_type (void);
@@ -160,11 +154,11 @@ void _nm_config_state_set (NMConfig *config,
gint nm_config_parse_boolean (const char *str, gint default_value);
GKeyFile *nm_config_create_keyfile (void);
-gint nm_config_keyfile_get_boolean (GKeyFile *keyfile,
+gint nm_config_keyfile_get_boolean (const GKeyFile *keyfile,
const char *section,
const char *key,
gint default_value);
-char *nm_config_keyfile_get_value (GKeyFile *keyfile,
+char *nm_config_keyfile_get_value (const GKeyFile *keyfile,
const char *section,
const char *key,
NMConfigGetValueFlags flags);
@@ -215,4 +209,3 @@ void nm_config_device_state_prune_unseen (NMConfig *self, GHashTable *seen_ifind
/*****************************************************************************/
#endif /* __NETWORKMANAGER_CONFIG_H__ */
-
diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c
index 4d87359ff2..5d87621013 100644
--- a/src/nm-connectivity.c
+++ b/src/nm-connectivity.c
@@ -21,28 +21,25 @@
#include "nm-default.h"
+#include "nm-connectivity.h"
+
#include <string.h>
#if WITH_CONCHECK
#include <libsoup/soup.h>
#endif
-#include "nm-connectivity.h"
#include "nm-config.h"
#include "nm-dispatcher.h"
#include "NetworkManagerUtils.h"
-G_DEFINE_TYPE (NMConnectivity, nm_connectivity, G_TYPE_OBJECT)
-
-#define NM_CONNECTIVITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CONNECTIVITY, NMConnectivityPrivate))
+/*****************************************************************************/
-#define _NMLOG_DOMAIN LOGD_CONCHECK
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), (_NMLOG_DOMAIN), \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- "connectivity: " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
+NM_GOBJECT_PROPERTIES_DEFINE (NMConnectivity,
+ PROP_URI,
+ PROP_INTERVAL,
+ PROP_RESPONSE,
+ PROP_STATE,
+);
typedef struct {
char *uri;
@@ -59,15 +56,31 @@ typedef struct {
NMConnectivityState state;
} NMConnectivityPrivate;
-enum {
- PROP_0,
- PROP_URI,
- PROP_INTERVAL,
- PROP_RESPONSE,
- PROP_STATE,
- LAST_PROP
+struct _NMConnectivity {
+ GObject parent;
+ NMConnectivityPrivate _priv;
};
+struct _NMConnectivityClass {
+ GObjectClass parent;
+};
+
+G_DEFINE_TYPE (NMConnectivity, nm_connectivity, G_TYPE_OBJECT)
+
+#define NM_CONNECTIVITY_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMConnectivity, NM_IS_CONNECTIVITY)
+
+/*****************************************************************************/
+
+#define _NMLOG_DOMAIN LOGD_CONCHECK
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), (_NMLOG_DOMAIN), \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ "connectivity: " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
NMConnectivityState
nm_connectivity_get_state (NMConnectivity *connectivity)
@@ -96,7 +109,7 @@ update_state (NMConnectivity *self, NMConnectivityState state)
nm_connectivity_state_to_string (priv->state),
nm_connectivity_state_to_string (state));
priv->state = state;
- g_object_notify (G_OBJECT (self), NM_CONNECTIVITY_STATE);
+ _notify (self, PROP_STATE);
/* Notify dispatcher scripts of a connectivity state change */
nm_dispatcher_call_connectivity (DISPATCHER_ACTION_CONNECTIVITY_CHANGE, state);
@@ -331,16 +344,33 @@ nm_connectivity_check_finish (NMConnectivity *self,
/*****************************************************************************/
-NMConnectivity *
-nm_connectivity_new (const char *uri,
- guint interval,
- const char *response)
+static void
+get_property (GObject *object, guint property_id,
+ GValue *value, GParamSpec *pspec)
{
- return g_object_new (NM_TYPE_CONNECTIVITY,
- NM_CONNECTIVITY_URI, uri,
- NM_CONNECTIVITY_INTERVAL, interval,
- NM_CONNECTIVITY_RESPONSE, response,
- NULL);
+ NMConnectivity *self = NM_CONNECTIVITY (object);
+ NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self);
+
+ switch (property_id) {
+ case PROP_URI:
+ g_value_set_string (value, priv->uri);
+ break;
+ case PROP_INTERVAL:
+ g_value_set_uint (value, priv->interval);
+ break;
+ case PROP_RESPONSE:
+ if (priv->response)
+ g_value_set_string (value, priv->response);
+ else
+ g_value_set_static_string (value, NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE);
+ break;
+ case PROP_STATE:
+ g_value_set_uint (value, priv->state);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
}
static void
@@ -403,35 +433,7 @@ set_property (GObject *object, guint property_id,
}
}
-static void
-get_property (GObject *object, guint property_id,
- GValue *value, GParamSpec *pspec)
-{
- NMConnectivity *self = NM_CONNECTIVITY (object);
- NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self);
-
- switch (property_id) {
- case PROP_URI:
- g_value_set_string (value, priv->uri);
- break;
- case PROP_INTERVAL:
- g_value_set_uint (value, priv->interval);
- break;
- case PROP_RESPONSE:
- if (priv->response)
- g_value_set_string (value, priv->response);
- else
- g_value_set_static_string (value, NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE);
- break;
- case PROP_STATE:
- g_value_set_uint (value, priv->state);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
+/*****************************************************************************/
static void
nm_connectivity_init (NMConnectivity *self)
@@ -444,6 +446,17 @@ nm_connectivity_init (NMConnectivity *self)
priv->state = NM_CONNECTIVITY_NONE;
}
+NMConnectivity *
+nm_connectivity_new (const char *uri,
+ guint interval,
+ const char *response)
+{
+ return g_object_new (NM_TYPE_CONNECTIVITY,
+ NM_CONNECTIVITY_URI, uri,
+ NM_CONNECTIVITY_INTERVAL, interval,
+ NM_CONNECTIVITY_RESPONSE, response,
+ NULL);
+}
static void
dispose (GObject *object)
@@ -466,48 +479,42 @@ dispose (GObject *object)
G_OBJECT_CLASS (nm_connectivity_parent_class)->dispose (object);
}
-
static void
nm_connectivity_class_init (NMConnectivityClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMConnectivityPrivate));
- /* virtual methods */
object_class->set_property = set_property;
object_class->get_property = get_property;
object_class->dispose = dispose;
- /* properties */
- g_object_class_install_property
- (object_class, PROP_URI,
+ obj_properties[PROP_URI] =
g_param_spec_string (NM_CONNECTIVITY_URI, "", "",
NULL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_INTERVAL,
+ obj_properties[PROP_INTERVAL] =
g_param_spec_uint (NM_CONNECTIVITY_INTERVAL, "", "",
0, G_MAXUINT, NM_CONFIG_DEFAULT_CONNECTIVITY_INTERVAL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_RESPONSE,
+ obj_properties[PROP_RESPONSE] =
g_param_spec_string (NM_CONNECTIVITY_RESPONSE, "", "",
NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
- g_object_class_install_property
- (object_class, PROP_STATE,
+ obj_properties[PROP_STATE] =
g_param_spec_uint (NM_CONNECTIVITY_STATE, "", "",
NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_UNKNOWN,
G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/src/nm-connectivity.h b/src/nm-connectivity.h
index 10fcef97af..6900bd0fa8 100644
--- a/src/nm-connectivity.h
+++ b/src/nm-connectivity.h
@@ -30,19 +30,12 @@
#define NM_IS_CONNECTIVITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CONNECTIVITY))
#define NM_CONNECTIVITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CONNECTIVITY, NMConnectivityClass))
-/* Properties */
#define NM_CONNECTIVITY_URI "uri"
#define NM_CONNECTIVITY_INTERVAL "interval"
#define NM_CONNECTIVITY_RESPONSE "response"
#define NM_CONNECTIVITY_STATE "state"
-struct _NMConnectivity {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMConnectivityClass;
+typedef struct _NMConnectivityClass NMConnectivityClass;
GType nm_connectivity_get_type (void);
diff --git a/src/nm-default-route-manager.c b/src/nm-default-route-manager.c
index 2db305c984..c93e46fca2 100644
--- a/src/nm-default-route-manager.c
+++ b/src/nm-default-route-manager.c
@@ -21,9 +21,10 @@
#include "nm-default.h"
+#include "nm-default-route-manager.h"
+
#include <string.h>
-#include "nm-default-route-manager.h"
#include "nm-device.h"
#include "nm-vpn-connection.h"
#include "nm-platform.h"
@@ -32,6 +33,12 @@
#include "nm-ip6-config.h"
#include "nm-act-request.h"
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_PLATFORM,
+);
+
typedef struct {
GPtrArray *entries_ip4;
GPtrArray *entries_ip6;
@@ -54,16 +61,23 @@ typedef struct {
NMPlatform *platform;
} NMDefaultRouteManagerPrivate;
-#define NM_DEFAULT_ROUTE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEFAULT_ROUTE_MANAGER, NMDefaultRouteManagerPrivate))
+struct _NMDefaultRouteManager {
+ GObject parent;
+ NMDefaultRouteManagerPrivate _priv;
+};
+
+struct _NMDefaultRouteManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMDefaultRouteManager, nm_default_route_manager, G_TYPE_OBJECT)
-NM_GOBJECT_PROPERTIES_DEFINE_BASE (
- PROP_PLATFORM,
-);
+#define NM_DEFAULT_ROUTE_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDefaultRouteManager, NM_IS_DEFAULT_ROUTE_MANAGER)
NM_DEFINE_SINGLETON_GETTER (NMDefaultRouteManager, nm_default_route_manager_get, NM_TYPE_DEFAULT_ROUTE_MANAGER);
+/*****************************************************************************/
+
#define _NMLOG_PREFIX_NAME "default-route"
#undef _NMLOG_ENABLED
#define _NMLOG_ENABLED(level, addr_family) \
@@ -1397,6 +1411,8 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
static void
nm_default_route_manager_init (NMDefaultRouteManager *self)
{
@@ -1464,9 +1480,6 @@ nm_default_route_manager_class_init (NMDefaultRouteManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMDefaultRouteManagerPrivate));
-
- /* virtual methods */
object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->set_property = set_property;
@@ -1477,7 +1490,6 @@ nm_default_route_manager_class_init (NMDefaultRouteManagerClass *klass)
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
- g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
-
diff --git a/src/nm-default-route-manager.h b/src/nm-default-route-manager.h
index 30f130a476..bd5e873295 100644
--- a/src/nm-default-route-manager.h
+++ b/src/nm-default-route-manager.h
@@ -32,13 +32,7 @@
#define NM_DEFAULT_ROUTE_MANAGER_PLATFORM "platform"
-struct _NMDefaultRouteManager {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMDefaultRouteManagerClass;
+typedef struct _NMDefaultRouteManagerClass NMDefaultRouteManagerClass;
GType nm_default_route_manager_get_type (void);
@@ -68,4 +62,3 @@ NMIP6Config *nm_default_route_manager_ip6_get_best_config (NMDefaultRouteManager
NMVpnConnection **out_vpn);
#endif /* NM_DEFAULT_ROUTE_MANAGER_H */
-
diff --git a/src/nm-dhcp4-config.c b/src/nm-dhcp4-config.c
index 26c6ab0b43..00aee8fafb 100644
--- a/src/nm-dhcp4-config.c
+++ b/src/nm-dhcp4-config.c
@@ -20,36 +20,40 @@
#include "nm-default.h"
+#include "nm-dhcp4-config.h"
+
#include <string.h>
#include "nm-dbus-interface.h"
-#include "nm-dhcp4-config.h"
#include "nm-utils.h"
+#include "nm-exported-object.h"
#include "nmdbus-dhcp4-config.h"
-G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_EXPORTED_OBJECT)
+/*****************************************************************************/
-#define NM_DHCP4_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE (NMDhcp4Config,
+ PROP_OPTIONS,
+);
typedef struct {
GVariant *options;
} NMDhcp4ConfigPrivate;
+struct _NMDhcp4Config {
+ NMExportedObject parent;
+ NMDhcp4ConfigPrivate _priv;
+};
-enum {
- PROP_0,
- PROP_OPTIONS,
-
- LAST_PROP
+struct _NMDhcp4ConfigClass {
+ NMExportedObjectClass parent;
};
+G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_EXPORTED_OBJECT)
-NMDhcp4Config *
-nm_dhcp4_config_new (void)
-{
- return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL));
-}
+#define NM_DHCP4_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcp4Config, NM_IS_DHCP4_CONFIG)
+
+/*****************************************************************************/
void
nm_dhcp4_config_set_options (NMDhcp4Config *self,
@@ -72,7 +76,7 @@ nm_dhcp4_config_set_options (NMDhcp4Config *self,
priv->options = g_variant_builder_end (&builder);
g_variant_ref_sink (priv->options);
- g_object_notify (G_OBJECT (self), NM_DHCP4_CONFIG_OPTIONS);
+ _notify (self, PROP_OPTIONS);
}
const char *
@@ -98,6 +102,26 @@ nm_dhcp4_config_get_options (NMDhcp4Config *self)
return g_variant_ref (NM_DHCP4_CONFIG_GET_PRIVATE (self)->options);
}
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE ((NMDhcp4Config *) object);
+
+ switch (prop_id) {
+ case PROP_OPTIONS:
+ g_value_set_variant (value, priv->options);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static void
nm_dhcp4_config_init (NMDhcp4Config *self)
{
@@ -107,10 +131,16 @@ nm_dhcp4_config_init (NMDhcp4Config *self)
g_variant_ref_sink (priv->options);
}
+NMDhcp4Config *
+nm_dhcp4_config_new (void)
+{
+ return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL));
+}
+
static void
finalize (GObject *object)
{
- NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);
+ NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE ((NMDhcp4Config *) object);
g_variant_unref (priv->options);
@@ -118,44 +148,25 @@ finalize (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_OPTIONS:
- g_value_set_variant (value, priv->options);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_dhcp4_config_class_init (NMDhcp4ConfigClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMDhcp4ConfigPrivate));
+ object_class->get_property = get_property;
+ object_class->finalize = finalize;
exported_object_class->export_path = NM_DBUS_PATH "/DHCP4Config/%u";
exported_object_class->export_on_construction = TRUE;
- /* virtual methods */
- object_class->get_property = get_property;
- object_class->finalize = finalize;
+ obj_properties[PROP_OPTIONS] =
+ g_param_spec_variant (NM_DHCP4_CONFIG_OPTIONS, "", "",
+ G_VARIANT_TYPE ("a{sv}"),
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* properties */
- g_object_class_install_property
- (object_class, PROP_OPTIONS,
- g_param_spec_variant (NM_DHCP4_CONFIG_OPTIONS, "", "",
- G_VARIANT_TYPE ("a{sv}"),
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (config_class),
NMDBUS_TYPE_DHCP4_CONFIG_SKELETON,
diff --git a/src/nm-dhcp4-config.h b/src/nm-dhcp4-config.h
index 080e28deff..7fdf0653e3 100644
--- a/src/nm-dhcp4-config.h
+++ b/src/nm-dhcp4-config.h
@@ -21,8 +21,6 @@
#ifndef __NETWORKMANAGER_DHCP4_CONFIG_H__
#define __NETWORKMANAGER_DHCP4_CONFIG_H__
-#include "nm-exported-object.h"
-
#define NM_TYPE_DHCP4_CONFIG (nm_dhcp4_config_get_type ())
#define NM_DHCP4_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP4_CONFIG, NMDhcp4Config))
#define NM_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigClass))
@@ -30,17 +28,10 @@
#define NM_IS_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP4_CONFIG))
#define NM_DHCP4_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigClass))
-struct _NMDhcp4Config {
- NMExportedObject parent;
-};
-
-typedef struct {
- NMExportedObjectClass parent;
-
-} NMDhcp4ConfigClass;
-
#define NM_DHCP4_CONFIG_OPTIONS "options"
+typedef struct _NMDhcp4ConfigClass NMDhcp4ConfigClass;
+
GType nm_dhcp4_config_get_type (void);
NMDhcp4Config *nm_dhcp4_config_new (void);
diff --git a/src/nm-dhcp6-config.c b/src/nm-dhcp6-config.c
index 4311ee985e..2d878cde5b 100644
--- a/src/nm-dhcp6-config.c
+++ b/src/nm-dhcp6-config.c
@@ -20,36 +20,40 @@
#include "nm-default.h"
+#include "nm-dhcp6-config.h"
+
#include <string.h>
#include "nm-dbus-interface.h"
-#include "nm-dhcp6-config.h"
#include "nm-utils.h"
+#include "nm-exported-object.h"
#include "nmdbus-dhcp6-config.h"
-G_DEFINE_TYPE (NMDhcp6Config, nm_dhcp6_config, NM_TYPE_EXPORTED_OBJECT)
+/*****************************************************************************/
-#define NM_DHCP6_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigPrivate))
+NM_GOBJECT_PROPERTIES_DEFINE (NMDhcp6Config,
+ PROP_OPTIONS,
+);
typedef struct {
GVariant *options;
} NMDhcp6ConfigPrivate;
+struct _NMDhcp6Config {
+ NMExportedObject parent;
+ NMDhcp6ConfigPrivate _priv;
+};
-enum {
- PROP_0,
- PROP_OPTIONS,
-
- LAST_PROP
+struct _NMDhcp6ConfigClass {
+ NMExportedObjectClass parent;
};
+G_DEFINE_TYPE (NMDhcp6Config, nm_dhcp6_config, NM_TYPE_EXPORTED_OBJECT)
-NMDhcp6Config *
-nm_dhcp6_config_new (void)
-{
- return NM_DHCP6_CONFIG (g_object_new (NM_TYPE_DHCP6_CONFIG, NULL));
-}
+#define NM_DHCP6_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcp6Config, NM_IS_DHCP6_CONFIG)
+
+/*****************************************************************************/
void
nm_dhcp6_config_set_options (NMDhcp6Config *self,
@@ -72,7 +76,7 @@ nm_dhcp6_config_set_options (NMDhcp6Config *self,
priv->options = g_variant_builder_end (&builder);
g_variant_ref_sink (priv->options);
- g_object_notify (G_OBJECT (self), NM_DHCP6_CONFIG_OPTIONS);
+ _notify (self, PROP_OPTIONS);
}
const char *
@@ -98,6 +102,24 @@ nm_dhcp6_config_get_options (NMDhcp6Config *self)
return g_variant_ref (NM_DHCP6_CONFIG_GET_PRIVATE (self)->options);
}
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE ((NMDhcp6Config *) object);
+
+ switch (prop_id) {
+ case PROP_OPTIONS:
+ g_value_set_variant (value, priv->options);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
static void
nm_dhcp6_config_init (NMDhcp6Config *self)
{
@@ -107,10 +129,16 @@ nm_dhcp6_config_init (NMDhcp6Config *self)
g_variant_ref_sink (priv->options);
}
+NMDhcp6Config *
+nm_dhcp6_config_new (void)
+{
+ return NM_DHCP6_CONFIG (g_object_new (NM_TYPE_DHCP6_CONFIG, NULL));
+}
+
static void
finalize (GObject *object)
{
- NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE (object);
+ NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE ((NMDhcp6Config *) object);
g_variant_unref (priv->options);
@@ -118,44 +146,25 @@ finalize (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_OPTIONS:
- g_value_set_variant (value, priv->options);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
nm_dhcp6_config_class_init (NMDhcp6ConfigClass *config_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (config_class);
NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (config_class);
- g_type_class_add_private (config_class, sizeof (NMDhcp6ConfigPrivate));
+ object_class->get_property = get_property;
+ object_class->finalize = finalize;
exported_object_class->export_path = NM_DBUS_PATH "/DHCP6Config/%u";
exported_object_class->export_on_construction = TRUE;
- /* virtual methods */
- object_class->get_property = get_property;
- object_class->finalize = finalize;
+ obj_properties[PROP_OPTIONS] =
+ g_param_spec_variant (NM_DHCP6_CONFIG_OPTIONS, "", "",
+ G_VARIANT_TYPE ("a{sv}"),
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* properties */
- g_object_class_install_property
- (object_class, PROP_OPTIONS,
- g_param_spec_variant (NM_DHCP6_CONFIG_OPTIONS, "", "",
- G_VARIANT_TYPE ("a{sv}"),
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (config_class),
NMDBUS_TYPE_DHCP6_CONFIG_SKELETON,
diff --git a/src/nm-dhcp6-config.h b/src/nm-dhcp6-config.h
index c018d97f0c..6241845afa 100644
--- a/src/nm-dhcp6-config.h
+++ b/src/nm-dhcp6-config.h
@@ -21,8 +21,6 @@
#ifndef __NETWORKMANAGER_DHCP6_CONFIG_H__
#define __NETWORKMANAGER_DHCP6_CONFIG_H__
-#include "nm-exported-object.h"
-
#define NM_TYPE_DHCP6_CONFIG (nm_dhcp6_config_get_type ())
#define NM_DHCP6_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP6_CONFIG, NMDhcp6Config))
#define NM_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigClass))
@@ -30,17 +28,10 @@
#define NM_IS_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP6_CONFIG))
#define NM_DHCP6_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigClass))
-struct _NMDhcp6Config {
- NMExportedObject parent;
-};
-
-typedef struct {
- NMExportedObjectClass parent;
-
-} NMDhcp6ConfigClass;
-
#define NM_DHCP6_CONFIG_OPTIONS "options"
+typedef struct _NMDhcp6ConfigClass NMDhcp6ConfigClass;
+
GType nm_dhcp6_config_get_type (void);
NMDhcp6Config *nm_dhcp6_config_new (void);
diff --git a/src/nm-exported-object.c b/src/nm-exported-object.c
index fa3bb2b5d3..d3c3d1fdc3 100644
--- a/src/nm-exported-object.c
+++ b/src/nm-exported-object.c
@@ -995,7 +995,7 @@ constructed (GObject *object)
}
static void
-nm_exported_object_dispose (GObject *object)
+dispose (GObject *object)
{
NMExportedObjectPrivate *priv = NM_EXPORTED_OBJECT_GET_PRIVATE (NM_EXPORTED_OBJECT (object));
@@ -1024,7 +1024,5 @@ nm_exported_object_class_init (NMExportedObjectClass *klass)
object_class->constructed = constructed;
object_class->notify = nm_exported_object_notify;
- object_class->dispose = nm_exported_object_dispose;
+ object_class->dispose = dispose;
}
-
-
diff --git a/src/nm-firewall-manager.c b/src/nm-firewall-manager.c
index 2fcafae6c8..5ba3d23e34 100644
--- a/src/nm-firewall-manager.c
+++ b/src/nm-firewall-manager.c
@@ -26,19 +26,19 @@
#include "NetworkManagerUtils.h"
-#define NM_FIREWALL_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
- NM_TYPE_FIREWALL_MANAGER, \
- NMFirewallManagerPrivate))
+/*****************************************************************************/
-G_DEFINE_TYPE (NMFirewallManager, nm_firewall_manager, G_TYPE_OBJECT)
+NM_GOBJECT_PROPERTIES_DEFINE (NMFirewallManager,
+ PROP_AVAILABLE,
+);
-/* Properties */
enum {
- PROP_0 = 0,
- PROP_AVAILABLE,
- LAST_PROP
+ STARTED,
+ LAST_SIGNAL
};
+static guint signals[LAST_SIGNAL] = { 0 };
+
typedef struct {
GDBusProxy * proxy;
gboolean running;
@@ -46,13 +46,20 @@ typedef struct {
GHashTable *pending_calls;
} NMFirewallManagerPrivate;
-enum {
- STARTED,
+struct _NMFirewallManager {
+ GObject parent;
+ NMFirewallManagerPrivate _priv;
+};
- LAST_SIGNAL
+struct _NMFirewallManagerClass {
+ GObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE (NMFirewallManager, nm_firewall_manager, G_TYPE_OBJECT)
+
+#define NM_FIREWALL_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMFirewallManager, NM_IS_FIREWALL_MANAGER)
+
+/*****************************************************************************/
NM_DEFINE_SINGLETON_GETTER (NMFirewallManager, nm_firewall_manager_get, NM_TYPE_FIREWALL_MANAGER);
@@ -406,7 +413,7 @@ set_running (NMFirewallManager *self, gboolean now_running)
priv->running = now_running;
if (old_running != priv->running)
- g_object_notify (G_OBJECT (self), NM_FIREWALL_MANAGER_AVAILABLE);
+ _notify (self, PROP_AVAILABLE);
}
static void
@@ -431,6 +438,21 @@ name_owner_changed (GObject *object,
/*****************************************************************************/
static void
+get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case PROP_AVAILABLE:
+ g_value_set_boolean (value, NM_FIREWALL_MANAGER_GET_PRIVATE ((NMFirewallManager *) object)->running);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
nm_firewall_manager_init (NMFirewallManager * self)
{
NMFirewallManagerPrivate *priv = NM_FIREWALL_MANAGER_GET_PRIVATE (self);
@@ -456,32 +478,18 @@ constructed (GObject *object)
FIREWALL_DBUS_PATH,
FIREWALL_DBUS_INTERFACE_ZONE,
NULL, &error);
- if (priv->proxy) {
+ if (priv->proxy) {
g_signal_connect (priv->proxy, "notify::g-name-owner",
- G_CALLBACK (name_owner_changed), self);
+ G_CALLBACK (name_owner_changed), self);
owner = g_dbus_proxy_get_name_owner (priv->proxy);
priv->running = (owner != NULL);
- } else {
- _LOGW (NULL, "could not connect to system D-Bus (%s)", error->message);
- }
+ } else
+ _LOGW (NULL, "could not connect to system D-Bus (%s)", error->message);
_LOGD (NULL, "firewall constructed (%srunning)", priv->running ? "" : "not");
}
static void
-get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
- switch (prop_id) {
- case PROP_AVAILABLE:
- g_value_set_boolean (value, NM_FIREWALL_MANAGER_GET_PRIVATE (object)->running);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
dispose (GObject *object)
{
NMFirewallManager *self = NM_FIREWALL_MANAGER (object);
@@ -497,7 +505,6 @@ dispose (GObject *object)
g_clear_object (&priv->proxy);
- /* Chain up to the parent class */
G_OBJECT_CLASS (nm_firewall_manager_parent_class)->dispose (object);
}
@@ -506,27 +513,24 @@ nm_firewall_manager_class_init (NMFirewallManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (object_class, sizeof (NMFirewallManagerPrivate));
-
object_class->constructed = constructed;
object_class->get_property = get_property;
object_class->dispose = dispose;
- g_object_class_install_property
- (object_class, PROP_AVAILABLE,
+ obj_properties[PROP_AVAILABLE] =
g_param_spec_boolean (NM_FIREWALL_MANAGER_AVAILABLE, "", "",
FALSE,
G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[STARTED] =
g_signal_new (NM_FIREWALL_MANAGER_STARTED,
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMFirewallManagerClass, started),
+ 0,
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
}
-
diff --git a/src/nm-firewall-manager.h b/src/nm-firewall-manager.h
index 92fac8e2fc..a00ee451e7 100644
--- a/src/nm-firewall-manager.h
+++ b/src/nm-firewall-manager.h
@@ -26,30 +26,21 @@
#define FIREWALL_DBUS_INTERFACE "org.fedoraproject.FirewallD1"
#define FIREWALL_DBUS_INTERFACE_ZONE "org.fedoraproject.FirewallD1.zone"
-#define NM_TYPE_FIREWALL_MANAGER (nm_firewall_manager_get_type ())
-#define NM_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManager))
-#define NM_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass))
-#define NM_IS_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_FIREWALL_MANAGER))
-#define NM_IS_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FIREWALL_MANAGER))
-#define NM_FIREWALL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass))
+#define NM_TYPE_FIREWALL_MANAGER (nm_firewall_manager_get_type ())
+#define NM_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManager))
+#define NM_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass))
+#define NM_IS_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_FIREWALL_MANAGER))
+#define NM_IS_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FIREWALL_MANAGER))
+#define NM_FIREWALL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass))
#define NM_FIREWALL_MANAGER_AVAILABLE "available"
#define NM_FIREWALL_MANAGER_STARTED "started"
-struct _NMFirewallManagerCallId;
typedef struct _NMFirewallManagerCallId *NMFirewallManagerCallId;
-typedef struct {
- GObject parent;
-} NMFirewallManager;
-
-typedef struct {
- GObjectClass parent;
-
- /* Signals */
- void (*started) (NMFirewallManager *manager);
-} NMFirewallManagerClass;
+typedef struct _NMFirewallManager NMFirewallManager;
+typedef struct _NMFirewallManagerClass NMFirewallManagerClass;
GType nm_firewall_manager_get_type (void);
diff --git a/src/nm-manager.c b/src/nm-manager.c
index ef2b3a3abc..4c542a53d6 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -5613,6 +5613,9 @@ constructed (GObject *object)
_set_prop_filter (self, nm_bus_manager_get_connection (priv->dbus_mgr));
priv->settings = nm_settings_new ();
+
+ nm_exported_object_export (NM_EXPORTED_OBJECT (priv->settings));
+
g_signal_connect (priv->settings, "notify::" NM_SETTINGS_STARTUP_COMPLETE,
G_CALLBACK (settings_startup_complete_changed), self);
g_signal_connect (priv->settings, "notify::" NM_SETTINGS_UNMANAGED_SPECS,
diff --git a/src/nm-policy.c b/src/nm-policy.c
index 5df3a8865d..ffe9203e7b 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -21,12 +21,13 @@
#include "nm-default.h"
+#include "nm-policy.h"
+
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <netdb.h>
-#include "nm-policy.h"
#include "NetworkManagerUtils.h"
#include "nm-act-request.h"
#include "nm-device.h"
@@ -47,19 +48,18 @@
#include "nm-dhcp4-config.h"
#include "nm-dhcp6-config.h"
-#define _NMLOG_PREFIX_NAME "policy"
-#define _NMLOG(level, domain, ...) \
- G_STMT_START { \
- nm_log ((level), (domain), \
- "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
- } G_STMT_END
+/*****************************************************************************/
-typedef struct _NMPolicyPrivate NMPolicyPrivate;
+NM_GOBJECT_PROPERTIES_DEFINE (NMPolicy,
+ PROP_MANAGER,
+ PROP_SETTINGS,
+ PROP_DEFAULT_IP4_DEVICE,
+ PROP_DEFAULT_IP6_DEVICE,
+ PROP_ACTIVATING_IP4_DEVICE,
+ PROP_ACTIVATING_IP6_DEVICE,
+);
-struct _NMPolicyPrivate {
- NMPolicy *self;
+typedef struct {
NMManager *manager;
NMFirewallManager *firewall_manager;
GSList *pending_activation_checks;
@@ -88,28 +88,50 @@ struct _NMPolicyPrivate {
char *orig_hostname; /* hostname at NM start time */
char *cur_hostname; /* hostname we want to assign */
gboolean hostname_changed; /* TRUE if NM ever set the hostname */
+} NMPolicyPrivate;
+
+struct _NMPolicy {
+ GObject parent;
+ NMPolicyPrivate _priv;
+};
+
+struct _NMPolicyClass {
+ GObjectClass parent;
};
-static NMPolicyPrivate *
-NM_POLICY_GET_PRIVATE(NMPolicy *self)
+G_DEFINE_TYPE (NMPolicy, nm_policy, G_TYPE_OBJECT)
+
+#define NM_POLICY_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMPolicy, NM_IS_POLICY)
+
+static NMPolicy *
+_PRIV_TO_SELF (NMPolicyPrivate *priv)
{
+ NMPolicy *self;
+
+ nm_assert (priv);
+
+ self = (NMPolicy *) (((char *) priv) - G_STRUCT_OFFSET (NMPolicy, _priv));
+
nm_assert (NM_IS_POLICY (self));
- return self->priv;
+ return self;
}
-G_DEFINE_TYPE (NMPolicy, nm_policy, G_TYPE_OBJECT)
+/*****************************************************************************/
-NM_GOBJECT_PROPERTIES_DEFINE (NMPolicy,
- PROP_MANAGER,
- PROP_SETTINGS,
- PROP_DEFAULT_IP4_DEVICE,
- PROP_DEFAULT_IP6_DEVICE,
- PROP_ACTIVATING_IP4_DEVICE,
- PROP_ACTIVATING_IP6_DEVICE,
-);
+#define _NMLOG_PREFIX_NAME "policy"
+#define _NMLOG(level, domain, ...) \
+ G_STMT_START { \
+ nm_log ((level), (domain), \
+ "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
static void schedule_activate_all (NMPolicy *self);
+/*****************************************************************************/
static NMDevice *
get_best_ip4_device (NMPolicy *self, gboolean fully_activated)
@@ -852,7 +874,7 @@ static void
hostname_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
update_system_hostname (self, NULL, NULL);
}
@@ -929,7 +951,7 @@ static void
sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
gboolean sleeping = FALSE, enabled = FALSE;
g_object_get (G_OBJECT (manager), NM_MANAGER_SLEEPING, &sleeping, NULL);
@@ -1162,7 +1184,7 @@ device_state_changed (NMDevice *device,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
NMSettingsConnection *connection = nm_device_get_settings_connection (device);
@@ -1308,7 +1330,7 @@ device_ip4_config_changed (NMDevice *device,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
const char *ip_iface = nm_device_get_ip_iface (device);
nm_dns_manager_begin_updates (priv->dns_manager, __func__);
@@ -1343,7 +1365,7 @@ device_ip6_config_changed (NMDevice *device,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
const char *ip_iface = nm_device_get_ip_iface (device);
nm_dns_manager_begin_updates (priv->dns_manager, __func__);
@@ -1377,7 +1399,7 @@ device_autoconnect_changed (NMDevice *device,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
if (nm_device_autoconnect_allowed (device))
schedule_activate_check (self, device);
@@ -1387,7 +1409,7 @@ static void
device_recheck_auto_activate (NMDevice *device, gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
schedule_activate_check (self, device);
}
@@ -1417,7 +1439,7 @@ static void
device_added (NMManager *manager, NMDevice *device, gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
g_return_if_fail (NM_IS_POLICY (self));
@@ -1433,7 +1455,7 @@ static void
device_removed (NMManager *manager, NMDevice *device, gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
/* Clear any idle callbacks for this device */
clear_pending_activate_check (self, device);
@@ -1560,7 +1582,7 @@ active_connection_added (NMManager *manager,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
if (NM_IS_VPN_CONNECTION (active)) {
g_signal_connect (active, NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED,
@@ -1582,7 +1604,7 @@ active_connection_removed (NMManager *manager,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
g_signal_handlers_disconnect_by_func (active,
vpn_connection_state_changed,
@@ -1629,7 +1651,7 @@ connection_added (NMSettings *settings,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
schedule_activate_all (self);
}
@@ -1687,7 +1709,7 @@ connection_updated (NMSettings *settings,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
const GSList *iter;
NMDevice *device = NULL;
@@ -1755,7 +1777,7 @@ connection_visibility_changed (NMSettings *settings,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
if (nm_settings_connection_is_visible (connection))
schedule_activate_all (self);
@@ -1769,7 +1791,7 @@ secret_agent_registered (NMSettings *settings,
gpointer user_data)
{
NMPolicyPrivate *priv = user_data;
- NMPolicy *self = priv->self;
+ NMPolicy *self = _PRIV_TO_SELF (priv);
/* The registered secret agent may provide some missing secrets. Thus we
* reset retries count here and schedule activation, so that the
@@ -1860,10 +1882,7 @@ set_property (GObject *object, guint prop_id,
static void
nm_policy_init (NMPolicy *self)
{
- NMPolicyPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_POLICY, NMPolicyPrivate);
-
- self->priv = priv;
- priv->self = self;
+ NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (self);
priv->devices = g_hash_table_new (NULL, NULL);
}
@@ -2000,8 +2019,6 @@ finalize (GObject *object)
g_hash_table_unref (priv->devices);
G_OBJECT_CLASS (nm_policy_parent_class)->finalize (object);
-
- priv->self = NULL;
}
static void
@@ -2009,8 +2026,6 @@ nm_policy_class_init (NMPolicyClass *policy_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (policy_class);
- g_type_class_add_private (policy_class, sizeof (NMPolicyPrivate));
-
object_class->get_property = get_property;
object_class->set_property = set_property;
object_class->constructed = constructed;
@@ -2049,5 +2064,6 @@ nm_policy_class_init (NMPolicyClass *policy_class)
NM_TYPE_DEVICE,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/src/nm-policy.h b/src/nm-policy.h
index ce900ba641..64cac4fe70 100644
--- a/src/nm-policy.h
+++ b/src/nm-policy.h
@@ -36,17 +36,7 @@
#define NM_POLICY_ACTIVATING_IP4_DEVICE "activating-ip4-device"
#define NM_POLICY_ACTIVATING_IP6_DEVICE "activating-ip6-device"
-struct _NMPolicyPrivate;
-
-struct _NMPolicy {
- GObject parent;
- struct _NMPolicyPrivate *priv;
-};
-
-typedef struct {
- GObjectClass parent;
-
-} NMPolicyClass;
+typedef struct _NMPolicyClass NMPolicyClass;
GType nm_policy_get_type (void);
diff --git a/src/nm-rfkill-manager.c b/src/nm-rfkill-manager.c
index 453a3b9bbb..14346c32a2 100644
--- a/src/nm-rfkill-manager.c
+++ b/src/nm-rfkill-manager.c
@@ -20,10 +20,19 @@
#include "nm-default.h"
+#include "nm-rfkill-manager.h"
+
#include <string.h>
#include <gudev/gudev.h>
-#include "nm-rfkill-manager.h"
+/*****************************************************************************/
+
+enum {
+ RFKILL_CHANGED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
GUdevClient *client;
@@ -31,21 +40,22 @@ typedef struct {
/* Authoritative rfkill state (RFKILL_* enum) */
RfKillState rfkill_states[RFKILL_TYPE_MAX];
GSList *killswitches;
-
} NMRfkillManagerPrivate;
-#define NM_RFKILL_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_RFKILL_MANAGER, NMRfkillManagerPrivate))
-
-G_DEFINE_TYPE (NMRfkillManager, nm_rfkill_manager, G_TYPE_OBJECT)
-
-enum {
- RFKILL_CHANGED,
+struct _NMRfkillManager {
+ GObject parent;
+ NMRfkillManagerPrivate _priv;
+};
- LAST_SIGNAL
+struct _NMRfkillManagerClass {
+ GObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE (NMRfkillManager, nm_rfkill_manager, G_TYPE_OBJECT)
+
+#define NM_RFKILL_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMRfkillManager, NM_IS_RFKILL_MANAGER)
+/*****************************************************************************/
typedef struct {
char *name;
@@ -149,12 +159,6 @@ killswitch_destroy (Killswitch *ks)
g_free (ks);
}
-NMRfkillManager *
-nm_rfkill_manager_new (void)
-{
- return NM_RFKILL_MANAGER (g_object_new (NM_TYPE_RFKILL_MANAGER, NULL));
-}
-
static RfKillState
sysfs_state_to_nm_state (gint sysfs_state)
{
@@ -358,6 +362,8 @@ handle_uevent (GUdevClient *client,
recheck_killswitches (self);
}
+/*****************************************************************************/
+
static void
nm_rfkill_manager_init (NMRfkillManager *self)
{
@@ -382,6 +388,12 @@ nm_rfkill_manager_init (NMRfkillManager *self)
recheck_killswitches (self);
}
+NMRfkillManager *
+nm_rfkill_manager_new (void)
+{
+ return NM_RFKILL_MANAGER (g_object_new (NM_TYPE_RFKILL_MANAGER, NULL));
+}
+
static void
dispose (GObject *object)
{
@@ -403,17 +415,13 @@ nm_rfkill_manager_class_init (NMRfkillManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMRfkillManagerPrivate));
-
- /* virtual methods */
object_class->dispose = dispose;
- /* Signals */
signals[RFKILL_CHANGED] =
- g_signal_new (NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMRfkillManagerClass, rfkill_changed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+ g_signal_new (NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
}
diff --git a/src/nm-rfkill-manager.h b/src/nm-rfkill-manager.h
index 3aca8f50b9..490c1ca28f 100644
--- a/src/nm-rfkill-manager.h
+++ b/src/nm-rfkill-manager.h
@@ -19,10 +19,8 @@
* Copyright (C) 2007 - 2013 Red Hat, Inc.
*/
-#ifndef __NETWORKMANAGER_RFKILL_MANAGER_H__
-#define __NETWORKMANAGER_RFKILL_MANAGER_H__
-
-#define NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED "rfkill-changed"
+#ifndef __NM_RFKILL_MANAGER_H__
+#define __NM_RFKILL_MANAGER_H__
typedef enum { /*< skip >*/
RFKILL_UNBLOCKED = 0,
@@ -42,7 +40,6 @@ typedef enum { /*< skip >*/
RFKILL_TYPE_MAX = RFKILL_TYPE_UNKNOWN
} RfKillType;
-
#define NM_TYPE_RFKILL_MANAGER (nm_rfkill_manager_get_type ())
#define NM_RFKILL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_RFKILL_MANAGER, NMRfkillManager))
#define NM_RFKILL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_RFKILL_MANAGER, NMRfkillManagerClass))
@@ -50,16 +47,9 @@ typedef enum { /*< skip >*/
#define NM_IS_RFKILL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_RFKILL_MANAGER))
#define NM_RFKILL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_RFKILL_MANAGER, NMRfkillManagerClass))
-struct _NMRfkillManager {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
+#define NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED "rfkill-changed"
- /* signals */
- void (*rfkill_changed) (NMRfkillManager *manager, RfKillType rtype, RfKillState state);
-} NMRfkillManagerClass;
+typedef struct _NMRfkillManagerClass NMRfkillManagerClass;
GType nm_rfkill_manager_get_type (void);
@@ -67,5 +57,4 @@ NMRfkillManager *nm_rfkill_manager_new (void);
RfKillState nm_rfkill_manager_get_rfkill_state (NMRfkillManager *manager, RfKillType rtype);
-#endif /* NM_RFKILL_MANAGER_H */
-
+#endif /* __NM_RFKILL_MANAGER_H__ */
diff --git a/src/nm-route-manager.c b/src/nm-route-manager.c
index d2d376f953..8c97f911d0 100644
--- a/src/nm-route-manager.c
+++ b/src/nm-route-manager.c
@@ -20,9 +20,10 @@
#include "nm-default.h"
+#include "nm-route-manager.h"
+
#include <string.h>
-#include "nm-route-manager.h"
#include "nm-platform.h"
#include "nmp-object.h"
#include "nm-core-internal.h"
@@ -34,6 +35,8 @@
#define IP4_DEVICE_ROUTES_GC_INTERVAL_SEC (IP4_DEVICE_ROUTES_WAIT_TIME_NS * 2)
+/*****************************************************************************/
+
typedef struct {
guint len;
NMPlatformIPXRoute *entries[1];
@@ -58,6 +61,12 @@ typedef struct {
NMPObject *obj;
} IP4DeviceRoutePurgeEntry;
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_PLATFORM,
+);
+
typedef struct {
NMPlatform *platform;
@@ -69,13 +78,20 @@ typedef struct {
} ip4_device_routes;
} NMRouteManagerPrivate;
-#define NM_ROUTE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ROUTE_MANAGER, NMRouteManagerPrivate))
+struct _NMRouteManager {
+ GObject parent;
+ NMRouteManagerPrivate _priv;
+};
+
+struct _NMRouteManagerClass {
+ GObjectClass parent;
+};
G_DEFINE_TYPE (NMRouteManager, nm_route_manager, G_TYPE_OBJECT);
-NM_GOBJECT_PROPERTIES_DEFINE_BASE (
- PROP_PLATFORM,
-);
+#define NM_ROUTE_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMRouteManager, NM_IS_ROUTE_MANAGER)
+
+/*****************************************************************************/
NM_DEFINE_SINGLETON_GETTER (NMRouteManager, nm_route_manager_get, NM_TYPE_ROUTE_MANAGER);
@@ -1163,6 +1179,8 @@ set_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
static void
nm_route_manager_init (NMRouteManager *self)
{
@@ -1194,7 +1212,7 @@ static void
dispose (GObject *object)
{
NMRouteManager *self = NM_ROUTE_MANAGER (object);
- NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE (object);
+ NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE (self);
g_hash_table_remove_all (priv->ip4_device_routes.entries);
_ip4_device_routes_cancel (self);
@@ -1205,7 +1223,7 @@ dispose (GObject *object)
static void
finalize (GObject *object)
{
- NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE (object);
+ NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE ((NMRouteManager *) object);
g_array_free (priv->ip4_routes.entries, TRUE);
g_array_free (priv->ip6_routes.entries, TRUE);
@@ -1228,9 +1246,6 @@ nm_route_manager_class_init (NMRouteManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMRouteManagerPrivate));
-
- /* virtual methods */
object_class->set_property = set_property;
object_class->dispose = dispose;
object_class->finalize = finalize;
diff --git a/src/nm-route-manager.h b/src/nm-route-manager.h
index 8e2746d93e..d12f025603 100644
--- a/src/nm-route-manager.h
+++ b/src/nm-route-manager.h
@@ -18,8 +18,8 @@
* Copyright (C) 2015 Red Hat, Inc.
*/
-#ifndef __NETWORKMANAGER_ROUTE_MANAGER_H__
-#define __NETWORKMANAGER_ROUTE_MANAGER_H__
+#ifndef __NM_ROUTE_MANAGER_H__
+#define __NM_ROUTE_MANAGER_H__
#define NM_TYPE_ROUTE_MANAGER (nm_route_manager_get_type ())
#define NM_ROUTE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ROUTE_MANAGER, NMRouteManager))
@@ -30,13 +30,7 @@
#define NM_ROUTE_MANAGER_PLATFORM "platform"
-struct _NMRouteManager {
- GObject parent;
-};
-
-typedef struct {
- GObjectClass parent;
-} NMRouteManagerClass;
+typedef struct _NMRouteManagerClass NMRouteManagerClass;
GType nm_route_manager_get_type (void);
@@ -49,4 +43,4 @@ void nm_route_manager_ip4_route_register_device_route_purge_list (NMRouteManager
NMRouteManager *nm_route_manager_get (void);
NMRouteManager *nm_route_manager_new (NMPlatform *platform);
-#endif /* NM_ROUTE_MANAGER_H */
+#endif /* __NM_ROUTE_MANAGER_H__ */
diff --git a/src/nm-session-monitor.c b/src/nm-session-monitor.c
index 19d4688bb4..8f2955daa0 100644
--- a/src/nm-session-monitor.c
+++ b/src/nm-session-monitor.c
@@ -21,29 +21,30 @@
*/
#include "nm-default.h"
+#include "nm-session-monitor.h"
+
#include <pwd.h>
#include <errno.h>
#include <string.h>
#include <sys/stat.h>
-#include "nm-session-monitor.h"
-#include "NetworkManagerUtils.h"
-
#ifdef SESSION_TRACKING_SYSTEMD
#include <systemd/sd-login.h>
#endif
+#include "NetworkManagerUtils.h"
+
/*****************************************************************************/
-/* <internal>
- * SECTION:nm-session-monitor
- * @title: NMSessionMonitor
- * @short_description: Monitor sessions
- *
- * The #NMSessionMonitor class is a utility class to track and monitor sessions.
- */
+enum {
+ CHANGED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
struct _NMSessionMonitor {
- GObject parent_instance;
+ GObject parent;
#ifdef SESSION_TRACKING_SYSTEMD
struct {
@@ -62,20 +63,11 @@ struct _NMSessionMonitor {
};
struct _NMSessionMonitorClass {
- GObjectClass parent_class;
-
- void (*changed) (NMSessionMonitor *monitor);
+ GObjectClass parent;
};
G_DEFINE_TYPE (NMSessionMonitor, nm_session_monitor, G_TYPE_OBJECT);
-enum {
- CHANGED,
- LAST_SIGNAL,
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
/*****************************************************************************/
#ifdef SESSION_TRACKING_SYSTEMD
@@ -371,7 +363,7 @@ nm_session_monitor_init (NMSessionMonitor *monitor)
}
static void
-nm_session_monitor_finalize (GObject *object)
+finalize (GObject *object)
{
#ifdef SESSION_TRACKING_SYSTEMD
st_sd_finalize (NM_SESSION_MONITOR (object));
@@ -381,8 +373,7 @@ nm_session_monitor_finalize (GObject *object)
ck_finalize (NM_SESSION_MONITOR (object));
#endif
- if (G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize != NULL)
- G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object);
+ G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object);
}
static void
@@ -390,7 +381,7 @@ nm_session_monitor_class_init (NMSessionMonitorClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->finalize = nm_session_monitor_finalize;
+ gobject_class->finalize = finalize;
/**
* NMSessionMonitor::changed:
@@ -399,12 +390,10 @@ nm_session_monitor_class_init (NMSessionMonitorClass *klass)
* Emitted when something changes.
*/
signals[CHANGED] = g_signal_new (NM_SESSION_MONITOR_CHANGED,
- NM_TYPE_SESSION_MONITOR,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMSessionMonitorClass, changed),
- NULL, /* accumulator */
- NULL, /* accumulator data */
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ NM_TYPE_SESSION_MONITOR,
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
diff --git a/src/nm-session-monitor.h b/src/nm-session-monitor.h
index 3751d7db4c..d3d10e98b2 100644
--- a/src/nm-session-monitor.h
+++ b/src/nm-session-monitor.h
@@ -30,19 +30,16 @@
#define NM_SESSION_MONITOR_CHANGED "changed"
-typedef struct _NMSessionMonitorClass NMSessionMonitorClass;
+typedef struct _NMSessionMonitorClass NMSessionMonitorClass;
-typedef void (*NMSessionCallback) (NMSessionMonitor *monitor, gpointer user_data);
-
-GType nm_session_monitor_get_type (void) G_GNUC_CONST;
+GType nm_session_monitor_get_type (void) G_GNUC_CONST;
NMSessionMonitor *nm_session_monitor_get (void);
-gboolean nm_session_monitor_uid_to_user (uid_t uid, const char **out_user);
-gboolean nm_session_monitor_user_to_uid (const char *user, uid_t *out_uid);
-gboolean nm_session_monitor_session_exists (NMSessionMonitor *self,
- uid_t uid,
- gboolean active);
+gboolean nm_session_monitor_uid_to_user (uid_t uid, const char **out_user);
+gboolean nm_session_monitor_user_to_uid (const char *user, uid_t *out_uid);
+gboolean nm_session_monitor_session_exists (NMSessionMonitor *self,
+ uid_t uid,
+ gboolean active);
#endif /* __NETWORKMANAGER_SESSION_MONITOR_H__ */
-
diff --git a/src/nm-sleep-monitor.c b/src/nm-sleep-monitor.c
index 13ce1be000..ccb99e76ed 100644
--- a/src/nm-sleep-monitor.c
+++ b/src/nm-sleep-monitor.c
@@ -64,8 +64,17 @@
#endif
+/*****************************************************************************/
+
+enum {
+ SLEEPING,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = {0};
+
struct _NMSleepMonitor {
- GObject parent_instance;
+ GObject parent;
GDBusProxy *proxy;
@@ -81,19 +90,11 @@ struct _NMSleepMonitor {
};
struct _NMSleepMonitorClass {
- GObjectClass parent_class;
+ GObjectClass parent;
};
-enum {
- SLEEPING,
- LAST_SIGNAL,
-};
-static guint signals[LAST_SIGNAL] = {0};
-
G_DEFINE_TYPE (NMSleepMonitor, nm_sleep_monitor, G_TYPE_OBJECT);
-static void sleep_signal (NMSleepMonitor *self, gboolean is_about_to_suspend);
-
/*****************************************************************************/
#define _NMLOG_DOMAIN LOGD_SUSPEND
@@ -107,6 +108,10 @@ static void sleep_signal (NMSleepMonitor *self, gboolean is_about_to_suspend);
/*****************************************************************************/
+static void sleep_signal (NMSleepMonitor *self, gboolean is_about_to_suspend);
+
+/*****************************************************************************/
+
#if USE_UPOWER
static void
@@ -337,6 +342,8 @@ on_proxy_acquired (GObject *object,
#endif
}
+/*****************************************************************************/
+
static void
nm_sleep_monitor_init (NMSleepMonitor *self)
{
diff --git a/src/nm-sleep-monitor.h b/src/nm-sleep-monitor.h
index d54aebbcf1..350f1eec76 100644
--- a/src/nm-sleep-monitor.h
+++ b/src/nm-sleep-monitor.h
@@ -29,10 +29,11 @@
#define NM_SLEEP_MONITOR_SLEEPING "sleeping"
-typedef struct _NMSleepMonitorClass NMSleepMonitorClass;
+typedef struct _NMSleepMonitorClass NMSleepMonitorClass;
-GType nm_sleep_monitor_get_type (void) G_GNUC_CONST;
-NMSleepMonitor *nm_sleep_monitor_new (void);
+GType nm_sleep_monitor_get_type (void) G_GNUC_CONST;
+
+NMSleepMonitor *nm_sleep_monitor_new (void);
typedef struct _NMSleepMonitorInhibitorHandle NMSleepMonitorInhibitorHandle;
diff --git a/src/platform/nm-fake-platform.c b/src/platform/nm-fake-platform.c
index 4af847221a..3726518bf5 100644
--- a/src/platform/nm-fake-platform.c
+++ b/src/platform/nm-fake-platform.c
@@ -38,6 +38,38 @@
/*****************************************************************************/
+typedef struct {
+ NMPlatformLink link;
+
+ char *udi;
+ NMPObject *lnk;
+ struct in6_addr ip6_lladdr;
+} NMFakePlatformLink;
+
+typedef struct {
+ GHashTable *options;
+ GArray *links;
+ GArray *ip4_addresses;
+ GArray *ip6_addresses;
+ GArray *ip4_routes;
+ GArray *ip6_routes;
+} NMFakePlatformPrivate;
+
+struct _NMFakePlatform {
+ NMPlatform parent;
+ NMFakePlatformPrivate _priv;
+};
+
+struct _NMFakePlatformClass {
+ NMPlatformClass parent;
+};
+
+G_DEFINE_TYPE (NMFakePlatform, nm_fake_platform, NM_TYPE_PLATFORM)
+
+#define NM_FAKE_PLATFORM_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMFakePlatform, NM_IS_FAKE_PLATFORM)
+
+/*****************************************************************************/
+
#define _NMLOG_PREFIX_NAME "platform-fake"
#define _NMLOG_DOMAIN LOGD_PLATFORM
#define _NMLOG(level, ...) _LOG(level, _NMLOG_DOMAIN, platform, __VA_ARGS__)
@@ -64,29 +96,6 @@
/*****************************************************************************/
-typedef struct {
- GHashTable *options;
- GArray *links;
- GArray *ip4_addresses;
- GArray *ip6_addresses;
- GArray *ip4_routes;
- GArray *ip6_routes;
-} NMFakePlatformPrivate;
-
-typedef struct {
- NMPlatformLink link;
-
- char *udi;
- NMPObject *lnk;
- struct in6_addr ip6_lladdr;
-} NMFakePlatformLink;
-
-#define NM_FAKE_PLATFORM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_FAKE_PLATFORM, NMFakePlatformPrivate))
-
-G_DEFINE_TYPE (NMFakePlatform, nm_fake_platform, NM_TYPE_PLATFORM)
-
-/*****************************************************************************/
-
static void link_changed (NMPlatform *platform, NMFakePlatformLink *device, gboolean raise_signal);
static gboolean ip6_address_add (NMPlatform *platform,
@@ -112,7 +121,7 @@ _ip4_address_equal_peer_net (in_addr_t peer1, in_addr_t peer2, guint8 plen)
static gboolean
sysctl_set (NMPlatform *platform, const char *path, const char *value)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
g_hash_table_insert (priv->options, g_strdup (path), g_strdup (value));
@@ -122,7 +131,7 @@ sysctl_set (NMPlatform *platform, const char *path, const char *value)
static char *
sysctl_get (NMPlatform *platform, const char *path)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
return g_strdup (g_hash_table_lookup (priv->options, path));
}
@@ -186,7 +195,7 @@ link_init (NMFakePlatformLink *device, int ifindex, int type, const char *name)
static NMFakePlatformLink *
link_get (NMPlatform *platform, int ifindex)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMFakePlatformLink *device;
if (ifindex >= priv->links->len)
@@ -204,7 +213,7 @@ not_found:
static GArray *
link_get_all (NMPlatform *platform)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
GArray *links = g_array_sized_new (TRUE, TRUE, sizeof (NMPlatformLink), priv->links->len);
int i;
@@ -226,7 +235,7 @@ _nm_platform_link_get (NMPlatform *platform, int ifindex)
static const NMPlatformLink *
_nm_platform_link_get_by_ifname (NMPlatform *platform, const char *ifname)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
guint i;
for (i = 0; i < priv->links->len; i++) {
@@ -243,7 +252,7 @@ _nm_platform_link_get_by_address (NMPlatform *platform,
gconstpointer address,
size_t length)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
guint i;
if ( length == 0
@@ -296,7 +305,7 @@ link_add (NMPlatform *platform,
size_t address_len,
const NMPlatformLink **out_link)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMFakePlatformLink device;
NMFakePlatformLink *new_device;
@@ -325,7 +334,7 @@ link_add (NMPlatform *platform,
static gboolean
link_delete (NMPlatform *platform, int ifindex)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMFakePlatformLink *device = link_get (platform, ifindex);
NMPlatformLink deleted_device;
int i;
@@ -378,7 +387,7 @@ link_get_type_name (NMPlatform *platform, int ifindex)
static void
link_changed (NMPlatform *platform, NMFakePlatformLink *device, gboolean raise_signal)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
if (raise_signal)
@@ -844,7 +853,7 @@ mesh_set_ssid (NMPlatform *platform, int ifindex, const guint8 *ssid, gsize len)
static GArray *
ip4_address_get_all (NMPlatform *platform, int ifindex)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
GArray *addresses;
NMPlatformIP4Address *address;
int count = 0, i;
@@ -871,7 +880,7 @@ ip4_address_get_all (NMPlatform *platform, int ifindex)
static GArray *
ip6_address_get_all (NMPlatform *platform, int ifindex)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
GArray *addresses;
NMPlatformIP6Address *address;
int count = 0, i;
@@ -907,7 +916,7 @@ ip4_address_add (NMPlatform *platform,
guint32 flags,
const char *label)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMPlatformIP4Address address;
int i;
@@ -958,7 +967,7 @@ ip6_address_add (NMPlatform *platform,
guint32 preferred,
guint32 flags)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMPlatformIP6Address address;
int i;
@@ -998,7 +1007,7 @@ ip6_address_add (NMPlatform *platform,
static gboolean
ip4_address_delete (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 plen, in_addr_t peer_address)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
for (i = 0; i < priv->ip4_addresses->len; i++) {
@@ -1023,7 +1032,7 @@ ip4_address_delete (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 pl
static gboolean
ip6_address_delete (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 plen)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
for (i = 0; i < priv->ip6_addresses->len; i++) {
@@ -1047,7 +1056,7 @@ ip6_address_delete (NMPlatform *platform, int ifindex, struct in6_addr addr, gui
static const NMPlatformIP4Address *
ip4_address_get (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 plen, in_addr_t peer_address)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
for (i = 0; i < priv->ip4_addresses->len; i++) {
@@ -1066,7 +1075,7 @@ ip4_address_get (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 plen,
static const NMPlatformIP6Address *
ip6_address_get (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 plen)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
for (i = 0; i < priv->ip6_addresses->len; i++) {
@@ -1086,7 +1095,7 @@ ip6_address_get (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8
static GArray *
ip4_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags flags)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
GArray *routes;
NMPlatformIP4Route *route;
guint i;
@@ -1116,7 +1125,7 @@ ip4_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags fl
static GArray *
ip6_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags flags)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
GArray *routes;
NMPlatformIP6Route *route;
guint i;
@@ -1146,7 +1155,7 @@ ip6_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags fl
static gboolean
ip4_route_delete (NMPlatform *platform, int ifindex, in_addr_t network, guint8 plen, guint32 metric)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
for (i = 0; i < priv->ip4_routes->len; i++) {
@@ -1170,7 +1179,7 @@ ip4_route_delete (NMPlatform *platform, int ifindex, in_addr_t network, guint8 p
static gboolean
ip6_route_delete (NMPlatform *platform, int ifindex, struct in6_addr network, guint8 plen, guint32 metric)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
metric = nm_utils_ip6_route_metric_normalize (metric);
@@ -1198,7 +1207,7 @@ ip4_route_add (NMPlatform *platform, int ifindex, NMIPConfigSource source,
in_addr_t network, guint8 plen, in_addr_t gateway,
in_addr_t pref_src, guint32 metric, guint32 mss)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMPlatformIP4Route route;
guint i;
guint8 scope;
@@ -1266,7 +1275,7 @@ ip6_route_add (NMPlatform *platform, int ifindex, NMIPConfigSource source,
struct in6_addr network, guint8 plen, struct in6_addr gateway,
guint32 metric, guint32 mss)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
NMPlatformIP6Route route;
guint i;
@@ -1330,7 +1339,7 @@ ip6_route_add (NMPlatform *platform, int ifindex, NMIPConfigSource source,
static const NMPlatformIP4Route *
ip4_route_get (NMPlatform *platform, int ifindex, in_addr_t network, guint8 plen, guint32 metric)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
for (i = 0; i < priv->ip4_routes->len; i++) {
@@ -1349,7 +1358,7 @@ ip4_route_get (NMPlatform *platform, int ifindex, in_addr_t network, guint8 plen
static const NMPlatformIP6Route *
ip6_route_get (NMPlatform *platform, int ifindex, struct in6_addr network, guint8 plen, guint32 metric)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform);
int i;
metric = nm_utils_ip6_route_metric_normalize (metric);
@@ -1404,9 +1413,9 @@ nm_fake_platform_setup (void)
}
static void
-nm_fake_platform_finalize (GObject *object)
+finalize (GObject *object)
{
- NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (object);
+ NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) object);
int i;
g_hash_table_unref (priv->options);
@@ -1431,10 +1440,7 @@ nm_fake_platform_class_init (NMFakePlatformClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMPlatformClass *platform_class = NM_PLATFORM_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMFakePlatformPrivate));
-
- /* virtual methods */
- object_class->finalize = nm_fake_platform_finalize;
+ object_class->finalize = finalize;
platform_class->sysctl_set = sysctl_set;
platform_class->sysctl_get = sysctl_get;
diff --git a/src/platform/nm-fake-platform.h b/src/platform/nm-fake-platform.h
index 044ee72c1a..8f42d11a40 100644
--- a/src/platform/nm-fake-platform.h
+++ b/src/platform/nm-fake-platform.h
@@ -30,17 +30,8 @@
#define NM_IS_FAKE_PLATFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FAKE_PLATFORM))
#define NM_FAKE_PLATFORM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FAKE_PLATFORM, NMFakePlatformClass))
-/*****************************************************************************/
-
-typedef struct {
- NMPlatform parent;
-} NMFakePlatform;
-
-typedef struct {
- NMPlatformClass parent;
-} NMFakePlatformClass;
-
-/*****************************************************************************/
+typedef struct _NMFakePlatform NMFakePlatform;
+typedef struct _NMFakePlatformClass NMFakePlatformClass;
GType nm_fake_platform_get_type (void);
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index ec9aa38aaa..9a22f02910 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -2404,9 +2404,7 @@ typedef struct {
gint *out_refresh_all_in_progess;
} DelayedActionWaitForNlResponseData;
-typedef struct _NMLinuxPlatformPrivate NMLinuxPlatformPrivate;
-
-struct _NMLinuxPlatformPrivate {
+typedef struct {
struct nl_sock *nlh;
guint32 nlh_seq_next;
#ifdef NM_MORE_LOGGING
@@ -2441,18 +2439,27 @@ struct _NMLinuxPlatformPrivate {
GHashTable *prune_candidates;
GHashTable *wifi_data;
+} NMLinuxPlatformPrivate;
+
+struct _NMLinuxPlatform {
+ NMPlatform parent;
+ NMLinuxPlatformPrivate _priv;
};
+struct _NMLinuxPlatformClass {
+ NMPlatformClass parent;
+};
+
+G_DEFINE_TYPE (NMLinuxPlatform, nm_linux_platform, NM_TYPE_PLATFORM)
+
static inline NMLinuxPlatformPrivate *
NM_LINUX_PLATFORM_GET_PRIVATE (const void *self)
{
nm_assert (NM_IS_LINUX_PLATFORM (self));
- return ((NMLinuxPlatform *) self)->priv;
+ return &(((NMLinuxPlatform *) self)->_priv);
}
-G_DEFINE_TYPE (NMLinuxPlatform, nm_linux_platform, NM_TYPE_PLATFORM)
-
NMPlatform *
nm_linux_platform_new (gboolean netns_support)
{
@@ -6357,14 +6364,12 @@ handle_udev_event (GUdevClient *client,
static void
nm_linux_platform_init (NMLinuxPlatform *self)
{
- NMLinuxPlatformPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_LINUX_PLATFORM, NMLinuxPlatformPrivate);
+ NMLinuxPlatformPrivate *priv = NM_LINUX_PLATFORM_GET_PRIVATE (self);
gboolean use_udev;
use_udev = nmp_netns_is_initial ()
&& access ("/sys", W_OK) == 0;
- self->priv = priv;
-
priv->nlh_seq_next = 1;
priv->cache = nmp_cache_new (use_udev);
priv->delayed_action.list_master_connected = g_ptr_array_new ();
@@ -6496,7 +6501,7 @@ dispose (GObject *object)
}
static void
-nm_linux_platform_finalize (GObject *object)
+finalize (GObject *object)
{
NMLinuxPlatformPrivate *priv = NM_LINUX_PLATFORM_GET_PRIVATE (object);
@@ -6506,7 +6511,6 @@ nm_linux_platform_finalize (GObject *object)
g_ptr_array_unref (priv->delayed_action.list_refresh_link);
g_array_unref (priv->delayed_action.list_wait_for_nl_response);
- /* Free netlink resources */
g_source_remove (priv->event_id);
g_io_channel_unref (priv->event_channel);
nl_socket_free (priv->nlh);
@@ -6521,20 +6525,15 @@ nm_linux_platform_finalize (GObject *object)
G_OBJECT_CLASS (nm_linux_platform_parent_class)->finalize (object);
}
-#define OVERRIDE(function) platform_class->function = function
-
static void
nm_linux_platform_class_init (NMLinuxPlatformClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMPlatformClass *platform_class = NM_PLATFORM_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMLinuxPlatformPrivate));
-
- /* virtual methods */
object_class->constructed = constructed;
object_class->dispose = dispose;
- object_class->finalize = nm_linux_platform_finalize;
+ object_class->finalize = finalize;
platform_class->sysctl_set = sysctl_set;
platform_class->sysctl_get = sysctl_get;
diff --git a/src/platform/nm-linux-platform.h b/src/platform/nm-linux-platform.h
index becdb2db2a..b3272aae68 100644
--- a/src/platform/nm-linux-platform.h
+++ b/src/platform/nm-linux-platform.h
@@ -30,21 +30,8 @@
#define NM_IS_LINUX_PLATFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_LINUX_PLATFORM))
#define NM_LINUX_PLATFORM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_LINUX_PLATFORM, NMLinuxPlatformClass))
-/*****************************************************************************/
-
-struct _NMLinuxPlatformPrivate;
-
-typedef struct {
- NMPlatform parent;
-
- struct _NMLinuxPlatformPrivate *priv;
-} NMLinuxPlatform;
-
-typedef struct {
- NMPlatformClass parent;
-} NMLinuxPlatformClass;
-
-/*****************************************************************************/
+typedef struct _NMLinuxPlatform NMLinuxPlatform;
+typedef struct _NMLinuxPlatformClass NMLinuxPlatformClass;
GType nm_linux_platform_get_type (void);
diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
index a53891c4d7..0f0b9a5939 100644
--- a/src/ppp-manager/nm-ppp-manager.c
+++ b/src/ppp-manager/nm-ppp-manager.c
@@ -21,6 +21,8 @@
#include "nm-default.h"
+#include "nm-ppp-manager.h"
+
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
@@ -28,7 +30,6 @@
#include <unistd.h>
#include <arpa/inet.h>
#include <stdlib.h>
-
#include <errno.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
@@ -43,28 +44,36 @@
#include <linux/if_ppp.h>
#include "NetworkManagerUtils.h"
-#include "nm-ppp-manager.h"
#include "nm-platform.h"
#include "nm-core-internal.h"
+#include "nm-act-request.h"
+#include "nm-ip4-config.h"
+#include "nm-ip6-config.h"
+#include "nm-pppd-plugin.h"
+#include "nm-ppp-status.h"
#include "nmdbus-ppp-manager.h"
-#define _NMLOG_DOMAIN LOGD_PPP
-#define _NMLOG_PREFIX_NAME "ppp-manager"
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), _NMLOG_DOMAIN, \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
-
-static void _ppp_cleanup (NMPPPManager *manager);
-static void _ppp_kill (NMPPPManager *manager);
-
#define NM_PPPD_PLUGIN PPPD_PLUGIN_DIR "/nm-pppd-plugin.so"
#define PPP_MANAGER_SECRET_TRIES "ppp-manager-secret-tries"
+/*****************************************************************************/
+
+enum {
+ STATE_CHANGED,
+ IP4_CONFIG,
+ IP6_CONFIG,
+ STATS,
+
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_PARENT_IFACE,
+);
+
typedef struct {
GPid pid;
@@ -84,99 +93,35 @@ typedef struct {
guint monitor_id;
} NMPPPManagerPrivate;
-#define NM_PPP_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_PPP_MANAGER, NMPPPManagerPrivate))
-
-G_DEFINE_TYPE (NMPPPManager, nm_ppp_manager, NM_TYPE_EXPORTED_OBJECT)
-
-enum {
- STATE_CHANGED,
- IP4_CONFIG,
- IP6_CONFIG,
- STATS,
-
- LAST_SIGNAL
+struct _NMPPPManager {
+ NMExportedObject parent;
+ NMPPPManagerPrivate _priv;
};
-static guint signals[LAST_SIGNAL] = { 0 };
-
-enum {
- PROP_0,
- PROP_PARENT_IFACE,
- LAST_PROP
+struct _NMPPPManagerClass {
+ NMExportedObjectClass parent;
};
-static void
-nm_ppp_manager_init (NMPPPManager *manager)
-{
- NM_PPP_MANAGER_GET_PRIVATE (manager)->monitor_fd = -1;
-}
-
-static void
-dispose (GObject *object)
-{
- NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object);
-
- _ppp_cleanup (NM_PPP_MANAGER (object));
- _ppp_kill (NM_PPP_MANAGER (object));
-
- g_clear_object (&priv->act_req);
-
- G_OBJECT_CLASS (nm_ppp_manager_parent_class)->dispose (object);
-}
-
-static void
-finalize (GObject *object)
-{
- NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object);
-
- g_free (priv->ip_iface);
- g_free (priv->parent_iface);
+G_DEFINE_TYPE (NMPPPManager, nm_ppp_manager, NM_TYPE_EXPORTED_OBJECT)
- G_OBJECT_CLASS (nm_ppp_manager_parent_class)->finalize (object);
-}
+#define NM_PPP_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMPPPManager, NM_IS_PPP_MANAGER)
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_PARENT_IFACE:
- g_free (priv->parent_iface);
- priv->parent_iface = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object);
+/*****************************************************************************/
- switch (prop_id) {
- case PROP_PARENT_IFACE:
- g_value_set_string (value, priv->parent_iface);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
+#define _NMLOG_DOMAIN LOGD_PPP
+#define _NMLOG_PREFIX_NAME "ppp-manager"
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), _NMLOG_DOMAIN, \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
-NMPPPManager *
-nm_ppp_manager_new (const char *iface)
-{
- g_return_val_if_fail (iface != NULL, NULL);
+/*****************************************************************************/
- return (NMPPPManager *) g_object_new (NM_TYPE_PPP_MANAGER,
- NM_PPP_MANAGER_PARENT_IFACE, iface,
- NULL);
-}
+static void _ppp_cleanup (NMPPPManager *manager);
+static void _ppp_kill (NMPPPManager *manager);
/*****************************************************************************/
@@ -587,80 +532,8 @@ impl_ppp_manager_set_ip6_config (NMPPPManager *manager,
g_dbus_method_invocation_return_value (context, NULL);
}
-static void
-nm_ppp_manager_class_init (NMPPPManagerClass *manager_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (manager_class);
- NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (manager_class);
-
- g_type_class_add_private (manager_class, sizeof (NMPPPManagerPrivate));
-
- exported_object_class->export_path = NM_DBUS_PATH "/PPP";
- exported_object_class->export_on_construction = TRUE;
-
- object_class->dispose = dispose;
- object_class->finalize = finalize;
- object_class->get_property = get_property;
- object_class->set_property = set_property;
-
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_PARENT_IFACE,
- g_param_spec_string (NM_PPP_MANAGER_PARENT_IFACE, "", "",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
-
- /* signals */
- signals[STATE_CHANGED] =
- g_signal_new (NM_PPP_MANAGER_STATE_CHANGED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMPPPManagerClass, state_changed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
-
- signals[IP4_CONFIG] =
- g_signal_new ("ip4-config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMPPPManagerClass, ip4_config),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2,
- G_TYPE_STRING,
- G_TYPE_OBJECT);
-
- signals[IP6_CONFIG] =
- g_signal_new ("ip6-config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMPPPManagerClass, ip6_config),
- NULL, NULL, NULL,
- G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_OBJECT);
-
- signals[STATS] =
- g_signal_new ("stats",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMPPPManagerClass, stats),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2,
- G_TYPE_UINT, G_TYPE_UINT);
-
- nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (manager_class),
- NMDBUS_TYPE_PPP_MANAGER_SKELETON,
- "NeedSecrets", impl_ppp_manager_need_secrets,
- "SetIp4Config", impl_ppp_manager_set_ip4_config,
- "SetIp6Config", impl_ppp_manager_set_ip6_config,
- "SetState", impl_ppp_manager_set_state,
- NULL);
-}
-
/*****************************************************************************/
-
-
typedef struct {
GPtrArray *array;
GStringChunk *chunk;
@@ -1239,3 +1112,149 @@ nm_ppp_manager_stop (NMPPPManager *manager,
ctx);
priv->pid = 0;
}
+
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE ((NMPPPManager *) object);
+
+ switch (prop_id) {
+ case PROP_PARENT_IFACE:
+ g_value_set_string (value, priv->parent_iface);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE ((NMPPPManager *) object);
+
+ switch (prop_id) {
+ case PROP_PARENT_IFACE:
+ g_free (priv->parent_iface);
+ priv->parent_iface = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
+nm_ppp_manager_init (NMPPPManager *manager)
+{
+ NM_PPP_MANAGER_GET_PRIVATE (manager)->monitor_fd = -1;
+}
+
+NMPPPManager *
+nm_ppp_manager_new (const char *iface)
+{
+ g_return_val_if_fail (iface != NULL, NULL);
+
+ return (NMPPPManager *) g_object_new (NM_TYPE_PPP_MANAGER,
+ NM_PPP_MANAGER_PARENT_IFACE, iface,
+ NULL);
+}
+
+static void
+dispose (GObject *object)
+{
+ NMPPPManager *self = (NMPPPManager *) object;
+ NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self);
+
+ _ppp_cleanup (self);
+ _ppp_kill (self);
+
+ g_clear_object (&priv->act_req);
+
+ G_OBJECT_CLASS (nm_ppp_manager_parent_class)->dispose (object);
+}
+
+static void
+finalize (GObject *object)
+{
+ NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE ((NMPPPManager *) object);
+
+ g_free (priv->ip_iface);
+ g_free (priv->parent_iface);
+
+ G_OBJECT_CLASS (nm_ppp_manager_parent_class)->finalize (object);
+}
+
+static void
+nm_ppp_manager_class_init (NMPPPManagerClass *manager_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (manager_class);
+ NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (manager_class);
+
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
+ object_class->get_property = get_property;
+ object_class->set_property = set_property;
+
+ exported_object_class->export_path = NM_DBUS_PATH "/PPP";
+ exported_object_class->export_on_construction = TRUE;
+
+ obj_properties[PROP_PARENT_IFACE] =
+ g_param_spec_string (NM_PPP_MANAGER_PARENT_IFACE, "", "",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
+ signals[STATE_CHANGED] =
+ g_signal_new (NM_PPP_MANAGER_STATE_CHANGED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_UINT);
+
+ signals[IP4_CONFIG] =
+ g_signal_new ("ip4-config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_STRING,
+ G_TYPE_OBJECT);
+
+ signals[IP6_CONFIG] =
+ g_signal_new ("ip6-config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_OBJECT);
+
+ signals[STATS] =
+ g_signal_new ("stats",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT, G_TYPE_UINT);
+
+ nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (manager_class),
+ NMDBUS_TYPE_PPP_MANAGER_SKELETON,
+ "NeedSecrets", impl_ppp_manager_need_secrets,
+ "SetIp4Config", impl_ppp_manager_set_ip4_config,
+ "SetIp6Config", impl_ppp_manager_set_ip6_config,
+ "SetState", impl_ppp_manager_set_state,
+ NULL);
+}
+
diff --git a/src/ppp-manager/nm-ppp-manager.h b/src/ppp-manager/nm-ppp-manager.h
index 796620754d..da1fdb5539 100644
--- a/src/ppp-manager/nm-ppp-manager.h
+++ b/src/ppp-manager/nm-ppp-manager.h
@@ -22,16 +22,6 @@
#ifndef __NETWORKMANAGER_PPP_MANAGER_H__
#define __NETWORKMANAGER_PPP_MANAGER_H__
-
-#include "nm-exported-object.h"
-#include "nm-ppp-status.h"
-#include "nm-act-request.h"
-#include "nm-connection.h"
-#include "nm-ip4-config.h"
-#include "nm-ip6-config.h"
-#include "nm-pppd-plugin.h"
-#include "NetworkManagerUtils.h"
-
#define NM_TYPE_PPP_MANAGER (nm_ppp_manager_get_type ())
#define NM_PPP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_PPP_MANAGER, NMPPPManager))
#define NM_PPP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_PPP_MANAGER, NMPPPManagerClass))
@@ -41,25 +31,10 @@
#define NM_PPP_MANAGER_PARENT_IFACE "parent-iface"
-/* signals */
#define NM_PPP_MANAGER_STATE_CHANGED "state-changed"
-typedef struct {
- NMExportedObject parent;
-} NMPPPManager;
-
-typedef struct {
- NMExportedObjectClass parent;
-
- /* Signals */
- void (*state_changed) (NMPPPManager *manager, NMPPPStatus status);
- void (*ip4_config) (NMPPPManager *manager, const char *iface, NMIP4Config *config);
- void (*ip6_config) (NMPPPManager *manager,
- const char *iface,
- const NMUtilsIPv6IfaceId *iid,
- NMIP6Config *config);
- void (*stats) (NMPPPManager *manager, guint32 in_bytes, guint32 out_bytes);
-} NMPPPManagerClass;
+typedef struct _NMPPPManager NMPPPManager;
+typedef struct _NMPPPManagerClass NMPPPManagerClass;
GType nm_ppp_manager_get_type (void);
diff --git a/src/rdisc/nm-fake-rdisc.c b/src/rdisc/nm-fake-rdisc.c
index 6d8c696224..aee94a39be 100644
--- a/src/rdisc/nm-fake-rdisc.c
+++ b/src/rdisc/nm-fake-rdisc.c
@@ -20,14 +20,17 @@
#include "nm-default.h"
+#include "nm-fake-rdisc.h"
+
#include <string.h>
#include <arpa/inet.h>
-#include "nm-fake-rdisc.h"
#include "nm-rdisc-private.h"
#define _NMLOG_PREFIX_NAME "rdisc-fake"
+/*****************************************************************************/
+
typedef struct {
guint id;
guint when;
@@ -51,20 +54,31 @@ typedef struct {
NMRDiscPreference preference;
} FakePrefix;
+/*****************************************************************************/
+
+enum {
+ RS_SENT,
+ LAST_SIGNAL,
+};
+static guint signals[LAST_SIGNAL] = { 0 };
+
typedef struct {
guint receive_ra_id;
GSList *ras;
} NMFakeRDiscPrivate;
-#define NM_FAKE_RDISC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_FAKE_RDISC, NMFakeRDiscPrivate))
+struct _NMFakeRRDisc {
+ NMRDisc parent;
+ NMFakeRDiscPrivate _priv;
+};
+
+struct _NMFakeRRDiscClass {
+ NMRDiscClass parent;
+};
G_DEFINE_TYPE (NMFakeRDisc, nm_fake_rdisc, NM_TYPE_RDISC)
-enum {
- RS_SENT,
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
+#define NM_FAKE_RDISC_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMFakeRDisc, NM_IS_FAKE_RDISC)
/*****************************************************************************/
@@ -328,12 +342,12 @@ receive_ra (gpointer user_data)
static void
start (NMRDisc *rdisc)
{
- NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (rdisc);
+ NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE ((NMFakeRDisc *) rdisc);
FakeRa *ra;
/* Queue up the first fake RA */
g_assert (priv->ras);
- ra = NM_FAKE_RDISC_GET_PRIVATE (rdisc)->ras->data;
+ ra = priv->ras->data;
g_assert (!priv->receive_ra_id);
priv->receive_ra_id = g_timeout_add_seconds (ra->when, receive_ra, rdisc);
@@ -348,6 +362,11 @@ nm_fake_rdisc_emit_new_ras (NMFakeRDisc *self)
/*****************************************************************************/
+static void
+nm_fake_rdisc_init (NMFakeRDisc *fake_rdisc)
+{
+}
+
NMRDisc *
nm_fake_rdisc_new (int ifindex, const char *ifname)
{
@@ -358,14 +377,9 @@ nm_fake_rdisc_new (int ifindex, const char *ifname)
}
static void
-nm_fake_rdisc_init (NMFakeRDisc *fake_rdisc)
-{
-}
-
-static void
dispose (GObject *object)
{
- NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (object);
+ NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE ((NMFakeRDisc *) object);
nm_clear_g_source (&priv->receive_ra_id);
@@ -381,9 +395,8 @@ nm_fake_rdisc_class_init (NMFakeRDiscClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
NMRDiscClass *rdisc_class = NM_RDISC_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMFakeRDiscPrivate));
-
object_class->dispose = dispose;
+
rdisc_class->start = start;
rdisc_class->send_rs = send_rs;
diff --git a/src/rdisc/nm-fake-rdisc.h b/src/rdisc/nm-fake-rdisc.h
index 27557e9d72..5f6509568d 100644
--- a/src/rdisc/nm-fake-rdisc.h
+++ b/src/rdisc/nm-fake-rdisc.h
@@ -32,15 +32,8 @@
#define NM_FAKE_RDISC_RS_SENT "rs-sent"
-typedef struct {
- NMRDisc parent;
-} NMFakeRDisc;
-
-typedef struct {
- NMRDiscClass parent;
-} NMFakeRDiscClass;
-
-/*****************************************************************************/
+typedef struct _NMFakeRRDisc NMFakeRDisc;
+typedef struct _NMFakeRRDiscClass NMFakeRDiscClass;
GType nm_fake_rdisc_get_type (void);
diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
index 46378ffeca..fa5c59d54a 100644
--- a/src/settings/nm-agent-manager.c
+++ b/src/settings/nm-agent-manager.c
@@ -40,7 +40,47 @@
#include "nmdbus-agent-manager.h"
-NM_DEFINE_SINGLETON_INSTANCE (NMAgentManager);
+/*****************************************************************************/
+
+enum {
+ AGENT_REGISTERED,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+typedef struct {
+ NMAuthManager *auth_mgr;
+
+ /* Auth chains for checking agent permissions */
+ GSList *chains;
+
+ /* Hashed by owner name, not identifier, since two agents in different
+ * sessions can use the same identifier.
+ */
+ GHashTable *agents;
+
+ GHashTable *requests;
+} NMAgentManagerPrivate;
+
+struct _NMAgentManager {
+ NMExportedObject parent;
+ NMAgentManagerPrivate _priv;
+};
+
+struct _NMAgentManagerClass {
+ NMExportedObjectClass parent;
+};
+
+G_DEFINE_TYPE (NMAgentManager, nm_agent_manager, NM_TYPE_EXPORTED_OBJECT)
+
+#define NM_AGENT_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAgentManager, NM_IS_AGENT_MANAGER)
+
+/*****************************************************************************/
+
+NM_DEFINE_SINGLETON_GETTER (NMAgentManager, nm_agent_manager_get, NM_TYPE_AGENT_MANAGER);
+
+/*****************************************************************************/
#define _NMLOG_PREFIX_NAME "agent-manager"
#define _NMLOG_DOMAIN LOGD_AGENTS
@@ -78,6 +118,24 @@ NM_DEFINE_SINGLETON_INSTANCE (NMAgentManager);
"/\"", (req)->con.get.setting_name, "\"", \
((req)->request_type == REQUEST_TYPE_CON_GET ? "/(none)" : _request_type_to_string ((req)->request_type, FALSE)))
+/*****************************************************************************/
+
+typedef struct _NMAgentManagerCallId Request;
+
+static void request_add_agent (Request *req, NMSecretAgent *agent);
+
+static void request_remove_agent (Request *req, NMSecretAgent *agent, GSList **pending_reqs);
+
+static void request_next_agent (Request *req);
+
+static void _con_get_request_start (Request *req);
+static void _con_save_request_start (Request *req);
+static void _con_del_request_start (Request *req);
+
+static gboolean _con_get_try_complete_early (Request *req);
+
+/*****************************************************************************/
+
typedef enum {
REQUEST_TYPE_INVALID,
REQUEST_TYPE_CON_GET,
@@ -96,48 +154,6 @@ _request_type_to_string (RequestType request_type, gboolean verbose)
}
}
-G_DEFINE_TYPE (NMAgentManager, nm_agent_manager, NM_TYPE_EXPORTED_OBJECT)
-
-#define NM_AGENT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
- NM_TYPE_AGENT_MANAGER, \
- NMAgentManagerPrivate))
-
-typedef struct {
- NMAuthManager *auth_mgr;
-
- /* Auth chains for checking agent permissions */
- GSList *chains;
-
- /* Hashed by owner name, not identifier, since two agents in different
- * sessions can use the same identifier.
- */
- GHashTable *agents;
-
- GHashTable *requests;
-} NMAgentManagerPrivate;
-
-enum {
- AGENT_REGISTERED,
-
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
-
-
-typedef struct _NMAgentManagerCallId Request;
-
-static void request_add_agent (Request *req, NMSecretAgent *agent);
-
-static void request_remove_agent (Request *req, NMSecretAgent *agent, GSList **pending_reqs);
-
-static void request_next_agent (Request *req);
-
-static void _con_get_request_start (Request *req);
-static void _con_save_request_start (Request *req);
-static void _con_del_request_start (Request *req);
-
-static gboolean _con_get_try_complete_early (Request *req);
-
/*****************************************************************************/
static gboolean
@@ -582,7 +598,7 @@ req_complete_cancel (Request *req, gboolean is_disposing)
gs_free_error GError *error = NULL;
nm_assert (req && req->self);
- nm_assert (!g_hash_table_contains (NM_AGENT_MANAGER_GET_PRIVATE (req->self)->requests, req));
+ nm_assert (!g_hash_table_contains (req->self->_priv.requests, req));
nm_utils_error_set_cancelled (&error, is_disposing, "NMAgentManager");
req_complete_release (req, NULL, NULL, NULL, error);
@@ -1550,8 +1566,6 @@ authority_changed_cb (NMAuthManager *auth_manager, NMAgentManager *self)
/*****************************************************************************/
-NM_DEFINE_SINGLETON_GETTER (NMAgentManager, nm_agent_manager_get, NM_TYPE_AGENT_MANAGER);
-
static void
nm_agent_manager_init (NMAgentManager *self)
{
@@ -1564,7 +1578,7 @@ nm_agent_manager_init (NMAgentManager *self)
static void
constructed (GObject *object)
{
- NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (object);
+ NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE ((NMAgentManager *) object);
G_OBJECT_CLASS (nm_agent_manager_parent_class)->constructed (object);
@@ -1583,7 +1597,7 @@ constructed (GObject *object)
static void
dispose (GObject *object)
{
- NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (object);
+ NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE ((NMAgentManager *) object);
if (priv->requests) {
GHashTableIter iter;
@@ -1626,24 +1640,20 @@ nm_agent_manager_class_init (NMAgentManagerClass *agent_manager_class)
GObjectClass *object_class = G_OBJECT_CLASS (agent_manager_class);
NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (agent_manager_class);
- g_type_class_add_private (agent_manager_class, sizeof (NMAgentManagerPrivate));
-
exported_object_class->export_path = NM_DBUS_PATH_AGENT_MANAGER;
- /* virtual methods */
object_class->constructed = constructed;
object_class->dispose = dispose;
- /* Signals */
signals[AGENT_REGISTERED] =
- g_signal_new ("agent-registered",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMAgentManagerClass, agent_registered),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("agent-registered",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (agent_manager_class),
NMDBUS_TYPE_AGENT_MANAGER_SKELETON,
diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h
index 8240a2b513..7f8126935f 100644
--- a/src/settings/nm-agent-manager.h
+++ b/src/settings/nm-agent-manager.h
@@ -33,19 +33,9 @@
#define NM_IS_AGENT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AGENT_MANAGER))
#define NM_AGENT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManagerClass))
-struct _NMAgentManagerCallId;
typedef struct _NMAgentManagerCallId *NMAgentManagerCallId;
-struct _NMAgentManager {
- NMExportedObject parent;
-};
-
-typedef struct {
- NMExportedObjectClass parent;
-
- /* Signals */
- void (*agent_registered) (NMAgentManager *agent_mgr, NMSecretAgent *agent);
-} NMAgentManagerClass;
+typedef struct _NMAgentManagerClass NMAgentManagerClass;
GType nm_agent_manager_get_type (void);
diff --git a/src/settings/nm-inotify-helper.c b/src/settings/nm-inotify-helper.c
index ce15246c5a..44a102b059 100644
--- a/src/settings/nm-inotify-helper.c
+++ b/src/settings/nm-inotify-helper.c
@@ -20,35 +20,51 @@
#include "nm-default.h"
+#include "nm-inotify-helper.h"
+
#include <unistd.h>
#include <string.h>
#include <sys/inotify.h>
#include <errno.h>
-#include "nm-inotify-helper.h"
#include "NetworkManagerUtils.h"
/* NOTE: this code should be killed once we depend on a new enough glib to
* include the patches from https://bugzilla.gnome.org/show_bug.cgi?id=532815
*/
-G_DEFINE_TYPE (NMInotifyHelper, nm_inotify_helper, G_TYPE_OBJECT)
+/*****************************************************************************/
-#define NM_INOTIFY_HELPER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_INOTIFY_HELPER, NMInotifyHelperPrivate))
+enum {
+ EVENT,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
int ifd;
-
GHashTable *wd_refs;
} NMInotifyHelperPrivate;
-/* Signals */
-enum {
- EVENT,
- LAST_SIGNAL
+struct _NMInotifyHelper {
+ GObject parent;
+ NMInotifyHelperPrivate _priv;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+struct _NMInotifyHelperClass {
+ GObjectClass parent;
+};
+
+G_DEFINE_TYPE (NMInotifyHelper, nm_inotify_helper, G_TYPE_OBJECT)
+
+#define NM_INOTIFY_HELPER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMInotifyHelper, NM_IS_INOTIFY_HELPER)
+
+/*****************************************************************************/
+
+NM_DEFINE_SINGLETON_GETTER (NMInotifyHelper, nm_inotify_helper_get, NM_TYPE_INOTIFY_HELPER);
+
+/*****************************************************************************/
int
nm_inotify_helper_add_watch (NMInotifyHelper *self, const char *path)
@@ -139,7 +155,7 @@ init_inotify (NMInotifyHelper *self)
/* Watch the inotify descriptor for file/directory change events */
channel = g_io_channel_unix_new (priv->ifd);
g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
- g_io_channel_set_encoding (channel, NULL, NULL);
+ g_io_channel_set_encoding (channel, NULL, NULL);
source_id = g_io_add_watch (channel,
G_IO_IN | G_IO_ERR,
@@ -149,7 +165,7 @@ init_inotify (NMInotifyHelper *self)
return TRUE;
}
-NM_DEFINE_SINGLETON_GETTER (NMInotifyHelper, nm_inotify_helper_get, NM_TYPE_INOTIFY_HELPER);
+/*****************************************************************************/
static void
nm_inotify_helper_init (NMInotifyHelper *self)
@@ -170,7 +186,7 @@ constructed (GObject *object)
static void
finalize (GObject *object)
{
- NMInotifyHelperPrivate *priv = NM_INOTIFY_HELPER_GET_PRIVATE (object);
+ NMInotifyHelperPrivate *priv = NM_INOTIFY_HELPER_GET_PRIVATE ((NMInotifyHelper *) object);
if (priv->ifd >= 0)
close (priv->ifd);
@@ -185,19 +201,15 @@ nm_inotify_helper_class_init (NMInotifyHelperClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (NMInotifyHelperPrivate));
-
- /* Virtual methods */
object_class->constructed = constructed;
object_class->finalize = finalize;
- /* Signals */
signals[EVENT] =
- g_signal_new ("event",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (NMInotifyHelperClass, event),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_STRING);
+ g_signal_new ("event",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_STRING);
}
diff --git a/src/settings/nm-inotify-helper.h b/src/settings/nm-inotify-helper.h
index 2ac9376cd8..2715f3eec5 100644
--- a/src/settings/nm-inotify-helper.h
+++ b/src/settings/nm-inotify-helper.h
@@ -18,10 +18,8 @@
* (C) Copyright 2008 Red Hat, Inc.
*/
-#ifndef __INOTIFY_HELPER_H__
-#define __INOTIFY_HELPER_H__
-
-#include <sys/inotify.h>
+#ifndef __NM_INOTIFY_HELPER_H__
+#define __NM_INOTIFY_HELPER_H__
/* NOTE: this code should be killed once we depend on a new enough glib to
* include the patches from https://bugzilla.gnome.org/show_bug.cgi?id=532815
@@ -34,16 +32,8 @@
#define NM_IS_INOTIFY_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_INOTIFY_HELPER))
#define NM_INOTIFY_HELPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_INOTIFY_HELPER, NMInotifyHelperClass))
-typedef struct {
- GObject parent;
-} NMInotifyHelper;
-
-typedef struct {
- GObjectClass parent;
-
- /* signals */
- void (* event) (NMInotifyHelper *helper, struct inotify_event *evt, const char *filename);
-} NMInotifyHelperClass;
+typedef struct _NMInotifyHelper NMInotifyHelper;
+typedef struct _NMInotifyHelperClass NMInotifyHelperClass;
GType nm_inotify_helper_get_type (void);
@@ -53,4 +43,4 @@ int nm_inotify_helper_add_watch (NMInotifyHelper *helper, const char *path);
void nm_inotify_helper_remove_watch (NMInotifyHelper *helper, int wd);
-#endif /* __INOTIFY_HELPER_H__ */
+#endif /* __NM_INOTIFY_HELPER_H__ */
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index cb58c2b044..06d261af86 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -74,23 +74,14 @@
#include "nm-audit-manager.h"
#include "NetworkManagerUtils.h"
#include "nm-dispatcher.h"
+#include "nm-inotify-helper.h"
#include "nmdbus-settings.h"
-#define _NMLOG_DOMAIN LOGD_SETTINGS
-#define _NMLOG_PREFIX_NAME "settings"
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), _NMLOG_DOMAIN, \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- _NMLOG_PREFIX_NAME": " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
+/*****************************************************************************/
-/* LINKER CRACKROCK */
#define EXPORT(sym) void * __export_##sym = &sym;
-#include "nm-inotify-helper.h"
EXPORT(nm_inotify_helper_get_type)
EXPORT(nm_inotify_helper_get)
EXPORT(nm_inotify_helper_add_watch)
@@ -99,7 +90,8 @@ EXPORT(nm_inotify_helper_remove_watch)
EXPORT(nm_settings_connection_get_type)
EXPORT(nm_settings_connection_replace_settings)
EXPORT(nm_settings_connection_replace_and_commit)
-/* END LINKER CRACKROCK */
+
+/*****************************************************************************/
#define HOSTNAMED_SERVICE_NAME "org.freedesktop.hostname1"
#define HOSTNAMED_SERVICE_PATH "/org/freedesktop/hostname1"
@@ -127,17 +119,27 @@ EXPORT(nm_settings_connection_replace_and_commit)
#define HOSTNAME_FILE HOSTNAME_FILE_DEFAULT
#endif
-static void claim_connection (NMSettings *self,
- NMSettingsConnection *connection);
+/*****************************************************************************/
-static void unmanaged_specs_changed (NMSettingsPlugin *config, gpointer user_data);
-static void unrecognized_specs_changed (NMSettingsPlugin *config, gpointer user_data);
+NM_GOBJECT_PROPERTIES_DEFINE (NMSettings,
+ PROP_UNMANAGED_SPECS,
+ PROP_HOSTNAME,
+ PROP_CAN_MODIFY,
+ PROP_CONNECTIONS,
+ PROP_STARTUP_COMPLETE,
+);
-static void connection_ready_changed (NMSettingsConnection *conn,
- GParamSpec *pspec,
- gpointer user_data);
+enum {
+ CONNECTION_ADDED,
+ CONNECTION_UPDATED,
+ CONNECTION_REMOVED,
+ CONNECTION_VISIBILITY_CHANGED,
+ AGENT_REGISTERED,
+ NEW_CONNECTION, /* exported, not used internally */
+ LAST_SIGNAL
+};
-G_DEFINE_TYPE (NMSettings, nm_settings, NM_TYPE_EXPORTED_OBJECT);
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
NMAgentManager *agent_mgr;
@@ -166,27 +168,44 @@ typedef struct {
} hostname;
} NMSettingsPrivate;
-#define NM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTINGS, NMSettingsPrivate))
-
-enum {
- CONNECTION_ADDED,
- CONNECTION_UPDATED,
- CONNECTION_REMOVED,
- CONNECTION_VISIBILITY_CHANGED,
- AGENT_REGISTERED,
+struct _NMSettings {
+ NMExportedObject parent;
+ NMSettingsPrivate _priv;
+};
- NEW_CONNECTION, /* exported, not used internally */
- LAST_SIGNAL
+struct _NMSettingsClass {
+ NMExportedObjectClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
-NM_GOBJECT_PROPERTIES_DEFINE (NMSettings,
- PROP_UNMANAGED_SPECS,
- PROP_HOSTNAME,
- PROP_CAN_MODIFY,
- PROP_CONNECTIONS,
- PROP_STARTUP_COMPLETE,
-);
+G_DEFINE_TYPE (NMSettings, nm_settings, NM_TYPE_EXPORTED_OBJECT);
+
+#define NM_SETTINGS_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSettings, NM_IS_SETTINGS)
+
+/*****************************************************************************/
+
+#define _NMLOG_DOMAIN LOGD_SETTINGS
+#define _NMLOG_PREFIX_NAME "settings"
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), _NMLOG_DOMAIN, \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ _NMLOG_PREFIX_NAME": " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
+
+static void claim_connection (NMSettings *self,
+ NMSettingsConnection *connection);
+
+static void unmanaged_specs_changed (NMSettingsPlugin *config, gpointer user_data);
+static void unrecognized_specs_changed (NMSettingsPlugin *config, gpointer user_data);
+
+static void connection_ready_changed (NMSettingsConnection *conn,
+ GParamSpec *pspec,
+ gpointer user_data);
+
+/*****************************************************************************/
static void
check_startup_complete (NMSettings *self)
@@ -2265,22 +2284,6 @@ setup_hostname_file_monitors (NMSettings *self)
hostname_maybe_changed (self);
}
-NMSettings *
-nm_settings_new (void)
-{
- NMSettings *self;
- NMSettingsPrivate *priv;
-
- self = g_object_new (NM_TYPE_SETTINGS, NULL);
-
- priv = NM_SETTINGS_GET_PRIVATE (self);
-
- priv->config = nm_config_get ();
-
- nm_exported_object_export (NM_EXPORTED_OBJECT (self));
- return self;
-}
-
gboolean
nm_settings_start (NMSettings *self, GError **error)
{
@@ -2330,6 +2333,57 @@ nm_settings_start (NMSettings *self, GError **error)
return TRUE;
}
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMSettings *self = NM_SETTINGS (object);
+ NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self);
+ const GSList *specs, *iter;
+ GHashTableIter citer;
+ GPtrArray *array;
+ const char *path;
+
+ switch (prop_id) {
+ case PROP_UNMANAGED_SPECS:
+ array = g_ptr_array_new ();
+ specs = nm_settings_get_unmanaged_specs (self);
+ for (iter = specs; iter; iter = g_slist_next (iter))
+ g_ptr_array_add (array, g_strdup (iter->data));
+ g_ptr_array_add (array, NULL);
+ g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE));
+ break;
+ case PROP_HOSTNAME:
+ g_value_take_string (value, nm_settings_get_hostname (self));
+
+ /* Don't ever pass NULL through D-Bus */
+ if (!g_value_get_string (value))
+ g_value_set_static_string (value, "");
+ break;
+ case PROP_CAN_MODIFY:
+ g_value_set_boolean (value, !!get_plugin (self, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS));
+ break;
+ case PROP_CONNECTIONS:
+ array = g_ptr_array_sized_new (g_hash_table_size (priv->connections) + 1);
+ g_hash_table_iter_init (&citer, priv->connections);
+ while (g_hash_table_iter_next (&citer, (gpointer) &path, NULL))
+ g_ptr_array_add (array, g_strdup (path));
+ g_ptr_array_add (array, NULL);
+ g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE));
+ break;
+ case PROP_STARTUP_COMPLETE:
+ g_value_set_boolean (value, nm_settings_get_startup_complete (self));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static void
nm_settings_init (NMSettings *self)
{
@@ -2344,9 +2398,17 @@ nm_settings_init (NMSettings *self)
*/
priv->agent_mgr = g_object_ref (nm_agent_manager_get ());
+ priv->config = g_object_ref (nm_config_get ());
+
g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self);
}
+NMSettings *
+nm_settings_new (void)
+{
+ return g_object_new (NM_TYPE_SETTINGS, NULL);
+}
+
static void
dispose (GObject *object)
{
@@ -2401,54 +2463,9 @@ finalize (GObject *object)
g_slist_free_full (priv->plugins, g_object_unref);
- G_OBJECT_CLASS (nm_settings_parent_class)->finalize (object);
-}
-
-static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- NMSettings *self = NM_SETTINGS (object);
- NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self);
- const GSList *specs, *iter;
- GHashTableIter citer;
- GPtrArray *array;
- const char *path;
-
- switch (prop_id) {
- case PROP_UNMANAGED_SPECS:
- array = g_ptr_array_new ();
- specs = nm_settings_get_unmanaged_specs (self);
- for (iter = specs; iter; iter = g_slist_next (iter))
- g_ptr_array_add (array, g_strdup (iter->data));
- g_ptr_array_add (array, NULL);
- g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE));
- break;
- case PROP_HOSTNAME:
- g_value_take_string (value, nm_settings_get_hostname (self));
+ g_clear_object (&priv->config);
- /* Don't ever pass NULL through D-Bus */
- if (!g_value_get_string (value))
- g_value_set_static_string (value, "");
- break;
- case PROP_CAN_MODIFY:
- g_value_set_boolean (value, !!get_plugin (self, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS));
- break;
- case PROP_CONNECTIONS:
- array = g_ptr_array_sized_new (g_hash_table_size (priv->connections) + 1);
- g_hash_table_iter_init (&citer, priv->connections);
- while (g_hash_table_iter_next (&citer, (gpointer) &path, NULL))
- g_ptr_array_add (array, g_strdup (path));
- g_ptr_array_add (array, NULL);
- g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE));
- break;
- case PROP_STARTUP_COMPLETE:
- g_value_set_boolean (value, nm_settings_get_startup_complete (self));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ G_OBJECT_CLASS (nm_settings_parent_class)->finalize (object);
}
static void
@@ -2457,17 +2474,12 @@ nm_settings_class_init (NMSettingsClass *class)
GObjectClass *object_class = G_OBJECT_CLASS (class);
NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (class);
- g_type_class_add_private (class, sizeof (NMSettingsPrivate));
-
exported_object_class->export_path = NM_DBUS_PATH_SETTINGS;
- /* virtual methods */
object_class->get_property = get_property;
object_class->dispose = dispose;
object_class->finalize = finalize;
- /* properties */
-
obj_properties[PROP_UNMANAGED_SPECS] =
g_param_spec_boxed (NM_SETTINGS_UNMANAGED_SPECS, "", "",
G_TYPE_STRV,
@@ -2500,7 +2512,6 @@ nm_settings_class_init (NMSettingsClass *class)
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
- /* signals */
signals[CONNECTION_ADDED] =
g_signal_new (NM_SETTINGS_SIGNAL_CONNECTION_ADDED,
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h
index a0be42eef3..c8a7ebae0c 100644
--- a/src/settings/nm-settings.h
+++ b/src/settings/nm-settings.h
@@ -61,13 +61,7 @@ typedef gboolean (*NMConnectionFilterFunc) (NMSettings *settings,
NMConnection *connection,
gpointer func_data);
-struct _NMSettings {
- NMExportedObject parent_instance;
-};
-
-typedef struct {
- NMExportedObjectClass parent_class;
-} NMSettingsClass;
+typedef struct _NMSettingsClass NMSettingsClass;
typedef void (*NMSettingsSetHostnameCb) (const char *name, gboolean result, gpointer user_data);
diff --git a/src/settings/plugins/ibft/nm-ibft-connection.c b/src/settings/plugins/ibft/nm-ibft-connection.c
index 95495b5cab..24cfdc19ad 100644
--- a/src/settings/plugins/ibft/nm-ibft-connection.c
+++ b/src/settings/plugins/ibft/nm-ibft-connection.c
@@ -20,17 +20,34 @@
#include "nm-default.h"
+#include "nm-ibft-connection.h"
+
#include <string.h>
#include <net/ethernet.h>
#include <netinet/ether.h>
-
#include <glib/gstdio.h>
-#include "nm-ibft-connection.h"
#include "reader.h"
+/*****************************************************************************/
+
+struct _NMIbftConnection {
+ NMSettingsConnection parent;
+};
+
+struct _NMIbftConnectionClass {
+ NMSettingsConnectionClass parent;
+};
+
G_DEFINE_TYPE (NMIbftConnection, nm_ibft_connection, NM_TYPE_SETTINGS_CONNECTION)
+/*****************************************************************************/
+
+static void
+nm_ibft_connection_init (NMIbftConnection *connection)
+{
+}
+
NMIbftConnection *
nm_ibft_connection_new (const GPtrArray *block, GError **error)
{
@@ -53,13 +70,6 @@ nm_ibft_connection_new (const GPtrArray *block, GError **error)
return (NMIbftConnection *) object;
}
-/* GObject */
-
-static void
-nm_ibft_connection_init (NMIbftConnection *connection)
-{
-}
-
static void
nm_ibft_connection_class_init (NMIbftConnectionClass *ibft_connection_class)
{
diff --git a/src/settings/plugins/ibft/nm-ibft-connection.h b/src/settings/plugins/ibft/nm-ibft-connection.h
index a4ee17ac7c..95494095be 100644
--- a/src/settings/plugins/ibft/nm-ibft-connection.h
+++ b/src/settings/plugins/ibft/nm-ibft-connection.h
@@ -30,13 +30,8 @@
#define NM_IS_IBFT_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IBFT_CONNECTION))
#define NM_IBFT_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IBFT_CONNECTION, NMIbftConnectionClass))
-typedef struct {
- NMSettingsConnection parent;
-} NMIbftConnection;
-
-typedef struct {
- NMSettingsConnectionClass parent;
-} NMIbftConnectionClass;
+typedef struct _NMIbftConnection NMIbftConnection;
+typedef struct _NMIbftConnectionClass NMIbftConnectionClass;
GType nm_ibft_connection_get_type (void);
diff --git a/src/settings/plugins/ibft/plugin.c b/src/settings/plugins/ibft/plugin.c
index 6f9b8c82c9..c663e36110 100644
--- a/src/settings/plugins/ibft/plugin.c
+++ b/src/settings/plugins/ibft/plugin.c
@@ -20,38 +20,52 @@
#include "nm-default.h"
+#include "plugin.h"
+
#include <string.h>
#include <unistd.h>
#include <errno.h>
-
#include <gmodule.h>
#include "nm-setting-connection.h"
-
#include "nm-settings-plugin.h"
#include "NetworkManagerUtils.h"
-#include "plugin.h"
#include "reader.h"
#include "nm-ibft-connection.h"
+/*****************************************************************************/
+
+typedef struct {
+ GHashTable *connections; /* uuid::connection */
+ gboolean initialized;
+} SettingsPluginIbftPrivate;
+
+struct _SettingsPluginIbft {
+ GObject parent;
+ SettingsPluginIbftPrivate _priv;
+};
+
+struct _SettingsPluginIbftClass {
+ GObjectClass parent;
+};
+
static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
G_DEFINE_TYPE_EXTENDED (SettingsPluginIbft, settings_plugin_ibft, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
settings_plugin_interface_init))
-#define SETTINGS_PLUGIN_IBFT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IBFT, SettingsPluginIbftPrivate))
+#define SETTINGS_PLUGIN_IBFT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIbft, SETTINGS_IS_PLUGIN_IBFT)
-
-typedef struct {
- GHashTable *connections; /* uuid::connection */
- gboolean initialized;
-} SettingsPluginIbftPrivate;
+/*****************************************************************************/
static SettingsPluginIbft *settings_plugin_ibft_get (void);
+
NM_DEFINE_SINGLETON_GETTER (SettingsPluginIbft, settings_plugin_ibft_get, SETTINGS_TYPE_PLUGIN_IBFT);
+/*****************************************************************************/
+
static void
read_connections (SettingsPluginIbft *self)
{
@@ -104,6 +118,30 @@ get_connections (NMSettingsPlugin *config)
return list;
}
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case NM_SETTINGS_PLUGIN_PROP_NAME:
+ g_value_set_string (value, "iBFT");
+ break;
+ case NM_SETTINGS_PLUGIN_PROP_INFO:
+ g_value_set_string (value, "(c) 2014 Red Hat, Inc. To report bugs please use the NetworkManager mailing list.");
+ break;
+ case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES:
+ g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static void
init (NMSettingsPlugin *config)
{
@@ -132,42 +170,12 @@ dispose (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- switch (prop_id) {
- case NM_SETTINGS_PLUGIN_PROP_NAME:
- g_value_set_string (value, "iBFT");
- break;
- case NM_SETTINGS_PLUGIN_PROP_INFO:
- g_value_set_string (value, "(c) 2014 Red Hat, Inc. To report bugs please use the NetworkManager mailing list.");
- break;
- case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES:
- g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-}
-
-static void
settings_plugin_ibft_class_init (SettingsPluginIbftClass *req_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (req_class);
- g_type_class_add_private (req_class, sizeof (SettingsPluginIbftPrivate));
-
object_class->dispose = dispose;
object_class->get_property = get_property;
- object_class->set_property = set_property;
g_object_class_override_property (object_class,
NM_SETTINGS_PLUGIN_PROP_NAME,
@@ -185,11 +193,12 @@ settings_plugin_ibft_class_init (SettingsPluginIbftClass *req_class)
static void
settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
{
- /* interface implementation */
plugin_iface->get_connections = get_connections;
plugin_iface->init = init;
}
+/*****************************************************************************/
+
G_MODULE_EXPORT GObject *
nm_settings_plugin_factory (void)
{
diff --git a/src/settings/plugins/ibft/plugin.h b/src/settings/plugins/ibft/plugin.h
index 4867e07daa..5c44a1c950 100644
--- a/src/settings/plugins/ibft/plugin.h
+++ b/src/settings/plugins/ibft/plugin.h
@@ -31,15 +31,7 @@
typedef struct _SettingsPluginIbft SettingsPluginIbft;
typedef struct _SettingsPluginIbftClass SettingsPluginIbftClass;
-struct _SettingsPluginIbft {
- GObject parent;
-};
-
-struct _SettingsPluginIbftClass {
- GObjectClass parent;
-};
-
GType settings_plugin_ibft_get_type (void);
-#endif /* _PLUGIN_H_ */
+#endif /* _PLUGIN_H_ */
diff --git a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
index 184e95b2aa..09c585a9da 100644
--- a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
+++ b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
@@ -23,7 +23,7 @@
#include "nm-ifcfg-connection.h"
#include <string.h>
-
+#include <sys/inotify.h>
#include <glib/gstdio.h>
#include "nm-dbus-interface.h"
@@ -44,9 +44,19 @@
#include "nm-inotify-helper.h"
#include "utils.h"
-G_DEFINE_TYPE (NMIfcfgConnection, nm_ifcfg_connection, NM_TYPE_SETTINGS_CONNECTION)
+/*****************************************************************************/
+
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_UNMANAGED_SPEC,
+ PROP_UNRECOGNIZED_SPEC,
+);
-#define NM_IFCFG_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_IFCFG_CONNECTION, NMIfcfgConnectionPrivate))
+enum {
+ IFCFG_CHANGED,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
gulong ih_event_id;
@@ -71,20 +81,20 @@ typedef struct {
NMInotifyHelper *inotify_helper;
} NMIfcfgConnectionPrivate;
-enum {
- PROP_0,
- PROP_UNMANAGED_SPEC,
- PROP_UNRECOGNIZED_SPEC,
- LAST_PROP
+struct _NMIfcfgConnection {
+ NMSettingsConnection parent;
+ NMIfcfgConnectionPrivate _priv;
};
-/* Signals */
-enum {
- IFCFG_CHANGED,
- LAST_SIGNAL
+struct _NMIfcfgConnectionClass {
+ NMSettingsConnectionClass parent;
};
-static guint signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE (NMIfcfgConnection, nm_ifcfg_connection, NM_TYPE_SETTINGS_CONNECTION)
+
+#define NM_IFCFG_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMIfcfgConnection, NM_IS_IFCFG_CONNECTION)
+
+/*****************************************************************************/
static NMInotifyHelper *
_get_inotify_helper (NMIfcfgConnectionPrivate *priv)
@@ -110,7 +120,7 @@ link_changed (NMPlatform *platform, NMPObjectType *obj_type, int ifindex, const
NMPlatformSignalChangeType change_type,
NMConnection *self)
{
- NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (self);
+ NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) self);
const char *ifname;
ifname = nm_connection_get_interface_name (self);
@@ -211,63 +221,6 @@ files_changed_cb (NMInotifyHelper *ih,
g_signal_emit (self, signals[IFCFG_CHANGED], 0);
}
-NMIfcfgConnection *
-nm_ifcfg_connection_new (NMConnection *source,
- const char *full_path,
- GError **error,
- gboolean *out_ignore_error)
-{
- GObject *object;
- NMConnection *tmp;
- char *unhandled_spec = NULL;
- const char *unmanaged_spec = NULL, *unrecognized_spec = NULL;
- gboolean update_unsaved = TRUE;
-
- g_assert (source || full_path);
-
- if (out_ignore_error)
- *out_ignore_error = FALSE;
-
- /* If we're given a connection already, prefer that instead of re-reading */
- if (source)
- tmp = g_object_ref (source);
- else {
- tmp = connection_from_file (full_path,
- &unhandled_spec,
- error,
- out_ignore_error);
- if (!tmp)
- return NULL;
-
- /* If we just read the connection from disk, it's clearly not Unsaved */
- update_unsaved = FALSE;
- }
-
- if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unmanaged:"))
- unmanaged_spec = unhandled_spec + strlen ("unmanaged:");
- else if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unrecognized:"))
- unrecognized_spec = unhandled_spec + strlen ("unrecognized:");
-
- object = (GObject *) g_object_new (NM_TYPE_IFCFG_CONNECTION,
- NM_SETTINGS_CONNECTION_FILENAME, full_path,
- NM_IFCFG_CONNECTION_UNMANAGED_SPEC, unmanaged_spec,
- NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, unrecognized_spec,
- NULL);
- /* Update our settings with what was read from the file */
- if (nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object),
- tmp,
- update_unsaved,
- NULL,
- error))
- nm_ifcfg_connection_check_devtimeout (NM_IFCFG_CONNECTION (object));
- else
- g_clear_object (&object);
-
- g_object_unref (tmp);
- g_free (unhandled_spec);
- return (NMIfcfgConnection *) object;
-}
-
static void
path_watch_stop (NMIfcfgConnection *self)
{
@@ -382,7 +335,7 @@ commit_changes (NMSettingsConnection *connection,
NMSettingsConnectionCommitFunc callback,
gpointer user_data)
{
- NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (connection);
+ NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) connection);
GError *error = NULL;
NMConnection *reread;
gboolean same = FALSE, success = FALSE;
@@ -444,7 +397,7 @@ do_delete (NMSettingsConnection *connection,
NMSettingsConnectionDeleteFunc callback,
gpointer user_data)
{
- NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (connection);
+ NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) connection);
const char *filename;
filename = nm_settings_connection_get_filename (connection);
@@ -461,27 +414,20 @@ do_delete (NMSettingsConnection *connection,
NM_SETTINGS_CONNECTION_CLASS (nm_ifcfg_connection_parent_class)->delete (connection, callback, user_data);
}
-/* GObject */
+/*****************************************************************************/
static void
-nm_ifcfg_connection_init (NMIfcfgConnection *connection)
-{
- g_signal_connect (connection, "notify::" NM_SETTINGS_CONNECTION_FILENAME,
- G_CALLBACK (filename_changed), NULL);
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
{
- NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (object);
+ NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) object);
switch (prop_id) {
case PROP_UNMANAGED_SPEC:
- priv->unmanaged_spec = g_value_dup_string (value);
+ g_value_set_string (value, priv->unmanaged_spec);
break;
case PROP_UNRECOGNIZED_SPEC:
- priv->unrecognized_spec = g_value_dup_string (value);
+ g_value_set_string (value, priv->unrecognized_spec);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -490,17 +436,17 @@ set_property (GObject *object, guint prop_id,
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
{
- NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (object);
+ NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) object);
switch (prop_id) {
case PROP_UNMANAGED_SPEC:
- g_value_set_string (value, priv->unmanaged_spec);
+ priv->unmanaged_spec = g_value_dup_string (value);
break;
case PROP_UNRECOGNIZED_SPEC:
- g_value_set_string (value, priv->unrecognized_spec);
+ priv->unrecognized_spec = g_value_dup_string (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -508,10 +454,76 @@ get_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
+static void
+nm_ifcfg_connection_init (NMIfcfgConnection *connection)
+{
+ g_signal_connect (connection, "notify::" NM_SETTINGS_CONNECTION_FILENAME,
+ G_CALLBACK (filename_changed), NULL);
+}
+
+NMIfcfgConnection *
+nm_ifcfg_connection_new (NMConnection *source,
+ const char *full_path,
+ GError **error,
+ gboolean *out_ignore_error)
+{
+ GObject *object;
+ NMConnection *tmp;
+ char *unhandled_spec = NULL;
+ const char *unmanaged_spec = NULL, *unrecognized_spec = NULL;
+ gboolean update_unsaved = TRUE;
+
+ g_assert (source || full_path);
+
+ if (out_ignore_error)
+ *out_ignore_error = FALSE;
+
+ /* If we're given a connection already, prefer that instead of re-reading */
+ if (source)
+ tmp = g_object_ref (source);
+ else {
+ tmp = connection_from_file (full_path,
+ &unhandled_spec,
+ error,
+ out_ignore_error);
+ if (!tmp)
+ return NULL;
+
+ /* If we just read the connection from disk, it's clearly not Unsaved */
+ update_unsaved = FALSE;
+ }
+
+ if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unmanaged:"))
+ unmanaged_spec = unhandled_spec + strlen ("unmanaged:");
+ else if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unrecognized:"))
+ unrecognized_spec = unhandled_spec + strlen ("unrecognized:");
+
+ object = (GObject *) g_object_new (NM_TYPE_IFCFG_CONNECTION,
+ NM_SETTINGS_CONNECTION_FILENAME, full_path,
+ NM_IFCFG_CONNECTION_UNMANAGED_SPEC, unmanaged_spec,
+ NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, unrecognized_spec,
+ NULL);
+ /* Update our settings with what was read from the file */
+ if (nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object),
+ tmp,
+ update_unsaved,
+ NULL,
+ error))
+ nm_ifcfg_connection_check_devtimeout (NM_IFCFG_CONNECTION (object));
+ else
+ g_clear_object (&object);
+
+ g_object_unref (tmp);
+ g_free (unhandled_spec);
+ return (NMIfcfgConnection *) object;
+}
+
static void
dispose (GObject *object)
{
- NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (object);
+ NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) object);
path_watch_stop (NM_IFCFG_CONNECTION (object));
@@ -532,36 +544,34 @@ nm_ifcfg_connection_class_init (NMIfcfgConnectionClass *ifcfg_connection_class)
GObjectClass *object_class = G_OBJECT_CLASS (ifcfg_connection_class);
NMSettingsConnectionClass *settings_class = NM_SETTINGS_CONNECTION_CLASS (ifcfg_connection_class);
- g_type_class_add_private (ifcfg_connection_class, sizeof (NMIfcfgConnectionPrivate));
-
- /* Virtual methods */
object_class->set_property = set_property;
object_class->get_property = get_property;
object_class->dispose = dispose;
+
settings_class->delete = do_delete;
settings_class->replace_and_commit = replace_and_commit;
settings_class->commit_changes = commit_changes;
- /* Properties */
- g_object_class_install_property
- (object_class, PROP_UNMANAGED_SPEC,
- g_param_spec_string (NM_IFCFG_CONNECTION_UNMANAGED_SPEC, "", "",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_UNRECOGNIZED_SPEC,
- g_param_spec_string (NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, "", "",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_UNMANAGED_SPEC] =
+ g_param_spec_string (NM_IFCFG_CONNECTION_UNMANAGED_SPEC, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_UNRECOGNIZED_SPEC] =
+ g_param_spec_string (NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[IFCFG_CHANGED] =
- g_signal_new ("ifcfg-changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- 0, NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ g_signal_new ("ifcfg-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
diff --git a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h
index 57db059b00..c706d2a20a 100644
--- a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h
+++ b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h
@@ -34,13 +34,8 @@
#define NM_IFCFG_CONNECTION_UNMANAGED_SPEC "unmanaged-spec"
#define NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC "unrecognized-spec"
-typedef struct {
- NMSettingsConnection parent;
-} NMIfcfgConnection;
-
-typedef struct {
- NMSettingsConnectionClass parent;
-} NMIfcfgConnectionClass;
+typedef struct _NMIfcfgConnection NMIfcfgConnection;
+typedef struct _NMIfcfgConnectionClass NMIfcfgConnectionClass;
GType nm_ifcfg_connection_get_type (void);
diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c
index c2956d22b7..77bd32499f 100644
--- a/src/settings/plugins/ifcfg-rh/plugin.c
+++ b/src/settings/plugins/ifcfg-rh/plugin.c
@@ -30,15 +30,14 @@
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
-
#include <gmodule.h>
#include "nm-dbus-compat.h"
#include "nm-setting-connection.h"
-
#include "nm-settings-plugin.h"
#include "nm-config.h"
#include "NetworkManagerUtils.h"
+#include "nm-exported-object.h"
#include "nm-ifcfg-connection.h"
#include "shvar.h"
@@ -46,39 +45,13 @@
#include "reader.h"
#include "writer.h"
#include "utils.h"
-#include "nm-exported-object.h"
#include "nmdbus-ifcfg-rh.h"
#define IFCFGRH1_DBUS_SERVICE_NAME "com.redhat.ifcfgrh1"
#define IFCFGRH1_DBUS_OBJECT_PATH "/com/redhat/ifcfgrh1"
-#define _NMLOG_DOMAIN LOGD_SETTINGS
-#define _NMLOG(level, ...) \
- G_STMT_START { \
- nm_log ((level), (_NMLOG_DOMAIN), \
- "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
- "ifcfg-rh: " \
- _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
- } G_STMT_END
-
-
-static NMIfcfgConnection *update_connection (SettingsPluginIfcfg *plugin,
- NMConnection *source,
- const char *full_path,
- NMIfcfgConnection *connection,
- gboolean protect_existing_connection,
- GHashTable *protected_connections,
- GError **error);
-
-static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
-
-G_DEFINE_TYPE_EXTENDED (SettingsPluginIfcfg, settings_plugin_ifcfg, G_TYPE_OBJECT, 0,
- G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
- settings_plugin_interface_init))
-
-#define SETTINGS_PLUGIN_IFCFG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IFCFG, SettingsPluginIfcfgPrivate))
-
+/*****************************************************************************/
typedef struct {
NMConfig *config;
@@ -97,9 +70,52 @@ typedef struct {
gulong ifcfg_monitor_id;
} SettingsPluginIfcfgPrivate;
+struct _SettingsPluginIfcfg {
+ GObject parent;
+ SettingsPluginIfcfgPrivate _priv;
+};
+
+struct _SettingsPluginIfcfgClass {
+ GObjectClass parent;
+};
+
+static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
+
+G_DEFINE_TYPE_EXTENDED (SettingsPluginIfcfg, settings_plugin_ifcfg, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
+ settings_plugin_interface_init))
+
+#define SETTINGS_PLUGIN_IFCFG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIfcfg, SETTINGS_IS_PLUGIN_IFCFG)
+
+/*****************************************************************************/
+
static SettingsPluginIfcfg *settings_plugin_ifcfg_get (void);
+
NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfcfg, settings_plugin_ifcfg_get, SETTINGS_TYPE_PLUGIN_IFCFG);
+/*****************************************************************************/
+
+#define _NMLOG_DOMAIN LOGD_SETTINGS
+#define _NMLOG(level, ...) \
+ G_STMT_START { \
+ nm_log ((level), (_NMLOG_DOMAIN), \
+ "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \
+ "ifcfg-rh: " \
+ _NM_UTILS_MACRO_REST(__VA_ARGS__)); \
+ } G_STMT_END
+
+/*****************************************************************************/
+
+static NMIfcfgConnection *update_connection (SettingsPluginIfcfg *plugin,
+ NMConnection *source,
+ const char *full_path,
+ NMIfcfgConnection *connection,
+ gboolean protect_existing_connection,
+ GHashTable *protected_connections,
+ GError **error);
+
+/*****************************************************************************/
+
static void
connection_ifcfg_changed (NMIfcfgConnection *connection, gpointer user_data)
{
@@ -124,7 +140,7 @@ connection_ifcfg_changed (NMIfcfgConnection *connection, gpointer user_data)
static void
connection_removed_cb (NMSettingsConnection *obj, gpointer user_data)
{
- g_hash_table_remove (SETTINGS_PLUGIN_IFCFG_GET_PRIVATE (user_data)->connections,
+ g_hash_table_remove (SETTINGS_PLUGIN_IFCFG_GET_PRIVATE ((SettingsPluginIfcfg *) user_data)->connections,
nm_connection_get_uuid (NM_CONNECTION (obj)));
}
@@ -616,7 +632,7 @@ static GSList *
get_unhandled_specs (NMSettingsPlugin *config,
const char *property)
{
- SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE (config);
+ SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE ((SettingsPluginIfcfg *) config);
GSList *list = NULL, *list_iter;
GHashTableIter iter;
gpointer connection;
@@ -944,6 +960,28 @@ config_changed_cb (NMConfig *config,
/*****************************************************************************/
static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case NM_SETTINGS_PLUGIN_PROP_NAME:
+ g_value_set_string (value, IFCFG_PLUGIN_NAME);
+ break;
+ case NM_SETTINGS_PLUGIN_PROP_INFO:
+ g_value_set_string (value, IFCFG_PLUGIN_INFO);
+ break;
+ case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES:
+ g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static void
init (NMSettingsPlugin *config)
{
}
@@ -951,7 +989,7 @@ init (NMSettingsPlugin *config)
static void
settings_plugin_ifcfg_init (SettingsPluginIfcfg *plugin)
{
- SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE (plugin);
+ SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE ((SettingsPluginIfcfg *) plugin);
priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
}
@@ -1005,47 +1043,13 @@ dispose (GObject *object)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
-{
- switch (prop_id) {
- case NM_SETTINGS_PLUGIN_PROP_NAME:
- g_value_set_string (value, IFCFG_PLUGIN_NAME);
- break;
- case NM_SETTINGS_PLUGIN_PROP_INFO:
- g_value_set_string (value, IFCFG_PLUGIN_INFO);
- break;
- case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES:
- g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
settings_plugin_ifcfg_class_init (SettingsPluginIfcfgClass *req_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (req_class);
- g_type_class_add_private (req_class, sizeof (SettingsPluginIfcfgPrivate));
-
object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->get_property = get_property;
- object_class->set_property = set_property;
g_object_class_override_property (object_class,
NM_SETTINGS_PLUGIN_PROP_NAME,
@@ -1063,7 +1067,6 @@ settings_plugin_ifcfg_class_init (SettingsPluginIfcfgClass *req_class)
static void
settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
{
- /* interface implementation */
plugin_iface->get_connections = get_connections;
plugin_iface->add_connection = add_connection;
plugin_iface->load_connection = load_connection;
@@ -1073,6 +1076,8 @@ settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
plugin_iface->init = init;
}
+/*****************************************************************************/
+
G_MODULE_EXPORT GObject *
nm_settings_plugin_factory (void)
{
diff --git a/src/settings/plugins/ifcfg-rh/plugin.h b/src/settings/plugins/ifcfg-rh/plugin.h
index 74c4b00a04..d815cc5160 100644
--- a/src/settings/plugins/ifcfg-rh/plugin.h
+++ b/src/settings/plugins/ifcfg-rh/plugin.h
@@ -34,15 +34,6 @@
typedef struct _SettingsPluginIfcfg SettingsPluginIfcfg;
typedef struct _SettingsPluginIfcfgClass SettingsPluginIfcfgClass;
-struct _SettingsPluginIfcfg {
- GObject parent;
-};
-
-struct _SettingsPluginIfcfgClass {
- GObjectClass parent;
-};
-
GType settings_plugin_ifcfg_get_type (void);
#endif /* _PLUGIN_H_ */
-
diff --git a/src/settings/plugins/ifnet/nm-ifnet-connection.c b/src/settings/plugins/ifnet/nm-ifnet-connection.c
index b661b03efb..66a2f84893 100644
--- a/src/settings/plugins/ifnet/nm-ifnet-connection.c
+++ b/src/settings/plugins/ifnet/nm-ifnet-connection.c
@@ -21,6 +21,8 @@
#include "nm-default.h"
+#include "nm-ifnet-connection.h"
+
#include <string.h>
#include <glib/gstdio.h>
@@ -29,16 +31,14 @@
#include "nm-setting-wireless-security.h"
#include "nm-settings-connection.h"
#include "nm-settings-plugin.h"
-#include "nm-ifnet-connection.h"
+
#include "connection_parser.h"
#include "net_parser.h"
#include "net_utils.h"
#include "wpa_parser.h"
#include "plugin.h"
-G_DEFINE_TYPE (NMIfnetConnection, nm_ifnet_connection, NM_TYPE_SETTINGS_CONNECTION)
-
-#define NM_IFNET_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_IFNET_CONNECTION, NMIfnetConnectionPrivate))
+/*****************************************************************************/
enum {
IFNET_SETUP_MONITORS,
@@ -53,51 +53,20 @@ typedef struct {
NMSettingsPlugin *config;
} NMIfnetConnectionPrivate;
-NMIfnetConnection *
-nm_ifnet_connection_new (NMConnection *source, const char *conn_name)
-{
- NMConnection *tmp;
- GObject *object;
- GError *error = NULL;
- gboolean update_unsaved = TRUE;
-
- g_return_val_if_fail (source || conn_name, NULL);
-
- if (source)
- tmp = g_object_ref (source);
- else {
- tmp = ifnet_update_connection_from_config_block (conn_name, NULL, &error);
- if (!tmp) {
- nm_log_warn (LOGD_SETTINGS, "Could not read connection '%s': %s",
- conn_name, error->message);
- g_error_free (error);
- return NULL;
- }
+struct _NMIfnetConnection {
+ NMSettingsConnection parent;
+ NMIfnetConnectionPrivate _priv;
+};
- /* If we just read the connection from disk, it's clearly not Unsaved */
- update_unsaved = FALSE;
- }
+struct _NMIfnetConnectionClass {
+ NMSettingsConnectionClass parent;
+};
- object = (GObject *) g_object_new (NM_TYPE_IFNET_CONNECTION, NULL);
- g_assert (object);
- NM_IFNET_CONNECTION_GET_PRIVATE (object)->conn_name = g_strdup (conn_name);
- if (!nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object),
- tmp,
- update_unsaved,
- NULL,
- NULL)) {
- g_object_unref (object);
- return NULL;
- }
- g_object_unref (tmp);
+G_DEFINE_TYPE (NMIfnetConnection, nm_ifnet_connection, NM_TYPE_SETTINGS_CONNECTION)
- return NM_IFNET_CONNECTION (object);
-}
+#define NM_IFNET_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMIfnetConnection, NM_IS_IFNET_CONNECTION)
-static void
-nm_ifnet_connection_init (NMIfnetConnection * connection)
-{
-}
+/*****************************************************************************/
const char *
nm_ifnet_connection_get_conn_name (NMIfnetConnection *connection)
@@ -112,7 +81,7 @@ commit_changes (NMSettingsConnection *connection,
gpointer user_data)
{
GError *error = NULL;
- NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE (connection);
+ NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) connection);
gchar *new_name = NULL;
gboolean success = FALSE;
@@ -159,13 +128,13 @@ commit_changes (NMSettingsConnection *connection,
g_signal_emit (connection, signals[IFNET_SETUP_MONITORS], 0);
}
-static void
+static void
do_delete (NMSettingsConnection *connection,
- NMSettingsConnectionDeleteFunc callback,
- gpointer user_data)
+ NMSettingsConnectionDeleteFunc callback,
+ gpointer user_data)
{
GError *error = NULL;
- NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE (connection);
+ NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) connection);
g_signal_emit (connection, signals[IFNET_CANCEL_MONITORS], 0);
@@ -190,10 +159,58 @@ do_delete (NMSettingsConnection *connection,
nm_connection_get_id (NM_CONNECTION (connection)));
}
+/*****************************************************************************/
+
+static void
+nm_ifnet_connection_init (NMIfnetConnection * connection)
+{
+}
+
+NMIfnetConnection *
+nm_ifnet_connection_new (NMConnection *source, const char *conn_name)
+{
+ NMConnection *tmp;
+ GObject *object;
+ GError *error = NULL;
+ gboolean update_unsaved = TRUE;
+
+ g_return_val_if_fail (source || conn_name, NULL);
+
+ if (source)
+ tmp = g_object_ref (source);
+ else {
+ tmp = ifnet_update_connection_from_config_block (conn_name, NULL, &error);
+ if (!tmp) {
+ nm_log_warn (LOGD_SETTINGS, "Could not read connection '%s': %s",
+ conn_name, error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ /* If we just read the connection from disk, it's clearly not Unsaved */
+ update_unsaved = FALSE;
+ }
+
+ object = (GObject *) g_object_new (NM_TYPE_IFNET_CONNECTION, NULL);
+
+ NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) object)->conn_name = g_strdup (conn_name);
+ if (!nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object),
+ tmp,
+ update_unsaved,
+ NULL,
+ NULL)) {
+ g_object_unref (object);
+ return NULL;
+ }
+ g_object_unref (tmp);
+
+ return NM_IFNET_CONNECTION (object);
+}
+
static void
finalize (GObject * object)
{
- g_free (NM_IFNET_CONNECTION_GET_PRIVATE (object)->conn_name);
+ g_free (NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) object)->conn_name);
G_OBJECT_CLASS (nm_ifnet_connection_parent_class)->finalize (object);
}
@@ -203,21 +220,19 @@ nm_ifnet_connection_class_init (NMIfnetConnectionClass * ifnet_connection_class)
GObjectClass *object_class = G_OBJECT_CLASS (ifnet_connection_class);
NMSettingsConnectionClass *settings_class = NM_SETTINGS_CONNECTION_CLASS (ifnet_connection_class);
- g_type_class_add_private (ifnet_connection_class, sizeof (NMIfnetConnectionPrivate));
-
object_class->finalize = finalize;
+
settings_class->delete = do_delete;
settings_class->commit_changes = commit_changes;
signals[IFNET_SETUP_MONITORS] =
g_signal_new ("ifnet_setup_monitors",
- G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
- 0, NULL, NULL, g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
signals[IFNET_CANCEL_MONITORS] =
g_signal_new ("ifnet_cancel_monitors",
- G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
- 0, NULL, NULL, g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
+ G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL, g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
diff --git a/src/settings/plugins/ifnet/nm-ifnet-connection.h b/src/settings/plugins/ifnet/nm-ifnet-connection.h
index 856996e070..490ba1f7a4 100644
--- a/src/settings/plugins/ifnet/nm-ifnet-connection.h
+++ b/src/settings/plugins/ifnet/nm-ifnet-connection.h
@@ -32,13 +32,8 @@
#define NM_IS_IFNET_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IFNET_CONNECTION))
#define NM_IFNET_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IFNET_CONNECTION, NMIfnetConnectionClass))
-typedef struct {
- NMSettingsConnection parent;
-} NMIfnetConnection;
-
-typedef struct {
- NMSettingsConnectionClass parent;
-} NMIfnetConnectionClass;
+typedef struct _NMIfnetConnection NMIfnetConnection;
+typedef struct _NMIfnetConnectionClass NMIfnetConnectionClass;
GType nm_ifnet_connection_get_type (void);
diff --git a/src/settings/plugins/ifnet/plugin.c b/src/settings/plugins/ifnet/plugin.c
index a0676cf894..f7688585a6 100644
--- a/src/settings/plugins/ifnet/plugin.c
+++ b/src/settings/plugins/ifnet/plugin.c
@@ -22,21 +22,19 @@
#include "nm-default.h"
-#include <string.h>
+#include "plugin.h"
+#include <string.h>
#include <gmodule.h>
#include "nm-utils.h"
#include "nm-setting-connection.h"
-
-#include "nm-default.h"
#include "nm-dbus-interface.h"
#include "nm-settings-plugin.h"
-#include "nm-ifnet-connection.h"
#include "nm-config.h"
#include "NetworkManagerUtils.h"
-#include "plugin.h"
+#include "nm-ifnet-connection.h"
#include "net_utils.h"
#include "net_parser.h"
#include "wpa_parser.h"
@@ -46,34 +44,54 @@
#define IFNET_PLUGIN_INFO "(C) 1999-2010 Gentoo Foundation, Inc. To report bugs please use bugs.gentoo.org with [networkmanager] or [qiaomuf] prefix."
#define IFNET_MANAGE_WELL_KNOWN_DEFAULT TRUE
+/*****************************************************************************/
+
+typedef void (*FileChangedFn) (gpointer user_data);
+
+typedef struct {
+ FileChangedFn callback;
+ gpointer user_data;
+} FileMonitorInfo;
+
+/*****************************************************************************/
+
typedef struct {
GHashTable *connections; /* uuid::connection */
gboolean unmanaged_well_known;
GFileMonitor *net_monitor;
GFileMonitor *wpa_monitor;
-
} SettingsPluginIfnetPrivate;
-typedef void (*FileChangedFn) (gpointer user_data);
+struct _SettingsPluginIfnet {
+ GObject parent;
+ SettingsPluginIfnetPrivate _priv;
+};
-typedef struct {
- FileChangedFn callback;
- gpointer user_data;
-} FileMonitorInfo;
+struct _SettingsPluginIfnetClass {
+ GObjectClass parent;
+};
static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
-static void reload_connections (NMSettingsPlugin *config);
-
G_DEFINE_TYPE_EXTENDED (SettingsPluginIfnet, settings_plugin_ifnet, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
settings_plugin_interface_init))
-#define SETTINGS_PLUGIN_IFNET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IFNET, SettingsPluginIfnetPrivate))
+
+#define SETTINGS_PLUGIN_IFNET_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIfnet, SETTINGS_IS_PLUGIN_IFNET)
+
+/*****************************************************************************/
static SettingsPluginIfnet *settings_plugin_ifnet_get (void);
+
NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfnet, settings_plugin_ifnet_get, SETTINGS_TYPE_PLUGIN_IFNET);
+/*****************************************************************************/
+
+static void reload_connections (NMSettingsPlugin *config);
+
+/*****************************************************************************/
+
static gboolean
is_managed_plugin (void)
{
@@ -84,9 +102,9 @@ is_managed_plugin (void)
static void
file_changed (GFileMonitor * monitor,
- GFile * file,
- GFile * other_file,
- GFileMonitorEvent event_type, gpointer user_data)
+ GFile * file,
+ GFile * other_file,
+ GFileMonitorEvent event_type, gpointer user_data)
{
FileMonitorInfo *info;
@@ -102,7 +120,7 @@ file_changed (GFileMonitor * monitor,
static GFileMonitor *
monitor_file_changes (const char *filename,
- FileChangedFn callback, gpointer user_data)
+ FileChangedFn callback, gpointer user_data)
{
GFile *file;
GFileMonitor *monitor;
@@ -166,7 +184,7 @@ cancel_monitors (NMIfnetConnection * connection, gpointer user_data)
static void
connection_removed_cb (NMSettingsConnection *obj, gpointer user_data)
{
- g_hash_table_remove (SETTINGS_PLUGIN_IFNET_GET_PRIVATE (user_data)->connections,
+ g_hash_table_remove (SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) user_data)->connections,
nm_connection_get_uuid (NM_CONNECTION (obj)));
}
@@ -296,7 +314,7 @@ add_connection (NMSettingsPlugin *config,
gboolean save_to_disk,
GError **error)
{
- SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (config);
+ SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) config);
NMIfnetConnection *new = NULL;
/* Ensure we reject attempts to add the connection long before we're
@@ -358,7 +376,7 @@ check_unmanaged (gpointer key, gpointer data, gpointer user_data)
static GSList *
get_unmanaged_specs (NMSettingsPlugin * config)
{
- SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (config);
+ SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) config);
GSList *list = NULL;
nm_log_info (LOGD_SETTINGS, "getting unmanaged specs...");
@@ -366,29 +384,10 @@ get_unmanaged_specs (NMSettingsPlugin * config)
return list;
}
-static void
-init (NMSettingsPlugin *config)
-{
- SettingsPluginIfnet *self = SETTINGS_PLUGIN_IFNET (config);
- SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (self);
-
- nm_log_info (LOGD_SETTINGS, "Initializing!");
-
- priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
- priv->unmanaged_well_known = !is_managed_plugin ();
- nm_log_info (LOGD_SETTINGS, "management mode: %s",
- priv->unmanaged_well_known ? "unmanaged" : "managed");
-
- setup_monitors (NULL, config);
- reload_connections (config);
-
- nm_log_info (LOGD_SETTINGS, "Initialzation complete!");
-}
-
static GSList *
get_connections (NMSettingsPlugin *config)
{
- SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (config);
+ SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) config);
GSList *connections = NULL;
GHashTableIter iter;
NMIfnetConnection *connection;
@@ -407,24 +406,11 @@ get_connections (NMSettingsPlugin *config)
return connections;
}
-static void
-settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
-{
- plugin_iface->init = init;
- plugin_iface->get_connections = get_connections;
- plugin_iface->get_unmanaged_specs = get_unmanaged_specs;
- plugin_iface->add_connection = add_connection;
- plugin_iface->reload_connections = reload_connections;
-}
-
-static void
-settings_plugin_ifnet_init (SettingsPluginIfnet * plugin)
-{
-}
+/*****************************************************************************/
static void
get_property (GObject * object, guint prop_id, GValue * value,
- GParamSpec * pspec)
+ GParamSpec * pspec)
{
switch (prop_id) {
case NM_SETTINGS_PLUGIN_PROP_NAME:
@@ -443,22 +429,39 @@ get_property (GObject * object, guint prop_id, GValue * value,
}
}
+/*****************************************************************************/
+
static void
-set_property (GObject * object, guint prop_id, const GValue * value,
- GParamSpec * pspec)
+init (NMSettingsPlugin *config)
+{
+ SettingsPluginIfnet *self = SETTINGS_PLUGIN_IFNET (config);
+ SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (self);
+
+ nm_log_info (LOGD_SETTINGS, "Initializing!");
+
+ priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+ priv->unmanaged_well_known = !is_managed_plugin ();
+ nm_log_info (LOGD_SETTINGS, "management mode: %s",
+ priv->unmanaged_well_known ? "unmanaged" : "managed");
+
+ setup_monitors (NULL, config);
+ reload_connections (config);
+
+ nm_log_info (LOGD_SETTINGS, "Initialzation complete!");
+}
+
+/*****************************************************************************/
+
+static void
+settings_plugin_ifnet_init (SettingsPluginIfnet * plugin)
{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
}
static void
dispose (GObject * object)
{
SettingsPluginIfnet *plugin = SETTINGS_PLUGIN_IFNET (object);
- SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (plugin);
+ SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) plugin);
cancel_monitors (NULL, object);
if (priv->connections) {
@@ -476,25 +479,34 @@ settings_plugin_ifnet_class_init (SettingsPluginIfnetClass * req_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (req_class);
- g_type_class_add_private (req_class, sizeof (SettingsPluginIfnetPrivate));
-
object_class->dispose = dispose;
object_class->get_property = get_property;
- object_class->set_property = set_property;
g_object_class_override_property (object_class,
- NM_SETTINGS_PLUGIN_PROP_NAME,
- NM_SETTINGS_PLUGIN_NAME);
+ NM_SETTINGS_PLUGIN_PROP_NAME,
+ NM_SETTINGS_PLUGIN_NAME);
g_object_class_override_property (object_class,
- NM_SETTINGS_PLUGIN_PROP_INFO,
- NM_SETTINGS_PLUGIN_INFO);
+ NM_SETTINGS_PLUGIN_PROP_INFO,
+ NM_SETTINGS_PLUGIN_INFO);
g_object_class_override_property (object_class,
- NM_SETTINGS_PLUGIN_PROP_CAPABILITIES,
- NM_SETTINGS_PLUGIN_CAPABILITIES);
+ NM_SETTINGS_PLUGIN_PROP_CAPABILITIES,
+ NM_SETTINGS_PLUGIN_CAPABILITIES);
}
+static void
+settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
+{
+ plugin_iface->init = init;
+ plugin_iface->get_connections = get_connections;
+ plugin_iface->get_unmanaged_specs = get_unmanaged_specs;
+ plugin_iface->add_connection = add_connection;
+ plugin_iface->reload_connections = reload_connections;
+}
+
+/*****************************************************************************/
+
G_MODULE_EXPORT GObject *
nm_settings_plugin_factory (void)
{
diff --git a/src/settings/plugins/ifnet/plugin.h b/src/settings/plugins/ifnet/plugin.h
index 09640968ba..f006e7e41f 100644
--- a/src/settings/plugins/ifnet/plugin.h
+++ b/src/settings/plugins/ifnet/plugin.h
@@ -33,13 +33,6 @@
typedef struct _SettingsPluginIfnet SettingsPluginIfnet;
typedef struct _SettingsPluginIfnetClass SettingsPluginIfnetClass;
-struct _SettingsPluginIfnet {
- GObject parent;
-};
-
-struct _SettingsPluginIfnetClass {
- GObjectClass parent;
-};
-
GType settings_plugin_ifnet_get_type (void);
+
#endif
diff --git a/src/settings/plugins/ifupdown/nm-ifupdown-connection.c b/src/settings/plugins/ifupdown/nm-ifupdown-connection.c
index 34ecf8b9ec..15d30079d2 100644
--- a/src/settings/plugins/ifupdown/nm-ifupdown-connection.c
+++ b/src/settings/plugins/ifupdown/nm-ifupdown-connection.c
@@ -22,6 +22,8 @@
#include "nm-default.h"
+#include "nm-ifupdown-connection.h"
+
#include <string.h>
#include <glib/gstdio.h>
@@ -30,11 +32,37 @@
#include "nm-setting-wireless-security.h"
#include "nm-settings-connection.h"
#include "nm-settings-plugin.h"
-#include "nm-ifupdown-connection.h"
#include "parser.h"
+/*****************************************************************************/
+
+struct _NMIfupdownConnection {
+ NMSettingsConnection parent;
+};
+
+struct _NMIfupdownConnectionClass {
+ NMSettingsConnectionClass parent;
+};
+
G_DEFINE_TYPE (NMIfupdownConnection, nm_ifupdown_connection, NM_TYPE_SETTINGS_CONNECTION)
+/*****************************************************************************/
+
+static gboolean
+supports_secrets (NMSettingsConnection *connection, const char *setting_name)
+{
+ nm_log_info (LOGD_SETTINGS, "supports_secrets() for setting_name: '%s'", setting_name);
+
+ return (strcmp (setting_name, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) == 0);
+}
+
+/*****************************************************************************/
+
+static void
+nm_ifupdown_connection_init (NMIfupdownConnection *connection)
+{
+}
+
NMIfupdownConnection*
nm_ifupdown_connection_new (if_block *block)
{
@@ -57,19 +85,6 @@ nm_ifupdown_connection_new (if_block *block)
return (NMIfupdownConnection *) object;
}
-static gboolean
-supports_secrets (NMSettingsConnection *connection, const char *setting_name)
-{
- nm_log_info (LOGD_SETTINGS, "supports_secrets() for setting_name: '%s'", setting_name);
-
- return (strcmp (setting_name, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) == 0);
-}
-
-static void
-nm_ifupdown_connection_init (NMIfupdownConnection *connection)
-{
-}
-
static void
nm_ifupdown_connection_class_init (NMIfupdownConnectionClass *ifupdown_connection_class)
{
diff --git a/src/settings/plugins/ifupdown/nm-ifupdown-connection.h b/src/settings/plugins/ifupdown/nm-ifupdown-connection.h
index e1999bef5c..f710b1b6f3 100644
--- a/src/settings/plugins/ifupdown/nm-ifupdown-connection.h
+++ b/src/settings/plugins/ifupdown/nm-ifupdown-connection.h
@@ -35,13 +35,8 @@
#define NM_IS_IFUPDOWN_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IFUPDOWN_CONNECTION))
#define NM_IFUPDOWN_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IFUPDOWN_CONNECTION, NMIfupdownConnectionClass))
-typedef struct {
- NMSettingsConnection parent;
-} NMIfupdownConnection;
-
-typedef struct {
- NMSettingsConnectionClass parent;
-} NMIfupdownConnectionClass;
+typedef struct _NMIfupdownConnection NMIfupdownConnection;
+typedef struct _NMIfupdownConnectionClass NMIfupdownConnectionClass;
GType nm_ifupdown_connection_get_type (void);
diff --git a/src/settings/plugins/ifupdown/plugin.c b/src/settings/plugins/ifupdown/plugin.c
index b506b2d602..abb9af146d 100644
--- a/src/settings/plugins/ifupdown/plugin.c
+++ b/src/settings/plugins/ifupdown/plugin.c
@@ -24,15 +24,14 @@
#include "nm-default.h"
+#include "plugin.h"
+
#include <string.h>
#include <arpa/inet.h>
#include <gudev/gudev.h>
#include <gmodule.h>
#include "nm-setting-connection.h"
-
-#include "interface_parser.h"
-
#include "nm-dbus-interface.h"
#include "nm-settings-plugin.h"
#include "nm-setting-ip4-config.h"
@@ -42,13 +41,12 @@
#include "nm-utils.h"
#include "nm-core-internal.h"
#include "NetworkManagerUtils.h"
+#include "nm-config.h"
+#include "interface_parser.h"
#include "nm-ifupdown-connection.h"
-#include "plugin.h"
#include "parser.h"
-#include "nm-config.h"
-
#define ENI_INTERFACES_FILE "/etc/network/interfaces"
#define IFUPDOWN_PLUGIN_NAME "ifupdown"
@@ -58,9 +56,11 @@
/* #define ALWAYS_UNMANAGE TRUE */
#ifndef ALWAYS_UNMANAGE
-# define ALWAYS_UNMANAGE FALSE
+#define ALWAYS_UNMANAGE FALSE
#endif
+/*****************************************************************************/
+
typedef struct {
GUdevClient *client;
@@ -77,82 +77,29 @@ typedef struct {
gboolean unmanage_well_known;
} SettingsPluginIfupdownPrivate;
-static void
-settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
+struct _SettingsPluginIfupdown {
+ GObject parent;
+ SettingsPluginIfupdownPrivate _priv;
+};
+
+struct _SettingsPluginIfupdownClass {
+ GObjectClass parent;
+};
+
+static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
G_DEFINE_TYPE_EXTENDED (SettingsPluginIfupdown, settings_plugin_ifupdown, G_TYPE_OBJECT, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
settings_plugin_interface_init))
-#define SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IFUPDOWN, SettingsPluginIfupdownPrivate))
+#define SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIfupdown, SETTINGS_IS_PLUGIN_IFUPDOWN)
+
+/*****************************************************************************/
static SettingsPluginIfupdown *settings_plugin_ifupdown_get (void);
NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfupdown, settings_plugin_ifupdown_get, SETTINGS_TYPE_PLUGIN_IFUPDOWN);
-static void
-settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *req_class);
-
-static void
-init (NMSettingsPlugin *config);
-
-/* Returns the plugins currently known list of connections. The returned
- * list is freed by the system settings service.
- */
-static GSList*
-get_connections (NMSettingsPlugin *config);
-
-/*
- * Return a list of device specifications which NetworkManager should not
- * manage. Returned list will be freed by the system settings service, and
- * each element must be allocated using g_malloc() or its variants.
- */
-static GSList*
-get_unmanaged_specs (NMSettingsPlugin *config);
-
-
-/* GObject */
-static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec);
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec);
-
-static void
-dispose (GObject *object);
-
-static void
-settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
-{
- plugin_iface->init = init;
- plugin_iface->get_connections = get_connections;
- plugin_iface->get_unmanaged_specs = get_unmanaged_specs;
-}
-
-static void
-settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *req_class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (req_class);
-
- g_type_class_add_private (req_class, sizeof (SettingsPluginIfupdownPrivate));
-
- object_class->dispose = dispose;
- object_class->get_property = get_property;
- object_class->set_property = set_property;
-
- g_object_class_override_property (object_class,
- NM_SETTINGS_PLUGIN_PROP_NAME,
- NM_SETTINGS_PLUGIN_NAME);
-
- g_object_class_override_property (object_class,
- NM_SETTINGS_PLUGIN_PROP_INFO,
- NM_SETTINGS_PLUGIN_INFO);
-
- g_object_class_override_property (object_class,
- NM_SETTINGS_PLUGIN_PROP_CAPABILITIES,
- NM_SETTINGS_PLUGIN_CAPABILITIES);
-}
+/*****************************************************************************/
static void
bind_device_to_connection (SettingsPluginIfupdown *self,
@@ -192,7 +139,7 @@ bind_device_to_connection (SettingsPluginIfupdown *self,
}
nm_settings_connection_commit_changes (NM_SETTINGS_CONNECTION (exported), NM_SETTINGS_CONNECTION_COMMIT_REASON_NONE, NULL, NULL);
-}
+}
static void
udev_device_added (SettingsPluginIfupdown *self, GUdevDevice *device)
@@ -291,6 +238,85 @@ handle_uevent (GUdevClient *client,
udev_device_changed (self, device);
}
+/* Returns the plugins currently known list of connections. The returned
+ * list is freed by the system settings service.
+ */
+static GSList*
+get_connections (NMSettingsPlugin *config)
+{
+ SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE ((SettingsPluginIfupdown *) config);
+ GSList *connections;
+
+ nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections.", GPOINTER_TO_UINT(config));
+
+ if(priv->unmanage_well_known) {
+ nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections (managed=false): return empty list.", GPOINTER_TO_UINT(config));
+ return NULL;
+ }
+
+ connections = _nm_utils_hash_values_to_slist (priv->connections);
+
+ nm_log_info (LOGD_SETTINGS, "(%d) connections count: %d", GPOINTER_TO_UINT(config), g_slist_length(connections));
+ return connections;
+}
+
+/*
+ * Return a list of device specifications which NetworkManager should not
+ * manage. Returned list will be freed by the system settings service, and
+ * each element must be allocated using g_malloc() or its variants.
+ */
+static GSList*
+get_unmanaged_specs (NMSettingsPlugin *config)
+{
+ SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE ((SettingsPluginIfupdown *) config);
+ GSList *specs = NULL;
+ GHashTableIter iter;
+ GUdevDevice *device;
+ const char *iface;
+
+ if (!ALWAYS_UNMANAGE && !priv->unmanage_well_known)
+ return NULL;
+
+ nm_log_info (LOGD_SETTINGS, "get unmanaged devices count: %d",
+ g_hash_table_size (priv->kernel_ifaces));
+
+ g_hash_table_iter_init (&iter, priv->kernel_ifaces);
+ while (g_hash_table_iter_next (&iter, (gpointer) &iface, (gpointer) &device)) {
+ const char *address;
+
+ address = g_udev_device_get_sysfs_attr (device, "address");
+ if (address)
+ specs = g_slist_append (specs, g_strdup_printf ("mac:%s", address));
+ else
+ specs = g_slist_append (specs, g_strdup_printf ("interface-name:%s", iface));
+ }
+ return specs;
+}
+
+/*****************************************************************************/
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+ case NM_SETTINGS_PLUGIN_PROP_NAME:
+ g_value_set_string (value, IFUPDOWN_PLUGIN_NAME);
+ break;
+ case NM_SETTINGS_PLUGIN_PROP_INFO:
+ g_value_set_string (value, IFUPDOWN_PLUGIN_INFO);
+ break;
+ case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES:
+ g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
static void
init (NMSettingsPlugin *config)
{
@@ -442,61 +468,7 @@ init (NMSettingsPlugin *config)
nm_log_info (LOGD_SETTINGS, "end _init.");
}
-
-/* Returns the plugins currently known list of connections. The returned
- * list is freed by the system settings service.
- */
-static GSList*
-get_connections (NMSettingsPlugin *config)
-{
- SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (config);
- GSList *connections;
-
- nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections.", GPOINTER_TO_UINT(config));
-
- if(priv->unmanage_well_known) {
- nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections (managed=false): return empty list.", GPOINTER_TO_UINT(config));
- return NULL;
- }
-
- connections = _nm_utils_hash_values_to_slist (priv->connections);
-
- nm_log_info (LOGD_SETTINGS, "(%d) connections count: %d", GPOINTER_TO_UINT(config), g_slist_length(connections));
- return connections;
-}
-
-/*
- * Return a list of device specifications which NetworkManager should not
- * manage. Returned list will be freed by the system settings service, and
- * each element must be allocated using g_malloc() or its variants.
- */
-static GSList*
-get_unmanaged_specs (NMSettingsPlugin *config)
-{
- SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (config);
- GSList *specs = NULL;
- GHashTableIter iter;
- GUdevDevice *device;
- const char *iface;
-
- if (!ALWAYS_UNMANAGE && !priv->unmanage_well_known)
- return NULL;
-
- nm_log_info (LOGD_SETTINGS, "get unmanaged devices count: %d",
- g_hash_table_size (priv->kernel_ifaces));
-
- g_hash_table_iter_init (&iter, priv->kernel_ifaces);
- while (g_hash_table_iter_next (&iter, (gpointer) &iface, (gpointer) &device)) {
- const char *address;
-
- address = g_udev_device_get_sysfs_attr (device, "address");
- if (address)
- specs = g_slist_append (specs, g_strdup_printf ("mac:%s", address));
- else
- specs = g_slist_append (specs, g_strdup_printf ("interface-name:%s", iface));
- }
- return specs;
-}
+/*****************************************************************************/
static void
settings_plugin_ifupdown_init (SettingsPluginIfupdown *plugin)
@@ -504,55 +476,49 @@ settings_plugin_ifupdown_init (SettingsPluginIfupdown *plugin)
}
static void
-get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+dispose (GObject *object)
{
- switch (prop_id) {
- case NM_SETTINGS_PLUGIN_PROP_NAME:
- g_value_set_string (value, IFUPDOWN_PLUGIN_NAME);
- break;
- case NM_SETTINGS_PLUGIN_PROP_INFO:
- g_value_set_string (value, IFUPDOWN_PLUGIN_INFO);
- break;
- case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES:
- g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
+ SettingsPluginIfupdown *plugin = SETTINGS_PLUGIN_IFUPDOWN (object);
+ SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (plugin);
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ g_clear_pointer (&priv->kernel_ifaces, g_hash_table_destroy);
+ g_clear_pointer (&priv->eni_ifaces, g_hash_table_destroy);
+ g_clear_object (&priv->client);
+
+ G_OBJECT_CLASS (settings_plugin_ifupdown_parent_class)->dispose (object);
}
static void
-dispose (GObject *object)
+settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *req_class)
{
- SettingsPluginIfupdown *plugin = SETTINGS_PLUGIN_IFUPDOWN (object);
- SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (plugin);
+ GObjectClass *object_class = G_OBJECT_CLASS (req_class);
- if (priv->kernel_ifaces)
- g_hash_table_destroy(priv->kernel_ifaces);
+ object_class->dispose = dispose;
+ object_class->get_property = get_property;
- if (priv->eni_ifaces)
- g_hash_table_destroy(priv->eni_ifaces);
+ g_object_class_override_property (object_class,
+ NM_SETTINGS_PLUGIN_PROP_NAME,
+ NM_SETTINGS_PLUGIN_NAME);
- if (priv->client)
- g_object_unref (priv->client);
+ g_object_class_override_property (object_class,
+ NM_SETTINGS_PLUGIN_PROP_INFO,
+ NM_SETTINGS_PLUGIN_INFO);
+ g_object_class_override_property (object_class,
+ NM_SETTINGS_PLUGIN_PROP_CAPABILITIES,
+ NM_SETTINGS_PLUGIN_CAPABILITIES);
+}
- G_OBJECT_CLASS (settings_plugin_ifupdown_parent_class)->dispose (object);
+static void
+settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
+{
+ plugin_iface->init = init;
+ plugin_iface->get_connections = get_connections;
+ plugin_iface->get_unmanaged_specs = get_unmanaged_specs;
}
+/*****************************************************************************/
+
G_MODULE_EXPORT GObject *
nm_settings_plugin_factory (void)
{
diff --git a/src/settings/plugins/ifupdown/plugin.h b/src/settings/plugins/ifupdown/plugin.h
index b568ea78b6..c2a3639cc3 100644
--- a/src/settings/plugins/ifupdown/plugin.h
+++ b/src/settings/plugins/ifupdown/plugin.h
@@ -36,14 +36,6 @@
typedef struct _SettingsPluginIfupdown SettingsPluginIfupdown;
typedef struct _SettingsPluginIfupdownClass SettingsPluginIfupdownClass;
-struct _SettingsPluginIfupdown {
- GObject parent;
-};
-
-struct _SettingsPluginIfupdownClass {
- GObjectClass parent;
-};
-
GType settings_plugin_ifupdown_get_type (void);
-#endif /* _PLUGIN_H_ */
+#endif /* _PLUGIN_H_ */
diff --git a/src/settings/plugins/keyfile/plugin.c b/src/settings/plugins/keyfile/plugin.c
index c5598fc5b4..40014128ba 100644
--- a/src/settings/plugins/keyfile/plugin.c
+++ b/src/settings/plugins/keyfile/plugin.c
@@ -21,6 +21,8 @@
#include "nm-default.h"
+#include "plugin.h"
+
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
@@ -35,19 +37,12 @@
#include "nm-config.h"
#include "nm-core-internal.h"
-#include "plugin.h"
#include "nm-settings-plugin.h"
#include "nm-keyfile-connection.h"
#include "writer.h"
#include "utils.h"
-static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
-
-G_DEFINE_TYPE_EXTENDED (SettingsPluginKeyfile, settings_plugin_keyfile, G_TYPE_OBJECT, 0,
- G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
- settings_plugin_interface_init))
-
-#define SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_KEYFILE, SettingsPluginKeyfilePrivate))
+/*****************************************************************************/
typedef struct {
GHashTable *connections; /* uuid::connection */
@@ -59,10 +54,29 @@ typedef struct {
NMConfig *config;
} SettingsPluginKeyfilePrivate;
+struct _SettingsPluginKeyfile {
+ GObject parent;
+ SettingsPluginKeyfilePrivate _priv;
+};
+
+struct _SettingsPluginKeyfileClass {
+ GObjectClass parent;
+};
+
+static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface);
+
+G_DEFINE_TYPE_EXTENDED (SettingsPluginKeyfile, settings_plugin_keyfile, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN,
+ settings_plugin_interface_init))
+
+#define SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginKeyfile, SETTINGS_IS_PLUGIN_KEYFILE)
+
+/*****************************************************************************/
+
static void
connection_removed_cb (NMSettingsConnection *obj, gpointer user_data)
{
- g_hash_table_remove (SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (user_data)->connections,
+ g_hash_table_remove (SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) user_data)->connections,
nm_connection_get_uuid (NM_CONNECTION (obj)));
}
@@ -327,7 +341,7 @@ config_changed_cb (NMConfig *config,
static void
setup_monitoring (NMSettingsPlugin *config)
{
- SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (config);
+ SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) config);
GFile *file;
GFileMonitor *monitor;
@@ -455,12 +469,12 @@ read_connections (NMSettingsPlugin *config)
}
}
-/* Plugin */
+/*****************************************************************************/
static GSList *
get_connections (NMSettingsPlugin *config)
{
- SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (config);
+ SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) config);
if (!priv->initialized) {
setup_monitoring (config);
@@ -474,7 +488,7 @@ static gboolean
load_connection (NMSettingsPlugin *config,
const char *filename)
{
- SettingsPluginKeyfile *self = SETTINGS_PLUGIN_KEYFILE (config);
+ SettingsPluginKeyfile *self = SETTINGS_PLUGIN_KEYFILE ((SettingsPluginKeyfile *) config);
NMKeyfileConnection *connection;
int dir_len = strlen (nm_keyfile_plugin_get_path ());
@@ -516,7 +530,7 @@ add_connection (NMSettingsPlugin *config,
static GSList *
get_unmanaged_specs (NMSettingsPlugin *config)
{
- SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (config);
+ SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) config);
gs_free char *value = NULL;
value = nm_config_data_get_value (nm_config_get_data (priv->config),
@@ -526,19 +540,11 @@ get_unmanaged_specs (NMSettingsPlugin *config)
return nm_match_spec_split (value);
}
-/* GObject */
-
-static void
-settings_plugin_keyfile_init (SettingsPluginKeyfile *plugin)
-{
- SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (plugin);
-
- priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
-}
+/*****************************************************************************/
static void
get_property (GObject *object, guint prop_id,
- GValue *value, GParamSpec *pspec)
+ GValue *value, GParamSpec *pspec)
{
switch (prop_id) {
case NM_SETTINGS_PLUGIN_PROP_NAME:
@@ -556,21 +562,20 @@ get_property (GObject *object, guint prop_id,
}
}
+/*****************************************************************************/
+
static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
+settings_plugin_keyfile_init (SettingsPluginKeyfile *plugin)
{
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (plugin);
+
+ priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
}
static void
constructed (GObject *object)
{
- SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (object);
+ SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) object);
priv->config = g_object_ref (nm_config_get ());
if (nm_config_data_has_value (nm_config_get_data_orig (priv->config),
@@ -580,10 +585,16 @@ constructed (GObject *object)
nm_log_warn (LOGD_SETTINGS, "keyfile: 'hostname' option is deprecated and has no effect");
}
+GObject *
+nm_settings_keyfile_plugin_new (void)
+{
+ return g_object_new (SETTINGS_TYPE_PLUGIN_KEYFILE, NULL);
+}
+
static void
dispose (GObject *object)
{
- SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (object);
+ SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) object);
if (priv->monitor) {
nm_clear_g_signal_handler (priv->monitor, &priv->monitor_id);
@@ -610,12 +621,9 @@ settings_plugin_keyfile_class_init (SettingsPluginKeyfileClass *req_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (req_class);
- g_type_class_add_private (req_class, sizeof (SettingsPluginKeyfilePrivate));
-
object_class->constructed = constructed;
object_class->dispose = dispose;
object_class->get_property = get_property;
- object_class->set_property = set_property;
g_object_class_override_property (object_class,
NM_SETTINGS_PLUGIN_PROP_NAME,
@@ -633,16 +641,9 @@ settings_plugin_keyfile_class_init (SettingsPluginKeyfileClass *req_class)
static void
settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface)
{
- /* interface implementation */
plugin_iface->get_connections = get_connections;
plugin_iface->load_connection = load_connection;
plugin_iface->reload_connections = reload_connections;
plugin_iface->add_connection = add_connection;
plugin_iface->get_unmanaged_specs = get_unmanaged_specs;
}
-
-GObject *
-nm_settings_keyfile_plugin_new (void)
-{
- return g_object_new (SETTINGS_TYPE_PLUGIN_KEYFILE, NULL);
-}
diff --git a/src/settings/plugins/keyfile/plugin.h b/src/settings/plugins/keyfile/plugin.h
index a22b9c494a..21f41c88d1 100644
--- a/src/settings/plugins/keyfile/plugin.h
+++ b/src/settings/plugins/keyfile/plugin.h
@@ -19,8 +19,8 @@
* Copyright (C) 2008 - 2011 Red Hat, Inc.
*/
-#ifndef _PLUGIN_H_
-#define _PLUGIN_H_
+#ifndef __NMKF_PLUGIN_H__
+#define __NMKF_PLUGIN_H__
#define SETTINGS_TYPE_PLUGIN_KEYFILE (settings_plugin_keyfile_get_type ())
#define SETTINGS_PLUGIN_KEYFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SETTINGS_TYPE_PLUGIN_KEYFILE, SettingsPluginKeyfile))
@@ -29,16 +29,11 @@
#define SETTINGS_IS_PLUGIN_KEYFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SETTINGS_TYPE_PLUGIN_KEYFILE))
#define SETTINGS_PLUGIN_KEYFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SETTINGS_TYPE_PLUGIN_KEYFILE, SettingsPluginKeyfileClass))
-typedef struct {
- GObject parent;
-} SettingsPluginKeyfile;
-
-typedef struct {
- GObjectClass parent;
-} SettingsPluginKeyfileClass;
+typedef struct _SettingsPluginKeyfile SettingsPluginKeyfile;
+typedef struct _SettingsPluginKeyfileClass SettingsPluginKeyfileClass;
GType settings_plugin_keyfile_get_type (void);
GObject *nm_settings_keyfile_plugin_new (void);
-#endif /* _PLUGIN_H_ */
+#endif /* __NMKF_PLUGIN_H__ */
diff --git a/src/tests/config/nm-test-device.c b/src/tests/config/nm-test-device.c
index 1ae964eef2..33df46c285 100644
--- a/src/tests/config/nm-test-device.c
+++ b/src/tests/config/nm-test-device.c
@@ -20,16 +20,37 @@
#include "nm-default.h"
+#include "nm-test-device.h"
+
#include <string.h>
-#include "nm-test-device.h"
#include "nm-device-private.h"
#include "nm-utils.h"
+/*****************************************************************************/
+
+struct _NMTestDevice {
+ NMDevice parent;
+};
+
+struct _NMTestDeviceClass {
+ NMDeviceClass parent;
+};
+
G_DEFINE_TYPE (NMTestDevice, nm_test_device, NM_TYPE_DEVICE)
#define PARENT_CLASS (G_OBJECT_CLASS (g_type_class_peek_parent (nm_test_device_parent_class)))
+/*****************************************************************************/
+
+static NMDeviceCapabilities
+get_generic_capabilities (NMDevice *device)
+{
+ return NM_DEVICE_CAP_IS_NON_KERNEL;
+}
+
+/*****************************************************************************/
+
static void
nm_test_device_init (NMTestDevice *self)
{
@@ -50,10 +71,13 @@ dispose (GObject *object)
PARENT_CLASS->dispose (object);
}
-static NMDeviceCapabilities
-get_generic_capabilities (NMDevice *device)
+NMDevice *
+nm_test_device_new (const char *hwaddr)
{
- return NM_DEVICE_CAP_IS_NON_KERNEL;
+ return g_object_new (NM_TYPE_TEST_DEVICE,
+ NM_DEVICE_IFACE, "dummy",
+ NM_DEVICE_PERM_HW_ADDRESS, hwaddr,
+ NULL);
}
static void
@@ -67,12 +91,3 @@ nm_test_device_class_init (NMTestDeviceClass *klass)
device_class->get_generic_capabilities = get_generic_capabilities;
}
-
-NMDevice *
-nm_test_device_new (const char *hwaddr)
-{
- return g_object_new (NM_TYPE_TEST_DEVICE,
- NM_DEVICE_IFACE, "dummy",
- NM_DEVICE_PERM_HW_ADDRESS, hwaddr,
- NULL);
-}
diff --git a/src/tests/config/nm-test-device.h b/src/tests/config/nm-test-device.h
index dfb8ff7813..c200b728f4 100644
--- a/src/tests/config/nm-test-device.h
+++ b/src/tests/config/nm-test-device.h
@@ -30,14 +30,8 @@
#define NM_IS_TEST_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_TEST_DEVICE))
#define NM_TEST_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_TEST_DEVICE, NMTestDeviceClass))
-typedef struct {
- NMDevice parent;
-
-} NMTestDevice;
-
-typedef struct {
- NMDeviceClass parent;
-} NMTestDeviceClass;
+typedef struct _NMTestDevice NMTestDevice;
+typedef struct _NMTestDeviceClass NMTestDeviceClass;
GType nm_test_device_get_type (void);