summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-10-18 22:09:44 +0200
committerThomas Haller <thaller@redhat.com>2019-10-18 22:09:44 +0200
commitba64c162dc471740a405f9d59e7a132f0e290078 (patch)
tree0816ba05e60fd8a74729ddf51e3a7b3749d4b112
parent79b383e3b7a27637c896fb0e755802110c185290 (diff)
parent6662536d44feff08ce73e1cf294e4e46c0942e88 (diff)
downloadNetworkManager-ba64c162dc471740a405f9d59e7a132f0e290078.tar.gz
libnm: merge branch 'th/libnm-no-dbus-codegen-2'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/309
-rw-r--r--Makefile.am11
-rw-r--r--libnm/libnm.ver2
-rw-r--r--libnm/nm-access-point.c143
-rw-r--r--libnm/nm-active-connection.c212
-rw-r--r--libnm/nm-checkpoint.c44
-rw-r--r--libnm/nm-client.c1064
-rw-r--r--libnm/nm-client.h16
-rw-r--r--libnm/nm-dbus-helpers.c19
-rw-r--r--libnm/nm-device-6lowpan.c18
-rw-r--r--libnm/nm-device-adsl.c23
-rw-r--r--libnm/nm-device-bond.c53
-rw-r--r--libnm/nm-device-bridge.c53
-rw-r--r--libnm/nm-device-bt.c54
-rw-r--r--libnm/nm-device-dummy.c26
-rw-r--r--libnm/nm-device-ethernet.c73
-rw-r--r--libnm/nm-device-generic.c39
-rw-r--r--libnm/nm-device-infiniband.c39
-rw-r--r--libnm/nm-device-ip-tunnel.c148
-rw-r--r--libnm/nm-device-macsec.c114
-rw-r--r--libnm/nm-device-macvlan.c73
-rw-r--r--libnm/nm-device-modem.c82
-rw-r--r--libnm/nm-device-olpc-mesh.c52
-rw-r--r--libnm/nm-device-ovs-bridge.c28
-rw-r--r--libnm/nm-device-ovs-port.c28
-rw-r--r--libnm/nm-device-team.c64
-rw-r--r--libnm/nm-device-tun.c95
-rw-r--r--libnm/nm-device-vlan.c62
-rw-r--r--libnm/nm-device-vxlan.c216
-rw-r--r--libnm/nm-device-wifi.c144
-rw-r--r--libnm/nm-device-wimax.c138
-rw-r--r--libnm/nm-device-wpan.c31
-rw-r--r--libnm/nm-device.c360
-rw-r--r--libnm/nm-dhcp-config.c36
-rw-r--r--libnm/nm-dns-manager.c51
-rw-r--r--libnm/nm-ip-config.c102
-rw-r--r--libnm/nm-libnm-utils.c103
-rw-r--r--libnm/nm-libnm-utils.h100
-rw-r--r--libnm/nm-manager.c382
-rw-r--r--libnm/nm-manager.h1
-rw-r--r--libnm/nm-object.c91
-rw-r--r--libnm/nm-remote-connection.c61
-rw-r--r--libnm/nm-remote-settings.c88
-rw-r--r--libnm/nm-remote-settings.h1
-rw-r--r--libnm/nm-vpn-connection.c57
-rw-r--r--libnm/nm-vpn-plugin-old.c167
-rw-r--r--libnm/nm-vpn-service-plugin.c179
-rw-r--r--libnm/nm-wimax-nsp.c49
-rw-r--r--libnm/tests/test-libnm.c252
-rw-r--r--shared/nm-default.h4
-rw-r--r--shared/nm-glib-aux/nm-c-list.h6
-rw-r--r--shared/nm-glib-aux/nm-shared-utils.c60
-rw-r--r--shared/nm-glib-aux/nm-shared-utils.h11
-rw-r--r--src/nm-core-utils.c60
-rw-r--r--src/nm-core-utils.h4
54 files changed, 2801 insertions, 2588 deletions
diff --git a/Makefile.am b/Makefile.am
index c38da77c60..dde8a7b03c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -748,6 +748,7 @@ CLEANFILES += $(DBUS_INTERFACE_DOCS)
$(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(introspection_sources)
$(dispatcher_nm_dispatcher_OBJECTS): $(introspection_sources)
+$(libnm_liblibnm_la_OBJECTS): $(introspection_sources)
$(libnm_libnm_la_OBJECTS): $(introspection_sources)
EXTRA_DIST += \
@@ -1327,6 +1328,11 @@ libnm_liblibnm_la_SOURCES = \
$(libnm_lib_c_real) \
$(NULL)
+nodist_libnm_liblibnm_la_SOURCES = \
+ $(libnm_lib_h_pub_mkenums) \
+ $(libnm_lib_c_mkenums) \
+ $(NULL)
+
libnm_liblibnm_la_LIBADD = \
shared/nm-libnm-core-aux/libnm-libnm-core-aux.la \
libnm-core/libnm-core.la \
@@ -1377,11 +1383,6 @@ libnm_libnm_la_SOURCES = \
$(libnm_lib_h_priv) \
$(NULL)
-nodist_libnm_libnm_la_SOURCES = \
- $(libnm_lib_h_pub_mkenums) \
- $(libnm_lib_c_mkenums) \
- $(NULL)
-
EXTRA_libnm_libnm_la_DEPENDENCIES = \
libnm/libnm.ver
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index 15aa5fa169..f43e1ba997 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -1631,6 +1631,8 @@ global:
libnm_1_22_0 {
global:
+ nm_client_get_dbus_connection;
+ nm_client_get_dbus_name_owner;
nm_client_reload;
nm_client_reload_finish;
nm_manager_reload_flags_get_type;
diff --git a/libnm/nm-access-point.c b/libnm/nm-access-point.c
index a3c2dacaf2..1ca50a6d13 100644
--- a/libnm/nm-access-point.c
+++ b/libnm/nm-access-point.c
@@ -34,8 +34,7 @@ typedef struct {
int last_seen;
} NMAccessPointPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_FLAGS,
PROP_WPA_FLAGS,
PROP_RSN_FLAGS,
@@ -47,9 +46,7 @@ enum {
PROP_STRENGTH,
PROP_BSSID,
PROP_LAST_SEEN,
-
- LAST_PROP
-};
+);
/**
* nm_access_point_get_flags:
@@ -474,88 +471,79 @@ nm_access_point_class_init (NMAccessPointClass *ap_class)
g_type_class_add_private (ap_class, sizeof (NMAccessPointPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* properties */
-
/**
* NMAccessPoint:flags:
*
* The flags of the access point.
**/
- g_object_class_install_property
- (object_class, PROP_FLAGS,
- g_param_spec_flags (NM_ACCESS_POINT_FLAGS, "", "",
- NM_TYPE_802_11_AP_FLAGS,
- NM_802_11_AP_FLAGS_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FLAGS] =
+ g_param_spec_flags (NM_ACCESS_POINT_FLAGS, "", "",
+ NM_TYPE_802_11_AP_FLAGS,
+ NM_802_11_AP_FLAGS_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:wpa-flags:
*
* The WPA flags of the access point.
**/
- g_object_class_install_property
- (object_class, PROP_WPA_FLAGS,
- g_param_spec_flags (NM_ACCESS_POINT_WPA_FLAGS, "", "",
- NM_TYPE_802_11_AP_SECURITY_FLAGS,
- NM_802_11_AP_SEC_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WPA_FLAGS] =
+ g_param_spec_flags (NM_ACCESS_POINT_WPA_FLAGS, "", "",
+ NM_TYPE_802_11_AP_SECURITY_FLAGS,
+ NM_802_11_AP_SEC_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:rsn-flags:
*
* The RSN flags of the access point.
**/
- g_object_class_install_property
- (object_class, PROP_RSN_FLAGS,
- g_param_spec_flags (NM_ACCESS_POINT_RSN_FLAGS, "", "",
- NM_TYPE_802_11_AP_SECURITY_FLAGS,
- NM_802_11_AP_SEC_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_RSN_FLAGS] =
+ g_param_spec_flags (NM_ACCESS_POINT_RSN_FLAGS, "", "",
+ NM_TYPE_802_11_AP_SECURITY_FLAGS,
+ NM_802_11_AP_SEC_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:ssid:
*
* The SSID of the access point, or %NULL if it is not known.
**/
- g_object_class_install_property
- (object_class, PROP_SSID,
- g_param_spec_boxed (NM_ACCESS_POINT_SSID, "", "",
- G_TYPE_BYTES,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SSID] =
+ g_param_spec_boxed (NM_ACCESS_POINT_SSID, "", "",
+ G_TYPE_BYTES,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:frequency:
*
* The frequency of the access point.
**/
- g_object_class_install_property
- (object_class, PROP_FREQUENCY,
- g_param_spec_uint (NM_ACCESS_POINT_FREQUENCY, "", "",
- 0, 10000, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FREQUENCY] =
+ g_param_spec_uint (NM_ACCESS_POINT_FREQUENCY, "", "",
+ 0, 10000, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:bssid:
*
* The BSSID of the access point.
**/
- g_object_class_install_property
- (object_class, PROP_BSSID,
- g_param_spec_string (NM_ACCESS_POINT_BSSID, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_BSSID] =
+ g_param_spec_string (NM_ACCESS_POINT_BSSID, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:hw-address:
@@ -564,12 +552,11 @@ nm_access_point_class_init (NMAccessPointClass *ap_class)
*
* Deprecated: 1.0: use #NMAccessPoint:bssid.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_ACCESS_POINT_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_ACCESS_POINT_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:mode:
@@ -578,37 +565,34 @@ nm_access_point_class_init (NMAccessPointClass *ap_class)
* coordinator of the wireless network allowing clients to connect) or
* "ad-hoc" (a network with no central controller).
**/
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_enum (NM_ACCESS_POINT_MODE, "", "",
- NM_TYPE_802_11_MODE,
- NM_802_11_MODE_INFRA,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODE] =
+ g_param_spec_enum (NM_ACCESS_POINT_MODE, "", "",
+ NM_TYPE_802_11_MODE,
+ NM_802_11_MODE_INFRA,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:max-bitrate:
*
* The maximum bit rate of the access point in kbit/s.
**/
- g_object_class_install_property
- (object_class, PROP_MAX_BITRATE,
- g_param_spec_uint (NM_ACCESS_POINT_MAX_BITRATE, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MAX_BITRATE] =
+ g_param_spec_uint (NM_ACCESS_POINT_MAX_BITRATE, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:strength:
*
* The current signal strength of the access point.
**/
- g_object_class_install_property
- (object_class, PROP_STRENGTH,
- g_param_spec_uchar (NM_ACCESS_POINT_STRENGTH, "", "",
- 0, G_MAXUINT8, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STRENGTH] =
+ g_param_spec_uchar (NM_ACCESS_POINT_STRENGTH, "", "",
+ 0, G_MAXUINT8, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMAccessPoint:last-seen:
@@ -619,10 +603,11 @@ nm_access_point_class_init (NMAccessPointClass *ap_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_LAST_SEEN,
- g_param_spec_int (NM_ACCESS_POINT_LAST_SEEN, "", "",
- -1, G_MAXINT, -1,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_LAST_SEEN] =
+ g_param_spec_int (NM_ACCESS_POINT_LAST_SEEN, "", "",
+ -1, G_MAXINT, -1,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-active-connection.c b/libnm/nm-active-connection.c
index 92557be36b..94e02d9df0 100644
--- a/libnm/nm-active-connection.c
+++ b/libnm/nm-active-connection.c
@@ -47,8 +47,7 @@ typedef struct {
NMActiveConnectionStateReason reason;
} NMActiveConnectionPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMActiveConnection,
PROP_CONNECTION,
PROP_ID,
PROP_UUID,
@@ -65,9 +64,7 @@ enum {
PROP_DHCP6_CONFIG,
PROP_VPN,
PROP_MASTER,
-
- LAST_PROP
-};
+);
enum {
STATE_CHANGED,
@@ -395,7 +392,7 @@ state_changed_proxy (NMDBusActiveConnectionProxy *proxy,
priv->state = state;
priv->reason = reason;
g_signal_emit (connection, signals[STATE_CHANGED], 0, state, reason);
- g_object_notify (G_OBJECT (connection), NM_ACTIVE_CONNECTION_STATE);
+ _notify (connection, PROP_STATE);
}
static void
@@ -572,63 +569,56 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
g_type_class_add_private (ap_class, sizeof (NMActiveConnectionPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->constructed = constructed;
- object_class->dispose = dispose;
- object_class->finalize = finalize;
+ object_class->constructed = constructed;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* properties */
-
/**
* NMActiveConnection:connection:
*
* The connection that this is an active instance of.
**/
- g_object_class_install_property
- (object_class, PROP_CONNECTION,
- g_param_spec_object (NM_ACTIVE_CONNECTION_CONNECTION, "", "",
- NM_TYPE_REMOTE_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CONNECTION] =
+ g_param_spec_object (NM_ACTIVE_CONNECTION_CONNECTION, "", "",
+ NM_TYPE_REMOTE_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:id:
*
* The active connection's ID
**/
- g_object_class_install_property
- (object_class, PROP_ID,
- g_param_spec_string (NM_ACTIVE_CONNECTION_ID, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ID] =
+ g_param_spec_string (NM_ACTIVE_CONNECTION_ID, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:uuid:
*
* The active connection's UUID
**/
- g_object_class_install_property
- (object_class, PROP_UUID,
- g_param_spec_string (NM_ACTIVE_CONNECTION_UUID, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_UUID] =
+ g_param_spec_string (NM_ACTIVE_CONNECTION_UUID, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:type:
*
* The active connection's type
**/
- g_object_class_install_property
- (object_class, PROP_TYPE,
- g_param_spec_string (NM_ACTIVE_CONNECTION_TYPE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_TYPE] =
+ g_param_spec_string (NM_ACTIVE_CONNECTION_TYPE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:specific-object-path:
@@ -636,37 +626,34 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
* The path to the "specific object" of the active connection; see
* nm_active_connection_get_specific_object_path() for more details.
**/
- g_object_class_install_property
- (object_class, PROP_SPECIFIC_OBJECT_PATH,
- g_param_spec_string (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SPECIFIC_OBJECT_PATH] =
+ g_param_spec_string (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT_PATH, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:devices: (type GPtrArray(NMDevice))
*
* The devices of the active connection.
**/
- g_object_class_install_property
- (object_class, PROP_DEVICES,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEVICES] =
+ g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:state:
*
* The state of the active connection.
**/
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_ACTIVE_CONNECTION_STATE, "", "",
- NM_TYPE_ACTIVE_CONNECTION_STATE,
- NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_ACTIVE_CONNECTION_STATE, "", "",
+ NM_TYPE_ACTIVE_CONNECTION_STATE,
+ NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:state-flags:
@@ -675,109 +662,102 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
*
* Since: 1.10
**/
- g_object_class_install_property
- (object_class, PROP_STATE_FLAGS,
- g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE_FLAGS, "", "",
- 0, G_MAXUINT32,
- NM_ACTIVATION_STATE_FLAG_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STATE_FLAGS] =
+ g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE_FLAGS, "", "",
+ 0, G_MAXUINT32,
+ NM_ACTIVATION_STATE_FLAG_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:default:
*
* Whether the active connection is the default IPv4 one.
**/
- g_object_class_install_property
- (object_class, PROP_DEFAULT,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEFAULT] =
+ g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:ip4-config:
*
* The IPv4 #NMIPConfig of the connection.
**/
- g_object_class_install_property
- (object_class, PROP_IP4_CONFIG,
- g_param_spec_object (NM_ACTIVE_CONNECTION_IP4_CONFIG, "", "",
- NM_TYPE_IP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP4_CONFIG] =
+ g_param_spec_object (NM_ACTIVE_CONNECTION_IP4_CONFIG, "", "",
+ NM_TYPE_IP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:dhcp4-config:
*
* The IPv4 #NMDhcpConfig of the connection.
**/
- g_object_class_install_property
- (object_class, PROP_DHCP4_CONFIG,
- g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP4_CONFIG, "", "",
- NM_TYPE_DHCP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DHCP4_CONFIG] =
+ g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP4_CONFIG, "", "",
+ NM_TYPE_DHCP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:default6:
*
* Whether the active connection is the default IPv6 one.
**/
- g_object_class_install_property
- (object_class, PROP_DEFAULT6,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEFAULT6] =
+ g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:ip6-config:
*
* The IPv6 #NMIPConfig of the connection.
**/
- g_object_class_install_property
- (object_class, PROP_IP6_CONFIG,
- g_param_spec_object (NM_ACTIVE_CONNECTION_IP6_CONFIG, "", "",
- NM_TYPE_IP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP6_CONFIG] =
+ g_param_spec_object (NM_ACTIVE_CONNECTION_IP6_CONFIG, "", "",
+ NM_TYPE_IP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:dhcp6-config:
*
* The IPv6 #NMDhcpConfig of the connection.
**/
- g_object_class_install_property
- (object_class, PROP_DHCP6_CONFIG,
- g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP6_CONFIG, "", "",
- NM_TYPE_DHCP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DHCP6_CONFIG] =
+ g_param_spec_object (NM_ACTIVE_CONNECTION_DHCP6_CONFIG, "", "",
+ NM_TYPE_DHCP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:vpn:
*
* Whether the active connection is a VPN connection.
**/
- g_object_class_install_property
- (object_class, PROP_VPN,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_VPN] =
+ g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMActiveConnection:master:
*
* The master device if one exists.
**/
- g_object_class_install_property
- (object_class, PROP_MASTER,
- g_param_spec_object (NM_ACTIVE_CONNECTION_MASTER, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MASTER] =
+ g_param_spec_object (NM_ACTIVE_CONNECTION_MASTER, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
/**
* NMActiveConnection::state-changed:
@@ -786,10 +766,10 @@ nm_active_connection_class_init (NMActiveConnectionClass *ap_class)
* @reason: the state change reason (#NMActiveConnectionStateReason)
*/
signals[STATE_CHANGED] =
- g_signal_new ("state-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);
+ g_signal_new ("state-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/libnm/nm-checkpoint.c b/libnm/nm-checkpoint.c
index 43ce0fd32f..8f9a54e7fa 100644
--- a/libnm/nm-checkpoint.c
+++ b/libnm/nm-checkpoint.c
@@ -30,14 +30,11 @@ G_DEFINE_TYPE (NMCheckpoint, nm_checkpoint, NM_TYPE_OBJECT)
#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT)
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_DEVICES,
PROP_CREATED,
PROP_ROLLBACK_TIMEOUT,
-
- LAST_PROP
-};
+);
/**
* nm_checkpoint_get_devices:
@@ -163,7 +160,7 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
NMObjectClass *nm_object_class = NM_OBJECT_CLASS (checkpoint_class);
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
@@ -174,12 +171,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_DEVICES,
- g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEVICES] =
+ g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMCheckpoint:created:
@@ -188,12 +184,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_CREATED,
- g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "",
- G_MININT64, G_MAXINT64, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CREATED] =
+ g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "",
+ G_MININT64, G_MAXINT64, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMCheckpoint:rollback-timeout:
@@ -202,10 +197,11 @@ nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_ROLLBACK_TIMEOUT,
- g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ROLLBACK_TIMEOUT] =
+ g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index 5189d67a53..9ad3a874d8 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -76,18 +76,11 @@
#include "nm-remote-settings.h"
#include "nm-vpn-connection.h"
-void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean enabled);
+/*****************************************************************************/
static void nm_client_initable_iface_init (GInitableIface *iface);
static void nm_client_async_initable_iface_init (GAsyncInitableIface *iface);
-G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_client_initable_iface_init);
- G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_client_async_initable_iface_init);
- )
-
-#define NM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CLIENT, NMClientPrivate))
-
typedef struct {
NMClient *client;
GCancellable *cancellable;
@@ -95,19 +88,9 @@ typedef struct {
int pending_init;
} NMClientInitData;
-typedef struct {
- NMManager *manager;
- NMRemoteSettings *settings;
- NMDnsManager *dns_manager;
- GDBusObjectManager *object_manager;
- GCancellable *new_object_manager_cancellable;
- char *name_owner_cached;
- struct udev *udev;
- bool udev_inited:1;
-} NMClientPrivate;
-
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMClient,
+ PROP_DBUS_CONNECTION,
+ PROP_DBUS_NAME_OWNER,
PROP_VERSION,
PROP_STATE,
PROP_STARTUP,
@@ -135,9 +118,7 @@ enum {
PROP_DNS_RC_MANAGER,
PROP_DNS_CONFIGURATION,
PROP_CHECKPOINTS,
-
- LAST_PROP
-};
+);
enum {
DEVICE_ADDED,
@@ -155,6 +136,32 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
+typedef struct {
+ GMainContext *main_context;
+ NMManager *manager;
+ NMRemoteSettings *settings;
+ NMDnsManager *dns_manager;
+ GDBusConnection *dbus_connection;
+ GDBusObjectManager *object_manager;
+ GCancellable *new_object_manager_cancellable;
+ char *name_owner_cached;
+ struct udev *udev;
+ bool udev_inited:1;
+} NMClientPrivate;
+
+G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_client_initable_iface_init);
+ G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_client_async_initable_iface_init);
+ )
+
+#define NM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CLIENT, NMClientPrivate))
+
+/*****************************************************************************/
+
+void _nm_device_wifi_set_wireless_enabled (NMDeviceWifi *device, gboolean enabled);
+
+/*****************************************************************************/
+
static const GPtrArray empty = { 0, };
/*****************************************************************************/
@@ -173,16 +180,9 @@ NM_CACHED_QUARK_FCN ("nm-client-error-quark", nm_client_error_quark)
GDBusConnection *
_nm_client_get_dbus_connection (NMClient *client)
{
- NMClientPrivate *priv;
-
nm_assert (NM_IS_CLIENT (client));
- priv = NM_CLIENT_GET_PRIVATE (client);
-
- if (!priv->object_manager)
- return NULL;
-
- return g_dbus_object_manager_client_get_connection (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager));
+ return NM_CLIENT_GET_PRIVATE (client)->dbus_connection;
}
const char *
@@ -205,11 +205,6 @@ _nm_client_get_dbus_name_owner (NMClient *client)
/*****************************************************************************/
-static void
-nm_client_init (NMClient *client)
-{
-}
-
static gboolean
_nm_client_check_nm_running (NMClient *client, GError **error)
{
@@ -221,6 +216,43 @@ _nm_client_check_nm_running (NMClient *client, GError **error)
}
/**
+ * nm_client_get_dbus_connection:
+ * @client: a #NMClient
+ *
+ * Gets the %GDBusConnection of the instance. This can be either passed when
+ * constructing the instance (as "dbus-connection" property), or it will be
+ * automatically initialized during async/sync init.
+ *
+ * Returns: (transfer none): the D-Bus connection of the client, or %NULL if none is set.
+ *
+ * Since: 1.22
+ **/
+GDBusConnection *
+nm_client_get_dbus_connection (NMClient *client)
+{
+ g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
+
+ return NM_CLIENT_GET_PRIVATE (client)->dbus_connection;
+}
+
+/**
+ * nm_client_get_dbus_name_owner:
+ * @client: a #NMClient
+ *
+ * Returns: (transfer none): the current name owner of the D-Bus service of NetworkManager.
+ *
+ * Since: 1.22
+ **/
+const char *
+nm_client_get_dbus_name_owner (NMClient *client)
+{
+ g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
+
+ /* FIXME(release-blocker): not yet implemented. */
+ return NULL;
+}
+
+/**
* nm_client_get_version:
* @client: a #NMClient
*
@@ -2417,92 +2449,6 @@ nm_client_get_dns_configuration (NMClient *client)
/*****************************************************************************/
-/**
- * nm_client_new:
- * @cancellable: a #GCancellable, or %NULL
- * @error: location for a #GError, or %NULL
- *
- * Creates a new #NMClient.
- *
- * Note that this will do blocking D-Bus calls to initialize the
- * client. You can use nm_client_new_async() if you want to avoid
- * that.
- *
- * Returns: a new #NMClient or NULL on an error
- **/
-NMClient *
-nm_client_new (GCancellable *cancellable,
- GError **error)
-{
- return g_initable_new (NM_TYPE_CLIENT, cancellable, error,
- NULL);
-}
-
-static void
-client_inited (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- GSimpleAsyncResult *simple = user_data;
- GError *error = NULL;
-
- if (!g_async_initable_new_finish (G_ASYNC_INITABLE (source), result, &error))
- g_simple_async_result_take_error (simple, error);
- else
- g_simple_async_result_set_op_res_gpointer (simple, source, g_object_unref);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
-}
-
-/**
- * nm_client_new_async:
- * @cancellable: a #GCancellable, or %NULL
- * @callback: callback to call when the client is created
- * @user_data: data for @callback
- *
- * Creates a new #NMClient and begins asynchronously initializing it.
- * @callback will be called when it is done; use
- * nm_client_new_finish() to get the result. Note that on an error,
- * the callback can be invoked with two first parameters as NULL.
- **/
-void
-nm_client_new_async (GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GSimpleAsyncResult *simple;
-
- simple = g_simple_async_result_new (NULL, callback, user_data, nm_client_new_async);
- if (cancellable)
- g_simple_async_result_set_check_cancellable (simple, cancellable);
-
- g_async_initable_new_async (NM_TYPE_CLIENT, G_PRIORITY_DEFAULT,
- cancellable, client_inited, simple,
- NULL);
-}
-
-/**
- * nm_client_new_finish:
- * @result: a #GAsyncResult
- * @error: location for a #GError, or %NULL
- *
- * Gets the result of an nm_client_new_async() call.
- *
- * Returns: a new #NMClient, or %NULL on error
- **/
-NMClient *
-nm_client_new_finish (GAsyncResult *result, GError **error)
-{
- GSimpleAsyncResult *simple;
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL, nm_client_new_async), NULL);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- simple = G_SIMPLE_ASYNC_RESULT (result);
- if (g_simple_async_result_propagate_error (simple, error))
- return NULL;
- else
- return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
-}
-
static void
subobject_notify (GObject *object,
GParamSpec *pspec,
@@ -3331,50 +3277,6 @@ _om_has_name_owner (GDBusObjectManager *object_manager)
return !!name_owner;
}
-static gboolean
-init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
-{
- NMClient *client = NM_CLIENT (initable);
- NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client);
- GList *objects, *iter;
-
- priv->object_manager = g_dbus_object_manager_client_new_for_bus_sync (_nm_dbus_bus_type (),
- G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START,
- "org.freedesktop.NetworkManager",
- "/org/freedesktop",
- proxy_type, NULL, NULL,
- cancellable, error);
-
- if (!priv->object_manager)
- return FALSE;
-
- if (_om_has_name_owner (priv->object_manager)) {
- if (!objects_created (client, priv->object_manager, error))
- return FALSE;
-
- objects = g_dbus_object_manager_get_objects (priv->object_manager);
- for (iter = objects; iter; iter = iter->next) {
- NMObject *obj_nm;
-
- obj_nm = g_object_get_qdata (iter->data, _nm_object_obj_nm_quark ());
- if (!obj_nm)
- continue;
-
- if (!g_initable_init (G_INITABLE (obj_nm), cancellable, NULL)) {
- /* This is a can-not-happen situation, the NMObject subclasses are not
- * supposed to fail initialization. */
- g_warn_if_reached ();
- }
- }
- g_list_free_full (objects, g_object_unref);
- }
-
- g_signal_connect (priv->object_manager, "notify::name-owner",
- G_CALLBACK (name_owner_changed), client);
-
- return TRUE;
-}
-
/* Asynchronous initialization. */
static void
@@ -3429,8 +3331,8 @@ unhook_om (NMClient *self)
g_signal_handlers_disconnect_by_data (priv->manager, self);
g_clear_object (&priv->manager);
- g_object_notify (G_OBJECT (self), NM_CLIENT_ACTIVE_CONNECTIONS);
- g_object_notify (G_OBJECT (self), NM_CLIENT_NM_RUNNING);
+ _notify (self, PROP_ACTIVE_CONNECTIONS);
+ _notify (self, PROP_NM_RUNNING);
}
if (priv->settings) {
const GPtrArray *connections;
@@ -3442,9 +3344,9 @@ unhook_om (NMClient *self)
g_signal_handlers_disconnect_by_data (priv->settings, self);
g_clear_object (&priv->settings);
- g_object_notify (G_OBJECT (self), NM_CLIENT_CONNECTIONS);
- g_object_notify (G_OBJECT (self), NM_CLIENT_HOSTNAME);
- g_object_notify (G_OBJECT (self), NM_CLIENT_CAN_MODIFY);
+ _notify (self, PROP_CONNECTIONS);
+ _notify (self, PROP_HOSTNAME);
+ _notify (self, PROP_CAN_MODIFY);
}
if (priv->dns_manager) {
g_signal_handlers_disconnect_by_data (priv->dns_manager, self);
@@ -3464,7 +3366,7 @@ new_object_manager (GObject *source_object, GAsyncResult *res, gpointer user_dat
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self);
g_clear_object (&priv->new_object_manager_cancellable);
- g_object_notify (G_OBJECT (user_data), NM_CLIENT_NM_RUNNING);
+ _notify (user_data, PROP_NM_RUNNING);
}
static void
@@ -3477,16 +3379,20 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data)
GError *error = NULL;
GDBusObjectManager *object_manager;
- object_manager = g_dbus_object_manager_client_new_for_bus_finish (result, &error);
+ object_manager = (gpointer) g_async_initable_new_finish (G_ASYNC_INITABLE (object), result, &error);
if (object_manager == NULL) {
g_simple_async_result_take_error (init_data->result, error);
init_async_complete (init_data);
return;
}
+ nm_assert (G_IS_DBUS_OBJECT_MANAGER_CLIENT (object_manager));
+
client = init_data->client;
priv = NM_CLIENT_GET_PRIVATE (client);
priv->object_manager = object_manager;
+ if (!priv->dbus_connection)
+ priv->dbus_connection = g_object_ref (g_dbus_object_manager_client_get_connection (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager)));
if (_om_has_name_owner (priv->object_manager)) {
if (!objects_created (client, priv->object_manager, &error)) {
@@ -3523,7 +3429,9 @@ prepare_object_manager (NMClient *client,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client);
NMClientInitData *init_data;
+ GBusType bus_type = G_BUS_TYPE_NONE;
init_data = g_slice_new0 (NMClientInitData);
init_data->client = client;
@@ -3534,14 +3442,23 @@ prepare_object_manager (NMClient *client,
g_simple_async_result_set_check_cancellable (init_data->result, cancellable);
g_simple_async_result_set_op_res_gboolean (init_data->result, TRUE);
- g_dbus_object_manager_client_new_for_bus (_nm_dbus_bus_type (),
- G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START,
- "org.freedesktop.NetworkManager",
- "/org/freedesktop",
- proxy_type, NULL, NULL,
- init_data->cancellable,
- got_object_manager,
- init_data);
+ if (!priv->dbus_connection)
+ bus_type = _nm_dbus_bus_type ();
+
+ g_async_initable_new_async (G_TYPE_DBUS_OBJECT_MANAGER_CLIENT,
+ G_PRIORITY_DEFAULT,
+ init_data->cancellable,
+ got_object_manager,
+ init_data,
+ "connection", priv->dbus_connection,
+ "bus-type", bus_type,
+ "flags", G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START,
+ "name", "org.freedesktop.NetworkManager",
+ "object-path", "/org/freedesktop",
+ "get-proxy-type-func", proxy_type,
+ "get-proxy-type-user-data", NULL,
+ "get-proxy-type-destroy-notify", NULL,
+ NULL);
}
static void
@@ -3566,90 +3483,7 @@ name_owner_changed (GObject *object, GParamSpec *pspec, gpointer user_data)
}
}
-static void
-init_async (GAsyncInitable *initable, int io_priority,
- GCancellable *cancellable, GAsyncReadyCallback callback,
- gpointer user_data)
-{
- prepare_object_manager (NM_CLIENT (initable), cancellable, callback, user_data);
-}
-
-static gboolean
-init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error)
-{
- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
-
- if (g_simple_async_result_propagate_error (simple, error))
- return FALSE;
- else
- return TRUE;
-}
-
-static void
-dispose (GObject *object)
-{
- NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object);
-
- nm_clear_g_cancellable (&priv->new_object_manager_cancellable);
-
- if (priv->manager) {
- g_signal_handlers_disconnect_by_data (priv->manager, object);
- g_clear_object (&priv->manager);
- }
-
- if (priv->settings) {
- g_signal_handlers_disconnect_by_data (priv->settings, object);
- g_clear_object (&priv->settings);
- }
-
- if (priv->dns_manager) {
- g_signal_handlers_disconnect_by_data (priv->dns_manager, object);
- g_clear_object (&priv->dns_manager);
- }
-
- if (priv->object_manager) {
- GList *objects, *iter;
-
- /* Unhook the NM objects. */
- objects = g_dbus_object_manager_get_objects (priv->object_manager);
- for (iter = objects; iter; iter = iter->next)
- g_object_set_qdata (G_OBJECT (iter->data), _nm_object_obj_nm_quark (), NULL);
- g_list_free_full (objects, g_object_unref);
-
- g_signal_handlers_disconnect_by_data (priv->object_manager, object);
- g_clear_object (&priv->object_manager);
- }
-
- G_OBJECT_CLASS (nm_client_parent_class)->dispose (object);
-
- if (priv->udev) {
- udev_unref (priv->udev);
- priv->udev = NULL;
- }
-
- nm_clear_g_free (&priv->name_owner_cached);
-}
-
-static void
-set_property (GObject *object, guint prop_id,
- const GValue *value, GParamSpec *pspec)
-{
- NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object);
-
- switch (prop_id) {
- case PROP_NETWORKING_ENABLED:
- case PROP_WIRELESS_ENABLED:
- case PROP_WWAN_ENABLED:
- case PROP_WIMAX_ENABLED:
- case PROP_CONNECTIVITY_CHECK_ENABLED:
- if (priv->manager)
- g_object_set_property (G_OBJECT (priv->manager), pspec->name, value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
+/*****************************************************************************/
static void
get_property (GObject *object, guint prop_id,
@@ -3659,6 +3493,12 @@ get_property (GObject *object, guint prop_id,
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object);
switch (prop_id) {
+ case PROP_DBUS_CONNECTION:
+ g_value_set_object (value, priv->dbus_connection);
+ break;
+ case PROP_DBUS_NAME_OWNER:
+ g_value_set_string (value, nm_client_get_dbus_name_owner (self));
+ break;
case PROP_NM_RUNNING:
g_value_set_boolean (value, nm_client_get_nm_running (self));
break;
@@ -3785,67 +3625,326 @@ get_property (GObject *object, guint prop_id,
}
static void
+set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object);
+
+ switch (prop_id) {
+ case PROP_DBUS_CONNECTION:
+ /* construct-only */
+ priv->dbus_connection = g_value_dup_object (value);
+ break;
+ case PROP_NETWORKING_ENABLED:
+ case PROP_WIRELESS_ENABLED:
+ case PROP_WWAN_ENABLED:
+ case PROP_WIMAX_ENABLED:
+ case PROP_CONNECTIVITY_CHECK_ENABLED:
+ if (priv->manager)
+ g_object_set_property (G_OBJECT (priv->manager), pspec->name, value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/*****************************************************************************/
+
+static gboolean
+init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
+{
+ NMClient *client = NM_CLIENT (initable);
+ NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client);
+ GList *objects, *iter;
+
+ if (!priv->dbus_connection) {
+ priv->dbus_connection = g_bus_get_sync (_nm_dbus_bus_type (),
+ cancellable,
+ error);
+ if (!priv->dbus_connection)
+ return FALSE;
+ }
+
+ priv->object_manager = g_dbus_object_manager_client_new_sync (priv->dbus_connection,
+ G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START,
+ "org.freedesktop.NetworkManager",
+ "/org/freedesktop",
+ proxy_type, NULL, NULL,
+ cancellable, error);
+ if (!priv->object_manager)
+ return FALSE;
+
+ if (_om_has_name_owner (priv->object_manager)) {
+ if (!objects_created (client, priv->object_manager, error))
+ return FALSE;
+
+ objects = g_dbus_object_manager_get_objects (priv->object_manager);
+ for (iter = objects; iter; iter = iter->next) {
+ NMObject *obj_nm;
+
+ obj_nm = g_object_get_qdata (iter->data, _nm_object_obj_nm_quark ());
+ if (!obj_nm)
+ continue;
+
+ if (!g_initable_init (G_INITABLE (obj_nm), cancellable, NULL)) {
+ /* This is a can-not-happen situation, the NMObject subclasses are not
+ * supposed to fail initialization. */
+ g_warn_if_reached ();
+ }
+ }
+ g_list_free_full (objects, g_object_unref);
+ }
+
+ g_signal_connect (priv->object_manager, "notify::name-owner",
+ G_CALLBACK (name_owner_changed), client);
+
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+static void
+init_async (GAsyncInitable *initable, int io_priority,
+ GCancellable *cancellable, GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ prepare_object_manager (NM_CLIENT (initable), cancellable, callback, user_data);
+}
+
+static gboolean
+init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error)
+{
+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
+
+ if (g_simple_async_result_propagate_error (simple, error))
+ return FALSE;
+ else
+ return TRUE;
+}
+
+/*****************************************************************************/
+
+static void
+nm_client_init (NMClient *self)
+{
+}
+
+/**
+ * nm_client_new:
+ * @cancellable: a #GCancellable, or %NULL
+ * @error: location for a #GError, or %NULL
+ *
+ * Creates a new #NMClient.
+ *
+ * Note that this will do blocking D-Bus calls to initialize the
+ * client. You can use nm_client_new_async() if you want to avoid
+ * that.
+ *
+ * Returns: a new #NMClient or NULL on an error
+ **/
+NMClient *
+nm_client_new (GCancellable *cancellable,
+ GError **error)
+{
+ return g_initable_new (NM_TYPE_CLIENT, cancellable, error,
+ NULL);
+}
+
+/**
+ * nm_client_new_async:
+ * @cancellable: a #GCancellable, or %NULL
+ * @callback: callback to call when the client is created
+ * @user_data: data for @callback
+ *
+ * Creates a new #NMClient and begins asynchronously initializing it.
+ * @callback will be called when it is done; use
+ * nm_client_new_finish() to get the result. Note that on an error,
+ * the callback can be invoked with two first parameters as NULL.
+ **/
+void
+nm_client_new_async (GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (NM_TYPE_CLIENT,
+ G_PRIORITY_DEFAULT,
+ cancellable,
+ callback,
+ user_data,
+ NULL);
+}
+
+/**
+ * nm_client_new_finish:
+ * @result: a #GAsyncResult
+ * @error: location for a #GError, or %NULL
+ *
+ * Gets the result of an nm_client_new_async() call.
+ *
+ * Returns: a new #NMClient, or %NULL on error
+ **/
+NMClient *
+nm_client_new_finish (GAsyncResult *result, GError **error)
+{
+ gs_unref_object GObject *source_object = NULL;
+ GObject *object;
+
+ source_object = g_async_result_get_source_object (result);
+ g_return_val_if_fail (source_object, NULL);
+
+ object = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object),
+ result,
+ error);
+ g_return_val_if_fail (!object || NM_IS_CLIENT (object), FALSE);
+
+ return NM_CLIENT (object);
+}
+
+static void
+constructed (GObject *object)
+{
+ NMClient *self = NM_CLIENT (object);
+ NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self);
+
+ priv->main_context = g_main_context_ref_thread_default ();
+
+ G_OBJECT_CLASS (nm_client_parent_class)->constructed (object);
+}
+
+static void
+dispose (GObject *object)
+{
+ NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (object);
+
+ nm_clear_g_cancellable (&priv->new_object_manager_cancellable);
+
+ if (priv->manager) {
+ g_signal_handlers_disconnect_by_data (priv->manager, object);
+ g_clear_object (&priv->manager);
+ }
+
+ if (priv->settings) {
+ g_signal_handlers_disconnect_by_data (priv->settings, object);
+ g_clear_object (&priv->settings);
+ }
+
+ if (priv->dns_manager) {
+ g_signal_handlers_disconnect_by_data (priv->dns_manager, object);
+ g_clear_object (&priv->dns_manager);
+ }
+
+ if (priv->object_manager) {
+ GList *objects, *iter;
+
+ /* Unhook the NM objects. */
+ objects = g_dbus_object_manager_get_objects (priv->object_manager);
+ for (iter = objects; iter; iter = iter->next)
+ g_object_set_qdata (G_OBJECT (iter->data), _nm_object_obj_nm_quark (), NULL);
+ g_list_free_full (objects, g_object_unref);
+
+ g_signal_handlers_disconnect_by_data (priv->object_manager, object);
+ g_clear_object (&priv->object_manager);
+ }
+
+ G_OBJECT_CLASS (nm_client_parent_class)->dispose (object);
+
+ nm_clear_pointer (&priv->udev, udev_unref);
+
+ nm_clear_pointer (&priv->main_context, g_main_context_unref);
+
+ g_clear_object (&priv->dbus_connection);
+
+ nm_clear_g_free (&priv->name_owner_cached);
+}
+
+static void
nm_client_class_init (NMClientClass *client_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (client_class);
g_type_class_add_private (client_class, sizeof (NMClientPrivate));
- /* virtual methods */
- object_class->set_property = set_property;
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->set_property = set_property;
+ object_class->constructed = constructed;
+ object_class->dispose = dispose;
- /* properties */
+ /**
+ * NMClient:dbus-connection:
+ *
+ * The #GDBusConnection to use.
+ *
+ * If this is not set during object construction, the D-Bus connection will
+ * automatically be chosen during async/sync initalization via g_bus_get().
+ *
+ * Since: 1.22
+ */
+ obj_properties[PROP_DBUS_CONNECTION] =
+ g_param_spec_object (NM_CLIENT_DBUS_CONNECTION, "", "",
+ G_TYPE_DBUS_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ /**
+ * NMClient:dbus-name-owner:
+ *
+ * The name owner of the NetworkManager D-Bus service.
+ *
+ * Since: 1.22
+ **/
+ obj_properties[PROP_DBUS_NAME_OWNER] =
+ g_param_spec_string (NM_CLIENT_DBUS_NAME_OWNER, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:version:
*
* The NetworkManager version.
**/
- g_object_class_install_property
- (object_class, PROP_VERSION,
- g_param_spec_string (NM_CLIENT_VERSION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_VERSION] =
+ g_param_spec_string (NM_CLIENT_VERSION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:state:
*
* The current daemon state.
**/
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_CLIENT_STATE, "", "",
- NM_TYPE_STATE,
- NM_STATE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_CLIENT_STATE, "", "",
+ NM_TYPE_STATE,
+ NM_STATE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:startup:
*
* Whether the daemon is still starting up.
**/
- g_object_class_install_property
- (object_class, PROP_STARTUP,
- g_param_spec_boolean (NM_CLIENT_STARTUP, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STARTUP] =
+ g_param_spec_boolean (NM_CLIENT_STARTUP, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:nm-running:
*
* Whether the daemon is running.
**/
- g_object_class_install_property
- (object_class, PROP_NM_RUNNING,
- g_param_spec_boolean (NM_CLIENT_NM_RUNNING, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NM_RUNNING] =
+ g_param_spec_boolean (NM_CLIENT_NM_RUNNING, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:networking-enabled:
@@ -3854,12 +3953,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
*/
- g_object_class_install_property
- (object_class, PROP_NETWORKING_ENABLED,
- g_param_spec_boolean (NM_CLIENT_NETWORKING_ENABLED, "", "",
- TRUE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NETWORKING_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_NETWORKING_ENABLED, "", "",
+ TRUE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:wireless-enabled:
@@ -3868,24 +3966,22 @@ nm_client_class_init (NMClientClass *client_class)
*
* The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
**/
- g_object_class_install_property
- (object_class, PROP_WIRELESS_ENABLED,
- g_param_spec_boolean (NM_CLIENT_WIRELESS_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WIRELESS_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_WIRELESS_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:wireless-hardware-enabled:
*
* Whether the wireless hardware is enabled.
**/
- g_object_class_install_property
- (object_class, PROP_WIRELESS_HARDWARE_ENABLED,
- g_param_spec_boolean (NM_CLIENT_WIRELESS_HARDWARE_ENABLED, "", "",
- TRUE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WIRELESS_HARDWARE_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_WIRELESS_HARDWARE_ENABLED, "", "",
+ TRUE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:wwan-enabled:
@@ -3894,24 +3990,22 @@ nm_client_class_init (NMClientClass *client_class)
*
* The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
*/
- g_object_class_install_property
- (object_class, PROP_WWAN_ENABLED,
- g_param_spec_boolean (NM_CLIENT_WWAN_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WWAN_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_WWAN_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:wwan-hardware-enabled:
*
* Whether the WWAN hardware is enabled.
**/
- g_object_class_install_property
- (object_class, PROP_WWAN_HARDWARE_ENABLED,
- g_param_spec_boolean (NM_CLIENT_WWAN_HARDWARE_ENABLED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WWAN_HARDWARE_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_WWAN_HARDWARE_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:wimax-enabled:
@@ -3920,49 +4014,45 @@ nm_client_class_init (NMClientClass *client_class)
*
* The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
*/
- g_object_class_install_property
- (object_class, PROP_WIMAX_ENABLED,
- g_param_spec_boolean (NM_CLIENT_WIMAX_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WIMAX_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_WIMAX_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:wimax-hardware-enabled:
*
* Whether the WiMAX hardware is enabled.
**/
- g_object_class_install_property
- (object_class, PROP_WIMAX_HARDWARE_ENABLED,
- g_param_spec_boolean (NM_CLIENT_WIMAX_HARDWARE_ENABLED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WIMAX_HARDWARE_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_WIMAX_HARDWARE_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:active-connections: (type GPtrArray(NMActiveConnection))
*
* The active connections.
**/
- g_object_class_install_property
- (object_class, PROP_ACTIVE_CONNECTIONS,
- g_param_spec_boxed (NM_CLIENT_ACTIVE_CONNECTIONS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ACTIVE_CONNECTIONS] =
+ g_param_spec_boxed (NM_CLIENT_ACTIVE_CONNECTIONS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:connectivity:
*
* The network connectivity state.
*/
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY,
- g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "",
- NM_TYPE_CONNECTIVITY_STATE,
- NM_CONNECTIVITY_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CONNECTIVITY] =
+ g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "",
+ NM_TYPE_CONNECTIVITY_STATE,
+ NM_CONNECTIVITY_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient::connectivity-check-available
@@ -3971,12 +4061,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* Since: 1.10
*/
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_CHECK_AVAILABLE,
- g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CONNECTIVITY_CHECK_AVAILABLE] =
+ g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient::connectivity-check-enabled
@@ -3987,12 +4076,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
*/
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_CHECK_ENABLED,
- g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CONNECTIVITY_CHECK_ENABLED] =
+ g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:primary-connection:
@@ -4000,12 +4088,11 @@ nm_client_class_init (NMClientClass *client_class)
* The #NMActiveConnection of the device with the default route;
* see nm_client_get_primary_connection() for more details.
**/
- g_object_class_install_property
- (object_class, PROP_PRIMARY_CONNECTION,
- g_param_spec_object (NM_CLIENT_PRIMARY_CONNECTION, "", "",
- NM_TYPE_ACTIVE_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PRIMARY_CONNECTION] =
+ g_param_spec_object (NM_CLIENT_PRIMARY_CONNECTION, "", "",
+ NM_TYPE_ACTIVE_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:activating-connection:
@@ -4013,24 +4100,22 @@ nm_client_class_init (NMClientClass *client_class)
* The #NMActiveConnection of the activating connection that is
* likely to become the new #NMClient:primary-connection.
**/
- g_object_class_install_property
- (object_class, PROP_ACTIVATING_CONNECTION,
- g_param_spec_object (NM_CLIENT_ACTIVATING_CONNECTION, "", "",
- NM_TYPE_ACTIVE_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ACTIVATING_CONNECTION] =
+ g_param_spec_object (NM_CLIENT_ACTIVATING_CONNECTION, "", "",
+ NM_TYPE_ACTIVE_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:devices: (type GPtrArray(NMDevice))
*
* List of real network devices. Does not include placeholder devices.
**/
- g_object_class_install_property
- (object_class, PROP_DEVICES,
- g_param_spec_boxed (NM_CLIENT_DEVICES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEVICES] =
+ g_param_spec_boxed (NM_CLIENT_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:all-devices: (type GPtrArray(NMDevice))
@@ -4038,12 +4123,11 @@ nm_client_class_init (NMClientClass *client_class)
* List of both real devices and device placeholders.
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_ALL_DEVICES,
- g_param_spec_boxed (NM_CLIENT_ALL_DEVICES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ALL_DEVICES] =
+ g_param_spec_boxed (NM_CLIENT_ALL_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:connections: (type GPtrArray(NMRemoteConnection))
@@ -4053,12 +4137,11 @@ nm_client_class_init (NMClientClass *client_class)
* contain the object paths of connections that the user does not have
* permission to read the details of.)
*/
- g_object_class_install_property
- (object_class, PROP_CONNECTIONS,
- g_param_spec_boxed (NM_CLIENT_CONNECTIONS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CONNECTIONS] =
+ g_param_spec_boxed (NM_CLIENT_CONNECTIONS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:hostname:
@@ -4066,24 +4149,22 @@ nm_client_class_init (NMClientClass *client_class)
* The machine hostname stored in persistent configuration. This can be
* modified by calling nm_client_save_hostname().
*/
- g_object_class_install_property
- (object_class, PROP_HOSTNAME,
- g_param_spec_string (NM_CLIENT_HOSTNAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HOSTNAME] =
+ g_param_spec_string (NM_CLIENT_HOSTNAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:can-modify:
*
* If %TRUE, adding and modifying connections is supported.
*/
- g_object_class_install_property
- (object_class, PROP_CAN_MODIFY,
- g_param_spec_boolean (NM_CLIENT_CAN_MODIFY, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CAN_MODIFY] =
+ g_param_spec_boolean (NM_CLIENT_CAN_MODIFY, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:metered:
@@ -4092,12 +4173,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_METERED,
- g_param_spec_uint (NM_CLIENT_METERED, "", "",
- 0, G_MAXUINT32, NM_METERED_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_METERED] =
+ g_param_spec_uint (NM_CLIENT_METERED, "", "",
+ 0, G_MAXUINT32, NM_METERED_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:dns-mode:
@@ -4106,12 +4186,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* Since: 1.6
**/
- g_object_class_install_property
- (object_class, PROP_DNS_MODE,
- g_param_spec_string (NM_CLIENT_DNS_MODE, "", "",
- "",
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DNS_MODE] =
+ g_param_spec_string (NM_CLIENT_DNS_MODE, "", "",
+ "",
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:dns-rc-manager:
@@ -4120,12 +4199,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* Since: 1.6
**/
- g_object_class_install_property
- (object_class, PROP_DNS_RC_MANAGER,
- g_param_spec_string (NM_CLIENT_DNS_RC_MANAGER, "", "",
- "",
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DNS_RC_MANAGER] =
+ g_param_spec_string (NM_CLIENT_DNS_RC_MANAGER, "", "",
+ "",
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:dns-configuration: (type GPtrArray(NMDnsEntry))
@@ -4135,12 +4213,11 @@ nm_client_class_init (NMClientClass *client_class)
*
* Since: 1.6
**/
- g_object_class_install_property
- (object_class, PROP_DNS_CONFIGURATION,
- g_param_spec_boxed (NM_CLIENT_DNS_CONFIGURATION, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DNS_CONFIGURATION] =
+ g_param_spec_boxed (NM_CLIENT_DNS_CONFIGURATION, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMClient:checkpoints: (type GPtrArray(NMCheckpoint))
@@ -4149,14 +4226,13 @@ nm_client_class_init (NMClientClass *client_class)
*
* Since: 1.12
*/
- g_object_class_install_property
- (object_class, PROP_CHECKPOINTS,
- g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CHECKPOINTS] =
+ g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* signals */
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
/**
* NMClient::device-added:
@@ -4167,13 +4243,13 @@ nm_client_class_init (NMClientClass *client_class)
* placeholder devices.
**/
signals[DEVICE_ADDED] =
- g_signal_new (NM_CLIENT_DEVICE_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMClientClass, device_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new (NM_CLIENT_DEVICE_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMClientClass, device_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
/**
* NMClient::device-removed:
@@ -4184,13 +4260,13 @@ nm_client_class_init (NMClientClass *client_class)
* placeholder devices.
**/
signals[DEVICE_REMOVED] =
- g_signal_new (NM_CLIENT_DEVICE_REMOVED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMClientClass, device_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new (NM_CLIENT_DEVICE_REMOVED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMClientClass, device_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
/**
* NMClient::any-device-added:
@@ -4201,13 +4277,13 @@ nm_client_class_init (NMClientClass *client_class)
* regular devices and placeholder devices.
**/
signals[ANY_DEVICE_ADDED] =
- g_signal_new (NM_CLIENT_ANY_DEVICE_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMClientClass, any_device_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new (NM_CLIENT_ANY_DEVICE_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMClientClass, any_device_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
/**
* NMClient::any-device-removed:
@@ -4218,13 +4294,13 @@ nm_client_class_init (NMClientClass *client_class)
* regular devices and placeholder devices.
**/
signals[ANY_DEVICE_REMOVED] =
- g_signal_new (NM_CLIENT_ANY_DEVICE_REMOVED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMClientClass, any_device_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new (NM_CLIENT_ANY_DEVICE_REMOVED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMClientClass, any_device_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
/**
* NMClient::permission-changed:
@@ -4235,11 +4311,11 @@ nm_client_class_init (NMClientClass *client_class)
* Notifies that a permission has changed
**/
signals[PERMISSION_CHANGED] =
- g_signal_new (NM_CLIENT_PERMISSION_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);
+ g_signal_new (NM_CLIENT_PERMISSION_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);
/**
* NMClient::connection-added:
* @client: the settings object that received the signal
@@ -4248,13 +4324,13 @@ nm_client_class_init (NMClientClass *client_class)
* Notifies that a #NMConnection has been added.
**/
signals[CONNECTION_ADDED] =
- g_signal_new (NM_CLIENT_CONNECTION_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMClientClass, connection_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- NM_TYPE_REMOTE_CONNECTION);
+ g_signal_new (NM_CLIENT_CONNECTION_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMClientClass, connection_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ NM_TYPE_REMOTE_CONNECTION);
/**
* NMClient::connection-removed:
@@ -4264,13 +4340,13 @@ nm_client_class_init (NMClientClass *client_class)
* Notifies that a #NMConnection has been removed.
**/
signals[CONNECTION_REMOVED] =
- g_signal_new (NM_CLIENT_CONNECTION_REMOVED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMClientClass, connection_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- NM_TYPE_REMOTE_CONNECTION);
+ g_signal_new (NM_CLIENT_CONNECTION_REMOVED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMClientClass, connection_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ NM_TYPE_REMOTE_CONNECTION);
/**
* NMClient::active-connection-added:
@@ -4280,12 +4356,12 @@ nm_client_class_init (NMClientClass *client_class)
* Notifies that a #NMActiveConnection has been added.
**/
signals[ACTIVE_CONNECTION_ADDED] =
- g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0, NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- NM_TYPE_ACTIVE_CONNECTION);
+ g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ NM_TYPE_ACTIVE_CONNECTION);
/**
* NMClient::active-connection-removed:
@@ -4295,12 +4371,12 @@ nm_client_class_init (NMClientClass *client_class)
* Notifies that a #NMActiveConnection has been removed.
**/
signals[ACTIVE_CONNECTION_REMOVED] =
- g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_REMOVED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0, NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- NM_TYPE_ACTIVE_CONNECTION);
+ g_signal_new (NM_CLIENT_ACTIVE_CONNECTION_REMOVED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ NM_TYPE_ACTIVE_CONNECTION);
}
static void
diff --git a/libnm/nm-client.h b/libnm/nm-client.h
index 32cbd168a0..744b564d7f 100644
--- a/libnm/nm-client.h
+++ b/libnm/nm-client.h
@@ -22,10 +22,12 @@ G_BEGIN_DECLS
#define NM_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CLIENT))
#define NM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CLIENT, NMClientClass))
-#define NM_CLIENT_VERSION "version"
-#define NM_CLIENT_STATE "state"
-#define NM_CLIENT_STARTUP "startup"
-#define NM_CLIENT_NM_RUNNING "nm-running"
+#define NM_CLIENT_VERSION "version"
+#define NM_CLIENT_STATE "state"
+#define NM_CLIENT_STARTUP "startup"
+#define NM_CLIENT_NM_RUNNING "nm-running"
+#define NM_CLIENT_DBUS_CONNECTION "dbus-connection"
+#define NM_CLIENT_DBUS_NAME_OWNER "dbus-name-owner"
_NM_DEPRECATED_SYNC_WRITABLE_PROPERTY
#define NM_CLIENT_NETWORKING_ENABLED "networking-enabled"
@@ -230,6 +232,12 @@ void nm_client_new_async (GCancellable *cancellable,
NMClient *nm_client_new_finish (GAsyncResult *result,
GError **error);
+NM_AVAILABLE_IN_1_22
+GDBusConnection *nm_client_get_dbus_connection (NMClient *client);
+
+NM_AVAILABLE_IN_1_22
+const char *nm_client_get_dbus_name_owner (NMClient *client);
+
const char *nm_client_get_version (NMClient *client);
NMState nm_client_get_state (NMClient *client);
gboolean nm_client_get_startup (NMClient *client);
diff --git a/libnm/nm-dbus-helpers.c b/libnm/nm-dbus-helpers.c
index 8112b5594e..6272dd5820 100644
--- a/libnm/nm-dbus-helpers.c
+++ b/libnm/nm-dbus-helpers.c
@@ -9,21 +9,22 @@
#include "nm-dbus-interface.h"
-static GBusType nm_bus = G_BUS_TYPE_SYSTEM;
-
GBusType
_nm_dbus_bus_type (void)
{
- static gsize init_value = 0;
+ static volatile int bus_type = G_BUS_TYPE_NONE;
+ int v;
- if (g_once_init_enter (&init_value)) {
+ v = g_atomic_int_get (&bus_type);
+ if (G_UNLIKELY (v == G_BUS_TYPE_NONE)) {
+ v = G_BUS_TYPE_SYSTEM;
if (g_getenv ("LIBNM_USE_SESSION_BUS"))
- nm_bus = G_BUS_TYPE_SESSION;
-
- g_once_init_leave (&init_value, 1);
+ v = G_BUS_TYPE_SESSION;
+ if (!g_atomic_int_compare_and_exchange (&bus_type, G_BUS_TYPE_NONE, v))
+ v = g_atomic_int_get (&bus_type);
+ nm_assert (v != G_BUS_TYPE_NONE);
}
-
- return nm_bus;
+ return v;
}
/* D-Bus has an upper limit on number of Match rules and it's rather easy
diff --git a/libnm/nm-device-6lowpan.c b/libnm/nm-device-6lowpan.c
index 7dd4e88e07..b67fad141d 100644
--- a/libnm/nm-device-6lowpan.c
+++ b/libnm/nm-device-6lowpan.c
@@ -142,8 +142,8 @@ nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass)
g_type_class_add_private (klass, sizeof (NMDevice6LowpanPrivate));
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
@@ -157,10 +157,10 @@ nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass)
* Since: 1.14
**/
obj_properties[PROP_PARENT] =
- g_param_spec_object (NM_DEVICE_6LOWPAN_PARENT, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_object (NM_DEVICE_6LOWPAN_PARENT, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice6Lowpan:hw-address:
@@ -170,10 +170,10 @@ nm_device_6lowpan_class_init (NMDevice6LowpanClass *klass)
* Since: 1.14
**/
obj_properties[PROP_HW_ADDRESS] =
- g_param_spec_string (NM_DEVICE_6LOWPAN_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_string (NM_DEVICE_6LOWPAN_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-adsl.c b/libnm/nm-device-adsl.c
index 985892b97c..8fe10d52c8 100644
--- a/libnm/nm-device-adsl.c
+++ b/libnm/nm-device-adsl.c
@@ -21,11 +21,9 @@ typedef struct {
} NMDeviceAdslPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_CARRIER,
- LAST_PROP
-};
+);
/**
* nm_device_adsl_get_carrier:
@@ -114,24 +112,23 @@ nm_device_adsl_class_init (NMDeviceAdslClass *adsl_class)
g_type_class_add_private (object_class, sizeof (NMDeviceAdslPrivate));
- /* virtual methods */
object_class->get_property = get_property;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
+ device_class->get_setting_type = get_setting_type;
- /* properties */
/**
* NMDeviceAdsl:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_ADSL_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_ADSL_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-bond.c b/libnm/nm-device-bond.c
index bc4bd18039..0ef32aab5a 100644
--- a/libnm/nm-device-bond.c
+++ b/libnm/nm-device-bond.c
@@ -23,14 +23,11 @@ typedef struct {
GPtrArray *slaves;
} NMDeviceBondPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_CARRIER,
PROP_SLAVES,
-
- LAST_PROP
-};
+);
/**
* nm_device_bond_get_hw_address:
@@ -193,52 +190,48 @@ nm_device_bond_class_init (NMDeviceBondClass *bond_class)
g_type_class_add_private (bond_class, sizeof (NMDeviceBondPrivate));
- /* virtual methods */
- object_class->dispose = dispose;
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceBond:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_BOND_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_BOND_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceBond:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_BOND_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_BOND_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceBond:slaves: (type GPtrArray(NMDevice))
*
* The devices enslaved to the bond device.
**/
- g_object_class_install_property
- (object_class, PROP_SLAVES,
- g_param_spec_boxed (NM_DEVICE_BOND_SLAVES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SLAVES] =
+ g_param_spec_boxed (NM_DEVICE_BOND_SLAVES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-bridge.c b/libnm/nm-device-bridge.c
index 3a419978e8..c41af835cc 100644
--- a/libnm/nm-device-bridge.c
+++ b/libnm/nm-device-bridge.c
@@ -23,14 +23,11 @@ typedef struct {
GPtrArray *slaves;
} NMDeviceBridgePrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_CARRIER,
PROP_SLAVES,
-
- LAST_PROP
-};
+);
/**
* nm_device_bridge_get_hw_address:
@@ -198,52 +195,48 @@ nm_device_bridge_class_init (NMDeviceBridgeClass *bridge_class)
g_type_class_add_private (bridge_class, sizeof (NMDeviceBridgePrivate));
- /* virtual methods */
- object_class->dispose = dispose;
- object_class->finalize = finalize;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
object_class->get_property = get_property;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceBridge:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_BRIDGE_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_BRIDGE_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceBridge:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_BRIDGE_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_BRIDGE_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceBridge:slaves: (type GPtrArray(NMDevice))
*
* The devices enslaved to the bridge device.
**/
- g_object_class_install_property
- (object_class, PROP_SLAVES,
- g_param_spec_boxed (NM_DEVICE_BRIDGE_SLAVES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SLAVES] =
+ g_param_spec_boxed (NM_DEVICE_BRIDGE_SLAVES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-bt.c b/libnm/nm-device-bt.c
index 0c92a1266f..f44b86c4f9 100644
--- a/libnm/nm-device-bt.c
+++ b/libnm/nm-device-bt.c
@@ -24,14 +24,11 @@ typedef struct {
guint32 bt_capabilities;
} NMDeviceBtPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_NAME,
PROP_BT_CAPABILITIES,
-
- LAST_PROP
-};
+);
/**
* nm_device_bt_get_hw_address:
@@ -235,53 +232,48 @@ nm_device_bt_class_init (NMDeviceBtClass *bt_class)
g_type_class_add_private (bt_class, sizeof (NMDeviceBtPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceBt:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_BT_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_BT_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceBt:name:
*
* The name of the bluetooth device.
**/
- g_object_class_install_property
- (object_class, PROP_NAME,
- g_param_spec_string (NM_DEVICE_BT_NAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NAME] =
+ g_param_spec_string (NM_DEVICE_BT_NAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceBt:bt-capabilities:
*
* The device's bluetooth capabilities, a combination of #NMBluetoothCapabilities.
**/
- g_object_class_install_property
- (object_class, PROP_BT_CAPABILITIES,
- g_param_spec_flags (NM_DEVICE_BT_CAPABILITIES, "", "",
- NM_TYPE_BLUETOOTH_CAPABILITIES,
- NM_BT_CAPABILITY_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
+ obj_properties[PROP_BT_CAPABILITIES] =
+ g_param_spec_flags (NM_DEVICE_BT_CAPABILITIES, "", "",
+ NM_TYPE_BLUETOOTH_CAPABILITIES,
+ NM_BT_CAPABILITY_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-dummy.c b/libnm/nm-device-dummy.c
index f7c378d716..e1577cbfbf 100644
--- a/libnm/nm-device-dummy.c
+++ b/libnm/nm-device-dummy.c
@@ -19,12 +19,9 @@ typedef struct {
char *hw_address;
} NMDeviceDummyPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
-
- LAST_PROP
-};
+);
/*****************************************************************************/
@@ -143,14 +140,14 @@ nm_device_dummy_class_init (NMDeviceDummyClass *dummy_class)
g_type_class_add_private (dummy_class, sizeof (NMDeviceDummyPrivate));
- object_class->dispose = dispose;
object_class->get_property = get_property;
+ object_class->dispose = dispose;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_hw_address = get_hw_address;
- device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
+ device_class->get_setting_type = get_setting_type;
/**
* NMDeviceDummy:hw-address:
@@ -159,10 +156,11 @@ nm_device_dummy_class_init (NMDeviceDummyClass *dummy_class)
*
* Since: 1.10
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_DUMMY_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_DUMMY_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-ethernet.c b/libnm/nm-device-ethernet.c
index 33403606b3..72b3559a77 100644
--- a/libnm/nm-device-ethernet.c
+++ b/libnm/nm-device-ethernet.c
@@ -26,16 +26,13 @@ typedef struct {
char **s390_subchannels;
} NMDeviceEthernetPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_PERM_HW_ADDRESS,
PROP_SPEED,
PROP_CARRIER,
PROP_S390_SUBCHANNELS,
-
- LAST_PROP
-};
+);
/**
* nm_device_ethernet_get_hw_address:
@@ -338,65 +335,58 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *eth_class)
g_type_class_add_private (eth_class, sizeof (NMDeviceEthernetPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceEthernet:hw-address:
*
* The active hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_ETHERNET_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_ETHERNET_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceEthernet:perm-hw-address:
*
* The permanent hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_PERM_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PERM_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceEthernet:speed:
*
* The speed of the device.
**/
- g_object_class_install_property
- (object_class, PROP_SPEED,
- g_param_spec_uint (NM_DEVICE_ETHERNET_SPEED, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SPEED] =
+ g_param_spec_uint (NM_DEVICE_ETHERNET_SPEED, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceEthernet:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_ETHERNET_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_ETHERNET_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceEthernet:s390-subchannels:
@@ -406,10 +396,11 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *eth_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_S390_SUBCHANNELS,
- g_param_spec_boxed (NM_DEVICE_ETHERNET_S390_SUBCHANNELS, "", "",
- G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_S390_SUBCHANNELS] =
+ g_param_spec_boxed (NM_DEVICE_ETHERNET_S390_SUBCHANNELS, "", "",
+ G_TYPE_STRV,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-generic.c b/libnm/nm-device-generic.c
index dde19dd589..5a2c6d6feb 100644
--- a/libnm/nm-device-generic.c
+++ b/libnm/nm-device-generic.c
@@ -20,13 +20,10 @@ typedef struct {
char *type_description;
} NMDeviceGenericPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_TYPE_DESCRIPTION,
-
- LAST_PROP
-};
+);
/**
* nm_device_generic_get_hw_address:
@@ -157,27 +154,26 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass)
g_type_class_add_private (klass, sizeof (NMDeviceGenericPrivate));
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- device_class->get_type_description = get_type_description;
- device_class->get_hw_address = get_hw_address;
+ device_class->get_type_description = get_type_description;
+ device_class->get_hw_address = get_hw_address;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
+ device_class->get_setting_type = get_setting_type;
/**
* NMDeviceGeneric:hw-address:
*
* The hardware address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_GENERIC_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_GENERIC_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceGeneric:type-description:
@@ -185,10 +181,11 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass)
* A description of the specific type of device this is, or %NULL
* if not known.
**/
- g_object_class_install_property
- (object_class, PROP_TYPE_DESCRIPTION,
- g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_TYPE_DESCRIPTION] =
+ g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-infiniband.c b/libnm/nm-device-infiniband.c
index b205628f07..a297b870fa 100644
--- a/libnm/nm-device-infiniband.c
+++ b/libnm/nm-device-infiniband.c
@@ -21,13 +21,10 @@ typedef struct {
gboolean carrier;
} NMDeviceInfinibandPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_CARRIER,
-
- LAST_PROP
-};
+);
/**
* nm_device_infiniband_get_hw_address:
@@ -173,40 +170,36 @@ nm_device_infiniband_class_init (NMDeviceInfinibandClass *ib_class)
g_type_class_add_private (ib_class, sizeof (NMDeviceInfinibandPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceInfiniband:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_INFINIBAND_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_INFINIBAND_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceInfiniband:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_INFINIBAND_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_INFINIBAND_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-ip-tunnel.c b/libnm/nm-device-ip-tunnel.c
index 49e04de8bf..3dc5fe3ec3 100644
--- a/libnm/nm-device-ip-tunnel.c
+++ b/libnm/nm-device-ip-tunnel.c
@@ -32,8 +32,7 @@ typedef struct {
guint32 flags;
} NMDeviceIPTunnelPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_MODE,
PROP_PARENT,
PROP_LOCAL,
@@ -46,9 +45,7 @@ enum {
PROP_ENCAPSULATION_LIMIT,
PROP_FLOW_LABEL,
PROP_FLAGS,
-
- LAST_PROP
-};
+);
/**
* nm_device_ip_tunnel_get_mode:
@@ -372,16 +369,13 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
g_type_class_add_private (bond_class, sizeof (NMDeviceIPTunnelPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
/**
* NMDeviceIPTunnel:mode:
@@ -390,12 +384,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "",
- 0, G_MAXUINT, 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_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:parent:
@@ -404,12 +397,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_object (NM_DEVICE_IP_TUNNEL_PARENT, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_object (NM_DEVICE_IP_TUNNEL_PARENT, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:local:
@@ -418,12 +410,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_LOCAL] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:remote:
@@ -432,12 +423,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_REMOTE] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:ttl:
@@ -447,12 +437,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_TTL] =
+ g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:tos:
@@ -462,12 +451,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_TOS] =
+ g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:path-mtu-discovery:
@@ -476,12 +464,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ 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);
/**
* NMDeviceIPTunnel:input-key:
@@ -490,12 +477,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_INPUT_KEY] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:output-key:
@@ -504,12 +490,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_OUTPUT_KEY] =
+ g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:encapsulation-limit:
@@ -520,12 +505,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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));
+ 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);
/**
* NMDeviceIPTunnel:flow-label:
@@ -535,12 +519,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.2
**/
- 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_FLOW_LABEL] =
+ g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "",
+ 0, (1 << 20) - 1, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceIPTunnel:flags:
@@ -549,10 +532,11 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *bond_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_FLAGS,
- g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLAGS, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FLAGS] =
+ g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLAGS, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-macsec.c b/libnm/nm-device-macsec.c
index 27fc05ab72..84d2a687b9 100644
--- a/libnm/nm-device-macsec.c
+++ b/libnm/nm-device-macsec.c
@@ -425,8 +425,8 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
g_type_class_add_private (macsec_class, sizeof (NMDeviceMacsecPrivate));
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
@@ -440,10 +440,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_PARENT] =
- g_param_spec_object (NM_DEVICE_MACSEC_PARENT, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_object (NM_DEVICE_MACSEC_PARENT, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:hw-address:
@@ -453,10 +453,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_HW_ADDRESS] =
- g_param_spec_string (NM_DEVICE_MACSEC_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_string (NM_DEVICE_MACSEC_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:sci:
@@ -466,10 +466,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_SCI] =
- g_param_spec_uint64 (NM_DEVICE_MACSEC_SCI, "", "",
- 0, G_MAXUINT64, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_uint64 (NM_DEVICE_MACSEC_SCI, "", "",
+ 0, G_MAXUINT64, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:icv-length:
@@ -479,10 +479,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_ICV_LENGTH] =
- g_param_spec_uchar (NM_DEVICE_MACSEC_ICV_LENGTH, "", "",
- 0, G_MAXUINT8, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_uchar (NM_DEVICE_MACSEC_ICV_LENGTH, "", "",
+ 0, G_MAXUINT8, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:cipher-suite:
@@ -492,10 +492,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_CIPHER_SUITE] =
- g_param_spec_uint64 (NM_DEVICE_MACSEC_CIPHER_SUITE, "", "",
- 0, G_MAXUINT64, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_uint64 (NM_DEVICE_MACSEC_CIPHER_SUITE, "", "",
+ 0, G_MAXUINT64, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:window:
@@ -505,10 +505,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_WINDOW] =
- g_param_spec_uint (NM_DEVICE_MACSEC_WINDOW, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_uint (NM_DEVICE_MACSEC_WINDOW, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:encoding-sa:
@@ -519,10 +519,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_ENCODING_SA] =
- g_param_spec_uchar (NM_DEVICE_MACSEC_ENCODING_SA, "", "",
- 0, G_MAXUINT8, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_uchar (NM_DEVICE_MACSEC_ENCODING_SA, "", "",
+ 0, G_MAXUINT8, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:validation:
@@ -533,10 +533,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_VALIDATION] =
- g_param_spec_string (NM_DEVICE_MACSEC_VALIDATION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_string (NM_DEVICE_MACSEC_VALIDATION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:encrypt:
@@ -546,10 +546,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_ENCRYPT] =
- g_param_spec_boolean (NM_DEVICE_MACSEC_ENCRYPT, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_boolean (NM_DEVICE_MACSEC_ENCRYPT, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:protect:
@@ -559,10 +559,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_PROTECT] =
- g_param_spec_boolean (NM_DEVICE_MACSEC_PROTECT, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_boolean (NM_DEVICE_MACSEC_PROTECT, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:include-sci:
@@ -573,10 +573,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_INCLUDE_SCI] =
- g_param_spec_boolean (NM_DEVICE_MACSEC_INCLUDE_SCI, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_boolean (NM_DEVICE_MACSEC_INCLUDE_SCI, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:es:
@@ -587,10 +587,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_ES] =
- g_param_spec_boolean (NM_DEVICE_MACSEC_ES, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_boolean (NM_DEVICE_MACSEC_ES, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:scb:
@@ -601,10 +601,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_SCB] =
- g_param_spec_boolean (NM_DEVICE_MACSEC_SCB, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_boolean (NM_DEVICE_MACSEC_SCB, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacsec:replay-protect:
@@ -614,10 +614,10 @@ nm_device_macsec_class_init (NMDeviceMacsecClass *macsec_class)
* Since: 1.6
**/
obj_properties[PROP_REPLAY_PROTECT] =
- g_param_spec_boolean (NM_DEVICE_MACSEC_REPLAY_PROTECT, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS);
+ g_param_spec_boolean (NM_DEVICE_MACSEC_REPLAY_PROTECT, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-macvlan.c b/libnm/nm-device-macvlan.c
index 3c08d6131a..967e380be9 100644
--- a/libnm/nm-device-macvlan.c
+++ b/libnm/nm-device-macvlan.c
@@ -25,16 +25,13 @@ typedef struct {
char *hw_address;
} NMDeviceMacvlanPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_PARENT,
PROP_MODE,
PROP_NO_PROMISC,
PROP_TAP,
PROP_HW_ADDRESS,
-
- LAST_PROP
-};
+);
/**
* nm_device_macvlan_get_parent:
@@ -240,17 +237,14 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
g_type_class_add_private (gre_class, sizeof (NMDeviceMacvlanPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceMacvlan:parent:
@@ -259,12 +253,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_object (NM_DEVICE_MACVLAN_PARENT, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_object (NM_DEVICE_MACVLAN_PARENT, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacvlan:mode:
@@ -273,12 +266,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_MODE] =
+ g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacvlan:no-promisc:
@@ -287,12 +279,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_NO_PROMISC] =
+ g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacvlan:tap:
@@ -301,12 +292,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_TAP,
- g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_TAP] =
+ g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceMacvlan:hw-address:
@@ -315,10 +305,11 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_MACVLAN_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_MACVLAN_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-modem.c b/libnm/nm-device-modem.c
index 73a5e966a4..10262878de 100644
--- a/libnm/nm-device-modem.c
+++ b/libnm/nm-device-modem.c
@@ -26,15 +26,13 @@ typedef struct {
char *apn;
} NMDeviceModemPrivate;
-enum {
- PROP_0,
- PROP_MODEM_CAPS,
- PROP_CURRENT_CAPS,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_MODEM_CAPABILITIES,
+ PROP_CURRENT_CAPABILITIES,
PROP_DEVICE_ID,
PROP_OPERATOR_CODE,
PROP_APN,
- LAST_PROP
-};
+);
/**
* nm_device_modem_get_modem_capabilities:
@@ -245,10 +243,10 @@ get_property (GObject *object,
NMDeviceModem *self = NM_DEVICE_MODEM (object);
switch (prop_id) {
- case PROP_MODEM_CAPS:
+ case PROP_MODEM_CAPABILITIES:
g_value_set_flags (value, nm_device_modem_get_modem_capabilities (self));
break;
- case PROP_CURRENT_CAPS:
+ case PROP_CURRENT_CAPABILITIES:
g_value_set_flags (value, nm_device_modem_get_current_capabilities (self));
break;
case PROP_DEVICE_ID:
@@ -275,15 +273,14 @@ nm_device_modem_class_init (NMDeviceModemClass *modem_class)
g_type_class_add_private (modem_class, sizeof (NMDeviceModemPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- device_class->get_type_description = get_type_description;
+ device_class->get_type_description = get_type_description;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
+ device_class->get_setting_type = get_setting_type;
/**
* NMDeviceModem:modem-capabilities:
@@ -293,13 +290,12 @@ nm_device_modem_class_init (NMDeviceModemClass *modem_class)
* a firmware reload or other reinitialization to switch between eg
* CDMA/EVDO and GSM/UMTS.
**/
- g_object_class_install_property
- (object_class, PROP_MODEM_CAPS,
- g_param_spec_flags (NM_DEVICE_MODEM_MODEM_CAPABILITIES, "", "",
- NM_TYPE_DEVICE_MODEM_CAPABILITIES,
- NM_DEVICE_MODEM_CAPABILITY_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODEM_CAPABILITIES] =
+ g_param_spec_flags (NM_DEVICE_MODEM_MODEM_CAPABILITIES, "", "",
+ NM_TYPE_DEVICE_MODEM_CAPABILITIES,
+ NM_DEVICE_MODEM_CAPABILITY_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceModem:current-capabilities:
@@ -307,47 +303,45 @@ nm_device_modem_class_init (NMDeviceModemClass *modem_class)
* The generic family of access technologies the modem currently supports
* without a firmware reload or reinitialization.
**/
- g_object_class_install_property
- (object_class, PROP_CURRENT_CAPS,
- g_param_spec_flags (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "",
- NM_TYPE_DEVICE_MODEM_CAPABILITIES,
- NM_DEVICE_MODEM_CAPABILITY_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CURRENT_CAPABILITIES] =
+ g_param_spec_flags (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "",
+ NM_TYPE_DEVICE_MODEM_CAPABILITIES,
+ NM_DEVICE_MODEM_CAPABILITY_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceModem:device-id:
*
* Since: 1.20
**/
- g_object_class_install_property
- (object_class, PROP_CURRENT_CAPS,
- g_param_spec_string (NM_DEVICE_MODEM_DEVICE_ID, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEVICE_ID] =
+ g_param_spec_string (NM_DEVICE_MODEM_DEVICE_ID, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceModem:operator-code:
*
* Since: 1.20
**/
- g_object_class_install_property
- (object_class, PROP_CURRENT_CAPS,
- g_param_spec_string (NM_DEVICE_MODEM_OPERATOR_CODE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_OPERATOR_CODE] =
+ g_param_spec_string (NM_DEVICE_MODEM_OPERATOR_CODE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceModem:apn:
*
* Since: 1.20
**/
- g_object_class_install_property
- (object_class, PROP_CURRENT_CAPS,
- g_param_spec_string (NM_DEVICE_MODEM_APN, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_APN] =
+ g_param_spec_string (NM_DEVICE_MODEM_APN, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-olpc-mesh.c b/libnm/nm-device-olpc-mesh.c
index 491e22606e..c5f1b998a8 100644
--- a/libnm/nm-device-olpc-mesh.c
+++ b/libnm/nm-device-olpc-mesh.c
@@ -22,14 +22,11 @@ typedef struct {
guint32 active_channel;
} NMDeviceOlpcMeshPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_COMPANION,
PROP_ACTIVE_CHANNEL,
-
- LAST_PROP
-};
+);
/**
* nm_device_olpc_mesh_get_hw_address:
@@ -185,53 +182,48 @@ nm_device_olpc_mesh_class_init (NMDeviceOlpcMeshClass *olpc_mesh_class)
g_type_class_add_private (olpc_mesh_class, sizeof (NMDeviceOlpcMeshPrivate));
- /* virtual methods */
- object_class->dispose = dispose;
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceOlpcMesh:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_OLPC_MESH_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_OLPC_MESH_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceOlpcMesh:companion:
*
* The companion device.
**/
- g_object_class_install_property
- (object_class, PROP_COMPANION,
- g_param_spec_object (NM_DEVICE_OLPC_MESH_COMPANION, "", "",
- NM_TYPE_DEVICE_WIFI,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_COMPANION] =
+ g_param_spec_object (NM_DEVICE_OLPC_MESH_COMPANION, "", "",
+ NM_TYPE_DEVICE_WIFI,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceOlpcMesh:active-channel:
*
* The device's active channel.
**/
- 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_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);
}
diff --git a/libnm/nm-device-ovs-bridge.c b/libnm/nm-device-ovs-bridge.c
index 85aca4ba7c..40364f0e91 100644
--- a/libnm/nm-device-ovs-bridge.c
+++ b/libnm/nm-device-ovs-bridge.c
@@ -13,12 +13,9 @@
#include "nm-setting-connection.h"
#include "nm-core-internal.h"
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_SLAVES,
-
- LAST_PROP
-};
+);
/**
* NMDeviceOvsBridge:
@@ -151,11 +148,26 @@ nm_device_ovs_bridge_class_init (NMDeviceOvsBridgeClass *ovs_bridge_class)
NMDeviceClass *device_class = NM_DEVICE_CLASS (ovs_bridge_class);
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->dispose = dispose;
nm_object_class->init_dbus = init_dbus;
- device_class->get_type_description = get_type_description;
+ device_class->get_type_description = get_type_description;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
+ device_class->get_setting_type = get_setting_type;
+
+ /**
+ * NMDeviceOvsBridge:slaves: (type GPtrArray(NMDevice))
+ *
+ * Gets the ports currently enslaved to the device.
+ *
+ * Since: 1.22
+ */
+ obj_properties[PROP_SLAVES] =
+ g_param_spec_boxed (NM_DEVICE_OVS_BRIDGE_SLAVES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-ovs-port.c b/libnm/nm-device-ovs-port.c
index 18e303a5b5..c3a8bf5377 100644
--- a/libnm/nm-device-ovs-port.c
+++ b/libnm/nm-device-ovs-port.c
@@ -13,12 +13,9 @@
#include "nm-setting-connection.h"
#include "nm-core-internal.h"
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_SLAVES,
-
- LAST_PROP
-};
+);
/**
* NMDeviceOvsPort:
@@ -151,11 +148,26 @@ nm_device_ovs_port_class_init (NMDeviceOvsPortClass *ovs_port_class)
NMDeviceClass *device_class = NM_DEVICE_CLASS (ovs_port_class);
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->dispose = dispose;
nm_object_class->init_dbus = init_dbus;
- device_class->get_type_description = get_type_description;
+ device_class->get_type_description = get_type_description;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
+ device_class->get_setting_type = get_setting_type;
+
+ /**
+ * NMDeviceOvsPort:slaves: (type GPtrArray(NMDevice))
+ *
+ * Gets the interfaces currently enslaved to the device.
+ *
+ * Since: 1.22
+ */
+ obj_properties[PROP_SLAVES] =
+ g_param_spec_boxed (NM_DEVICE_OVS_PORT_SLAVES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-team.c b/libnm/nm-device-team.c
index 7b2a45042d..e50b3e1de8 100644
--- a/libnm/nm-device-team.c
+++ b/libnm/nm-device-team.c
@@ -24,15 +24,12 @@ typedef struct {
char *config;
} NMDeviceTeamPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_CARRIER,
PROP_SLAVES,
PROP_CONFIG,
-
- LAST_PROP
-};
+);
/**
* nm_device_team_get_hw_address:
@@ -219,54 +216,48 @@ nm_device_team_class_init (NMDeviceTeamClass *team_class)
g_type_class_add_private (team_class, sizeof (NMDeviceTeamPrivate));
- /* virtual methods */
- object_class->dispose = dispose;
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceTeam:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_TEAM_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_TEAM_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTeam:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_TEAM_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_TEAM_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTeam:slaves: (type GPtrArray(NMDevice))
*
* The devices enslaved to the team device.
**/
- g_object_class_install_property
- (object_class, PROP_SLAVES,
- g_param_spec_boxed (NM_DEVICE_TEAM_SLAVES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SLAVES] =
+ g_param_spec_boxed (NM_DEVICE_TEAM_SLAVES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTeam:config:
@@ -275,10 +266,11 @@ nm_device_team_class_init (NMDeviceTeamClass *team_class)
*
* Since: 1.4
**/
- g_object_class_install_property
- (object_class, PROP_CONFIG,
- g_param_spec_string (NM_DEVICE_TEAM_CONFIG, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CONFIG] =
+ g_param_spec_string (NM_DEVICE_TEAM_CONFIG, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-tun.c b/libnm/nm-device-tun.c
index e18a775742..a9a1cdf3bf 100644
--- a/libnm/nm-device-tun.c
+++ b/libnm/nm-device-tun.c
@@ -28,8 +28,7 @@ typedef struct {
gboolean multi_queue;
} NMDeviceTunPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_MODE,
PROP_OWNER,
@@ -37,9 +36,7 @@ enum {
PROP_NO_PI,
PROP_VNET_HDR,
PROP_MULTI_QUEUE,
-
- LAST_PROP
-};
+);
/**
* nm_device_tun_get_hw_address:
@@ -303,17 +300,14 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
g_type_class_add_private (gre_class, sizeof (NMDeviceTunPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceTun:hw-address:
@@ -322,12 +316,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_TUN_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_TUN_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTun:mode:
@@ -336,12 +329,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_string (NM_DEVICE_TUN_MODE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODE] =
+ g_param_spec_string (NM_DEVICE_TUN_MODE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTun:owner:
@@ -350,12 +342,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_OWNER] =
+ g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "",
+ -1, G_MAXUINT32, -1,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTun:group:
@@ -364,12 +355,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_GROUP] =
+ g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "",
+ -1, G_MAXUINT32, -1,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTun:no-pi:
@@ -379,12 +369,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_NO_PI] =
+ g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTun:vnet-hdr:
@@ -394,12 +383,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- 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));
+ obj_properties[PROP_VNET_HDR] =
+ g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceTun:multi-queue:
@@ -410,10 +398,11 @@ nm_device_tun_class_init (NMDeviceTunClass *gre_class)
*
* Since: 1.2
**/
- 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_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);
}
diff --git a/libnm/nm-device-vlan.c b/libnm/nm-device-vlan.c
index 05b02179c8..c2da173c13 100644
--- a/libnm/nm-device-vlan.c
+++ b/libnm/nm-device-vlan.c
@@ -24,15 +24,12 @@ typedef struct {
guint vlan_id;
} NMDeviceVlanPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_CARRIER,
PROP_PARENT,
PROP_VLAN_ID,
-
- LAST_PROP
-};
+);
/**
* nm_device_vlan_get_hw_address:
@@ -222,63 +219,58 @@ nm_device_vlan_class_init (NMDeviceVlanClass *vlan_class)
g_type_class_add_private (vlan_class, sizeof (NMDeviceVlanPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceVlan:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_VLAN_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_VLAN_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVlan:carrier:
*
* Whether the device has carrier.
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_VLAN_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_VLAN_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVlan:parent:
*
* The devices's parent device.
**/
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_object (NM_DEVICE_VLAN_PARENT, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_object (NM_DEVICE_VLAN_PARENT, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVlan:vlan-id:
*
* The device's VLAN ID.
**/
- g_object_class_install_property
- (object_class, PROP_VLAN_ID,
- g_param_spec_uint (NM_DEVICE_VLAN_VLAN_ID, "", "",
- 0, 4095, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_VLAN_ID] =
+ g_param_spec_uint (NM_DEVICE_VLAN_VLAN_ID, "", "",
+ 0, 4095, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device-vxlan.c b/libnm/nm-device-vxlan.c
index 5b93a7efbc..10b5ac71da 100644
--- a/libnm/nm-device-vxlan.c
+++ b/libnm/nm-device-vxlan.c
@@ -37,8 +37,7 @@ typedef struct {
gboolean l3miss;
} NMDeviceVxlanPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_CARRIER,
PROP_PARENT,
@@ -57,9 +56,7 @@ enum {
PROP_RSC,
PROP_L2MISS,
PROP_L3MISS,
-
- LAST_PROP
-};
+);
/**
* nm_device_vxlan_get_hw_address:
@@ -523,17 +520,14 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
g_type_class_add_private (vxlan_class, sizeof (NMDeviceVxlanPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceVxlan:hw-address:
@@ -542,12 +536,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_VXLAN_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_VXLAN_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:carrier:
@@ -556,12 +549,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_CARRIER,
- g_param_spec_boolean (NM_DEVICE_VXLAN_CARRIER, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CARRIER] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_CARRIER, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:parent:
@@ -570,12 +562,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_PARENT,
- g_param_spec_object (NM_DEVICE_VXLAN_PARENT, "", "",
- NM_TYPE_DEVICE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PARENT] =
+ g_param_spec_object (NM_DEVICE_VXLAN_PARENT, "", "",
+ NM_TYPE_DEVICE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:id:
@@ -584,12 +575,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_ID,
- g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "",
- 0, (1 << 24) - 1, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ID] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "",
+ 0, (1 << 24) - 1, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:group:
@@ -600,12 +590,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_GROUP] =
+ g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:local:
@@ -614,12 +603,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_LOCAL] =
+ g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:tos:
@@ -628,12 +616,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_TOS] =
+ g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:ttl:
@@ -642,12 +629,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_TTL] =
+ g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "",
+ 0, 255, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:learning:
@@ -657,12 +643,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- g_object_class_install_property
- (object_class, PROP_LEARNING,
- g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "",
- TRUE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_LEARNING] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "",
+ TRUE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:ageing:
@@ -671,12 +656,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_AGEING] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:limit:
@@ -685,12 +669,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_LIMIT] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:dst-port:
@@ -700,12 +683,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_DST_PORT] =
+ g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "",
+ 0, 65535, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:src-port-min:
@@ -715,12 +697,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ 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);
/**
* NMDeviceVxlan:src-port-max:
@@ -730,12 +711,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ 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);
/**
* NMDeviceVxlan:proxy:
@@ -744,12 +724,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_PROXY] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:rsc:
@@ -758,12 +737,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_RSC] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:l2miss:
@@ -772,12 +750,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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));
+ obj_properties[PROP_L2MISS] =
+ g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceVxlan:l3miss:
@@ -786,10 +763,11 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
*
* Since: 1.2
*/
- 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_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);
}
diff --git a/libnm/nm-device-wifi.c b/libnm/nm-device-wifi.c
index a2920e8156..0436afc6cb 100644
--- a/libnm/nm-device-wifi.c
+++ b/libnm/nm-device-wifi.c
@@ -40,8 +40,7 @@ typedef struct {
gint64 last_scan;
} NMDeviceWifiPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_PERM_HW_ADDRESS,
PROP_MODE,
@@ -50,9 +49,7 @@ enum {
PROP_WIRELESS_CAPABILITIES,
PROP_ACCESS_POINTS,
PROP_LAST_SCAN,
-
- LAST_PROP
-};
+);
enum {
ACCESS_POINT_ADDED,
@@ -730,106 +727,96 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
g_type_class_add_private (wifi_class, sizeof (NMDeviceWifiPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->dispose = dispose;
- object_class->finalize = finalize;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
wifi_class->access_point_removed = access_point_removed;
- /* properties */
-
/**
* NMDeviceWifi:hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_WIFI_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_WIFI_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:perm-hw-address:
*
* The hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_PERM_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PERM_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:mode:
*
* The mode of the device.
**/
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_enum (NM_DEVICE_WIFI_MODE, "", "",
- NM_TYPE_802_11_MODE,
- NM_802_11_MODE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODE] =
+ g_param_spec_enum (NM_DEVICE_WIFI_MODE, "", "",
+ NM_TYPE_802_11_MODE,
+ NM_802_11_MODE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:bitrate:
*
* The bit rate of the device in kbit/s.
**/
- g_object_class_install_property
- (object_class, PROP_BITRATE,
- g_param_spec_uint (NM_DEVICE_WIFI_BITRATE, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_BITRATE] =
+ g_param_spec_uint (NM_DEVICE_WIFI_BITRATE, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:active-access-point:
*
* The active #NMAccessPoint of the device.
**/
- g_object_class_install_property
- (object_class, PROP_ACTIVE_ACCESS_POINT,
- g_param_spec_object (NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, "", "",
- NM_TYPE_ACCESS_POINT,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ACTIVE_ACCESS_POINT] =
+ g_param_spec_object (NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT, "", "",
+ NM_TYPE_ACCESS_POINT,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:wireless-capabilities:
*
* The wireless capabilities of the device.
**/
- g_object_class_install_property
- (object_class, PROP_WIRELESS_CAPABILITIES,
- g_param_spec_flags (NM_DEVICE_WIFI_CAPABILITIES, "", "",
- NM_TYPE_DEVICE_WIFI_CAPABILITIES,
- NM_WIFI_DEVICE_CAP_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WIRELESS_CAPABILITIES] =
+ g_param_spec_flags (NM_DEVICE_WIFI_CAPABILITIES, "", "",
+ NM_TYPE_DEVICE_WIFI_CAPABILITIES,
+ NM_WIFI_DEVICE_CAP_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:access-points: (type GPtrArray(NMAccessPoint))
*
* List of all Wi-Fi access points the device can see.
**/
- g_object_class_install_property
- (object_class, PROP_ACCESS_POINTS,
- g_param_spec_boxed (NM_DEVICE_WIFI_ACCESS_POINTS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ACCESS_POINTS] =
+ g_param_spec_boxed (NM_DEVICE_WIFI_ACCESS_POINTS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWifi:last-scan:
@@ -840,14 +827,13 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_LAST_SCAN,
- g_param_spec_int64 (NM_DEVICE_WIFI_LAST_SCAN, "", "",
- -1, G_MAXINT64, -1,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_LAST_SCAN] =
+ g_param_spec_int64 (NM_DEVICE_WIFI_LAST_SCAN, "", "",
+ -1, G_MAXINT64, -1,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* signals */
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
/**
* NMDeviceWifi::access-point-added:
@@ -857,14 +843,14 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
* Notifies that a #NMAccessPoint is added to the Wi-Fi device.
**/
signals[ACCESS_POINT_ADDED] =
- g_signal_new ("access-point-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceWifiClass, access_point_added),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("access-point-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMDeviceWifiClass, access_point_added),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
/**
* NMDeviceWifi::access-point-removed:
@@ -874,12 +860,12 @@ nm_device_wifi_class_init (NMDeviceWifiClass *wifi_class)
* Notifies that a #NMAccessPoint is removed from the Wi-Fi device.
**/
signals[ACCESS_POINT_REMOVED] =
- g_signal_new ("access-point-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceWifiClass, access_point_removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("access-point-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMDeviceWifiClass, access_point_removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
}
diff --git a/libnm/nm-device-wimax.c b/libnm/nm-device-wimax.c
index 8b6bd9099c..db99a3c0a0 100644
--- a/libnm/nm-device-wimax.c
+++ b/libnm/nm-device-wimax.c
@@ -34,8 +34,7 @@ typedef struct {
char *bsid;
} NMDeviceWimaxPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_HW_ADDRESS,
PROP_ACTIVE_NSP,
PROP_CENTER_FREQ,
@@ -44,9 +43,7 @@ enum {
PROP_TX_POWER,
PROP_BSID,
PROP_NSPS,
-
- LAST_PROP
-};
+);
enum {
NSP_ADDED,
@@ -510,20 +507,17 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
g_type_class_add_private (wimax_class, sizeof (NMDeviceWimaxPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->dispose = dispose;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
wimax_class->nsp_removed = nsp_removed;
- /* properties */
-
/**
* NMDeviceWimax:hw-address:
*
@@ -531,12 +525,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_WIMAX_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_WIMAX_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:active-nsp:
@@ -545,12 +538,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_ACTIVE_NSP,
- g_param_spec_object (NM_DEVICE_WIMAX_ACTIVE_NSP, "", "",
- NM_TYPE_WIMAX_NSP,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ACTIVE_NSP] =
+ g_param_spec_object (NM_DEVICE_WIMAX_ACTIVE_NSP, "", "",
+ NM_TYPE_WIMAX_NSP,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:center-frequency:
@@ -561,12 +553,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_CENTER_FREQ,
- g_param_spec_uint (NM_DEVICE_WIMAX_CENTER_FREQUENCY, "", "",
- 0, G_MAXUINT, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CENTER_FREQ] =
+ g_param_spec_uint (NM_DEVICE_WIMAX_CENTER_FREQUENCY, "", "",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:rssi:
@@ -578,12 +569,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_RSSI,
- g_param_spec_int (NM_DEVICE_WIMAX_RSSI, "", "",
- G_MININT, G_MAXINT, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_RSSI] =
+ g_param_spec_int (NM_DEVICE_WIMAX_RSSI, "", "",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:cinr:
@@ -594,12 +584,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_CINR,
- g_param_spec_int (NM_DEVICE_WIMAX_CINR, "", "",
- G_MININT, G_MAXINT, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CINR] =
+ g_param_spec_int (NM_DEVICE_WIMAX_CINR, "", "",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:tx-power:
@@ -610,12 +599,11 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_TX_POWER,
- g_param_spec_int (NM_DEVICE_WIMAX_TX_POWER, "", "",
- G_MININT, G_MAXINT, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_TX_POWER] =
+ g_param_spec_int (NM_DEVICE_WIMAX_TX_POWER, "", "",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:bsid:
@@ -625,26 +613,24 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
*
* Deprecated: 1.2: WiMAX is no longer supported.
**/
- g_object_class_install_property
- (object_class, PROP_BSID,
- g_param_spec_string (NM_DEVICE_WIMAX_BSID, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_BSID] =
+ g_param_spec_string (NM_DEVICE_WIMAX_BSID, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDeviceWimax:nsps: (type GPtrArray(NMWimaxNsp))
*
* List of all WiMAX Network Service Providers the device can see.
**/
- g_object_class_install_property
- (object_class, PROP_NSPS,
- g_param_spec_boxed (NM_DEVICE_WIMAX_NSPS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NSPS] =
+ g_param_spec_boxed (NM_DEVICE_WIMAX_NSPS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* signals */
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
/**
* NMDeviceWimax::nsp-added:
@@ -656,14 +642,14 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* Deprecated: 1.2: WiMAX is no longer supported.
**/
signals[NSP_ADDED] =
- g_signal_new ("nsp-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_added),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("nsp-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_added),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
/**
* NMDeviceWimax::nsp-removed:
@@ -675,12 +661,12 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *wimax_class)
* Deprecated: 1.2: WiMAX is no longer supported.
**/
signals[NSP_REMOVED] =
- g_signal_new ("nsp-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("nsp-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMDeviceWimaxClass, nsp_removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
}
diff --git a/libnm/nm-device-wpan.c b/libnm/nm-device-wpan.c
index c65fff5702..45595c0083 100644
--- a/libnm/nm-device-wpan.c
+++ b/libnm/nm-device-wpan.c
@@ -11,12 +11,9 @@
#include "nm-setting-wpan.h"
#include "nm-setting-connection.h"
-enum {
- PROP_0,
- PROP_HW_ADDRESS,
-
- LAST_PROP
-};
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
+ PROP_HW_ADDRESS,
+);
typedef struct {
char *hw_address;
@@ -138,27 +135,25 @@ nm_device_wpan_class_init (NMDeviceWpanClass *wpan_class)
g_type_class_add_private (wpan_class, sizeof (NMDeviceWpanPrivate));
- /* virtual methods */
- object_class->finalize = finalize;
object_class->get_property = get_property;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- device_class->get_setting_type = get_setting_type;
- device_class->get_hw_address = get_hw_address;
-
- /* properties */
+ device_class->get_setting_type = get_setting_type;
+ device_class->get_hw_address = get_hw_address;
/**
* NMDeviceWpan:hw-address:
*
* The active hardware (MAC) address of the device.
**/
- g_object_class_install_property
- (object_class, PROP_HW_ADDRESS,
- g_param_spec_string (NM_DEVICE_WPAN_HW_ADDRESS, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_HW_ADDRESS] =
+ g_param_spec_string (NM_DEVICE_WPAN_HW_ADDRESS, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index 2ee83cf56b..3b6e47f853 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -11,7 +11,6 @@
#include <libudev.h>
#include "nm-glib-aux/nm-dbus-aux.h"
-#include "nm-libnm-utils.h"
#include "nm-dbus-interface.h"
#include "nm-active-connection.h"
#include "nm-device-bt.h"
@@ -78,8 +77,7 @@ typedef struct {
GPtrArray *lldp_neighbors;
} NMDevicePrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_INTERFACE,
PROP_UDI,
PROP_DRIVER,
@@ -109,9 +107,7 @@ enum {
PROP_LLDP_NEIGHBORS,
PROP_IP4_CONNECTIVITY,
PROP_IP6_CONNECTIVITY,
-
- LAST_PROP
-};
+);
enum {
STATE_CHANGED,
@@ -464,29 +460,25 @@ nm_device_class_init (NMDeviceClass *device_class)
g_type_class_add_private (device_class, sizeof (NMDevicePrivate));
- /* virtual methods */
object_class->get_property = get_property;
object_class->set_property = set_property;
- object_class->dispose = dispose;
- object_class->finalize = finalize;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
device_class->connection_compatible = connection_compatible;
- /* properties */
-
/**
* NMDevice:interface:
*
* The interface of the device.
**/
- g_object_class_install_property
- (object_class, PROP_INTERFACE,
- g_param_spec_string (NM_DEVICE_INTERFACE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_INTERFACE] =
+ g_param_spec_string (NM_DEVICE_INTERFACE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:ip-interface:
@@ -494,25 +486,23 @@ nm_device_class_init (NMDeviceClass *device_class)
* The IP interface of the device which should be used for all IP-related
* operations like addressing and routing.
**/
- g_object_class_install_property
- (object_class, PROP_IP_INTERFACE,
- g_param_spec_string (NM_DEVICE_IP_INTERFACE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP_INTERFACE] =
+ g_param_spec_string (NM_DEVICE_IP_INTERFACE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:device-type:
*
* The numeric type of the device.
**/
- g_object_class_install_property
- (object_class, PROP_DEVICE_TYPE,
- g_param_spec_enum (NM_DEVICE_DEVICE_TYPE, "", "",
- NM_TYPE_DEVICE_TYPE,
- NM_DEVICE_TYPE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DEVICE_TYPE] =
+ g_param_spec_enum (NM_DEVICE_DEVICE_TYPE, "", "",
+ NM_TYPE_DEVICE_TYPE,
+ NM_DEVICE_TYPE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:udi:
*
@@ -523,61 +513,56 @@ nm_device_class_init (NMDeviceClass *device_class)
* such as Bluez or ModemManager, and clients can use this property to
* request more information about the device from those services.
**/
- g_object_class_install_property
- (object_class, PROP_UDI,
- g_param_spec_string (NM_DEVICE_UDI, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_UDI] =
+ g_param_spec_string (NM_DEVICE_UDI, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:driver:
*
* The driver of the device.
**/
- g_object_class_install_property
- (object_class, PROP_DRIVER,
- g_param_spec_string (NM_DEVICE_DRIVER, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DRIVER] =
+ g_param_spec_string (NM_DEVICE_DRIVER, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:driver-version:
*
* The version of the device driver.
**/
- g_object_class_install_property
- (object_class, PROP_DRIVER_VERSION,
- g_param_spec_string (NM_DEVICE_DRIVER_VERSION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DRIVER_VERSION] =
+ g_param_spec_string (NM_DEVICE_DRIVER_VERSION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:firmware-version:
*
* The firmware version of the device.
**/
- g_object_class_install_property
- (object_class, PROP_FIRMWARE_VERSION,
- g_param_spec_string (NM_DEVICE_FIRMWARE_VERSION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FIRMWARE_VERSION] =
+ g_param_spec_string (NM_DEVICE_FIRMWARE_VERSION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:capabilities:
*
* The capabilities of the device.
**/
- g_object_class_install_property
- (object_class, PROP_CAPABILITIES,
- g_param_spec_flags (NM_DEVICE_CAPABILITIES, "", "",
- NM_TYPE_DEVICE_CAPABILITIES,
- NM_DEVICE_CAP_NONE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_CAPABILITIES] =
+ g_param_spec_flags (NM_DEVICE_CAPABILITIES, "", "",
+ NM_TYPE_DEVICE_CAPABILITIES,
+ NM_DEVICE_CAP_NONE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:real:
@@ -588,24 +573,22 @@ nm_device_class_init (NMDeviceClass *device_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_REAL,
- g_param_spec_boolean (NM_DEVICE_REAL, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_REAL] =
+ g_param_spec_boolean (NM_DEVICE_REAL, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:managed:
*
* Whether the device is managed by NetworkManager.
**/
- g_object_class_install_property
- (object_class, PROP_MANAGED,
- g_param_spec_boolean (NM_DEVICE_MANAGED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MANAGED] =
+ g_param_spec_boolean (NM_DEVICE_MANAGED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:autoconnect:
@@ -614,12 +597,11 @@ nm_device_class_init (NMDeviceClass *device_class)
*
* The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
**/
- g_object_class_install_property
- (object_class, PROP_AUTOCONNECT,
- g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, "", "",
- TRUE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_AUTOCONNECT] =
+ g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, "", "",
+ TRUE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:firmware-missing:
@@ -627,12 +609,11 @@ nm_device_class_init (NMDeviceClass *device_class)
* When %TRUE indicates the device is likely missing firmware required
* for its operation.
**/
- g_object_class_install_property
- (object_class, PROP_FIRMWARE_MISSING,
- g_param_spec_boolean (NM_DEVICE_FIRMWARE_MISSING, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FIRMWARE_MISSING] =
+ g_param_spec_boolean (NM_DEVICE_FIRMWARE_MISSING, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:nm-plugin-missing:
@@ -642,60 +623,55 @@ nm_device_class_init (NMDeviceClass *device_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_NM_PLUGIN_MISSING,
- g_param_spec_boolean (NM_DEVICE_NM_PLUGIN_MISSING, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NM_PLUGIN_MISSING] =
+ g_param_spec_boolean (NM_DEVICE_NM_PLUGIN_MISSING, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:ip4-config:
*
* The #NMIP4Config of the device.
**/
- g_object_class_install_property
- (object_class, PROP_IP4_CONFIG,
- g_param_spec_object (NM_DEVICE_IP4_CONFIG, "", "",
- NM_TYPE_IP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP4_CONFIG] =
+ g_param_spec_object (NM_DEVICE_IP4_CONFIG, "", "",
+ NM_TYPE_IP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:dhcp4-config:
*
* The IPv4 #NMDhcpConfig of the device.
**/
- g_object_class_install_property
- (object_class, PROP_DHCP4_CONFIG,
- g_param_spec_object (NM_DEVICE_DHCP4_CONFIG, "", "",
- NM_TYPE_DHCP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DHCP4_CONFIG] =
+ g_param_spec_object (NM_DEVICE_DHCP4_CONFIG, "", "",
+ NM_TYPE_DHCP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:ip6-config:
*
* The IPv6 #NMIPConfig of the device.
**/
- g_object_class_install_property
- (object_class, PROP_IP6_CONFIG,
- g_param_spec_object (NM_DEVICE_IP6_CONFIG, "", "",
- NM_TYPE_IP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP6_CONFIG] =
+ g_param_spec_object (NM_DEVICE_IP6_CONFIG, "", "",
+ NM_TYPE_IP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:dhcp6-config:
*
* The IPv6 #NMDhcpConfig of the device.
**/
- g_object_class_install_property
- (object_class, PROP_DHCP6_CONFIG,
- g_param_spec_object (NM_DEVICE_DHCP6_CONFIG, "", "",
- NM_TYPE_DHCP_CONFIG,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DHCP6_CONFIG] =
+ g_param_spec_object (NM_DEVICE_DHCP6_CONFIG, "", "",
+ NM_TYPE_DHCP_CONFIG,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:ip4-connectivity:
@@ -704,13 +680,12 @@ nm_device_class_init (NMDeviceClass *device_class)
*
* Since: 1.16
**/
- g_object_class_install_property
- (object_class, PROP_IP4_CONNECTIVITY,
- g_param_spec_enum (NM_DEVICE_IP4_CONNECTIVITY, "", "",
- NM_TYPE_CONNECTIVITY_STATE,
- NM_CONNECTIVITY_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP4_CONNECTIVITY] =
+ g_param_spec_enum (NM_DEVICE_IP4_CONNECTIVITY, "", "",
+ NM_TYPE_CONNECTIVITY_STATE,
+ NM_CONNECTIVITY_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:ip6-connectivity:
@@ -719,86 +694,79 @@ nm_device_class_init (NMDeviceClass *device_class)
*
* Since: 1.16
**/
- g_object_class_install_property
- (object_class, PROP_IP6_CONNECTIVITY,
- g_param_spec_enum (NM_DEVICE_IP6_CONNECTIVITY, "", "",
- NM_TYPE_CONNECTIVITY_STATE,
- NM_CONNECTIVITY_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_IP6_CONNECTIVITY] =
+ g_param_spec_enum (NM_DEVICE_IP6_CONNECTIVITY, "", "",
+ NM_TYPE_CONNECTIVITY_STATE,
+ NM_CONNECTIVITY_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:state:
*
* The state of the device.
**/
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_DEVICE_STATE, "", "",
- NM_TYPE_DEVICE_STATE,
- NM_DEVICE_STATE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_DEVICE_STATE, "", "",
+ NM_TYPE_DEVICE_STATE,
+ NM_DEVICE_STATE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:state-reason:
*
* The reason for the device state.
**/
- g_object_class_install_property
- (object_class, PROP_STATE_REASON,
- g_param_spec_uint (NM_DEVICE_STATE_REASON, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_STATE_REASON] =
+ g_param_spec_uint (NM_DEVICE_STATE_REASON, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:active-connection:
*
* The #NMActiveConnection object that "owns" this device during activation.
**/
- g_object_class_install_property
- (object_class, PROP_ACTIVE_CONNECTION,
- g_param_spec_object (NM_DEVICE_ACTIVE_CONNECTION, "", "",
- NM_TYPE_ACTIVE_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ACTIVE_CONNECTION] =
+ g_param_spec_object (NM_DEVICE_ACTIVE_CONNECTION, "", "",
+ NM_TYPE_ACTIVE_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:available-connections: (type GPtrArray(NMRemoteConnection))
*
* The available connections of the device
**/
- g_object_class_install_property
- (object_class, PROP_AVAILABLE_CONNECTIONS,
- g_param_spec_boxed (NM_DEVICE_AVAILABLE_CONNECTIONS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_AVAILABLE_CONNECTIONS] =
+ g_param_spec_boxed (NM_DEVICE_AVAILABLE_CONNECTIONS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:vendor:
*
* The vendor string of the device.
**/
- g_object_class_install_property
- (object_class, PROP_VENDOR,
- g_param_spec_string (NM_DEVICE_VENDOR, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_VENDOR] =
+ g_param_spec_string (NM_DEVICE_VENDOR, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:product:
*
* The product string of the device.
**/
- g_object_class_install_property
- (object_class, PROP_PRODUCT,
- g_param_spec_string (NM_DEVICE_PRODUCT, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PRODUCT] =
+ g_param_spec_string (NM_DEVICE_PRODUCT, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:physical-port-id:
@@ -806,24 +774,22 @@ nm_device_class_init (NMDeviceClass *device_class)
* The physical port ID of the device. (See
* nm_device_get_physical_port_id().)
**/
- g_object_class_install_property
- (object_class, PROP_PHYSICAL_PORT_ID,
- g_param_spec_string (NM_DEVICE_PHYSICAL_PORT_ID, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PHYSICAL_PORT_ID] =
+ g_param_spec_string (NM_DEVICE_PHYSICAL_PORT_ID, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:mtu:
*
* The MTU of the device.
**/
- g_object_class_install_property
- (object_class, PROP_MTU,
- g_param_spec_uint (NM_DEVICE_MTU, "", "",
- 0, G_MAXUINT32, 1500,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MTU] =
+ g_param_spec_uint (NM_DEVICE_MTU, "", "",
+ 0, G_MAXUINT32, 1500,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:metered:
@@ -832,26 +798,24 @@ nm_device_class_init (NMDeviceClass *device_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_METERED,
- g_param_spec_uint (NM_DEVICE_METERED, "", "",
- 0, G_MAXUINT32, NM_METERED_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_METERED] =
+ g_param_spec_uint (NM_DEVICE_METERED, "", "",
+ 0, G_MAXUINT32, NM_METERED_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDevice:lldp-neighbors:
*
* The LLDP neighbors.
**/
- g_object_class_install_property
- (object_class, PROP_LLDP_NEIGHBORS,
- g_param_spec_boxed (NM_DEVICE_LLDP_NEIGHBORS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_LLDP_NEIGHBORS] =
+ g_param_spec_boxed (NM_DEVICE_LLDP_NEIGHBORS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
- /* signals */
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
/**
* NMDevice::state-changed:
@@ -863,13 +827,13 @@ nm_device_class_init (NMDeviceClass *device_class)
* Notifies the state change of a #NMDevice.
**/
signals[STATE_CHANGED] =
- g_signal_new ("state-changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMDeviceClass, state_changed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 3,
- G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
+ g_signal_new ("state-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMDeviceClass, state_changed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 3,
+ G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
}
/**
diff --git a/libnm/nm-dhcp-config.c b/libnm/nm-dhcp-config.c
index fd17923c66..f92ca200ba 100644
--- a/libnm/nm-dhcp-config.c
+++ b/libnm/nm-dhcp-config.c
@@ -22,13 +22,10 @@ typedef struct {
GHashTable *options;
} NMDhcpConfigPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_FAMILY,
PROP_OPTIONS,
-
- LAST_PROP
-};
+);
static void
nm_dhcp_config_init (NMDhcpConfig *config)
@@ -116,38 +113,35 @@ nm_dhcp_config_class_init (NMDhcpConfigClass *config_class)
g_type_class_add_private (config_class, sizeof (NMDhcpConfigPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* properties */
-
/**
* NMDhcpConfig:family:
*
* The IP address family of the configuration; either
* <literal>AF_INET</literal> or <literal>AF_INET6</literal>.
**/
- g_object_class_install_property
- (object_class, PROP_FAMILY,
- g_param_spec_int (NM_DHCP_CONFIG_FAMILY, "", "",
- 0, 255, AF_UNSPEC,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FAMILY] =
+ g_param_spec_int (NM_DHCP_CONFIG_FAMILY, "", "",
+ 0, 255, AF_UNSPEC,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMDhcpConfig:options: (type GHashTable(utf8,utf8)):
*
* The #GHashTable containing options of the configuration.
**/
- g_object_class_install_property
- (object_class, PROP_OPTIONS,
- g_param_spec_boxed (NM_DHCP_CONFIG_OPTIONS, "", "",
- G_TYPE_HASH_TABLE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_OPTIONS] =
+ g_param_spec_boxed (NM_DHCP_CONFIG_OPTIONS, "", "",
+ G_TYPE_HASH_TABLE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
/**
diff --git a/libnm/nm-dns-manager.c b/libnm/nm-dns-manager.c
index 978778ad2f..4204cd138b 100644
--- a/libnm/nm-dns-manager.c
+++ b/libnm/nm-dns-manager.c
@@ -27,14 +27,11 @@ typedef struct {
GPtrArray *configuration;
} NMDnsManagerPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_MODE,
PROP_RC_MANAGER,
PROP_CONFIGURATION,
-
- LAST_PROP
-};
+);
/*****************************************************************************
* NMDnsEntry
@@ -401,32 +398,28 @@ nm_dns_manager_class_init (NMDnsManagerClass *class)
g_type_class_add_private (class, sizeof (NMDnsManagerPrivate));
- /* Virtual methods */
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->dispose = dispose;
nm_object_class->init_dbus = init_dbus;
- /* Properties */
-
- g_object_class_install_property
- (object_class, PROP_MODE,
- g_param_spec_string (NM_DNS_MANAGER_MODE, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_RC_MANAGER,
- g_param_spec_string (NM_DNS_MANAGER_RC_MANAGER, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CONFIGURATION,
- g_param_spec_boxed (NM_DNS_MANAGER_CONFIGURATION, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_MODE] =
+ g_param_spec_string (NM_DNS_MANAGER_MODE, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_RC_MANAGER] =
+ g_param_spec_string (NM_DNS_MANAGER_RC_MANAGER, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CONFIGURATION] =
+ g_param_spec_boxed (NM_DNS_MANAGER_CONFIGURATION, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-ip-config.c b/libnm/nm-ip-config.c
index ae7686d9d3..dd5e5d7a47 100644
--- a/libnm/nm-ip-config.c
+++ b/libnm/nm-ip-config.c
@@ -32,8 +32,7 @@ typedef struct {
gboolean new_style_data;
} NMIPConfigPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_FAMILY,
PROP_GATEWAY,
PROP_ADDRESSES,
@@ -42,9 +41,7 @@ enum {
PROP_DOMAINS,
PROP_SEARCHES,
PROP_WINS_SERVERS,
-
- LAST_PROP
-};
+);
static void
nm_ip_config_init (NMIPConfig *config)
@@ -244,98 +241,88 @@ nm_ip_config_class_init (NMIPConfigClass *config_class)
g_type_class_add_private (config_class, sizeof (NMIPConfigPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* properties */
-
/**
* NMIPConfig:family:
*
* The IP address family of the configuration; either
* <literal>AF_INET</literal> or <literal>AF_INET6</literal>.
**/
- g_object_class_install_property
- (object_class, PROP_FAMILY,
- g_param_spec_int (NM_IP_CONFIG_FAMILY, "", "",
- 0, 255, AF_UNSPEC,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FAMILY] =
+ g_param_spec_int (NM_IP_CONFIG_FAMILY, "", "",
+ 0, 255, AF_UNSPEC,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:gateway:
*
* The IP gateway address of the configuration as string.
**/
- g_object_class_install_property
- (object_class, PROP_GATEWAY,
- g_param_spec_string (NM_IP_CONFIG_GATEWAY, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_GATEWAY] =
+ g_param_spec_string (NM_IP_CONFIG_GATEWAY, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:addresses:
*
* A #GPtrArray containing the addresses (#NMIPAddress) of the configuration.
**/
- g_object_class_install_property
- (object_class, PROP_ADDRESSES,
- g_param_spec_boxed (NM_IP_CONFIG_ADDRESSES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ADDRESSES] =
+ g_param_spec_boxed (NM_IP_CONFIG_ADDRESSES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:routes: (type GPtrArray(NMIPRoute))
*
* A #GPtrArray containing the routes (#NMIPRoute) of the configuration.
**/
- g_object_class_install_property
- (object_class, PROP_ROUTES,
- g_param_spec_boxed (NM_IP_CONFIG_ROUTES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_ROUTES] =
+ g_param_spec_boxed (NM_IP_CONFIG_ROUTES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:nameservers:
*
* The array containing name server IP addresses of the configuration.
**/
- g_object_class_install_property
- (object_class, PROP_NAMESERVERS,
- g_param_spec_boxed (NM_IP_CONFIG_NAMESERVERS, "", "",
- G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NAMESERVERS] =
+ g_param_spec_boxed (NM_IP_CONFIG_NAMESERVERS, "", "",
+ G_TYPE_STRV,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:domains:
*
* The array containing domain strings of the configuration.
**/
- g_object_class_install_property
- (object_class, PROP_DOMAINS,
- g_param_spec_boxed (NM_IP_CONFIG_DOMAINS, "", "",
- G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DOMAINS] =
+ g_param_spec_boxed (NM_IP_CONFIG_DOMAINS, "", "",
+ G_TYPE_STRV,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:searches:
*
* The array containing DNS search strings of the configuration.
**/
- g_object_class_install_property
- (object_class, PROP_SEARCHES,
- g_param_spec_boxed (NM_IP_CONFIG_SEARCHES, "", "",
- G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SEARCHES] =
+ g_param_spec_boxed (NM_IP_CONFIG_SEARCHES, "", "",
+ G_TYPE_STRV,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMIPConfig:wins-servers:
@@ -343,12 +330,13 @@ nm_ip_config_class_init (NMIPConfigClass *config_class)
* The array containing WINS server IP addresses of the configuration.
* (This will always be empty for IPv6 configurations.)
**/
- g_object_class_install_property
- (object_class, PROP_WINS_SERVERS,
- g_param_spec_boxed (NM_IP_CONFIG_WINS_SERVERS, "", "",
- G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_WINS_SERVERS] =
+ g_param_spec_boxed (NM_IP_CONFIG_WINS_SERVERS, "", "",
+ G_TYPE_STRV,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
/**
diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c
index 8b5bb9dfc7..7d34d2fd41 100644
--- a/libnm/nm-libnm-utils.c
+++ b/libnm/nm-libnm-utils.c
@@ -10,6 +10,109 @@
/*****************************************************************************/
+volatile int _nml_dbus_log_level = 0;
+
+int
+_nml_dbus_log_level_init (void)
+{
+ const GDebugKey keys[] = {
+ { "trace", _NML_DBUS_LOG_LEVEL_TRACE },
+ { "debug", _NML_DBUS_LOG_LEVEL_DEBUG },
+ { "warning", _NML_DBUS_LOG_LEVEL_WARN },
+ { "error", _NML_DBUS_LOG_LEVEL_ERROR },
+ };
+ int l;
+
+ l = _NML_DBUS_LOG_LEVEL_INITIALIZED
+ | nm_utils_parse_debug_string (g_getenv ("LIBNM_CLIENT_DEBUG"),
+ keys,
+ G_N_ELEMENTS (keys));
+
+ if (!g_atomic_int_compare_and_exchange (&_nml_dbus_log_level, 0, l))
+ l = g_atomic_int_get (&_nml_dbus_log_level);
+
+ nm_assert (l & _NML_DBUS_LOG_LEVEL_INITIALIZED);
+ return l;
+}
+
+void
+_nml_dbus_log (NMLDBusLogLevel level,
+ const char *fmt,
+ ...) {
+ NMLDBusLogLevel configured_log_level;
+ gs_free char *msg = NULL;
+ va_list args;
+ const char *prefix = "";
+
+ /* we only call _nml_dbus_log() after nml_dbus_log_enabled(), which already does
+ * an atomic access to the variable. Since the value is only initialized once and
+ * never changes, we can just access it without additional locking. */
+ configured_log_level = _nml_dbus_log_level;
+
+ nm_assert (level & configured_log_level);
+
+ va_start (args, fmt);
+ msg = g_strdup_vprintf (fmt, args);
+ va_end (args);
+
+ switch (level) {
+ case NML_DBUS_LOG_LEVEL_TRACE:
+ prefix = "<trace> ";
+ break;
+ case NML_DBUS_LOG_LEVEL_DEBUG:
+ prefix = "<debug> ";
+ break;
+ case NML_DBUS_LOG_LEVEL_WARN:
+ prefix = "<warn > ";
+ if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) {
+ g_warning ("libnm-dbus: %s%s", prefix, msg);
+ return;
+ }
+ break;
+ case NML_DBUS_LOG_LEVEL_ERROR:
+ prefix = "<error> ";
+ if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_ERROR)) {
+ g_critical ("libnm-dbus: %s%s", prefix, msg);
+ return;
+ }
+ if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) {
+ g_warning ("libnm-dbus: %s%s", prefix, msg);
+ return;
+ }
+ break;
+ default:
+ break;
+ }
+
+ g_printerr ("libnm-dbus: %s%s\n", prefix, msg);
+}
+
+/*****************************************************************************/
+
+/* Stolen from dbus-glib */
+char *
+nm_utils_wincaps_to_dash (const char *caps)
+{
+ const char *p;
+ GString *str;
+
+ str = g_string_new (NULL);
+ p = caps;
+ while (*p) {
+ if (g_ascii_isupper (*p)) {
+ if (str->len > 0 && (str->len < 2 || str->str[str->len-2] != '-'))
+ g_string_append_c (str, '-');
+ g_string_append_c (str, g_ascii_tolower (*p));
+ } else
+ g_string_append_c (str, *p);
+ ++p;
+ }
+
+ return g_string_free (str, FALSE);
+}
+
+/*****************************************************************************/
+
static char *
_fixup_string (const char *desc,
const char *const *ignored_phrases,
diff --git a/libnm/nm-libnm-utils.h b/libnm/nm-libnm-utils.h
index 5dc579010a..ff070a587d 100644
--- a/libnm/nm-libnm-utils.h
+++ b/libnm/nm-libnm-utils.h
@@ -10,10 +10,110 @@
#error Cannot use this header.
#endif
+#include "nm-types.h"
+
+/*****************************************************************************/
+
/* Markers for deprecated sync code in internal API. */
#define _NM_DEPRECATED_SYNC_METHOD_INTERNAL NM_DEPRECATED_IN_1_22
#define _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY_INTERNAL NM_DEPRECATED_IN_1_22
+/*****************************************************************************/
+
+typedef enum {
+ _NML_DBUS_LOG_LEVEL_INITIALIZED = 0x01,
+
+ _NML_DBUS_LOG_LEVEL_TRACE = 0x02,
+
+ _NML_DBUS_LOG_LEVEL_DEBUG = 0x04,
+
+ /* the difference between a warning and a critical is that it results in
+ * g_warning() vs. g_critical() messages. Note that we want to use "warnings"
+ * for unknown D-Bus API that could just result because we run against a
+ * newer NetworkManager version (such warnings are more graceful, because
+ * we want that libnm can be forward compatible against newer servers).
+ * Critial warnings should be emitted when NetworkManager exposes something
+ * on D-Bus that breaks the current expectations. Usually NetworkManager
+ * should not break API, hence such issues are more severe. */
+ _NML_DBUS_LOG_LEVEL_WARN = 0x08,
+ _NML_DBUS_LOG_LEVEL_ERROR = 0x10,
+
+ /* ANY is only relevant for nml_dbus_log_enabled() to check whether any of the
+ * options is on. */
+ NML_DBUS_LOG_LEVEL_ANY = _NML_DBUS_LOG_LEVEL_INITIALIZED,
+
+ NML_DBUS_LOG_LEVEL_TRACE = _NML_DBUS_LOG_LEVEL_TRACE,
+ NML_DBUS_LOG_LEVEL_DEBUG = _NML_DBUS_LOG_LEVEL_DEBUG
+ | NML_DBUS_LOG_LEVEL_TRACE,
+ NML_DBUS_LOG_LEVEL_WARN = _NML_DBUS_LOG_LEVEL_WARN
+ | NML_DBUS_LOG_LEVEL_DEBUG,
+ NML_DBUS_LOG_LEVEL_ERROR = _NML_DBUS_LOG_LEVEL_ERROR
+ | NML_DBUS_LOG_LEVEL_WARN,
+} NMLDBusLogLevel;
+
+extern volatile int _nml_dbus_log_level;
+
+int _nml_dbus_log_level_init (void);
+
+static inline gboolean
+nml_dbus_log_enabled (NMLDBusLogLevel level)
+{
+ int l;
+
+ nm_assert (NM_IN_SET (level, NML_DBUS_LOG_LEVEL_ANY,
+ NML_DBUS_LOG_LEVEL_TRACE,
+ NML_DBUS_LOG_LEVEL_DEBUG,
+ NML_DBUS_LOG_LEVEL_WARN,
+ NML_DBUS_LOG_LEVEL_ERROR));
+
+ l = g_atomic_int_get (&_nml_dbus_log_level);
+ if (G_UNLIKELY (l == 0))
+ l = _nml_dbus_log_level_init ();
+
+ nm_assert (l & _NML_DBUS_LOG_LEVEL_INITIALIZED);
+ if (level == NML_DBUS_LOG_LEVEL_ANY)
+ return l != _NML_DBUS_LOG_LEVEL_INITIALIZED;
+ return !!(((NMLDBusLogLevel) l) & level);
+}
+
+void _nml_dbus_log (NMLDBusLogLevel level,
+ const char *fmt,
+ ...) _nm_printf (2, 3);
+
+#define NML_DBUS_LOG(level, ...) \
+ G_STMT_START { \
+ G_STATIC_ASSERT ( (level) == NML_DBUS_LOG_LEVEL_TRACE \
+ || (level) == NML_DBUS_LOG_LEVEL_DEBUG \
+ || (level) == NML_DBUS_LOG_LEVEL_WARN \
+ || (level) == NML_DBUS_LOG_LEVEL_ERROR); \
+ \
+ if (nml_dbus_log_enabled (level)) { \
+ _nml_dbus_log ((level), __VA_ARGS__); \
+ } \
+ } G_STMT_END
+
+#define NML_DBUS_LOG_T(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_TRACE, __VA_ARGS__)
+#define NML_DBUS_LOG_D(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_DEBUG, __VA_ARGS__)
+#define NML_DBUS_LOG_W(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_WARN, __VA_ARGS__)
+#define NML_DBUS_LOG_E(...) NML_DBUS_LOG (NML_DBUS_LOG_LEVEL_ERROR, __VA_ARGS__)
+
+#define NML_NMCLIENT_LOG(level, self, ...) \
+ NML_DBUS_LOG ((level), \
+ "nmclient["NM_HASH_OBFUSCATE_PTR_FMT"]: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
+ NM_HASH_OBFUSCATE_PTR (self) \
+ _NM_UTILS_MACRO_REST (__VA_ARGS__))
+
+#define NML_NMCLIENT_LOG_T(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_TRACE, self, __VA_ARGS__)
+#define NML_NMCLIENT_LOG_D(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_DEBUG, self, __VA_ARGS__)
+#define NML_NMCLIENT_LOG_W(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_WARN, self, __VA_ARGS__)
+#define NML_NMCLIENT_LOG_E(self, ...) NML_NMCLIENT_LOG (NML_DBUS_LOG_LEVEL_ERROR, self, __VA_ARGS__)
+
+/*****************************************************************************/
+
+char *nm_utils_wincaps_to_dash (const char *caps);
+
+/*****************************************************************************/
+
char *nm_utils_fixup_vendor_string (const char *desc);
char *nm_utils_fixup_product_string (const char *desc);
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c
index 1b7449e3ad..10fb4a18b6 100644
--- a/libnm/nm-manager.c
+++ b/libnm/nm-manager.c
@@ -75,8 +75,7 @@ typedef struct {
gboolean connectivity_check_enabled;
} NMManagerPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMManager,
PROP_VERSION,
PROP_STATE,
PROP_STARTUP,
@@ -97,9 +96,7 @@ enum {
PROP_CHECKPOINTS,
PROP_METERED,
PROP_ALL_DEVICES,
-
- LAST_PROP
-};
+);
enum {
DEVICE_ADDED,
@@ -634,7 +631,7 @@ _nm_manager_set_connectivity_hack (NMManager *manager,
if ((NMConnectivityState) connectivity != priv->connectivity) {
priv->connectivity = (NMConnectivityState) connectivity;
- g_object_notify (G_OBJECT (manager), NM_MANAGER_CONNECTIVITY);
+ _notify (manager, PROP_CONNECTIVITY);
}
}
@@ -1369,134 +1366,113 @@ nm_manager_class_init (NMManagerClass *manager_class)
g_type_class_add_private (manager_class, sizeof (NMManagerPrivate));
- /* virtual methods */
- object_class->constructed = constructed;
+ object_class->constructed = constructed;
object_class->set_property = set_property;
object_class->get_property = get_property;
- object_class->dispose = dispose;
- object_class->finalize = finalize;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
- nm_object_class->init_dbus = init_dbus;
+ nm_object_class->init_dbus = init_dbus;
nm_object_class->object_creation_failed = object_creation_failed;
- manager_class->device_added = device_added;
- manager_class->device_removed = device_removed;
- manager_class->active_connection_added = active_connection_added;
+ manager_class->device_added = device_added;
+ manager_class->device_removed = device_removed;
+ manager_class->active_connection_added = active_connection_added;
manager_class->active_connection_removed = active_connection_removed;
- manager_class->checkpoint_added = checkpoint_added;
-
- /* properties */
-
- g_object_class_install_property
- (object_class, PROP_VERSION,
- g_param_spec_string (NM_MANAGER_VERSION, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_CLIENT_STATE, "", "",
- NM_TYPE_STATE,
- NM_STATE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_STARTUP,
- g_param_spec_boolean (NM_MANAGER_STARTUP, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_NETWORKING_ENABLED,
- g_param_spec_boolean (NM_MANAGER_NETWORKING_ENABLED, "", "",
- TRUE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_WIRELESS_ENABLED,
- g_param_spec_boolean (NM_MANAGER_WIRELESS_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_WIRELESS_HARDWARE_ENABLED,
- g_param_spec_boolean (NM_MANAGER_WIRELESS_HARDWARE_ENABLED, "", "",
- TRUE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_WWAN_ENABLED,
- g_param_spec_boolean (NM_MANAGER_WWAN_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_WWAN_HARDWARE_ENABLED,
- g_param_spec_boolean (NM_MANAGER_WWAN_HARDWARE_ENABLED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_WIMAX_ENABLED,
- g_param_spec_boolean (NM_MANAGER_WIMAX_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_WIMAX_HARDWARE_ENABLED,
- g_param_spec_boolean (NM_MANAGER_WIMAX_HARDWARE_ENABLED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_ACTIVE_CONNECTIONS,
- g_param_spec_boxed (NM_MANAGER_ACTIVE_CONNECTIONS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY,
- g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "",
- NM_TYPE_CONNECTIVITY_STATE,
- NM_CONNECTIVITY_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_CHECK_AVAILABLE,
- g_param_spec_boolean (NM_MANAGER_CONNECTIVITY_CHECK_AVAILABLE, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_CONNECTIVITY_CHECK_ENABLED,
- g_param_spec_boolean (NM_MANAGER_CONNECTIVITY_CHECK_ENABLED, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_PRIMARY_CONNECTION,
- g_param_spec_object (NM_MANAGER_PRIMARY_CONNECTION, "", "",
- NM_TYPE_ACTIVE_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_ACTIVATING_CONNECTION,
- g_param_spec_object (NM_MANAGER_ACTIVATING_CONNECTION, "", "",
- NM_TYPE_ACTIVE_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_DEVICES,
- g_param_spec_boxed (NM_MANAGER_DEVICES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
- g_object_class_install_property
- (object_class, PROP_CHECKPOINTS,
- g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ manager_class->checkpoint_added = checkpoint_added;
+
+ obj_properties[PROP_VERSION] =
+ g_param_spec_string (NM_MANAGER_VERSION, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_CLIENT_STATE, "", "",
+ NM_TYPE_STATE,
+ NM_STATE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_STARTUP] =
+ g_param_spec_boolean (NM_MANAGER_STARTUP, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_NETWORKING_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_NETWORKING_ENABLED, "", "",
+ TRUE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_WIRELESS_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_WIRELESS_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_WIRELESS_HARDWARE_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_WIRELESS_HARDWARE_ENABLED, "", "",
+ TRUE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_WWAN_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_WWAN_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_WWAN_HARDWARE_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_WWAN_HARDWARE_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_WIMAX_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_WIMAX_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_WIMAX_HARDWARE_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_WIMAX_HARDWARE_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_ACTIVE_CONNECTIONS] =
+ g_param_spec_boxed (NM_MANAGER_ACTIVE_CONNECTIONS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_CONNECTIVITY] =
+ g_param_spec_enum (NM_CLIENT_CONNECTIVITY, "", "",
+ NM_TYPE_CONNECTIVITY_STATE,
+ NM_CONNECTIVITY_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_CONNECTIVITY_CHECK_AVAILABLE] =
+ g_param_spec_boolean (NM_MANAGER_CONNECTIVITY_CHECK_AVAILABLE, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_CONNECTIVITY_CHECK_ENABLED] =
+ g_param_spec_boolean (NM_MANAGER_CONNECTIVITY_CHECK_ENABLED, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_PRIMARY_CONNECTION] =
+ g_param_spec_object (NM_MANAGER_PRIMARY_CONNECTION, "", "",
+ NM_TYPE_ACTIVE_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_ACTIVATING_CONNECTION] =
+ g_param_spec_object (NM_MANAGER_ACTIVATING_CONNECTION, "", "",
+ NM_TYPE_ACTIVE_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_DEVICES] =
+ g_param_spec_boxed (NM_MANAGER_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+ obj_properties[PROP_CHECKPOINTS] =
+ g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMManager:metered:
*
@@ -1504,93 +1480,91 @@ nm_manager_class_init (NMManagerClass *manager_class)
*
* Since: 1.2
**/
- g_object_class_install_property
- (object_class, PROP_METERED,
- g_param_spec_uint (NM_MANAGER_METERED, "", "",
- 0, G_MAXUINT32, NM_METERED_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_ALL_DEVICES,
- g_param_spec_boxed (NM_MANAGER_ALL_DEVICES, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /* signals */
+ obj_properties[PROP_METERED] =
+ g_param_spec_uint (NM_MANAGER_METERED, "", "",
+ 0, G_MAXUINT32, NM_METERED_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_ALL_DEVICES] =
+ g_param_spec_boxed (NM_MANAGER_ALL_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
signals[DEVICE_ADDED] =
- g_signal_new ("device-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMManagerClass, device_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("device-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, device_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[DEVICE_REMOVED] =
- g_signal_new ("device-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMManagerClass, device_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("device-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, device_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[ANY_DEVICE_ADDED] =
- g_signal_new ("any-device-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0,
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("any-device-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[ANY_DEVICE_REMOVED] =
- g_signal_new ("any-device-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0,
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("any-device-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[ACTIVE_CONNECTION_ADDED] =
- g_signal_new ("active-connection-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMManagerClass, active_connection_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("active-connection-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, active_connection_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[ACTIVE_CONNECTION_REMOVED] =
- g_signal_new ("active-connection-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMManagerClass, active_connection_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("active-connection-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, active_connection_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[CHECKPOINT_ADDED] =
- g_signal_new ("checkpoint-added",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMManagerClass, checkpoint_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("checkpoint-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, checkpoint_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[CHECKPOINT_REMOVED] =
- g_signal_new ("checkpoint-removed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMManagerClass, checkpoint_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- G_TYPE_OBJECT);
+ g_signal_new ("checkpoint-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, checkpoint_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
signals[PERMISSION_CHANGED] =
- g_signal_new ("permission-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);
+ g_signal_new ("permission-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);
}
static void
diff --git a/libnm/nm-manager.h b/libnm/nm-manager.h
index 50b6215b0c..8c28cbe50d 100644
--- a/libnm/nm-manager.h
+++ b/libnm/nm-manager.h
@@ -13,7 +13,6 @@
#include "nm-object.h"
#include "nm-client.h"
-#include "nm-libnm-utils.h"
#define NM_TYPE_MANAGER (nm_manager_get_type ())
#define NM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MANAGER, NMManager))
diff --git a/libnm/nm-object.c b/libnm/nm-object.c
index bbe97eb6cd..de1d15186c 100644
--- a/libnm/nm-object.c
+++ b/libnm/nm-object.c
@@ -73,16 +73,12 @@ typedef struct {
char *name_owner_cached;
} NMObjectPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_PATH,
PROP_DBUS_CONNECTION,
- PROP_NM_RUNNING,
PROP_DBUS_OBJECT,
PROP_DBUS_OBJECT_MANAGER,
-
- LAST_PROP
-};
+);
/**
* nm_object_get_path:
@@ -543,28 +539,6 @@ odata_free (gpointer data)
static void object_property_maybe_complete (NMObject *self);
-/* Stolen from dbus-glib */
-static char*
-wincaps_to_dash (const char *caps)
-{
- const char *p;
- GString *str;
-
- str = g_string_new (NULL);
- p = caps;
- while (*p) {
- if (g_ascii_isupper (*p)) {
- if (str->len > 0 && (str->len < 2 || str->str[str->len-2] != '-'))
- g_string_append_c (str, '-');
- g_string_append_c (str, g_ascii_tolower (*p));
- } else
- g_string_append_c (str, *p);
- ++p;
- }
-
- return g_string_free (str, FALSE);
-}
-
/* Adds object to array if it's not already there */
static void
add_to_object_array_unique (GPtrArray *array, GObject *obj)
@@ -881,7 +855,7 @@ handle_property_changed (NMObject *self, const char *dbus_name, GVariant *value)
gboolean success = FALSE, found = FALSE;
GSList *iter;
- prop_name = wincaps_to_dash (dbus_name);
+ prop_name = nm_utils_wincaps_to_dash (dbus_name);
/* Iterate through the object and its parents to find the property */
for (iter = priv->property_tables; iter; iter = g_slist_next (iter)) {
@@ -1470,63 +1444,58 @@ nm_object_class_init (NMObjectClass *nm_object_class)
g_type_class_add_private (nm_object_class, sizeof (NMObjectPrivate));
- /* virtual methods */
- object_class->set_property = set_property;
object_class->get_property = get_property;
- object_class->dispose = dispose;
- object_class->finalize = finalize;
+ object_class->set_property = set_property;
+ object_class->dispose = dispose;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* Properties */
-
/**
* NMObject:path:
*
* The D-Bus object path.
**/
- g_object_class_install_property
- (object_class, PROP_PATH,
- g_param_spec_string (NM_OBJECT_PATH, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_PATH] =
+ g_param_spec_string (NM_OBJECT_PATH, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMObject:dbus-connection: (skip)
*
* The #GDBusConnection of the object.
**/
- g_object_class_install_property
- (object_class, PROP_DBUS_CONNECTION,
- g_param_spec_object (NM_OBJECT_DBUS_CONNECTION, "", "",
- G_TYPE_DBUS_CONNECTION,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DBUS_CONNECTION] =
+ g_param_spec_object (NM_OBJECT_DBUS_CONNECTION, "", "",
+ G_TYPE_DBUS_CONNECTION,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMObject:dbus-object: (skip)
*
* The #GDBusObject of the object.
**/
- g_object_class_install_property
- (object_class, PROP_DBUS_OBJECT,
- g_param_spec_object (NM_OBJECT_DBUS_OBJECT, "", "",
- G_TYPE_DBUS_OBJECT,
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DBUS_OBJECT] =
+ g_param_spec_object (NM_OBJECT_DBUS_OBJECT, "", "",
+ G_TYPE_DBUS_OBJECT,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
/**
* NMObject:dbus-object-manager: (skip)
*
* The #GDBusObjectManager of the object.
**/
- g_object_class_install_property
- (object_class, PROP_DBUS_OBJECT_MANAGER,
- g_param_spec_object (NM_OBJECT_DBUS_OBJECT_MANAGER, "", "",
- G_TYPE_DBUS_OBJECT_MANAGER,
- G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DBUS_OBJECT_MANAGER] =
+ g_param_spec_object (NM_OBJECT_DBUS_OBJECT_MANAGER, "", "",
+ G_TYPE_DBUS_OBJECT_MANAGER,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/nm-remote-connection.c b/libnm/nm-remote-connection.c
index 4fd7146891..6a667b13ef 100644
--- a/libnm/nm-remote-connection.c
+++ b/libnm/nm-remote-connection.c
@@ -39,15 +39,12 @@ G_DEFINE_TYPE_WITH_CODE (NMRemoteConnection, nm_remote_connection, NM_TYPE_OBJEC
G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, nm_remote_connection_async_initable_iface_init);
)
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMRemoteConnection,
PROP_UNSAVED,
PROP_FLAGS,
PROP_FILENAME,
PROP_VISIBLE,
-
- LAST_PROP
-};
+);
typedef struct {
NMDBusSettingsConnection *proxy;
@@ -660,7 +657,7 @@ updated_get_settings_cb (GObject *proxy,
if (visible != priv->visible) {
priv->visible = visible;
- g_object_notify (G_OBJECT (self), NM_REMOTE_CONNECTION_VISIBLE);
+ _notify (self, PROP_VISIBLE);
}
g_object_unref (self);
@@ -862,26 +859,23 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class)
g_type_class_add_private (object_class, sizeof (NMRemoteConnectionPrivate));
- /* virtual methods */
- object_class->constructed = constructed;
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->constructed = constructed;
+ object_class->dispose = dispose;
nm_object_class->init_dbus = init_dbus;
- /* Properties */
/**
* NMRemoteConnection:unsaved:
*
* %TRUE if the remote connection contains changes that have not been saved
* to disk, %FALSE if the connection is the same as its on-disk representation.
**/
- g_object_class_install_property
- (object_class, PROP_UNSAVED,
- g_param_spec_boolean (NM_REMOTE_CONNECTION_UNSAVED, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_UNSAVED] =
+ g_param_spec_boolean (NM_REMOTE_CONNECTION_UNSAVED, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMRemoteConnection:flags:
@@ -891,12 +885,11 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_FLAGS,
- g_param_spec_uint (NM_REMOTE_CONNECTION_FLAGS, "", "",
- 0, G_MAXUINT32, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FLAGS] =
+ g_param_spec_uint (NM_REMOTE_CONNECTION_FLAGS, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMRemoteConnection:filename:
@@ -906,12 +899,11 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class)
*
* Since: 1.12
**/
- g_object_class_install_property
- (object_class, PROP_FILENAME,
- g_param_spec_string (NM_REMOTE_CONNECTION_FILENAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_FILENAME] =
+ g_param_spec_string (NM_REMOTE_CONNECTION_FILENAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMRemoteConnection:visible:
@@ -924,12 +916,13 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class)
* to callers, but it is possible for a connection's visibility to change
* after you already have a reference to it.)
**/
- g_object_class_install_property
- (object_class, PROP_VISIBLE,
- g_param_spec_boolean (NM_REMOTE_CONNECTION_VISIBLE, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_VISIBLE] =
+ g_param_spec_boolean (NM_REMOTE_CONNECTION_VISIBLE, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
static void
diff --git a/libnm/nm-remote-settings.c b/libnm/nm-remote-settings.c
index 0a95ce3050..7e46cf98d3 100644
--- a/libnm/nm-remote-settings.c
+++ b/libnm/nm-remote-settings.c
@@ -36,14 +36,11 @@ typedef struct {
gboolean can_modify;
} NMRemoteSettingsPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_CONNECTIONS,
PROP_HOSTNAME,
PROP_CAN_MODIFY,
-
- LAST_PROP
-};
+);
/* Signals */
enum {
@@ -432,56 +429,51 @@ nm_remote_settings_class_init (NMRemoteSettingsClass *class)
g_type_class_add_private (class, sizeof (NMRemoteSettingsPrivate));
- /* Virtual methods */
- object_class->constructor = constructor;
object_class->get_property = get_property;
- object_class->dispose = dispose;
+ object_class->constructor = constructor;
+ object_class->dispose = dispose;
- nm_object_class->init_dbus = init_dbus;
+ nm_object_class->init_dbus = init_dbus;
nm_object_class->object_creation_failed = object_creation_failed;
- class->connection_added = connection_added;
+ class->connection_added = connection_added;
class->connection_removed = connection_removed;
- /* Properties */
-
- g_object_class_install_property
- (object_class, PROP_CONNECTIONS,
- g_param_spec_boxed (NM_REMOTE_SETTINGS_CONNECTIONS, "", "",
- G_TYPE_PTR_ARRAY,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_HOSTNAME,
- g_param_spec_string (NM_REMOTE_SETTINGS_HOSTNAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property
- (object_class, PROP_CAN_MODIFY,
- g_param_spec_boolean (NM_REMOTE_SETTINGS_CAN_MODIFY, "", "",
- FALSE,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /* Signals */
+ obj_properties[PROP_CONNECTIONS] =
+ g_param_spec_boxed (NM_REMOTE_SETTINGS_CONNECTIONS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_HOSTNAME] =
+ g_param_spec_string (NM_REMOTE_SETTINGS_HOSTNAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ obj_properties[PROP_CAN_MODIFY] =
+ g_param_spec_boolean (NM_REMOTE_SETTINGS_CAN_MODIFY, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
signals[CONNECTION_ADDED] =
- g_signal_new (NM_REMOTE_SETTINGS_CONNECTION_ADDED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMRemoteSettingsClass, connection_added),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- NM_TYPE_REMOTE_CONNECTION);
+ g_signal_new (NM_REMOTE_SETTINGS_CONNECTION_ADDED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMRemoteSettingsClass, connection_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ NM_TYPE_REMOTE_CONNECTION);
signals[CONNECTION_REMOVED] =
- g_signal_new (NM_REMOTE_SETTINGS_CONNECTION_REMOVED,
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMRemoteSettingsClass, connection_removed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 1,
- NM_TYPE_REMOTE_CONNECTION);
+ g_signal_new (NM_REMOTE_SETTINGS_CONNECTION_REMOVED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMRemoteSettingsClass, connection_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ NM_TYPE_REMOTE_CONNECTION);
}
diff --git a/libnm/nm-remote-settings.h b/libnm/nm-remote-settings.h
index 2ebc39d659..53d1767b58 100644
--- a/libnm/nm-remote-settings.h
+++ b/libnm/nm-remote-settings.h
@@ -12,7 +12,6 @@
#endif
#include "nm-object.h"
-#include "nm-libnm-utils.h"
#define NM_TYPE_REMOTE_SETTINGS (nm_remote_settings_get_type ())
#define NM_REMOTE_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_REMOTE_SETTINGS, NMRemoteSettings))
diff --git a/libnm/nm-vpn-connection.c b/libnm/nm-vpn-connection.c
index 5bb882c96e..7ef24aaa96 100644
--- a/libnm/nm-vpn-connection.c
+++ b/libnm/nm-vpn-connection.c
@@ -27,13 +27,10 @@ typedef struct {
NMVpnConnectionState vpn_state;
} NMVpnConnectionPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE (NMVpnConnection,
PROP_VPN_STATE,
PROP_BANNER,
-
- LAST_PROP
-};
+);
enum {
VPN_STATE_CHANGED,
@@ -88,7 +85,7 @@ vpn_state_changed_proxy (NMDBusVpnConnection *proxy,
if (priv->vpn_state != vpn_state) {
priv->vpn_state = vpn_state;
g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, reason);
- g_object_notify (G_OBJECT (connection), NM_VPN_CONNECTION_VPN_STATE);
+ _notify (connection, PROP_VPN_STATE);
}
}
@@ -164,48 +161,44 @@ nm_vpn_connection_class_init (NMVpnConnectionClass *connection_class)
g_type_class_add_private (connection_class, sizeof (NMVpnConnectionPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* properties */
-
/**
* NMVpnConnection:vpn-state:
*
* The VPN state of the active VPN connection.
**/
- g_object_class_install_property
- (object_class, PROP_VPN_STATE,
- g_param_spec_enum (NM_VPN_CONNECTION_VPN_STATE, "", "",
- NM_TYPE_VPN_CONNECTION_STATE,
- NM_VPN_CONNECTION_STATE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_VPN_STATE] =
+ g_param_spec_enum (NM_VPN_CONNECTION_VPN_STATE, "", "",
+ NM_TYPE_VPN_CONNECTION_STATE,
+ NM_VPN_CONNECTION_STATE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMVpnConnection:banner:
*
* The VPN login banner of the active VPN connection.
**/
- g_object_class_install_property
- (object_class, PROP_BANNER,
- g_param_spec_string (NM_VPN_CONNECTION_BANNER, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
-
- /* signals */
+ obj_properties[PROP_BANNER] =
+ g_param_spec_string (NM_VPN_CONNECTION_BANNER, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
signals[VPN_STATE_CHANGED] =
- g_signal_new ("vpn-state-changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnConnectionClass, vpn_state_changed),
- NULL, NULL, NULL,
- G_TYPE_NONE, 2,
- G_TYPE_UINT, G_TYPE_UINT);
+ g_signal_new ("vpn-state-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnConnectionClass, vpn_state_changed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2,
+ G_TYPE_UINT, G_TYPE_UINT);
G_GNUC_END_IGNORE_DEPRECATIONS
}
diff --git a/libnm/nm-vpn-plugin-old.c b/libnm/nm-vpn-plugin-old.c
index 22ffa4d3b9..782fd80dc0 100644
--- a/libnm/nm-vpn-plugin-old.c
+++ b/libnm/nm-vpn-plugin-old.c
@@ -68,13 +68,10 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_DBUS_SERVICE_NAME,
PROP_STATE,
-
- LAST_PROP
-};
+);
static GSList *active_plugins = NULL;
@@ -1003,16 +1000,13 @@ nm_vpn_plugin_old_class_init (NMVpnPluginOldClass *plugin_class)
g_type_class_add_private (object_class, sizeof (NMVpnPluginOldPrivate));
- /* virtual methods */
- object_class->set_property = set_property;
object_class->get_property = get_property;
+ object_class->set_property = set_property;
object_class->dispose = dispose;
object_class->finalize = finalize;
plugin_class->state_changed = state_changed;
- /* properties */
-
/**
* NMVpnPluginOld:service-name:
*
@@ -1020,13 +1014,12 @@ nm_vpn_plugin_old_class_init (NMVpnPluginOldClass *plugin_class)
*
* Deprecated: 1.2: replaced by NMVpnServicePlugin
*/
- g_object_class_install_property
- (object_class, PROP_DBUS_SERVICE_NAME,
- g_param_spec_string (NM_VPN_PLUGIN_OLD_DBUS_SERVICE_NAME, "", "",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DBUS_SERVICE_NAME] =
+ g_param_spec_string (NM_VPN_PLUGIN_OLD_DBUS_SERVICE_NAME, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
/**
* NMVpnPluginOld:state:
@@ -1035,92 +1028,92 @@ nm_vpn_plugin_old_class_init (NMVpnPluginOldClass *plugin_class)
*
* Deprecated: 1.2: replaced by NMVpnServicePlugin
*/
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_VPN_PLUGIN_OLD_STATE, "", "",
- NM_TYPE_VPN_SERVICE_STATE,
- NM_VPN_SERVICE_STATE_INIT,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
-
- /* signals */
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_VPN_PLUGIN_OLD_STATE, "", "",
+ NM_TYPE_VPN_SERVICE_STATE,
+ NM_VPN_SERVICE_STATE_INIT,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
signals[STATE_CHANGED] =
- g_signal_new ("state-changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, state_changed),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
+ g_signal_new ("state-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, state_changed),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_UINT);
signals[SECRETS_REQUIRED] =
- g_signal_new ("secrets-required",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0, NULL, NULL,
- NULL,
- G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV);
+ g_signal_new ("secrets-required",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV);
signals[CONFIG] =
- g_signal_new ("config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, config),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_VARIANT);
+ g_signal_new ("config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, config),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_VARIANT);
signals[IP4_CONFIG] =
- g_signal_new ("ip4-config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, ip4_config),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_VARIANT);
+ g_signal_new ("ip4-config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, ip4_config),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_VARIANT);
signals[IP6_CONFIG] =
- g_signal_new ("ip6-config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, ip6_config),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_VARIANT);
+ g_signal_new ("ip6-config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, ip6_config),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_VARIANT);
signals[LOGIN_BANNER] =
- g_signal_new ("login-banner",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, login_banner),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_STRING);
+ g_signal_new ("login-banner",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, login_banner),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_STRING);
signals[FAILURE] =
- g_signal_new ("failure",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, failure),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
+ g_signal_new ("failure",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, failure),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_UINT);
signals[QUIT] =
- g_signal_new ("quit",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnPluginOldClass, quit),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 0,
- G_TYPE_NONE);
+ g_signal_new ("quit",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnPluginOldClass, quit),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 0,
+ G_TYPE_NONE);
setup_unix_signal_handler ();
}
diff --git a/libnm/nm-vpn-service-plugin.c b/libnm/nm-vpn-service-plugin.c
index ea8a085a21..9ebcfd6461 100644
--- a/libnm/nm-vpn-service-plugin.c
+++ b/libnm/nm-vpn-service-plugin.c
@@ -71,14 +71,11 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_DBUS_SERVICE_NAME,
PROP_DBUS_WATCH_PEER,
PROP_STATE,
-
- LAST_PROP
-};
+);
static GSList *active_plugins = NULL;
@@ -1190,16 +1187,13 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class)
g_type_class_add_private (object_class, sizeof (NMVpnServicePluginPrivate));
- /* virtual methods */
- object_class->set_property = set_property;
object_class->get_property = get_property;
+ object_class->set_property = set_property;
object_class->dispose = dispose;
object_class->finalize = finalize;
plugin_class->state_changed = state_changed;
- /* properties */
-
/**
* NMVpnServicePlugin:service-name:
*
@@ -1207,13 +1201,12 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class)
*
* Since: 1.2
*/
- g_object_class_install_property
- (object_class, PROP_DBUS_SERVICE_NAME,
- g_param_spec_string (NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME, "", "",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_DBUS_SERVICE_NAME] =
+ g_param_spec_string (NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
/**
* NMVpnServicePlugin:watch-peer:
@@ -1222,12 +1215,12 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class)
*
* Since: 1.2
*/
- g_object_class_install_property
- (object_class, PROP_DBUS_WATCH_PEER,
- g_param_spec_boolean (NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER, "", "",
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY));
+ obj_properties[PROP_DBUS_WATCH_PEER] =
+ g_param_spec_boolean (NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
/**
* NMVpnServicePlugin:state:
@@ -1236,92 +1229,92 @@ nm_vpn_service_plugin_class_init (NMVpnServicePluginClass *plugin_class)
*
* Since: 1.2
*/
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_enum (NM_VPN_SERVICE_PLUGIN_STATE, "", "",
- NM_TYPE_VPN_SERVICE_STATE,
- NM_VPN_SERVICE_STATE_INIT,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS));
-
- /* signals */
+ obj_properties[PROP_STATE] =
+ g_param_spec_enum (NM_VPN_SERVICE_PLUGIN_STATE, "", "",
+ NM_TYPE_VPN_SERVICE_STATE,
+ NM_VPN_SERVICE_STATE_INIT,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
+
signals[STATE_CHANGED] =
- g_signal_new ("state-changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, state_changed),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
+ g_signal_new ("state-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, state_changed),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_UINT);
signals[SECRETS_REQUIRED] =
- g_signal_new ("secrets-required",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- 0, NULL, NULL,
- NULL,
- G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV);
+ g_signal_new ("secrets-required",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0, NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRV);
signals[CONFIG] =
- g_signal_new ("config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, config),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_VARIANT);
+ g_signal_new ("config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, config),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_VARIANT);
signals[IP4_CONFIG] =
- g_signal_new ("ip4-config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, ip4_config),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_VARIANT);
+ g_signal_new ("ip4-config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, ip4_config),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_VARIANT);
signals[IP6_CONFIG] =
- g_signal_new ("ip6-config",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, ip6_config),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_VARIANT);
+ g_signal_new ("ip6-config",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, ip6_config),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_VARIANT);
signals[LOGIN_BANNER] =
- g_signal_new ("login-banner",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, login_banner),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_STRING);
+ g_signal_new ("login-banner",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, login_banner),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_STRING);
signals[FAILURE] =
- g_signal_new ("failure",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, failure),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
+ g_signal_new ("failure",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, failure),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_UINT);
signals[QUIT] =
- g_signal_new ("quit",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (NMVpnServicePluginClass, quit),
- NULL, NULL,
- NULL,
- G_TYPE_NONE, 0,
- G_TYPE_NONE);
+ g_signal_new ("quit",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMVpnServicePluginClass, quit),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 0,
+ G_TYPE_NONE);
setup_unix_signal_handler ();
}
diff --git a/libnm/nm-wimax-nsp.c b/libnm/nm-wimax-nsp.c
index 9a6a154d7a..91dc5dae23 100644
--- a/libnm/nm-wimax-nsp.c
+++ b/libnm/nm-wimax-nsp.c
@@ -24,14 +24,11 @@ typedef struct {
NMWimaxNspNetworkType network_type;
} NMWimaxNspPrivate;
-enum {
- PROP_0,
+NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_NAME,
PROP_SIGNAL_QUALITY,
PROP_NETWORK_TYPE,
-
- LAST_PROP
-};
+);
/**
* nm_wimax_nsp_get_name:
@@ -222,48 +219,44 @@ nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class)
g_type_class_add_private (nsp_class, sizeof (NMWimaxNspPrivate));
- /* virtual methods */
object_class->get_property = get_property;
- object_class->finalize = finalize;
+ object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
- /* properties */
-
/**
* NMWimaxNsp:name:
*
* The name of the WiMAX NSP.
**/
- g_object_class_install_property
- (object_class, PROP_NAME,
- g_param_spec_string (NM_WIMAX_NSP_NAME, "", "",
- NULL,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NAME] =
+ g_param_spec_string (NM_WIMAX_NSP_NAME, "", "",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMWimaxNsp:signal-quality:
*
* The signal quality of the WiMAX NSP.
**/
- g_object_class_install_property
- (object_class, PROP_SIGNAL_QUALITY,
- g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "",
- 0, 100, 0,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_SIGNAL_QUALITY] =
+ g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "",
+ 0, 100, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
/**
* NMWimaxNsp:network-type:
*
* The network type of the WiMAX NSP.
**/
- g_object_class_install_property
- (object_class, PROP_NETWORK_TYPE,
- g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "",
- NM_TYPE_WIMAX_NSP_NETWORK_TYPE,
- NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ obj_properties[PROP_NETWORK_TYPE] =
+ g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "",
+ NM_TYPE_WIMAX_NSP_NETWORK_TYPE,
+ NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}
diff --git a/libnm/tests/test-libnm.c b/libnm/tests/test-libnm.c
index 5851c574a1..8af1c28ffa 100644
--- a/libnm/tests/test-libnm.c
+++ b/libnm/tests/test-libnm.c
@@ -12,7 +12,6 @@
#include <sys/mman.h>
#include "nm-libnm-utils.h"
-
#include "nm-vpn-service-plugin.h"
#include "nm-utils/nm-test-utils.h"
@@ -2416,6 +2415,256 @@ test_nm_vpn_service_plugin_read_vpn_details (void)
/*****************************************************************************/
+static void
+test_types (void)
+{
+#define G(get_type_fcn) \
+ ({ \
+ GType get_type_fcn (void); \
+ \
+ get_type_fcn; \
+ })
+ GType (*get_type_fcns[]) (void) = {
+ G (nm_802_11_ap_flags_get_type),
+ G (nm_802_11_ap_security_flags_get_type),
+ G (nm_802_11_mode_get_type),
+ G (nm_access_point_get_type),
+ G (nm_activation_state_flags_get_type),
+ G (nm_active_connection_get_type),
+ G (nm_active_connection_state_get_type),
+ G (nm_active_connection_state_reason_get_type),
+ G (nm_agent_manager_error_get_type),
+ G (nm_bluetooth_capabilities_get_type),
+ G (nm_bridge_vlan_get_type),
+ G (nm_capability_get_type),
+ G (nm_checkpoint_create_flags_get_type),
+ G (nm_checkpoint_get_type),
+ G (nm_client_error_get_type),
+ G (nm_client_get_type),
+ G (nm_client_permission_get_type),
+ G (nm_client_permission_result_get_type),
+ G (nm_connection_error_get_type),
+ G (nm_connection_get_type),
+ G (nm_connection_multi_connect_get_type),
+ G (nm_connection_serialization_flags_get_type),
+ G (nm_connectivity_state_get_type),
+ G (nm_crypto_error_get_type),
+ G (nm_device_6lowpan_get_type),
+ G (nm_device_adsl_get_type),
+ G (nm_device_bond_get_type),
+ G (nm_device_bridge_get_type),
+ G (nm_device_bt_get_type),
+ G (nm_device_capabilities_get_type),
+ G (nm_device_dummy_get_type),
+ G (nm_device_error_get_type),
+ G (nm_device_ethernet_get_type),
+ G (nm_device_generic_get_type),
+ G (nm_device_get_type),
+ G (nm_device_infiniband_get_type),
+ G (nm_device_ip_tunnel_get_type),
+ G (nm_device_macsec_get_type),
+ G (nm_device_macvlan_get_type),
+ G (nm_device_modem_capabilities_get_type),
+ G (nm_device_modem_get_type),
+ G (nm_device_olpc_mesh_get_type),
+ G (nm_device_ovs_bridge_get_type),
+ G (nm_device_ovs_interface_get_type),
+ G (nm_device_ovs_port_get_type),
+ G (nm_device_ppp_get_type),
+ G (nm_device_state_get_type),
+ G (nm_device_state_reason_get_type),
+ G (nm_device_team_get_type),
+ G (nm_device_tun_get_type),
+ G (nm_device_type_get_type),
+ G (nm_device_vlan_get_type),
+ G (nm_device_vxlan_get_type),
+ G (nm_device_wifi_capabilities_get_type),
+ G (nm_device_wifi_get_type),
+ G (nm_device_wifi_p2p_get_type),
+ G (nm_device_wimax_get_type),
+ G (nm_device_wireguard_get_type),
+ G (nm_device_wpan_get_type),
+ G (nm_dhcp4_config_get_type),
+ G (nm_dhcp6_config_get_type),
+ G (nm_dhcp_config_get_type),
+ G (nm_dns_entry_get_type),
+ G (nm_dns_manager_get_type),
+ G (nm_ip4_config_get_type),
+ G (nm_ip6_config_get_type),
+ G (nm_ip_address_get_type),
+ G (nm_ip_config_get_type),
+ G (nm_ip_route_get_type),
+ G (nm_ip_routing_rule_as_string_flags_get_type),
+ G (nm_ip_routing_rule_get_type),
+ G (nm_ip_tunnel_flags_get_type),
+ G (nm_ip_tunnel_mode_get_type),
+ G (nm_lldp_neighbor_get_type),
+ G (nm_manager_error_get_type),
+ G (nm_manager_get_type),
+ G (nm_manager_reload_flags_get_type),
+ G (nm_metered_get_type),
+ G (nm_object_get_type),
+ G (nm_remote_connection_get_type),
+ G (nm_remote_settings_get_type),
+ G (nm_secret_agent_capabilities_get_type),
+ G (nm_secret_agent_error_get_type),
+ G (nm_secret_agent_get_secrets_flags_get_type),
+ G (nm_secret_agent_old_get_type),
+ G (nm_setting_6lowpan_get_type),
+ G (nm_setting_802_1x_auth_flags_get_type),
+ G (nm_setting_802_1x_ck_format_get_type),
+ G (nm_setting_802_1x_ck_scheme_get_type),
+ G (nm_setting_802_1x_get_type),
+ G (nm_setting_adsl_get_type),
+ G (nm_setting_bluetooth_get_type),
+ G (nm_setting_bond_get_type),
+ G (nm_setting_bridge_get_type),
+ G (nm_setting_bridge_port_get_type),
+ G (nm_setting_cdma_get_type),
+ G (nm_setting_compare_flags_get_type),
+ G (nm_setting_connection_autoconnect_slaves_get_type),
+ G (nm_setting_connection_get_type),
+ G (nm_setting_connection_lldp_get_type),
+ G (nm_setting_connection_llmnr_get_type),
+ G (nm_setting_connection_mdns_get_type),
+ G (nm_setting_dcb_flags_get_type),
+ G (nm_setting_dcb_get_type),
+ G (nm_setting_diff_result_get_type),
+ G (nm_setting_dummy_get_type),
+ G (nm_setting_ethtool_get_type),
+ G (nm_setting_generic_get_type),
+ G (nm_setting_get_type),
+ G (nm_setting_gsm_get_type),
+ G (nm_setting_infiniband_get_type),
+ G (nm_setting_ip4_config_get_type),
+ G (nm_setting_ip6_config_addr_gen_mode_get_type),
+ G (nm_setting_ip6_config_get_type),
+ G (nm_setting_ip6_config_privacy_get_type),
+ G (nm_setting_ip_config_get_type),
+ G (nm_setting_ip_tunnel_get_type),
+ G (nm_setting_mac_randomization_get_type),
+ G (nm_setting_macsec_get_type),
+ G (nm_setting_macsec_mode_get_type),
+ G (nm_setting_macsec_validation_get_type),
+ G (nm_setting_macvlan_get_type),
+ G (nm_setting_macvlan_mode_get_type),
+ G (nm_setting_match_get_type),
+ G (nm_setting_olpc_mesh_get_type),
+ G (nm_setting_ovs_bridge_get_type),
+ G (nm_setting_ovs_dpdk_get_type),
+ G (nm_setting_ovs_interface_get_type),
+ G (nm_setting_ovs_patch_get_type),
+ G (nm_setting_ovs_port_get_type),
+ G (nm_setting_ppp_get_type),
+ G (nm_setting_pppoe_get_type),
+ G (nm_setting_proxy_get_type),
+ G (nm_setting_proxy_method_get_type),
+ G (nm_settings_add_connection2_flags_get_type),
+ G (nm_settings_connection_flags_get_type),
+ G (nm_setting_secret_flags_get_type),
+ G (nm_setting_serial_get_type),
+ G (nm_setting_serial_parity_get_type),
+ G (nm_settings_error_get_type),
+ G (nm_setting_sriov_get_type),
+ G (nm_settings_update2_flags_get_type),
+ G (nm_setting_tc_config_get_type),
+ G (nm_setting_team_get_type),
+ G (nm_setting_team_port_get_type),
+ G (nm_setting_tun_get_type),
+ G (nm_setting_tun_mode_get_type),
+ G (nm_setting_user_get_type),
+ G (nm_setting_vlan_get_type),
+ G (nm_setting_vpn_get_type),
+ G (nm_setting_vxlan_get_type),
+ G (nm_setting_wifi_p2p_get_type),
+ G (nm_setting_wimax_get_type),
+ G (nm_setting_wired_get_type),
+ G (nm_setting_wired_wake_on_lan_get_type),
+ G (nm_setting_wireguard_get_type),
+ G (nm_setting_wireless_get_type),
+ G (nm_setting_wireless_powersave_get_type),
+ G (nm_setting_wireless_security_fils_get_type),
+ G (nm_setting_wireless_security_get_type),
+ G (nm_setting_wireless_security_pmf_get_type),
+ G (nm_setting_wireless_security_wps_method_get_type),
+ G (nm_setting_wireless_wake_on_wlan_get_type),
+ G (nm_setting_wpan_get_type),
+ G (nm_simple_connection_get_type),
+ G (nm_sriov_vf_get_type),
+ G (nm_sriov_vf_vlan_protocol_get_type),
+ G (nm_state_get_type),
+ G (nm_tc_action_get_type),
+ G (nm_tc_qdisc_get_type),
+ G (nm_tc_tfilter_get_type),
+ G (nm_team_link_watcher_arp_ping_flags_get_type),
+ G (nm_team_link_watcher_get_type),
+ G (nm_ternary_get_type),
+ G (nm_utils_security_type_get_type),
+ G (nm_vlan_flags_get_type),
+ G (nm_vlan_priority_map_get_type),
+ G (nm_vpn_connection_get_type),
+ G (nm_vpn_connection_state_get_type),
+ G (nm_vpn_connection_state_reason_get_type),
+ G (nm_vpn_editor_get_type),
+ G (nm_vpn_editor_plugin_capability_get_type),
+ G (nm_vpn_editor_plugin_get_type),
+ G (nm_vpn_plugin_error_get_type),
+ G (nm_vpn_plugin_failure_get_type),
+ G (nm_vpn_plugin_info_get_type),
+ G (nm_vpn_plugin_old_get_type),
+ G (nm_vpn_service_plugin_get_type),
+ G (nm_vpn_service_state_get_type),
+ G (nm_wep_key_type_get_type),
+ G (nm_wifi_p2p_peer_get_type),
+ G (nm_wimax_nsp_get_type),
+ G (nm_wimax_nsp_network_type_get_type),
+ G (nm_wireguard_peer_get_type),
+ };
+ guint i_type;
+
+ for (i_type = 0; i_type < G_N_ELEMENTS (get_type_fcns); i_type++) {
+ nm_auto_unref_gtypeclass GObjectClass *klass_unref = NULL;
+ GType gtype = (get_type_fcns[i_type]) ();
+ GObjectClass *klass;
+
+ g_assert (g_str_has_prefix (g_type_name (gtype), "NM"));
+
+ if (G_TYPE_IS_INTERFACE (gtype)) {
+ if (!NM_IN_STRSET (g_type_name (gtype), "NMConnection",
+ "NMVpnEditor",
+ "NMVpnEditorPlugin"))
+ g_error ("unexpected interface type %s", g_type_name (gtype));
+ continue;
+ }
+
+ if (g_type_is_a (gtype, G_TYPE_BOXED))
+ continue;
+
+ /* We only test parts of the types, and avoid initializing all the types.
+ * That is so that other unit tests in this process randomly run with either
+ * the class instance already initialized or not. */
+ if ((nmtst_get_rand_uint () % 5) == 0) {
+ klass = (klass_unref = g_type_class_ref (gtype));
+ g_assert (klass);
+ } else {
+ klass = g_type_class_peek (gtype);
+ if (!klass)
+ continue;
+ }
+
+ if (g_type_is_a (gtype, G_TYPE_ENUM))
+ continue;
+
+ if (g_type_is_a (gtype, G_TYPE_FLAGS))
+ continue;
+
+ g_assert (g_type_is_a (gtype, G_TYPE_OBJECT));
+ g_assert (G_IS_OBJECT_CLASS (klass));
+ }
+}
+
+/*****************************************************************************/
+
NMTST_DEFINE ();
int main (int argc, char **argv)
@@ -2425,6 +2674,7 @@ int main (int argc, char **argv)
g_test_add_func ("/libnm/general/fixup_product_string", test_fixup_product_string);
g_test_add_func ("/libnm/general/fixup_vendor_string", test_fixup_vendor_string);
g_test_add_func ("/libnm/general/nm_vpn_service_plugin_read_vpn_details", test_nm_vpn_service_plugin_read_vpn_details);
+ g_test_add_func ("/libnm/general/test_types", test_types);
return g_test_run ();
}
diff --git a/shared/nm-default.h b/shared/nm-default.h
index d2d885d188..ace6ede16c 100644
--- a/shared/nm-default.h
+++ b/shared/nm-default.h
@@ -280,6 +280,10 @@ _nm_g_return_if_fail_warning (const char *log_domain,
#include "nm-logging.h"
#endif
+#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE
+#include "nm-libnm-utils.h"
+#endif
+
#if ((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM) && !((NETWORKMANAGER_COMPILATION) & (NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_PRIVATE | NM_NETWORKMANAGER_COMPILATION_WITH_LIBNM_CORE_INTERNAL))
#include "NetworkManager.h"
#endif
diff --git a/shared/nm-glib-aux/nm-c-list.h b/shared/nm-glib-aux/nm-c-list.h
index 7a6e8ccaf2..256dda74fb 100644
--- a/shared/nm-glib-aux/nm-c-list.h
+++ b/shared/nm-glib-aux/nm-c-list.h
@@ -17,6 +17,12 @@
_what && c_list_contains (list, &_what->member); \
})
+/* iterate over the list backwards. */
+#define nm_c_list_for_each_entry_prev(_iter, _list, _m) \
+ for (_iter = c_list_entry ((_list)->prev, __typeof__ (*_iter), _m); \
+ &(_iter)->_m != (_list); \
+ _iter = c_list_entry ((_iter)->_m.prev, __typeof__ (*_iter), _m))
+
/*****************************************************************************/
typedef struct {
diff --git a/shared/nm-glib-aux/nm-shared-utils.c b/shared/nm-glib-aux/nm-shared-utils.c
index f48401264c..34d5de1201 100644
--- a/shared/nm-glib-aux/nm-shared-utils.c
+++ b/shared/nm-glib-aux/nm-shared-utils.c
@@ -3318,3 +3318,63 @@ nm_utils_gvariant_vardict_filter_drop_one (GVariant *src,
_gvariant_vardict_filter_drop_one,
(gpointer) key);
}
+
+/*****************************************************************************/
+
+static gboolean
+debug_key_matches (const char *key,
+ const char *token,
+ guint length)
+{
+ /* may not call GLib functions: see note in g_parse_debug_string() */
+ for (; length; length--, key++, token++) {
+ char k = (*key == '_') ? '-' : g_ascii_tolower (*key );
+ char t = (*token == '_') ? '-' : g_ascii_tolower (*token);
+
+ if (k != t)
+ return FALSE;
+ }
+
+ return *key == '\0';
+}
+
+/**
+ * nm_utils_parse_debug_string:
+ * @string: the string to parse
+ * @keys: the debug keys
+ * @nkeys: number of entries in @keys
+ *
+ * Similar to g_parse_debug_string(), but does not special
+ * case "help" or "all".
+ *
+ * Returns: the flags
+ */
+guint
+nm_utils_parse_debug_string (const char *string,
+ const GDebugKey *keys,
+ guint nkeys)
+{
+ guint i;
+ guint result = 0;
+ const char *q;
+
+ if (string == NULL)
+ return 0;
+
+ while (*string) {
+ q = strpbrk (string, ":;, \t");
+ if (!q)
+ q = string + strlen (string);
+
+ for (i = 0; i < nkeys; i++) {
+ if (debug_key_matches (keys[i].key, string, q - string))
+ result |= keys[i].value;
+ }
+
+ string = q;
+ if (*string)
+ string++;
+ }
+
+ return result;
+}
diff --git a/shared/nm-glib-aux/nm-shared-utils.h b/shared/nm-glib-aux/nm-shared-utils.h
index 29ff82844f..ff1ea17e20 100644
--- a/shared/nm-glib-aux/nm-shared-utils.h
+++ b/shared/nm-glib-aux/nm-shared-utils.h
@@ -894,6 +894,13 @@ nm_g_variant_unref_floating (GVariant *var)
g_variant_unref (var);
}
+static inline void
+nm_g_source_destroy_and_unref (GSource *source)
+{
+ g_source_destroy (source);
+ g_source_unref (source);
+}
+
/*****************************************************************************/
static inline int
@@ -1282,4 +1289,8 @@ nm_g_task_is_valid (gpointer task,
&& g_task_get_source_tag (task) == source_tag;
}
+guint nm_utils_parse_debug_string (const char *string,
+ const GDebugKey *keys,
+ guint nkeys);
+
#endif /* __NM_SHARED_UTILS_H__ */
diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c
index 8a494e6102..7e614577fc 100644
--- a/src/nm-core-utils.c
+++ b/src/nm-core-utils.c
@@ -3744,66 +3744,6 @@ nm_utils_g_value_set_strv (GValue *value, GPtrArray *strings)
/*****************************************************************************/
-static gboolean
-debug_key_matches (const char *key,
- const char *token,
- guint length)
-{
- /* may not call GLib functions: see note in g_parse_debug_string() */
- for (; length; length--, key++, token++) {
- char k = (*key == '_') ? '-' : g_ascii_tolower (*key );
- char t = (*token == '_') ? '-' : g_ascii_tolower (*token);
-
- if (k != t)
- return FALSE;
- }
-
- return *key == '\0';
-}
-
-/**
- * nm_utils_parse_debug_string:
- * @string: the string to parse
- * @keys: the debug keys
- * @nkeys: number of entries in @keys
- *
- * Similar to g_parse_debug_string(), but does not special
- * case "help" or "all".
- *
- * Returns: the flags
- */
-guint
-nm_utils_parse_debug_string (const char *string,
- const GDebugKey *keys,
- guint nkeys)
-{
- guint i;
- guint result = 0;
- const char *q;
-
- if (string == NULL)
- return 0;
-
- while (*string) {
- q = strpbrk (string, ":;, \t");
- if (!q)
- q = string + strlen (string);
-
- for (i = 0; i < nkeys; i++) {
- if (debug_key_matches (keys[i].key, string, q - string))
- result |= keys[i].value;
- }
-
- string = q;
- if (*string)
- string++;
- }
-
- return result;
-}
-
-/*****************************************************************************/
-
void
nm_utils_ifname_cpy (char *dst, const char *name)
{
diff --git a/src/nm-core-utils.h b/src/nm-core-utils.h
index fa5659f640..b20db7a1c0 100644
--- a/src/nm-core-utils.h
+++ b/src/nm-core-utils.h
@@ -425,10 +425,6 @@ void _nm_utils_set_testing (NMUtilsTestFlags flags);
void nm_utils_g_value_set_strv (GValue *value, GPtrArray *strings);
-guint nm_utils_parse_debug_string (const char *string,
- const GDebugKey *keys,
- guint nkeys);
-
void nm_utils_ifname_cpy (char *dst, const char *name);
guint32 nm_utils_lifetime_rebase_relative_time_on_now (guint32 timestamp,